Администрирование · 11 мин
1С: как оповестить всех пользователей базы
Как в 1С отправить сообщение всем пользователям: обсуждения, внешние обработки, код на встроенном языке, рассылка по почте. Пошаговые инструкции и ограничения.
Задача оповестить всех пользователей 1С возникает в типичных ситуациях: плановое обновление конфигурации, блокировка базы на время регламентных работ, срочное изменение порядка работы, предупреждение о перерыве в обслуживании. Универсальной кнопки «отправить всем» в платформе нет, поэтому способ выбирают в зависимости от конфигурации, версии платформы и того, нужно ли сообщение прямо в сеансе пользователя или достаточно письма на почту.
Основные рабочие варианты: встроенная система взаимодействия (обсуждения) в конфигурациях на Библиотеке стандартных подсистем, программная отправка сообщений через объектную модель, рассылка по электронной почте из учётных записей 1С, а также внешние каналы — корпоративный мессенджер или SMS через интеграцию. Каждый способ имеет свои ограничения по доставке, права и требования к настройке.
Ниже разобраны условия применения каждого метода, порядок настройки, примеры кода и типичные ошибки, из-за которых сообщения не доходят до пользователей.
Как выбрать способ оповещения
Первый критерий — наличие подсистемы «Обсуждения» в вашей конфигурации. Она есть в большинстве типовых решений фирмы «1С» (Управление торговлей, ERP, Бухгалтерия предприятия, ЗУП) при условии, что администратор подключил сервер системы взаимодействия. Если обсуждения работают, это самый быстрый способ отправить сообщение всем активным пользователям без программирования.
Второй критерий — нужно ли гарантированное прочтение. Сообщение в обсуждениях пользователь может пропустить, если свернул окно или отключил уведомления. Письмо на корпоративную почту надёжнее как след, но медленнее. Для критичных событий (например, «через 10 минут база будет заблокирована») часто комбинируют оба канала.
Ограничение способа: если пользователь отключил уведомления в настройках обсуждений или работает через веб-клиент с заблокированными всплывающими окнами браузера, он может не заметить сообщение. Для критичных объявлений полагаться только на обсуждения не стоит.
Программная отправка сообщений пользователям
Когда обсуждений нет, а сообщить нужно прямо в сеансах, применяют программный подход. Вариант с СообщениеПользователю показывает текст только в текущем сеансе, поэтому для рассылки «всем» он не подходит напрямую — нужен механизм доставки между сеансами.
Рабочая схема без системы взаимодействия: администратор записывает текст оповещения в константу или регистр сведений, а у пользователей в сеансе работает обработчик ожидания (подключается при начале работы системы), который периодически проверяет наличие нового сообщения и выводит его через ПоказатьОповещениеПользователя или модальное предупреждение.
&НаКлиенте
Процедура ПроверитьОповещение()
Текст = ПолучитьТекстОповещенияНаСервере(); // чтение из константы
Если Не ПустаяСтрока(Текст) И Текст <> ПоказанноеРанее Тогда
ПоказатьОповещениеПользователя("Внимание", , Текст, БиблиотекаКартинок.Информация);
ПоказанноеРанее = Текст;
КонецЕсли;
КонецПроцедурыТакой механизм реализуют через расширение конфигурации, чтобы не снимать типовую с поддержки. Обработчик ожидания подключают с интервалом, например, 60–120 секунд — чаще опрашивать сервер не стоит, чтобы не создавать лишнюю нагрузку.
Рассылка по электронной почте
Если у пользователей заполнены адреса электронной почты (в справочнике «Пользователи» или в физлицах), оповещение можно разослать письмами. В типовых конфигурациях для этого настраивают системную учётную запись электронной почты в разделе администрирования, после чего отправку выполняют обработкой или небольшим кодом через ИнтернетПочта.
Плюс почты — сообщение дойдёт даже до тех, кто сейчас не в базе. Минусы: задержка доставки, риск попадания в спам, зависимость от лимитов почтового сервера на массовую рассылку. Для десятков получателей проблем обычно нет, при сотнях адресов отправку лучше делать пакетами с паузами.
Профиль = Новый ИнтернетПочтовыйПрофиль;
// заполнить профиль из системной учётной записи
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Тема = "Плановые работы в 1С";
Сообщение.Тексты.Добавить("Завтра с 09:00 до 10:00 база будет недоступна.");
Сообщение.Получатели.Добавить(АдресПользователя);
Почта.Послать(Сообщение);
Почта.Отключиться();Блокировка сеансов с сообщением пользователям
Частный, но очень частый случай оповещения — предупреждение перед обновлением или регламентными работами. В конфигурациях на БСП есть штатная функция «Блокировка работы пользователей» (Администрирование → Обслуживание): администратор задаёт период блокировки и текст сообщения, который увидят пользователи при попытке входа, а активные сеансы получат предупреждение о завершении.
В файловых базах и через консоль кластера серверов 1С аналогично можно установить блокировку сеансов с произвольным текстом сообщения. Пользователь при входе увидит этот текст — это фактически гарантированное оповещение для всех, кто попытается зайти в период работ.
Внешние каналы: мессенджеры и SMS
Когда оповестить нужно быстро и гарантированно, 1С интегрируют с корпоративным мессенджером (Telegram-бот, корпоративный чат) или SMS-шлюзом через HTTP-запросы. Из 1С это делается объектом HTTPСоединение: формируется запрос к API сервиса с текстом сообщения.
Этот вариант требует разработки и хранения токенов доступа, но даёт максимальную доставляемость: уведомление приходит на телефон даже тем, кто не в офисе. Для критичных алертов (аварийная остановка, сбой обмена) такой канал часто дублирует внутренние механизмы.
Сравнение вариантов
Быстро и без доработок, но требует подключённого сервера взаимодействия; пользователь может отключить уведомления
Гибкий текст и показ в сеансе, но нужна доработка и обработчик ожидания
Дойдёт до отсутствующих в базе, но с задержкой и риском спама
Гарантированный показ при входе, подходит только для плановых работ
Максимальная доставляемость, но нужна интеграция и внешний сервис
Проверка доставки и типичные ошибки
После настройки любого способа проверьте доставку минимум на двух тестовых пользователях с разными ролями и способами подключения (тонкий клиент, веб-клиент). Частая ситуация: администратор отправил сообщение, у себя увидел, а у пользователей уведомления отключены или веб-клиент блокирует всплывающие окна.
Как проверить результат
Всплывающее окно и запись в списке обсуждений у тестового пользователя
Сообщение есть в обсуждении, но всплывающего окна нет — проверить настройки уведомлений
Письмо пришло во входящие, не в спам
Письма нет или в спаме — проверить учётную запись и настройки почтового сервера
При входе пользователь видит заданный текст
Вход выполняется без сообщения — проверить период блокировки и код разблокировки
Что важно запомнить
Для мгновенных оповещений внутри 1С используйте обсуждения или расширение с обработчиком ожидания, для плановых работ — блокировку сеансов с текстом, для отсутствующих пользователей — почту или мессенджер. Всегда проверяйте доставку на тестовых сеансах и предупреждайте заранее перед принудительным завершением работы.
Частые вопросы
Можно ли оповестить пользователей без доработки конфигурации?
Да, если в конфигурации работают обсуждения — отправьте сообщение в групповое обсуждение. Также без доработок доступна блокировка сеансов с текстом сообщения в типовых конфигурациях на БСП и в консоли кластера.
Почему пользователи не видят сообщение в обсуждениях?
Чаще всего отключены уведомления в настройках обсуждений у самого пользователя, не подключён сервер системы взаимодействия, либо веб-браузер блокирует всплывающие окна. Проверьте подключение системы взаимодействия и настройки уведомлений на конкретном рабочем месте.
Как оповестить только часть пользователей, а не всех?
В обсуждениях создайте групповое обсуждение с нужными участниками. При программной рассылке отберите пользователей по роли, подразделению или группе доступа и отправьте сообщения только выбранным получателям.
Можно ли отправить оповещение тем, кто сейчас не в базе?
Внутри сеанса — нет, поэтому используют электронную почту, SMS или мессенджер. Либо механизм «отложенного» оповещения: текст хранится в базе и показывается пользователю при следующем входе.
Безопасно ли принудительно завершать сеансы пользователей?
Безопасно при условии предварительного предупреждения и паузы на сохранение данных. Завершение сеанса в момент записи документов может оставить незавершённые транзакции, поэтому сначала отправьте оповещение, подождите, затем включайте блокировку.
Что лучше для предупреждения об обновлении конфигурации?
Оптимальна комбинация: заранее — письмо или сообщение в мессенджер, за 10–15 минут — оповещение в обсуждениях, затем блокировка сеансов с текстом о времени окончания работ. Так закроются все каналы, включая тех, кто не в базе.