Как предупредить всех, кто сейчас работает в базе 1С

· 9 мин

Содержание

Отправить сообщение всем активным пользователям 1С 8.3 быстрее всего через Администрирование → Обслуживание → Блокировка работы пользователей: вы пишете текст, задаёте время, и каждый, кто сейчас в программе, видит предупреждение. Но этот способ годится, только если вы действительно собираетесь выгнать всех из базы. Для простого объявления без отключения нужны «Обсуждения» или своя доработка.

Выбор сводится к одному вопросу: нужно ли после сообщения завершить сеансы. Если да — блокировка (из программы или из консоли кластера). Если нет — «Обсуждения», доработка в расширении или системные средства Windows на терминальном сервере. Ниже каждый способ по шагам и с правами, которые для него нужны.

Подготовка: кто сейчас в базе и хватит ли ваших прав

Сначала посмотрите, кому вообще адресовано сообщение. В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11) список открыт из формы блокировки по ссылке «Активные пользователи». Там видно имя пользователя, компьютер, приложение (тонкий клиент, веб-клиент, конфигуратор, фоновое задание) и время начала сеанса.

В клиент-серверном варианте тот же список есть в консоли администрирования серверов: Кластер → Информационные базы → <база> → Сеансы.

👥 Что важно заметить в списке активных пользователей:

  • 🖥️ Сеансы конфигуратора. Им предупреждение из программы не покажется: в конфигураторе не работает клиентский код конфигурации.
  • ⚙️ Фоновые задания и COM-соединения. Это не люди, читать сообщение некому. Их останавливают отдельно.
  • 🌐 Веб-клиент. Предупреждение о блокировке он получает так же, как тонкий клиент.

Какие права нужны для рассылки

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

Рядовому бухгалтеру без административной роли команда блокировки просто не видна. Если её нет в разделе «Администрирование», проблема в правах, а не в релизе.

Блокировка работы пользователей: текст плюс отсрочка

Это штатный механизм БСП, и у него две функции сразу. Активные пользователи получают предупреждение с вашим текстом, а в назначенное время программа завершает их сеансы. Новые входы до конца блокировки запрещены.

Пошагово

  1. Откройте Администрирование → Обслуживание и перейдите по ссылке «Блокировка работы пользователей». В старых релизах раздел назывался «Поддержка и обслуживание».
  2. В поле сообщения напишите, что произойдёт и когда. Пример: «В 19:00 обновляем базу. Сохраните документы и выйдите до 18:55. Работа возобновится около 20:00».
  3. Укажите время начала блокировки. Поставьте запас 10–15 минут от текущего момента, иначе люди не успеют сохраниться.
  4. Укажите время окончания или оставьте его пустым, если снимете блокировку вручную.
  5. Задайте код разрешения (например, 0905). С ним администратор сможет войти в заблокированную базу.
  6. Для клиент-серверной базы откройте параметры администрирования и введите логин и пароль администратора кластера. Без них программа не сможет принудительно завершить «зависшие» сеансы.
  7. Нажмите «Установить блокировку».

В момент начала блокировки сеансы обрываются. Несохранённый документ пользователя будет потерян — поэтому в тексте сообщения прямо попросите записать работу.

Как написать текст, который прочитают

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

  • ⏰ когда начнётся отключение — точное время, а не «скоро»;
  • 📝 что сделать — сохранить документы, закрыть отчёты, выйти;
  • 🔁 когда вернуться — ориентир по времени или «сообщим в чате».

Не пишите длинных объяснений про причины обновления. Человеку важно одно: успеет ли он провести документ . Если работы плановые, продублируйте объявление утром в почте или мессенджере — так его увидят и те, кто войдёт в базу позже.

Как войти в заблокированную базу

Добавьте к строке запуска параметр /UC с кодом разрешения:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh" /UC0905

Путь и номер платформы подставьте свои. Тот же параметр можно дописать в свойства базы в окне запуска: Изменить → Дополнительные параметры запуска.

💡 Если нужно только предупредить, а выгонять никого не планируете, этот способ не подходит. Отменить блокировку до начала можно, но пользователи уже увидят пугающее сообщение о завершении работы.

Сообщение о блокировке через консоль администрирования серверов

Консоль кластера не умеет рассылать текст в открытые сеансы. Её сообщение увидит только тот, кто пытается войти в базу, пока действует блокировка. Поэтому консоль используют как дополнение: объявили заранее любым другим способом, потом закрыли вход.

Пошагово в консоли

  1. Запустите «Администрирование серверов 1С Предприятия», раскройте Кластер → Информационные базы.
  2. Откройте свойства нужной базы. Введите имя и пароль пользователя базы с административными правами.
  3. Включите флажок «Блокировка начала сеансов включена».
  4. Заполните «Начало» и «Конец» блокировки, поле «Сообщение о блокировке» и «Код разрешения».
  5. При необходимости включите «Блокировка регламентных заданий включена», чтобы фоновые задания не мешали обновлению.
  6. Нажмите «ОК». Уже работающих пользователей завершите вручную: Сеансы → выделить → Удалить.

Удаление сеанса в консоли обрывает работу человека мгновенно, без предупреждения на экране. Делайте это только после объявления и истечения срока, который вы назвали.

То же самое из командной строки

Утилита rac работает через сервер администрирования ras. Сначала узнайте идентификаторы:

rac cluster list
rac infobase summary list --cluster=<id кластера>

Затем включите блокировку с сообщением:

rac infobase update --cluster=<id кластера> --infobase=<id базы> ^
  --infobase-user=Администратор --infobase-pwd=*** ^
  --sessions-deny=on --denied-message="Идёт обновление, вход после 20:00" ^
  --permission-code=0905

