Обработчики обновления 1С: ручной, пакетный и фоновый запуск

· 9 мин

Содержание

Обработчик обновления в 1С запускается сам: достаточно после обновления конфигурации войти в базу в режиме 1С:Предприятие пользователем с полными правами. Программа увидит, что версия в базе старше версии конфигурации, и откроет форму «Обновление версии программы». Если нужен запуск без участия человека, ту же процедуру вызывают из командной строки параметром /C"ЗапуститьОбновлениеИнформационнойБазы".

Способов три, и выбирают их по ситуации. Одна база и администратор под рукой — интерактивный вход. Ночное обновление десятка баз — пакетный запуск скриптом. Застряла отложенная обработка данных — перезапуск регламентного задания. Речь идёт о типовых конфигурациях на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА 2, ERP. Механизм общий для всех, пути в меню совпадают.

Как устроено обновление версии в 1С

Обновление релиза идёт в два этапа, и их часто путают.

  1. Обновление конфигурации базы данных. Платформа меняет структуру таблиц под новые метаданные. Это делает Конфигуратор: Конфигурация → Обновить конфигурацию базы данных (клавиша F7). Данные пока не трогаются.
  2. Обработчики обновления. Это код самой конфигурации. Он переносит данные в новые реквизиты, заполняет добавленные регистры, пересчитывает итоги. Запускается только в режиме 1С:Предприятие.

Если остановиться на первом этапе, база откроется, но новые поля будут пустыми, а часть отчётов покажет неверные цифры.

Обработчики бывают трёх видов:

  • 🔒 Монопольные — выполняются при первом входе, пока в базе никого нет. Без них работать нельзя.
  • ⚡ Оперативные — короткие, идут при первом входе, но допускают работу других сеансов.
  • 🕓 Отложенные — тяжёлые. Запускаются в фоне уже после того, как пользователи вернулись к работе.

Номер версии, до которой обновлены данные, хранится в самой базе. Поэтому обработчики одного релиза выполняются один раз. Повторный вход администратора ничего не перезапускает, если версия уже записана.

Подготовка базы к запуску обработчиков

Монопольные обработчики не стартуют, пока в базе есть другие сеансы. Проблемы на этом этапе — самая частая причина сорванного обновления. Порядок подготовки такой.

  1. Сделайте резервную копию. Для файловой базы — копия каталога с 1Cv8.1CD или выгрузка .dt (Администрирование → Выгрузить информационную базу в Конфигураторе). Для клиент-серверной — бэкап средствами СУБД. Без копии не запускайте обновление: откатить обработчики штатно нельзя.
  2. Закройте сеансы пользователей. В БП 3.0 и других типовых: Администрирование → Обслуживание → Блокировка работы пользователей. Укажите время начала, сообщение и код разрешения — с ним вы сами войдёте в заблокированную базу.
  3. Проверьте права. Входить нужно пользователем с ролью «Полные права» (в новых релизах роль называется «Администратор системы»). Обычному пользователю программа не даст выполнить обновление.
  4. Проверьте место на диске. Отложенные обработчики заполняют новые таблицы. База может вырасти на десятки процентов, а журнал транзакций SQL — ещё сильнее.
  5. Для клиент-серверной базы проверьте в консоли кластера, что в свойствах информационной базы не стоит флажок «Блокировка регламентных заданий включена». Иначе отложенная обработка не пойдёт.

Блокировка работы пользователей обрывает их сеансы в назначенное время. Несохранённые документы пропадут. Предупредите людей заранее и ставьте блокировку на нерабочие часы.

Как запустить обработку в режиме 1С:Предприятие

Это основной и самый безопасный способ. Подходит для одной базы.

  1. Обновите конфигурацию и структуру базы в Конфигураторе (или через помощник Администрирование → Обслуживание → Обновление версии программы — он делает оба этапа сам).
  2. Закройте Конфигуратор. Пока он открыт, его сеанс мешает монопольному режиму.
  3. Запустите базу в режиме 1С:Предприятие под администратором. Если стоит блокировка, добавьте код разрешения: в окне запуска Изменить → Дополнительные параметры запуска впишите /UC КОД.
  4. Появится форма «Обновление версии программы» с полосой прогресса. Не закрывайте её и не выключайте компьютер. Для БП на средней базе это 5–30 минут, для ERP — до нескольких часов.
  5. Дальше программа покажет форму подтверждения легальности получения обновления и описание изменений релиза. Подтвердите.
  6. Снимите блокировку работы пользователей, если ставили её.

Что видно по окончании:

Сообщение или поведениеЧто это значит
Открылся рабочий стол, описание измененийМонопольные обработчики прошли
Предупреждение о незавершённой обработке данныхОтложенные обработчики работают в фоне, это норма
«Не удалось выполнить обновление версии программы»Один из обработчиков упал, данные откатились к началу

Если первым в базу зашёл обычный бухгалтер, он увидит сообщение, что вход временно невозможен из-за обновления. Ничего не сломано: попросите его выйти и зайдите сами под администратором.

Роль Конфигуратора: что он делает и чего не делает

Конфигуратор не умеет запускать обработчики обновления. Это частое заблуждение. Здесь только готовят базу:

  • 🧩 Конфигурация → Поддержка → Обновить конфигурацию — подгружает файл .cfu или .cf нового релиза;
  • 🗄️ Конфигурация → Обновить конфигурацию базы данных (F7) — перестраивает таблицы;
  • 💾 Администрирование → Выгрузить информационную базу — делает .dt перед изменениями.

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

После F7 есть удобный приём для разработчиков. Чтобы сразу проверить обработчики, запустите из Конфигуратора Отладка → Начать отладку → 1С:Предприятие. Обновление стартует в отладочном сеансе, и при ошибке можно поставить точку останова в обработчике.

