При обновлении современных конфигураций 1С, таких как Зарплата и Управление Персоналом 3.1, мы часто сталкиваемся с механизмом отложенного обновления данных. Этот механизм позволяет пользователям начать работу в программе сразу после обновления метаданных, в то время как тяжелые преобразования данных выполняются в фоновом режиме. Однако иногда этот процесс «замирает»: индикатор прогресса показывает «0 из 10» (или любое другое число), и цифры не меняются часами. Рассмотрим детально, почему это происходит и как заставить систему завершить обновление.
Проанализируем самую частую причину остановки обновления в клиент-серверных версиях (SQL). Процедуры отложенного обновления выполняются через ФоновыеЗадания. Если в консоли администрирования кластера серверов 1С установлена блокировка регламентных заданий, то ни один обработчик не запустится. Это часто случается, когда администратор намеренно отключает задания перед обновлением, чтобы избежать конфликтов, но забывает включить их обратно.
Разберем по шагам, как проверить и снять эту блокировку:
Важно помнить, что если установлена также «Блокировка начала сеансов», фоновые задания могут не запуститься. Для корректной работы обновления в монопольном режиме иногда требуется запускать сеанс с параметром /UC <код разрешения>, чтобы система могла инициировать служебные соединения.
Даже если на сервере всё включено, конкретное задание может быть выключено внутри информационной базы. Рассмотрим, как найти и активировать нужный процесс через пользовательский интерфейс:
Отложенное обновление ИБ.Если задание включено, но прогресса нет, попробуем выполнить его принудительно. Для этого выделим задание и нажмем «Выполнить сейчас». Как показывает практика, при возникновении программных «затыков» ручной запуск этого задания 5–10 раз подряд помогает сдвинуть очередь обработчиков с мертвой точки.
Иногда типовые механизмы БСП (Библиотеки стандартных подсистем) не могут корректно инициализировать начало процедур. В этом случае мы можем воспользоваться специальным параметром запуска. Рассмотрим пример запуска программы через командную строку или настройки в стартере 1С:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "ServerName\BaseName" /C ЗапуститьОбновлениеИнформационнойБазы
Использование ключа /C ЗапуститьОбновлениеИнформационнойБазы заставляет систему игнорировать некоторые проверки и принудительно запускает цикл обработки данных. Это особенно эффективно, если предыдущее обновление было прервано некорректно.
Выясним причину остановки, заглянув «под капот» процесса. В 1С:ЗУП есть специализированное рабочее место для мониторинга. Путь к нему: Администрирование — Обслуживание — Результаты обновления программы.
Если вы видите ссылку «Технические подробности», обязательно перейдите по ней. Проанализируем открывшийся список:
В этом же окне можно настроить многопоточность. Если база данных большая, а аппаратные ресурсы сервера позволяют, увеличим количество потоков обновления. Это позволит системе запускать несколько фоновых заданий ОбновлениеИнформационнойБазы одновременно, что значительно ускорит процесс.
Иногда визуальное отображение «0 из 10» — это просто задержка обновления интерфейса. Проанализируем реальную ситуацию через Журнал регистрации. Установим фильтр по событию «Данные.Обновление информационной базы». Если в журнале появляются новые записи о завершении транзакций, значит, процесс идет, просто форма прогресса «зависла» из-за кэширования в тонком клиенте.
Если же активности действительно нет, попробуем очистить очередь заданий. Для этого опытные специалисты используют консоль запросов или внешние обработки для очистки регистра сведений ОчередьЗаданий (или ОчередьЗаданийРаспределеннойИнформационнойБазы в некоторых версиях). Также стоит проверить, не забит ли лог транзакций SQL-сервера (LDF-файл). При массовом обновлении данных он может разрастись до критических размеров, и SQL-сервер просто перестанет принимать новые транзакции, блокируя фоновые процессы 1С.
Посмотрим на ситуацию со стороны сервера разработки. Программисты часто отключают регламентные задания на копиях баз, чтобы случайно не выполнилась рассылка почты или синхронизация с боевыми системами. Если вы обновляете копию, не включайте все регламентные задания сразу. Лучше точечно запустить именно Отложенное обновление ИБ, чтобы безопасно довести процесс до конца, не затронув внешние интеграции.
Подводя итог, если вы столкнулись с «зависшим» обновлением в ЗУП: