К статье
Практический материал

Администрирование · 11 мин

1С: как оповестить всех пользователей базы

Как в 1С отправить сообщение всем пользователям: обсуждения, внешние обработки, код на встроенном языке, рассылка по почте. Пошаговые инструкции и ограничения.

Задача оповестить всех пользователей 1С возникает в типичных ситуациях: плановое обновление конфигурации, блокировка базы на время регламентных работ, срочное изменение порядка работы, предупреждение о перерыве в обслуживании. Универсальной кнопки «отправить всем» в платформе нет, поэтому способ выбирают в зависимости от конфигурации, версии платформы и того, нужно ли сообщение прямо в сеансе пользователя или достаточно письма на почту.

Основные рабочие варианты: встроенная система взаимодействия (обсуждения) в конфигурациях на Библиотеке стандартных подсистем, программная отправка сообщений через объектную модель, рассылка по электронной почте из учётных записей 1С, а также внешние каналы — корпоративный мессенджер или SMS через интеграцию. Каждый способ имеет свои ограничения по доставке, права и требования к настройке.

Ниже разобраны условия применения каждого метода, порядок настройки, примеры кода и типичные ошибки, из-за которых сообщения не доходят до пользователей.

Как выбрать способ оповещения

Первый критерий — наличие подсистемы «Обсуждения» в вашей конфигурации. Она есть в большинстве типовых решений фирмы «1С» (Управление торговлей, ERP, Бухгалтерия предприятия, ЗУП) при условии, что администратор подключил сервер системы взаимодействия. Если обсуждения работают, это самый быстрый способ отправить сообщение всем активным пользователям без программирования.

Второй критерий — нужно ли гарантированное прочтение. Сообщение в обсуждениях пользователь может пропустить, если свернул окно или отключил уведомления. Письмо на корпоративную почту надёжнее как след, но медленнее. Для критичных событий (например, «через 10 минут база будет заблокирована») часто комбинируют оба канала.

Ограничение способа: если пользователь отключил уведомления в настройках обсуждений или работает через веб-клиент с заблокированными всплывающими окнами браузера, он может не заметить сообщение. Для критичных объявлений полагаться только на обсуждения не стоит.

Программная отправка сообщений пользователям

Когда обсуждений нет, а сообщить нужно прямо в сеансах, применяют программный подход. Вариант с СообщениеПользователю показывает текст только в текущем сеансе, поэтому для рассылки «всем» он не подходит напрямую — нужен механизм доставки между сеансами.

Рабочая схема без системы взаимодействия: администратор записывает текст оповещения в константу или регистр сведений, а у пользователей в сеансе работает обработчик ожидания (подключается при начале работы системы), который периодически проверяет наличие нового сообщения и выводит его через ПоказатьОповещениеПользователя или модальное предупреждение.

bsl
&НаКлиенте
Процедура ПроверитьОповещение()
    Текст = ПолучитьТекстОповещенияНаСервере(); // чтение из константы
    Если Не ПустаяСтрока(Текст) И Текст <> ПоказанноеРанее Тогда
        ПоказатьОповещениеПользователя("Внимание", , Текст, БиблиотекаКартинок.Информация);
        ПоказанноеРанее = Текст;
    КонецЕсли;
КонецПроцедуры

Такой механизм реализуют через расширение конфигурации, чтобы не снимать типовую с поддержки. Обработчик ожидания подключают с интервалом, например, 60–120 секунд — чаще опрашивать сервер не стоит, чтобы не создавать лишнюю нагрузку.

Рассылка по электронной почте

Если у пользователей заполнены адреса электронной почты (в справочнике «Пользователи» или в физлицах), оповещение можно разослать письмами. В типовых конфигурациях для этого настраивают системную учётную запись электронной почты в разделе администрирования, после чего отправку выполняют обработкой или небольшим кодом через ИнтернетПочта.

Плюс почты — сообщение дойдёт даже до тех, кто сейчас не в базе. Минусы: задержка доставки, риск попадания в спам, зависимость от лимитов почтового сервера на массовую рассылку. Для десятков получателей проблем обычно нет, при сотнях адресов отправку лучше делать пакетами с паузами.

bsl
Профиль = Новый ИнтернетПочтовыйПрофиль;
// заполнить профиль из системной учётной записи
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Тема = "Плановые работы в 1С";
Сообщение.Тексты.Добавить("Завтра с 09:00 до 10:00 база будет недоступна.");
Сообщение.Получатели.Добавить(АдресПользователя);
Почта.Послать(Сообщение);
Почта.Отключиться();

Блокировка сеансов с сообщением пользователям

Частный, но очень частый случай оповещения — предупреждение перед обновлением или регламентными работами. В конфигурациях на БСП есть штатная функция «Блокировка работы пользователей» (Администрирование → Обслуживание): администратор задаёт период блокировки и текст сообщения, который увидят пользователи при попытке входа, а активные сеансы получат предупреждение о завершении.

