При обновлении крупных конфигураций (таких как 1С:Управление торговлей 11, ERP или Комплексная автоматизация) пользователи часто сталкиваются с ситуацией, когда основная часть обновления завершена, но система «зависает» на этапе выполнения дополнительных процедур обработки данных. Например, в интерфейсе отображается статус «Выполнено 1 из 45 процедур», и прогресс не движется в течение многих часов или даже суток. В этой статье мы подробно разберем, почему это происходит, как диагностировать причину остановки и какими способами можно принудительно завершить обновление.
Прежде всего, нам необходимо понять, как работает механизм, заложенный в Библиотеку стандартных подсистем (БСП). Современные конфигурации 1С не стараются выполнить все изменения данных в момент, когда база эксклюзивно заблокирована. Вместо этого они используют механизм «Отложенного обновления ИБ». Это позволяет пользователям начать работу в новой версии программы почти сразу, пока тяжелые расчеты и реструктуризация данных происходят в фоновом режиме. Если этот процесс останавливается, работа системы может быть некорректной, так как данные еще не приведены в соответствие с новой логикой кода.
Самая частая причина, по которой обновление «стоит на месте», — это включенная блокировка регламентных и фоновых заданий. Рассмотрим, как это проверить и исправить. Если база серверная, блокировка часто устанавливается администратором в консоли кластера серверов 1С перед началом обновления, чтобы исключить помехи со стороны других процессов. Проанализируем алгоритм проверки:
Если блокировка снята, но процесс не запускается автоматически, мы можем инициировать его вручную. Это часто помогает «подтолкнуть» систему. Выполним следующие действия:
Перейдем в раздел Администрирование — Обслуживание — Регламентные и фоновые задания. В открывшемся списке нам нужно найти задание с наименованием Отложенное обновление ИБ. Щелкнем по нему правой кнопкой мыши и выберем пункт Выполнить сейчас.
Сразу после этого рекомендуется открыть Журнал регистрации и установить фильтр по событию «Фоновое задание». Мы должны увидеть записи о старте и ходе выполнения процедур. Если задание завершается с ошибкой, именно в журнале регистрации будет зафиксирован текст исключения, который поможет нам понять суть проблемы.
Если процедур много (как в нашем примере — 45), а база данных имеет значительный объем, выполнение в один поток может затянуться на недели. Выясним, как ускорить этот процесс. В современных версиях программ 1С предусмотрена возможность настройки количества потоков обновления. Проанализируем, где находится эта настройка:
Зайдем в раздел Обслуживание — Обновление программы — Результаты обновления. Здесь обычно доступна ссылка Настроить многопоточность (в некоторых версиях это доступно через Функции для технического специалиста в регистре сведений Параметры подсистем). Увеличение количества потоков (например, до 4 или 8, в зависимости от мощности сервера) позволяет выполнять независимые процедуры параллельно, что кратно сокращает время ожидания.
Иногда визуальный индикатор в интерфейсе («1 из 45») просто не обновляется из-за кэширования, хотя работа идет. Чтобы убедиться в реальном прогрессе, мы можем заглянуть «под капот» системы. Посмотрим на содержимое следующих объектов:
Параметры подсистем: здесь хранится информация о текущей версии каждой подсистемы и статусе ее обновления.Очередь обновления данных: в нем можно увидеть конкретные объекты, которые стоят в очереди на обработку. Если количество записей в этом регистре уменьшается — процесс идет.В исключительных случаях, когда стандартные методы не помогают, мы можем попробовать принудительно запустить систему обновлений через командную строку. Это позволяет игнорировать некоторые блокировки состояния. Используем следующий параметр запуска:
/C StartUpdateByConfigurationUpdateSystemExtraParameters
Этот параметр передается в строке запуска 1С (через дополнительные параметры запуска в окне выбора информационных баз). Он инициирует принудительный пересмотр статусов всех процедур обновления.
Рассмотрим ситуацию, когда 1С пытается выполнить обновление, но ей мешают внешние факторы. Проанализируем три критических момента:
rphost или перезапуск сервера SQL.snccntx и reg_1541. Это заставит систему заново проинициализировать параметры обновления.Если в журнале регистрации мы видим, что одна и та же процедура падает с ошибкой, она будет блокировать все последующие шаги. В таком случае нам поможет специализированная обработка «Результаты обновления ИБ». В ней можно увидеть детальный список всех 45 процедур. Если одна из них помечена красным значком, мы можем проанализировать причину (например, дубли в справочниках или незаполненные обязательные реквизиты), исправить данные в базе вручную и нажать кнопку Повторить для конкретного обработчика.
Таким образом, решив вопрос с блокировкой регламентных заданий и правильно настроив многопоточность, мы сможем успешно завершить обновление даже самой большой и запущенной базы данных. Главное — всегда контролировать процесс через Журнал регистрации и не бояться использовать ручной запуск заданий.