Время блокировки задаётся параметрами --denied-from и --denied-to. Формат даты и остальные ключи смотрите в rac help infobase: справка утилиты точнее любой шпаргалки для вашей версии платформы.

«Обсуждения»: объявление всем без отключения от базы

Если нужно просто сказать «Закрываем период до пятницы» или «Не проводите поступления до 15:00», блокировка избыточна. Для обычных объявлений в 1С 8.3 есть система взаимодействия. В интерфейсе типовых конфигураций она называется «Обсуждения».

Как это работает:

  • 💬 у каждого пользователя в панели появляется значок обсуждений;
  • 🔔 новое сообщение приходит всплывающим оповещением прямо в открытой программе;
  • 📜 история сохраняется, так что опоздавший тоже прочтёт объявление.

Как подключить и отправить

  1. Администратор регистрирует базу в системе взаимодействия. Команда находится в разделе Администрирование, группа «Обсуждения»; в разных релизах она лежит в «Общих настройках» или в «Интернет-поддержке и сервисах».
  2. При регистрации выбирают сервер: облачный сервис фирмы 1С или свой сервер взаимодействия в локальной сети. Своему серверу не нужен доступ в интернет.
  3. После регистрации создайте обсуждение, например «Объявления бухгалтерии», и добавьте в него всех пользователей.
  4. Пишите туда объявления. Участники увидят их, пока работают в программе, и при следующем входе.

💡 Сделайте отдельное обсуждение только для объявлений и не ведите в нём переписку. Иначе важное сообщение утонет в репликах.

Ограничение одно: обсуждение получают участники, а не «все текущие сеансы». Нового сотрудника нужно добавить в группу, иначе объявление до него не дойдёт.

Своя рассылка: расширение, обработка, средства Windows

Когда нужен именно всплывающий текст во всех сеансах без блокировки и без «Обсуждений», его делают доработкой. Схема стандартная, и писать её стоит через расширение конфигурации , а не правкой типовой.

Как устроена доработка в расширении

  1. В расширении создают регистр сведений «Объявления» с полями: текст, время начала показа, время окончания.
  2. Пишут внешнюю обработку или форму, где администратор вводит текст и сохраняет запись в регистр.
  3. В модуле приложения через ПодключитьОбработчикОжидания подключают проверку раз в минуту-две.
  4. Проверка вызывает серверную функцию: есть ли действующее объявление, которое этот сеанс ещё не показывал.
  5. Если есть, клиент выводит его через ПоказатьОповещениеПользователя или открывает форму с текстом.

Частота проверки — компромисс. Раз в 60 секунд для базы на 50 пользователей даёт нагрузку, которую сервер не заметит. Раз в 5 секунд — лишние серверные вызовы без пользы.

Расширение с новыми объектами меняет структуру данных базы. Ставьте его в нерабочее время и проверяйте сначала на копии.

Внешняя обработка без расширения

Обработка, открытая у администратора, сама по себе не может показать окно в чужом сеансе: каждый клиент выполняет только свой код. Поэтому вариант «одна обработка, которая шлёт всем» без клиентской части в каждом сеансе не работает. Готовые решения, которые это обещают, внутри устроены так же — с расширением или правкой конфигурации.

Терминальный сервер: команда msg

Если все работают в 1С через RDP на одном сервере Windows, сообщение можно отправить средствами системы, в обход 1С:

msg * /TIME:300 "В 19:00 база 1С будет недоступна. Сохраните документы."

* — все сеансы на этом сервере, /TIME — сколько секунд окно висит на экране. Команду запускают на самом терминальном сервере с правами администратора. Пользователей, которые подключаются к базе со своих компьютеров, она не затронет.

Сравнение способов оповестить пользователей 1С

СпособВидят активные пользователиОтключает сеансыКогда выбиратьРиски
Блокировка работы пользователейДа, с отсрочкойДа, в назначенное времяОбновление, закрытие базыПотеря несохранённых данных
Блокировка в консоли кластера / racНет, только входящиеНет, только вручнуюЗапрет входа на время работУдаление сеанса без предупреждения
«Обсуждения»Да, оповещениемНетРегулярные объявленияПишет только участникам группы
Доработка в расширенииДа, всплывающим окномНетНужен показ в каждом сеансеРазработка и сопровождение
msg * на терминальном сервереДа, окном WindowsНетВсе работают через RDPНе видят локальные пользователи
Что нужно сделать после сообщения?

Почему сообщение не увидели: частые ошибки

Диагностика: выберите симптом

Ещё одна частая ситуация — регламентные задания продолжают работать после блокировки и мешают обновлению. Их останавливают отдельным флажком блокировки регламентных заданий в свойствах базы в консоли кластера.

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

Можно ли отправить сообщение одному пользователю, а не всем?
Да. В «Обсуждениях» напишите ему лично. Блокировка так не умеет: она действует на всю базу сразу.
Видят ли предупреждение о блокировке пользователи веб-клиента?
Да, веб-клиент получает его так же, как тонкий клиент. Не получают только сеансы конфигуратора и внешние соединения.
Сохранится ли документ, который пользователь не записал?
Нет. При завершении сеанса несохранённые изменения пропадают. Поэтому в тексте просите сохраниться и давайте запас времени.
Работает ли блокировка в файловой базе?
Да, команда в программе работает и в файловом, и в клиент-серверном варианте. Консоль кластера и rac — только для серверной базы.
Нужен ли интернет для «Обсуждений»?
Только при регистрации на облачном сервисе фирмы 1С. Со своим сервером взаимодействия в локальной сети интернет не нужен.