В файловых базах и через консоль кластера серверов 1С аналогично можно установить блокировку сеансов с произвольным текстом сообщения. Пользователь при входе увидит этот текст — это фактически гарантированное оповещение для всех, кто попытается зайти в период работ.

Внешние каналы: мессенджеры и SMS

Когда оповестить нужно быстро и гарантированно, 1С интегрируют с корпоративным мессенджером (Telegram-бот, корпоративный чат) или SMS-шлюзом через HTTP-запросы. Из 1С это делается объектом HTTPСоединение: формируется запрос к API сервиса с текстом сообщения.

Этот вариант требует разработки и хранения токенов доступа, но даёт максимальную доставляемость: уведомление приходит на телефон даже тем, кто не в офисе. Для критичных алертов (аварийная остановка, сбой обмена) такой канал часто дублирует внутренние механизмы.

Сравнение вариантов

Обсуждения (система взаимодействия)

Быстро и без доработок, но требует подключённого сервера взаимодействия; пользователь может отключить уведомления

Программное оповещение через расширение

Гибкий текст и показ в сеансе, но нужна доработка и обработчик ожидания

Электронная почта

Дойдёт до отсутствующих в базе, но с задержкой и риском спама

Блокировка сеансов с сообщением

Гарантированный показ при входе, подходит только для плановых работ

Мессенджер/SMS

Максимальная доставляемость, но нужна интеграция и внешний сервис

Проверка доставки и типичные ошибки

После настройки любого способа проверьте доставку минимум на двух тестовых пользователях с разными ролями и способами подключения (тонкий клиент, веб-клиент). Частая ситуация: администратор отправил сообщение, у себя увидел, а у пользователей уведомления отключены или веб-клиент блокирует всплывающие окна.

Типичные ошибки
01
Отправка через СообщениеПользователю в фоновом задании — сообщение никто не увидит, так как оно привязано к сеансу сервера
02
Отсутствие адресов почты у пользователей — рассылка уходит в пустоту, сначала проверьте заполненность данных
03
Слишком частый опрос в обработчике ожидания — лишняя нагрузка на сервер, ставьте интервал от 60 секунд
04
Отключённые уведомления обсуждений у пользователей — проверьте настройки до массовой отправки
05
Доработка типовой конфигурации вместо расширения — потеря поддержки и проблемы при обновлении
Контрольные точки

Как проверить результат

Уведомление в обсуждениях
Норма

Всплывающее окно и запись в списке обсуждений у тестового пользователя

Тревожный признак

Сообщение есть в обсуждении, но всплывающего окна нет — проверить настройки уведомлений

Почтовая рассылка
Норма

Письмо пришло во входящие, не в спам

Тревожный признак

Письма нет или в спаме — проверить учётную запись и настройки почтового сервера

Блокировка сеансов
Норма

При входе пользователь видит заданный текст

Тревожный признак

Вход выполняется без сообщения — проверить период блокировки и код разблокировки

Итог

Что важно запомнить

Для мгновенных оповещений внутри 1С используйте обсуждения или расширение с обработчиком ожидания, для плановых работ — блокировку сеансов с текстом, для отсутствующих пользователей — почту или мессенджер. Всегда проверяйте доставку на тестовых сеансах и предупреждайте заранее перед принудительным завершением работы.

Частые вопросы

Можно ли оповестить пользователей без доработки конфигурации?

Да, если в конфигурации работают обсуждения — отправьте сообщение в групповое обсуждение. Также без доработок доступна блокировка сеансов с текстом сообщения в типовых конфигурациях на БСП и в консоли кластера.

Почему пользователи не видят сообщение в обсуждениях?

Чаще всего отключены уведомления в настройках обсуждений у самого пользователя, не подключён сервер системы взаимодействия, либо веб-браузер блокирует всплывающие окна. Проверьте подключение системы взаимодействия и настройки уведомлений на конкретном рабочем месте.

Как оповестить только часть пользователей, а не всех?

В обсуждениях создайте групповое обсуждение с нужными участниками. При программной рассылке отберите пользователей по роли, подразделению или группе доступа и отправьте сообщения только выбранным получателям.

Можно ли отправить оповещение тем, кто сейчас не в базе?

Внутри сеанса — нет, поэтому используют электронную почту, SMS или мессенджер. Либо механизм «отложенного» оповещения: текст хранится в базе и показывается пользователю при следующем входе.

Безопасно ли принудительно завершать сеансы пользователей?

Безопасно при условии предварительного предупреждения и паузы на сохранение данных. Завершение сеанса в момент записи документов может оставить незавершённые транзакции, поэтому сначала отправьте оповещение, подождите, затем включайте блокировку.

Что лучше для предупреждения об обновлении конфигурации?

Оптимальна комбинация: заранее — письмо или сообщение в мессенджер, за 10–15 минут — оповещение в обсуждениях, затем блокировка сеансов с текстом о времени окончания работ. Так закроются все каналы, включая тех, кто не в базе.