Администрирование · 10 мин
Как в 1С отправить сообщение всем активным пользователям
Как в 1С отправить сообщение всем активным пользователям: встроенные механизмы, консоль кластера, обработки и код. Пошаговые инструкции, ограничения и типичные ошибки.
Задача отправить сообщение всем пользователям, которые прямо сейчас работают в базе 1С, возникает регулярно: нужно предупредить о регламентных работах, о скором завершении сеансов, о выходе обновления или о временном ограничении функционала. В зависимости от того, какая у вас конфигурация (типовая на БСП или самописная), где размещена база (файловая или клиент-серверная) и какой у вас уровень доступа, применяются разные способы.
В типовых конфигурациях на базе Библиотеки стандартных подсистем (1С:ERP, УТ 11, КА 2, БП 3.0, ЗУП 3.1) уже встроен механизм оповещений при блокировке сеансов. В клиент-серверном варианте есть консоль кластера с рассылкой сообщений по сеансам. Для нестандартных ситуаций пишут собственную рассылку через программный код. Ниже разобраны все варианты с условиями применения.
Способ 1. Блокировка работы пользователей в типовых конфигурациях
Самый доступный штатный механизм — «Блокировка работы пользователей» из состава БСП. Формально он предназначен для завершения работы перед обновлением, но его текстовое сообщение видят все активные пользователи, поэтому администраторы часто применяют его и просто как канал рассылки.
Путь в интерфейсе: раздел «Администрирование» → «Обслуживание» → «Блокировка работы пользователей» (в некоторых конфигурациях — «Блокировка работы пользователей» в подразделе «Поддержка и обслуживание»). Устанавливаете флаг блокировки, заполняете поле «Сообщение» — именно этот текст увидят пользователи. Если указать время начала блокировки в будущем, система заранее покажет пользователям предупреждение с просьбой завершить работу.
Важно понимать механику: пользователи получают сообщение не мгновенно, а при периодической проверке блокировки на клиенте (интервал обычно составляет несколько минут и задаётся параметрами подсистемы). Поэтому для срочных уведомлений «через минуту всё отключится» этот способ неидеален — закладывайте запас времени 10–15 минут.
- 1Откройте Администрирование → Обслуживание → Блокировка работы пользователей
- 2Установите флаг блокировки и заполните текст сообщения для пользователей
- 3Укажите время начала блокировки с запасом 10–15 минут, чтобы предупреждение успели увидеть
- 4Дождитесь завершения сеансов, проверьте список активных пользователей
- 5После работ снимите блокировку и убедитесь, что вход снова доступен
Способ 2. Сообщение через консоль кластера серверов 1С
Если база работает в клиент-серверном варианте, у администратора есть прямой канал связи с активными сеансами — консоль кластера. Откройте оснастку «Администрирование серверов 1С:Предприятия», разверните кластер, найдите нужную информационную базу и перейдите на вкладку «Сеансы».
Выделите все сеансы (Ctrl+A) или конкретные, откройте контекстное меню и выберите пункт отправки сообщения. Текст будет доставлен выбранным сеансам практически мгновенно — в отличие от механизма блокировки, здесь нет интервала опроса. Это оптимальный способ для срочных уведомлений: «сервер будет перезагружен через 5 минут».
Ограничения способа: нужны права администратора кластера, консоль доступна только там, где установлена компонента администрирования (обычно на самом сервере или рабочем месте администратора), и в файловом варианте работы кластера нет вовсе. Кроме того, сообщение из консоли — это простое окно оповещения, без истории и без гарантии, что пользователь его прочитал, а не закрыл машинально.
Способ 3. Программная рассылка через ПолучитьСеансыИнформационнойБазы
Для самописных конфигураций или нестандартных сценариев (например, рассылка только пользователям конкретного отдела) пишут собственную обработку. Основа — метод ПолучитьСеансыИнформационнойБазы(), который возвращает массив активных сеансов с информацией о пользователе, приложении и времени начала.
Классическая схема: перебираете сеансы, отфильтровываете фоновые задания и системные сеансы (у них нет интерактивного клиента), а для пользовательских сеансов вызываете механизм доставки. Сам по себе метод не отправляет сообщения — он лишь даёт список получателей. Доставку организуют через подсистему обсуждений (если настроена система взаимодействия), через внешние каналы (почта, мессенджер) или через периодический опрос специального регистра клиентами.
МассивСеансов = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из МассивСеансов Цикл
Если Сеанс.ИмяПриложения = "BackgroundJob" Тогда
Продолжить; // фоновые задания пропускаем
КонецЕсли;
// Сеанс.Пользователь.Имя — получатель сообщения
КонецЦикла;
Учтите, что прямого штатного метода «отправить текст в чужой сеанс» из кода встроенного языка нет. Реальные варианты доставки: система взаимодействия 1С (обсуждения), запись в регистр сведений, который клиенты опрашивают обработчиком ожидания, либо интеграция с корпоративной почтой и мессенджерами.
МассивСеансов = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из МассивСеансов Цикл
Сообщить(Сеанс.Пользователь.Имя + " — " + Сеанс.ИмяПриложения);
КонецЦикла;Способ 4. Система взаимодействия (обсуждения) 1С
Если в базе подключена система взаимодействия (работает в клиент-серверном варианте и в сервисе 1С:Фреш), появляется полноценный встроенный чат. Можно создать групповое обсуждение со всеми пользователями или отправлять сообщения программно через менеджер обсуждений.
Плюс подхода: сообщения сохраняются в истории, доставляются даже тем, кто был офлайн (увидят при следующем входе), есть уведомления в панели. Минус — требуется настройка сервера взаимодействия, и не во всех организациях его разворачивают ради одной функции оповещений.
Для рассылки программно используют объекты ИнформационнаяБаза менеджера обсуждений: создают сообщение, добавляют получателей и отправляют. Это наиболее «правильный» долгосрочный вариант, если оповещения нужны регулярно.
Сравнение способов: что выбрать под вашу ситуацию
Выбор зависит от трёх факторов: срочность доставки, тип развёртывания базы и необходимость информировать будущие подключения. Разовое срочное предупреждение в клиент-серверной базе быстрее всего сделать через консоль кластера. Плановое уведомление о регламентных работах удобнее оформить блокировкой — она же и защитит базу от входа во время работ.
Сравнение вариантов рассылки
Типовые конфигурации на БСП. Подходит для плановых работ, но доставка с задержкой на интервал опроса.
Только клиент-серверный вариант. Мгновенная доставка активным сеансам, но нужны права администратора кластера.
Гибкая фильтрация получателей, но требует разработки механизма доставки.
История сообщений и доставка офлайн-пользователям, но нужна установка сервера взаимодействия.
Типичные ошибки и ограничения
Самая частая ошибка — ожидание мгновенной доставки от блокировки работы. Администратор ставит блокировку «через 2 минуты», а половина пользователей узнаёт об этом уже после отключения. Вторая типичная ситуация: сообщение отправлено через консоль кластера, но забыли про тонкие клиенты на веб-сервере или про сеансы в других кластерах, если их несколько.
Ещё одна ошибка — рассылка через Сообщить() в серверном коде с расчётом, что текст увидят все пользователи. Метод Сообщить() выводит текст только в сеанс, где выполняется код, а не всем активным пользователям. Это принципиально разные вещи.
Как проверить, что сообщение дошло
После рассылки полезно убедиться в результате. Откройте список активных пользователей (в типовых — «Администрирование» → «Обслуживание» → «Активные пользователи», в клиент-серверном варианте — вкладка «Сеансы» консоли кластера) и оцените динамику: если целью было завершение работы, количество сеансов должно сокращаться.
Для критичных уведомлений имеет смысл дублировать канал: сообщение в 1С плюс письмо на корпоративную почту или сообщение в общий чат компании. Пользователь, отошедший от компьютера, окно 1С не увидит, а почту на телефоне — вполне возможно.
Как проверить результат
Количество пользовательских сеансов заметно сокращается
Число сеансов не меняется — сообщение не дошло или проигнорировано
Заполнено понятное сообщение с причиной и временем
Пустое или техническое сообщение — пользователи не поймут, что происходит
Пользователи входят в базу штатно
Вход заблокирован — блокировка не снята или задан код разблокировки
Что важно запомнить
В типовых конфигурациях сообщение всем активным пользователям отправляется через блокировку работы, в клиент-серверной базе — мгновенно через консоль кластера. Метод Сообщить() для рассылки не подходит. Для регулярных и гибких оповещений используйте систему взаимодействия или собственную доработку, и всегда проверяйте результат по списку активных сеансов.
Частые вопросы
Можно ли отправить сообщение пользователям файловой базы 1С?
Штатного инструмента мгновенной рассылки в файловом варианте нет — консоль кластера недоступна. В типовых конфигурациях используйте блокировку работы пользователей, в самописных — регистр сведений с текстом сообщения, который клиенты опрашивают обработчиком ожидания, или внешние каналы вроде почты.
Почему пользователи не видят сообщение о блокировке сразу?
Клиент проверяет установку блокировки периодически, а не в реальном времени. Интервал опроса задаётся настройками подсистемы завершения работы и обычно составляет несколько минут. Закладывайте запас 10–15 минут между установкой блокировки и началом работ.
Чем отличается Сообщить() от рассылки всем пользователям?
Метод Сообщить() выводит текст только в окно сообщений того сеанса, где выполняется код. Он не имеет отношения к массовой рассылке: другие пользователи этот текст никогда не увидят. Для рассылки нужны отдельные механизмы — консоль кластера, система взаимодействия или доработка.
Как отправить сообщение только пользователям одного отдела?
Штатные механизмы рассылают всем. Для выборочной рассылки нужна доработка: получить список сеансов через ПолучитьСеансыИнформационнойБазы(), сопоставить пользователей с подразделениями через справочник сотрудников и доставить сообщение через систему взаимодействия или почту только нужным получателям.
Увидит ли сообщение пользователь, который вошёл в базу после рассылки?
Сообщение из консоли кластера — нет, оно доставляется только активным на момент отправки сеансам. Сообщение блокировки увидят те, кто попытается войти в период её действия. Сообщения системы взаимодействия сохраняются в истории и доступны при следующем входе.
Нужны ли особые права для рассылки сообщений?
Да. Блокировка работы пользователей требует права администратора в конфигурации (роль «Администратор системы» или полные права). Работа с консолью кластера требует прав администратора кластера серверов 1С. Обычный пользователь рассылку выполнить не может.