К статье
Практический материал

Администрирование · 10 мин

Как запустить отложенные обработчики обновления в 1С

Как запустить отложенные обработчики обновления в 1С: где найти очередь, как выполнить принудительно, что делать при ошибках и зависании. Пошаговая инструкция.

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

Запустить отложенные обработчики можно штатными средствами — через раздел «Результаты обновления программы» или принудительно, если автоматический механизм не срабатывает. Ниже разберём, где находится очередь обработчиков, как проверить её состояние, как выполнить обработку вручную и что делать, если конкретный обработчик завершается с ошибкой.

Что такое отложенные обработчики и когда они запускаются

При обновлении типовой конфигурации платформа выполняет два вида обработчиков. Оперативные (монопольные) работают до открытия базы пользователям — они меняют структуру данных и требуют исключительного доступа. Отложенные выполняются уже после обновления, в фоновом режиме, пока люди работают. Их задача — объёмные, но не критичные для запуска операции: перенос остатков, заполнение новых реквизитов, пересчёт итогов.

Штатно очередь отложенных обработчиков запускается автоматически при первом входе после обновления: регламентное задание «Отложенное обновление данных» выполняет обработчики по одному или пакетами. В файловой базе обработка обычно стартует у пользователя, который первым открыл программу. В клиент-серверном варианте — на сервере через фоновые задания.

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

Где посмотреть статус отложенных обработчиков

Перед любым запуском нужно понять текущее состояние очереди. Откройте раздел Администрирование → Обслуживание → Результаты обновления программы (в некоторых конфигурациях путь — «Администрирование → Поддержка и обслуживание → Результаты обновления»). Здесь виден общий прогресс: сколько обработчиков выполнено, сколько осталось, есть ли ошибки.

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

Статус «Выполняется» долго не меняетсяОбработчик завис или обрабатывает большой объём

Проверьте фоновые задания и активные сеансы: есть ли реальная нагрузка на базу

Статус «Ошибка»Обработчик упал с исключением

Откройте текст ошибки и журнал регистрации за момент выполнения

Все обработчики «Не выполнены», очередь не движетсяФоновое задание отложенного обновления не запускается

Проверьте, не отключены ли фоновые задания, и запустите обработку вручную

Как запустить отложенные обработчики штатным способом

Самый безопасный вариант — дать механизму отработать самому. Откройте «Результаты обновления программы» и нажмите кнопку «Выполнить сейчас» (или «Запустить обработку данных», формулировка зависит от версии библиотеки стандартных подсистем). Программа запустит фоновое задание, которое последовательно выполнит все оставшиеся обработчики.

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

Порядок штатного запуска
  1. 1
    Откройте «Администрирование → Результаты обновления программы»
  2. 2
    Проверьте, что нет обработчиков со статусом «Ошибка» — их сначала разбирают отдельно
  3. 3
    Нажмите «Выполнить сейчас» и дождитесь запуска фонового задания
  4. 4
    Периодически обновляйте форму и следите за прогрессом
  5. 5
    После завершения убедитесь, что все обработчики в статусе «Выполнен»
  6. 6
    Перезапустите программу и проверьте, что предупреждение о незавершённом обновлении исчезло

Принудительный запуск через консоль кода

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

bsl
ОбновлениеИнформационнойБазы.ВыполнитьОтложенноеОбновлениеСейчас();

Этот вызов инициирует ту же штатную процедуру отложенного обновления, что и кнопка в интерфейсе. В клиент-серверной базе код лучше выполнять в фоновом задании, чтобы не держать сеанс. Для диагностики состояния очереди полезен запрос сведений о ходе обновления — он покажет, какие обработчики остались и в каком они статусе.

Что делать с зависшим или упавшим обработчиком

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

Обработчик со статусом «Ошибка» перезапускается после устранения причины. Типичные причины: нехватка прав у пользователя, под которым выполняется фоновое задание; блокировки данных активными пользователями; некорректные данные (дубли, битые ссылки); нехватка места на диске для временных таблиц. Текст исключения читайте в журнале регистрации с отбором по моменту времени ошибки.

Если после исправления причины обработчик всё равно не запускается, его статус можно сбросить вручную — в форме результатов обновления или через код. После сброса обработчик встанет в очередь как «Не выполнен» и выполнится при следующем запуске обработки.

Типичные ошибки
01
Закрытие файловой базы сразу после обновления — фоновое задание умирает вместе с сеансом, очередь не выполняется
02
Повторный запуск обработчика без устранения причины ошибки — получаете ту же ошибку и потерянное время
03
Запуск обработки в разгар рабочего дня на большой базе — блокировки и жалобы пользователей
04
Ручная правка данных, которые ещё обрабатываются отложенным обработчиком, — рассинхронизация и повторный перенос
05
Отсутствие резервной копии перед принудительными манипуляциями — невозможность отката при сбое

Проверка результата и завершение обновления

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

Дополнительно проверьте прикладные данные, которые затрагивали обработчики: откройте ключевые отчёты и справочники, убедитесь, что сведения заполнены и итоги сходятся. Если обработчик переносил остатки или заполнял новый реквизит, выборочная проверка нескольких объектов даст уверенность, что перенос прошёл корректно.

Контрольные точки

Как проверить результат

Статусы обработчиков
Норма

Все в статусе «Выполнен»

Тревожный признак

Есть «Ошибка» или зависшие «Выполняется»

Предупреждение при входе
Норма

Программа открывается без сообщения о незавершённом обновлении

Тревожный признак

Предупреждение появляется у всех пользователей

Прикладные данные
Норма

Отчёты и справочники заполнены, итоги сходятся

Тревожный признак

Пустые сведения, ошибки при открытии документов

Особенности файловых и серверных баз

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

В клиент-серверном варианте обработка выполняется регламентным заданием на сервере и не зависит от чьего-либо сеанса. Здесь важно, чтобы регламентные и фоновые задания не были заблокированы (проверьте свойства базы в консоли кластера), а у пользователя, от имени которого работает задание, были полные права. Если фоновые задания заблокированы, отложенные обработчики не запустятся ни автоматически, ни по кнопке.

Способы запуска

Кнопка «Выполнить сейчас» в интерфейсе

Штатный и безопасный путь; подходит всегда, когда форма доступна и фоновые задания работают

Код ВыполнитьОтложенноеОбновлениеСейчас()

Когда кнопка недоступна или нужен запуск из скрипта; требует прав администратора и аккуратности

Ожидание автоматического регламентного задания

Подходит для серверных баз без спешки; не работает, если задания заблокированы или зависли

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

Сколько по времени выполняются отложенные обработчики?

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

Можно ли работать в программе, пока идёт отложенное обновление?

Да, механизм рассчитан на параллельную работу. Но функции, зависящие от ещё не выполненных обработчиков, могут быть временно недоступны или показывать неполные данные. Массовую загрузку и перепроведение документов в этот период лучше отложить.

Что будет, если прервать отложенный обработчик посередине?

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

Обработчик снова падает с той же ошибкой — что делать?

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

Можно ли пропустить отложенные обработчики и не выполнять их?

Нет. Пока обработчики не выполнены, данные не приведены к новой структуре: часть отчётов и операций будет работать с ошибками или неполными сведениями. Пропуск отдельного обработчика допустим только осознанно, если точно известно, что его данные в вашей базе не используются.

Где посмотреть, какие именно данные меняет конкретный обработчик?

В форме результатов обновления по обработчику обычно доступно описание. Технически точную логику видно в конфигураторе: найдите процедуру обработчика по её имени в модуле обновления информационной базы.

Итог

Что важно запомнить

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