Объявление для всех, кто работает в базе 1С: штатные средства, код и расписание
Содержание
Отправить сообщение всем пользователям
1С 8.3 проще всего через «Обсуждения»: подключите базу к системе взаимодействия в Администрирование → Общие настройки, создайте групповое обсуждение со всеми сотрудниками и пишите туда. Если нужно предупредить о регламентных работах, используйте блокировку работы пользователей с текстом сообщения: программа сама покажет его всем, кто сейчас в базе.
Своей кнопки «Отправить всем» в платформе нет. Ниже разобраны способы для типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP) и варианты с доработкой, если нужна массовая рассылка уведомлений по расписанию.
Какой способ выбрать для массовой рассылки
Способы различаются тем, кто увидит сообщение и нужно ли трогать конфигурацию.
| Способ | Когда подходит | Доработка | Ограничения |
|---|---|---|---|
| 💬 Обсуждения (система взаимодействия) | Обычные объявления, переписка | Нет | Нужна регистрация базы и доступ к серверу взаимодействия |
| 🔒 Блокировка работы пользователей | Предупредить перед обновлением | Нет | Сообщение привязано к блокировке входа |
| 🧩 Внешняя обработка | Разовая рассылка «по кнопке» | Обработка .epf | Нужны права администратора |
| ⏰ Планировщик Windows / регламентное задание | Напоминания по расписанию | Обработка или расширение | Отдельный пользователь и лицензия на время запуска |
🖥 Команда msg Windows | Все работают на одном терминальном сервере | Нет | Не связано с 1С, видят все сеансы RDP |
| ✉️ Почта, мессенджер | Нужно достать тех, кто не в базе | Настройка учётной записи или бота | Не видно внутри программы |
Обсуждения: штатный способ написать всем пользователям 1С
«Обсуждения» — это встроенный чат платформы 1С:Предприятие 8.3 (система взаимодействия). Он есть во всех типовых конфигурациях на современной платформе. Сообщения приходят как всплывающие оповещения в правом нижнем углу, плюс счётчик непрочитанных на панели.
Подключение базы
- Войдите под пользователем с полными правами.
- Откройте
Администрирование → Общие настройки. - В группе «Обсуждения» нажмите ссылку подключения и укажите адрес электронной почты администратора.
- Введите код подтверждения из письма.
По умолчанию база регистрируется на бесплатном сервере 1С:Диалог (1cdialog.com). Компьютерам пользователей нужен выход в интернет к этому серверу. Если интернета на рабочих местах нет, разворачивают собственный «1С:Сервер взаимодействия» во внутренней сети.
Пользователь попадает в систему взаимодействия, когда впервые входит в базу после её подключения. Пока сотрудник не заходил, добавить его в обсуждение не получится.
Отправка объявления всем
- На панели инструментов откройте «Обсуждения» (значок с облачком).
- Создайте новое обсуждение, назовите его, например, «Объявления администратора».
- Добавьте участников — всех сотрудников базы.
- Напишите сообщение и отправьте.
Дальше пишите в это же обсуждение. Новые сотрудники добавляются в него вручную или кодом (пример ниже). Сообщения сохраняются: кто был не в сети, прочитает их при следующем входе.
Предупреждение пользователей через блокировку базы
Перед обновлением конфигурации или закрытием месяца надо, чтобы все вышли из программы. Для этого в БСП есть блокировка с сообщением.
- Откройте
Администрирование → Обслуживание. - В группе «Обслуживание» откройте «Блокировка работы пользователей».
- Заполните текст сообщения: «В 19:00 обновление программы. Сохраните документы и выйдите из базы».
- Укажите время начала и окончания блокировки.
- Установите блокировку.
Пользователи, которые сейчас в базе, получат предупреждение с вашим текстом заранее, до начала блокировки. Когда время наступит, программа завершит их сеансы, а новые входы будут запрещены до окончания.
Блокировка оборвёт сеансы всех пользователей, кроме того, кто её установил. Несохранённые документы будут потеряны. Ставьте время начала с запасом, чтобы люди успели прочитать сообщение и закрыть формы.
Что написать в тексте предупреждения
Пользователь видит сообщение несколько секунд, поэтому текст должен отвечать на три вопроса: что случится, когда и что сделать.
- 🕖 Когда: точное время начала и примерное окончание — «с 19:00 до 20:30».
- 🛠 Что: «обновление программы», «закрытие месяца », «перезагрузка сервера».
- ✅ Что сделать: «провести и записать документы, закрыть 1С».
Пример: «С 19:00 до 20:30 обновление 1С. Запишите документы и выйдите из программы до 18:55. Вопросы — Ивану, доб. 214».
Как зайти самому, пока база заблокирована
В форме блокировки можно задать код разрешения. Администратор запускает базу с ключом /UC<код> (например, /UC12345 в строке запуска или в дополнительных параметрах запуска в списке баз) и входит, несмотря на блокировку. Остальные пользователи до окончания блокировки зайти не смогут.
В клиент-серверном варианте форма блокировки попросит пароль администратора кластера, если он задан. Без него платформа не сможет завершить чужие сеансы.
Права и роли для отправки уведомлений
Права зависят от выбранного способа. Ставить «Полные права» всем подряд не нужно.
| Действие | Кто может |
|---|---|
| Подключить базу к обсуждениям | Пользователь с полными правами |
| Создать обсуждение и написать в него | Любой пользователь, если базу подключили |
| Установить блокировку работы | Администратор (роль «Администратор системы» или «Полные права») |
| Получить список всех пользователей в коде | Нужно право администрирования, иначе ПользователиИнформационнойБазы.ПолучитьПользователей() вернёт ошибку |
| Получить данные из собственного регистра объявлений | Роль с правом чтения этого регистра |
Если рассылку делает обработка, выполняйте серверную часть в привилегированном режиме или запускайте её под служебным пользователем-администратором. Обычный бухгалтер без прав администрирования не получит список пользователей ИБ.
Для отдельного «редактора объявлений» в своей доработке заведите отдельную роль: запись в регистр объявлений и ничего лишнего. Остальным сотрудникам — только чтение.
Рассылка сообщений кодом: обработка и расширение
Когда нужен скрипт — рассылка из обработки или автоматическое уведомление по событию, — есть два пути.
Вариант 1. Сообщение через систему взаимодействия
Код ниже создаёт групповое обсуждение, добавляет всех пользователей ИБ и пишет в него сообщение. Его можно поместить во внешнюю обработку
и запускать из Файл → Открыть (или через раздел дополнительных обработок).
&НаСервере
Процедура ОтправитьВсемНаСервере(ТекстСообщения)
Если Не СистемаВзаимодействия.ИспользованиеДоступно() Тогда
ВызватьИсключение "База не подключена к системе взаимодействия";
КонецЕсли;
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
Обсуждение.Заголовок = "Объявления администратора";
Обсуждение.Групповое = Истина;
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
Попытка
Ид = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(
ПользовательИБ.УникальныйИдентификатор);
Обсуждение.Участники.Добавить(Ид);
Исключение
// Сотрудник ещё не входил в базу после подключения обсуждений
КонецПопытки;
КонецЦикла;
Обсуждение.Записать();
Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор);
Сообщение.Текст = Новый ФорматированнаяСтрока(ТекстСообщения);
Сообщение.Записать();
КонецПроцедуры
Сотрудники, которые ещё не входили в базу, в участники не попадут: для них платформа не вернёт идентификатор, и код пропустит их без ошибки. Запускайте добавление участников повторно, например раз в сутки регламентным заданием, — так в обсуждение попадут и новички.
Каждый запуск этого кода создаёт новое обсуждение. Для регулярной рассылки сохраните идентификатор обсуждения в константе или в хранилище настроек и при следующем запуске только добавляйте сообщение.
Вариант 2. Свой регистр объявлений и обработчик ожидания
Подходит, если обсуждения недоступны: нет интернета, нет своего сервера взаимодействия. Схема:
- 🗂 регистр сведений «Объявления»: текст, дата, срок показа;
- ⏱ в клиентском коде при запуске программы подключается обработчик ожидания, раз в 60–120 секунд;
- 🔔 обработчик спрашивает у сервера новое объявление и показывает его через
ПоказатьОповещениеПользователя.
// Модуль управляемого приложения (в расширении)
Процедура ПроверитьОбъявления() Экспорт
Текст = ОбъявленияВызовСервера.НовоеОбъявление();
Если ЗначениеЗаполнено(Текст) Тогда
ПоказатьОповещениеПользователя("Сообщение администратора", , Текст);
КонецЕсли;
КонецПроцедуры
// В обработчике начала работы системы:
// ПодключитьОбработчикОжидания("ПроверитьОбъявления", 60);
ОбъявленияВызовСервера — ваш общий модуль с флагом «Вызов сервера». Функция НовоеОбъявление() возвращает текст, который этот пользователь ещё не видел (отметки о прочтении храните в том же регистре или в хранилище настроек).
Делайте такую доработку в расширении конфигурации. Тогда типовая конфигурация останется на поддержке и будет обновляться без сравнения-объединения.
Не ставьте интервал опроса меньше 30 секунд: при 100 пользователях это сотни лишних серверных вызовов в минуту.
Отправка по расписанию: Планировщик заданий Windows и регламентные задания
Планировщик Windows
Платформа умеет при запуске открыть внешнюю обработку параметром /Execute, а строку параметров передать ключом /C. На этом строится запуск по расписанию.
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /S "srv1c\buh" /N "Робот" /P "пароль" /Execute "C:\1c\scripts\Объявление.epf" /C "Сегодня в 19:00 обновление 1С" /DisableStartupMessages
Порядок настройки:
- Сохраните строку в файл
notify.bat. - В обработке при открытии прочитайте текст из глобального свойства
ПараметрЗапуска, вызовите серверную процедуру рассылки и завершите работу:ЗавершитьРаботуСистемы(Ложь). - Откройте «Планировщик заданий» Windows, создайте задачу, на вкладке «Триггеры» задайте расписание, на вкладке «Действия» укажите
notify.bat. - Отметьте запуск независимо от входа пользователя в систему.
Пароль в bat-файле лежит открытым текстом. Ограничьте доступ к папке со скриптом. Для файловой базы путь указывают ключом /F "D:\Bases\Buh" вместо /S. Каждый запуск занимает клиентскую лицензию, пока сеанс открыт.
Регламентное задание вместо планировщика
В клиент-серверной базе надёжнее регламентное задание: оно выполняется на сервере 1С по расписанию, без запуска клиента и без пароля в файле. Его добавляют в расширение, указывают процедуру общего модуля с кодом рассылки (вариант 1 или запись в регистр объявлений для варианта 2) и задают расписание.
Включённость и расписание потом меняют в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
Клиент-серверный и файловый режим: что меняется
На сервере 1С нет экрана пользователя. Регламентное задание или фоновое задание не может показать окно — ПоказатьОповещениеПользователя и Предупреждение там не работают. Сервер может только записать сообщение: в систему взаимодействия или в регистр. Показ остаётся за клиентом.
| Что | Клиент-сервер | Файловая база |
|---|---|---|
| Регламентные задания | Выполняет сервер 1С по расписанию | Выполняются, только пока открыт хотя бы один клиентский сеанс |
| Блокировка работы | Может запросить пароль администратора кластера | Пароль кластера не нужен |
| Обсуждения | Работают одинаково | Работают одинаково |
| Запуск из планировщика | Ключ /S сервер\база | Ключ /F путь_к_каталогу |
В клиент-серверном режиме список активных сеансов видно в консоли администрирования серверов 1С или командой rac session list. Из консоли можно завершить сеанс, но это не способ «отправить сообщение»: человек просто вылетит из базы. Параметры команд rac для завершения сеансов смотрите в справке rac help session для вашей версии платформы.
Сообщения вне 1С: msg, почта, мессенджеры
Иногда нужно, чтобы сообщение увидели и те, кто сейчас не в программе.
- 🖥 Терминальный сервер
. Если все работают в 1С через RDP на одном сервере, администратор может отправить сообщение всем сеансам Windows:
msg * /time:300 "В 19:00 обновление 1С, выйдите из программы". Окно висит 300 секунд или до нажатия «ОК». Команду выполняют на самом терминальном сервере от имени администратора. - ✉️ Почта. В типовых конфигурациях есть учётные записи электронной почты и подсистема рассылки отчётов. Из кода письмо отправляют через объекты
ИнтернетПочтовоеСообщениеиИнтернетПочтаили через почтовые процедуры БСП. Нужна почта у каждого пользователя в карточке. - 🤖 Telegram или корпоративный мессенджер. Обработка отправляет HTTP-запрос к боту (
HTTPСоединениеиHTTPЗапрос). Токен бота храните в защищённом хранилище, а не в коде. - 📱 «1С:Предприятие — Обсуждения» на телефоне. Для зарегистрированной базы есть мобильное приложение: объявления из обсуждений придут и на смартфон.
Для срочных работ комбинируйте: объявление в обсуждениях за день, письмо утром и блокировка с сообщением за 15–20 минут до начала.
Частые вопросы
Можно ли отправить сообщение конкретному пользователю, а не всем?
Почему пользователь не получил сообщение в обсуждениях?
Как сделать, чтобы объявление не пропало через несколько секунд?
ПоказатьОповещениеПользователя исчезает само, но остаётся в центре оповещений. Для важного текста в своём обработчике ожидания используйте модальное окно ПоказатьПредупреждение: его надо закрыть кнопкой.