Как выполнить автоматическое обновление информационной базы, если вход для пользователей заблокирован?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Понимание проблемы блокировки

Когда база находится в состоянии блокировки входа, стандартный запуск клиентского приложения 1С 1cv8.exe выдает сообщение об ошибке или требует подтверждения легальности обновления. Если база была заблокирована администратором, платформа ожидает специальный код разрешения. Без передачи этого кода в параметрах запуска даже административные сеансы не смогут выполнить необходимые действия, такие как простановка «галки легальности» или запуск процедуры обновления ИБ.

Решение 1: Использование пакетного режима и ключа /UC

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

  1. Убедитесь, что вы используете исполняемый файл 1cv8.exe, соответствующий версии платформы, на которой работает целевая база. Разница в версиях (например, переход с 8.3.10 на 8.3.14) может привести к некорректной работе COM-соединения или автоматизированных скриптов.
  2. Для запуска обработки в автоматическом режиме используйте командную строку вида:

"C:\Program Files\1cv8\bin\1cv8.exe" ENTERPRISE /S"Server\Base" /N"Admin" /P"Password" /UC"КодРазрешения" /Execute"C:\Path\To\MyScript.epf"

В данном примере параметр /UC передает секретный код, который был установлен при блокировке базы. Это позволяет сеансу «войти» в систему, несмотря на запрет для других пользователей. Ваша обработка, запущенная через /Execute, выполнит необходимые действия, после чего может корректно завершить работу.

Решение 2: Обновление конфигурации через Конфигуратор

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

Рассмотрим пошаговый алгоритм выполнения обновления:

  1. Обновление конфигурации: Используйте ключ /UpdateCfg, указав путь к файлу поставки обновления (.cf или .cfu).
  2. Обновление БД: После применения конфигурации необходимо запустить процесс обновления базы данных через /UpdateDBCfg.
  3. Завершение: Эти команды выполняются в фоновом режиме, не требуя участия пользователя.

Пример пакетного файла для автоматизации:


"C:\Program Files\1cv8\bin\1cv8.exe" CONFIG /S"Server\Base" /N"Admin" /P"Password" /UpdateCfg "C:\Update\1cv8.cf" /UpdateDBCfg /Out "C:\Logs\update.log"

Рекомендации по реализации

При работе с автоматизацией важно учитывать следующие моменты:

Таким образом, разделение процесса на техническое обновление через CONFIG и выполнение прикладной логики через ENTERPRISE с ключом /UC — это самый надежный способ работы с базой в условиях блокировки.

← На главную