Параметр запуска для такого сеанса задают в Конфигураторе: Сервис → Параметры, вкладка «Запуск 1С:Предприятия», поле «Параметр запуска». Туда же можно вписать ЗапуститьОбновлениеИнформационнойБазы.

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

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

Параметры, которые понадобятся:

ПараметрРежимНазначение
/F"путь"любойфайловая база
/S"сервер\база"любойклиент-серверная база
/N и /Pлюбойпользователь и пароль
/UC"код"любойвход в базу с блокировкой
/DumpIB "файл.dt"DESIGNERвыгрузка базы
/UpdateCfg "файл.cfu"DESIGNERприменить обновление конфигурации
/UpdateDBCfgDESIGNERобновить структуру базы
/Out "лог.txt"любойфайл протокола
/C"..."ENTERPRISEпараметр для кода конфигурации
/DisableStartupDialogsлюбойбез диалогов при запуске

Через /C типовые конфигурации понимают команды БСП:

  • ЗавершитьРаботуПользователей — включить блокировку и выгнать сеансы;
  • ЗапуститьОбновлениеИнформационнойБазы — выполнить обработчики без вопросов;
  • ЗавершитьРаботуСистемы — закрыть сеанс после выполнения;
  • РазрешитьРаботуПользователей — снять блокировку.

Пример .bat для клиент-серверной базы. Подставьте свой номер платформы в путь, имена сервера и базы:

@echo off
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set IB=/S"srv1c\buh"
set USR=/N"Администратор" /P"пароль"
set UC=/UC"UPD1"

rem 1. Блокировка сеансов
%V8% ENTERPRISE %IB% %USR% /C"ЗавершитьРаботуПользователей" /UC"UPD1" /DisableStartupDialogs

rem 2. Резервная копия
%V8% DESIGNER %IB% %USR% %UC% /DumpIB "D:\backup\buh.dt" /Out "D:\logs\dump.txt"

rem 3. Обновление конфигурации и структуры
%V8% DESIGNER %IB% %USR% %UC% /UpdateCfg "D:\upd\1cv8.cfu" /UpdateDBCfg /Out "D:\logs\upd.txt"

rem 4. Обработчики обновления
%V8% ENTERPRISE %IB% %USR% %UC% /C"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы" /DisableStartupDialogs /Out "D:\logs\handlers.txt"

rem 5. Снятие блокировки
%V8% ENTERPRISE %IB% %USR% %UC% /C"РазрешитьРаботуПользователей" /DisableStartupDialogs

Для файловой базы замените /S"srv1c\buh" на /F"D:\Bases\Buh". Шаг с /DumpIB в файловом варианте можно заменить копированием каталога базы.

Шаг 1 обрывает сеансы людей через несколько минут после запуска. Ставьте скрипт в планировщик Windows на ночь и проверяйте лог каждого шага: если упал шаг 3, шаг 4 запускать нельзя.

💡 Пароль администратора в открытом .bat — риск. Держите скрипт в каталоге с доступом только у служебной учётной записи.

Отложенная обработка данных в фоне на сервере

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

Где смотреть прогресс

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

  • ✅ сколько обработчиков завершено и сколько осталось;
  • ⏳ какие выполняются прямо сейчас;
  • ❌ какие упали — по каждому можно открыть текст ошибки.

Пока обработка не закончена, часть отчётов и форм может показывать неполные данные. Программа сама предупреждает об этом.

Как запустить или подтолкнуть вручную

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

Файловая база против серверной

ВариантКто выполняет фоновые обработчикиЧто учесть
Клиент-серверныйРабочие процессы кластераРегламентные задания не должны быть заблокированы в свойствах базы
ФайловыйСеанс пользователя, открытый в программеЕсли все закрыли 1С, обработка встаёт на паузу до следующего входа

Для файловой базы с тяжёлым обновлением оставьте на ночь открытый сеанс администратора. Так отложенная обработка закончится к утру.

Как понять, что всё закончилось

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

Только после этого переходите к закрытию месяца и следующему релизу.

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

Подробности любой ошибки обработчика лежат в журнале регистрации. Откройте Администрирование → Обслуживание → Журнал регистрации, задайте отбор по уровню «Ошибка» и по событию «Обновление информационной базы». Текст из журнала точнее, чем короткое сообщение в форме.

Диагностика: выберите симптом

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

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

Можно ли запустить обработчики одного релиза повторно?
Штатно нет: версия данных уже записана в базе. Повторно запускаются только упавшие отложенные обработчики — из формы «Результаты обновления и дополнительная обработка данных». Повторный прогон основных обработчиков — работа программиста на копии базы.
Нужно ли ждать окончания отложенной обработки перед следующим релизом?
Да. В актуальных релизах типовых конфигураций программа перед следующим обновлением проверит, что отложенная обработка предыдущего завершена. Если нет, она дождётся её или предупредит. Ставить релизы подряд без паузы на тяжёлых базах не стоит.
Можно ли работать в базе, пока идёт отложенная обработка?
Да, документы вводить можно. Но закрытие месяца, регламентные отчёты и сверки лучше отложить до конца обработки: итоги по ещё не обработанным данным могут быть неполными.
Можно ли закрыть 1С, пока идёт форма «Обновление версии программы»?
Нельзя. Прерванное обновление откатится, и при следующем входе всё начнётся заново. При обрыве на середине в худшем случае придётся восстанавливаться из резервной копии.
Почему после обновления у бухгалтера пустые новые поля в документах?
Чаще всего отложенная обработка ещё идёт или встала. Проверьте форму результатов обновления: пока счётчик не дошёл до конца, часть данных не заполнена.