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

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

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

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

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

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

Как работают обработчики обновления в 1С

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

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

Проверка статуса обновления перед запуском

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

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

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

Как проверить состояние обновления

Статус обработчиков в «Результатах обновления программы»
Норма

Все обработчики имеют статус «Выполнен»

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

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

Фоновые задания обновления
Норма

Задание «Отложенное обновление данных» выполнено или отсутствует

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

Задание завершилось аварийно либо не запускалось

Журнал регистрации
Норма

Нет ошибок обновления после последнего запуска

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

Повторяющиеся ошибки одного и того же обработчика

Штатный запуск через интерфейс программы

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

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

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

Порядок штатного запуска
  1. 1
    Сделайте резервную копию базы (выгрузка в dt или средствами СУБД)
  2. 2
    Обновите конфигурацию базы данных в конфигураторе
  3. 3
    Запустите режим «Предприятие» под пользователем с полными правами
  4. 4
    Дождитесь завершения окна «Обновление версии программы»
  5. 5
    Проверьте в «Результатах обновления программы», что все обработчики выполнены
  6. 6
    При наличии отложенных — убедитесь, что фоновое задание запущено и завершилось без ошибок

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

Когда штатный механизм не срабатывает, обновление можно инициировать программно. Для этого используется метод БСП ОбновлениеИнформационнойБазы.ВыполнитьОбновлениеИнформационнойБазы(). Выполнять его удобнее всего через консоль кода (обработка «Консоль кода» из инструментов разработчика или аналогичная) либо через временную внешнюю обработку с кнопкой, в обработчике которой вызывается этот метод.

Запускать принудительное обновление нужно в монопольном режиме или при отсутствии активных пользователей: часть обработчиков требует исключительного доступа к данным. Если база клиент-серверная, проверьте, что фоновые задания не блокируются и у пользователя, под которым выполняется запуск, есть права на все объекты конфигурации.

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

Альтернативный вариант — запуск из командной строки с параметром, который инициирует выполнение обновления при старте. Для файловой базы это выглядит как запуск толстого или тонкого клиента с ключом /C"ВыполнитьОбновлениеИнформационнойБазы" — поддержку этого параметра следует уточнить в документации к вашей версии БСП, так как в разных релизах поведение отличается.

Работа с зависшими отложенными обработчиками

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

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

Ошибки при запуске и способы их устранения

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

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

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

Контроль результата после завершения

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

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

Перед обновлением большой базы полезно прогнать обновление на копии и замерить время выполнения обработчиков. Это позволит спланировать окно обновления рабочей базы и заранее выявить проблемные данные, на которых обработчики завершаются с ошибками.
ПЗ
Практическое замечание

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

Обработчик обновления завис в статусе «Выполняется». Что делать?

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

Можно ли запустить обновление, не заходя в конфигуратор?

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

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

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

Что будет, если пользователи работают во время отложенного обновления?

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

Обработчик выдаёт ошибку на конкретном документе. Как продолжить?

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

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

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

Итог

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

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