Обработчики обновления 1С: ручной, пакетный и фоновый запуск
Содержание
Обработчик обновления в 1С запускается сам: достаточно после обновления конфигурации войти в базу в режиме 1С:Предприятие пользователем с полными правами. Программа увидит, что версия в базе старше версии конфигурации, и откроет форму «Обновление версии программы». Если нужен запуск без участия человека, ту же процедуру вызывают из командной строки параметром /C"ЗапуститьОбновлениеИнформационнойБазы".
Способов три, и выбирают их по ситуации. Одна база и администратор под рукой — интерактивный вход. Ночное обновление десятка баз — пакетный запуск скриптом. Застряла отложенная обработка данных — перезапуск регламентного задания. Речь идёт о типовых конфигурациях на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА 2, ERP. Механизм общий для всех, пути в меню совпадают.
Как устроено обновление версии в 1С
Обновление релиза идёт в два этапа, и их часто путают.
- Обновление конфигурации
базы данных. Платформа меняет структуру таблиц под новые метаданные. Это делает Конфигуратор:
Конфигурация → Обновить конфигурацию базы данных(клавишаF7). Данные пока не трогаются. - Обработчики обновления. Это код самой конфигурации. Он переносит данные в новые реквизиты, заполняет добавленные регистры, пересчитывает итоги. Запускается только в режиме
1С:Предприятие.
Если остановиться на первом этапе, база откроется, но новые поля будут пустыми, а часть отчётов покажет неверные цифры.
Обработчики бывают трёх видов:
- 🔒 Монопольные — выполняются при первом входе, пока в базе никого нет. Без них работать нельзя.
- ⚡ Оперативные — короткие, идут при первом входе, но допускают работу других сеансов.
- 🕓 Отложенные — тяжёлые. Запускаются в фоне уже после того, как пользователи вернулись к работе.
Номер версии, до которой обновлены данные, хранится в самой базе. Поэтому обработчики одного релиза выполняются один раз. Повторный вход администратора ничего не перезапускает, если версия уже записана.
Подготовка базы к запуску обработчиков
Монопольные обработчики не стартуют, пока в базе есть другие сеансы. Проблемы на этом этапе — самая частая причина сорванного обновления. Порядок подготовки такой.
- Сделайте резервную копию. Для файловой базы — копия каталога с
1Cv8.1CDили выгрузка.dt(Администрирование → Выгрузить информационную базув Конфигураторе). Для клиент-серверной — бэкап средствами СУБД. Без копии не запускайте обновление: откатить обработчики штатно нельзя. - Закройте сеансы пользователей. В БП 3.0 и других типовых:
Администрирование → Обслуживание → Блокировка работы пользователей. Укажите время начала, сообщение и код разрешения — с ним вы сами войдёте в заблокированную базу. - Проверьте права. Входить нужно пользователем с ролью «Полные права» (в новых релизах роль называется «Администратор системы»). Обычному пользователю программа не даст выполнить обновление.
- Проверьте место на диске. Отложенные обработчики заполняют новые таблицы. База может вырасти на десятки процентов, а журнал транзакций SQL — ещё сильнее.
- Для клиент-серверной базы проверьте в консоли кластера, что в свойствах информационной базы не стоит флажок «Блокировка регламентных заданий включена». Иначе отложенная обработка не пойдёт.
Блокировка работы пользователей обрывает их сеансы в назначенное время. Несохранённые документы пропадут. Предупредите людей заранее и ставьте блокировку на нерабочие часы.
Как запустить обработку в режиме 1С:Предприятие
Это основной и самый безопасный способ. Подходит для одной базы.
- Обновите конфигурацию и структуру базы в Конфигураторе (или через помощник
Администрирование → Обслуживание → Обновление версии программы— он делает оба этапа сам). - Закройте Конфигуратор. Пока он открыт, его сеанс мешает монопольному режиму.
- Запустите базу в режиме
1С:Предприятиепод администратором. Если стоит блокировка, добавьте код разрешения: в окне запускаИзменить → Дополнительные параметры запускавпишите/UC КОД. - Появится форма «Обновление версии программы» с полосой прогресса. Не закрывайте её и не выключайте компьютер. Для БП на средней базе это 5–30 минут, для ERP — до нескольких часов.
- Дальше программа покажет форму подтверждения легальности получения обновления и описание изменений релиза. Подтвердите.
- Снимите блокировку работы пользователей, если ставили её.
Что видно по окончании:
| Сообщение или поведение | Что это значит |
|---|---|
| Открылся рабочий стол, описание изменений | Монопольные обработчики прошли |
| Предупреждение о незавершённой обработке данных | Отложенные обработчики работают в фоне, это норма |
| «Не удалось выполнить обновление версии программы» | Один из обработчиков упал, данные откатились к началу |
Если первым в базу зашёл обычный бухгалтер, он увидит сообщение, что вход временно невозможен из-за обновления. Ничего не сломано: попросите его выйти и зайдите сами под администратором.
Роль Конфигуратора: что он делает и чего не делает
Конфигуратор не умеет запускать обработчики обновления. Это частое заблуждение. Здесь только готовят базу:
- 🧩
Конфигурация → Поддержка → Обновить конфигурацию— подгружает файл.cfuили.cfнового релиза; - 🗄️
Конфигурация → Обновить конфигурацию базы данных(F7) — перестраивает таблицы; - 💾
Администрирование → Выгрузить информационную базу— делает.dtперед изменениями.
Обновление структуры требует монопольного доступа. Если в базе есть пользователи, Конфигуратор сообщит об ошибке блокировки или предложит динамическое обновление. Для смены релиза типовой конфигурации динамическое обновление не используйте: сеансы останутся на старых метаданных, а обработчики всё равно надо запускать отдельно.
После F7 есть удобный приём для разработчиков. Чтобы сразу проверить обработчики, запустите из Конфигуратора Отладка → Начать отладку → 1С:Предприятие. Обновление стартует в отладочном сеансе, и при ошибке можно поставить точку останова в обработчике.
Параметр запуска для такого сеанса задают в Конфигураторе: Сервис → Параметры, вкладка «Запуск 1С:Предприятия», поле «Параметр запуска». Туда же можно вписать ЗапуститьОбновлениеИнформационнойБазы.
Запуск обработчиков обновления из командной строки
Пакетный режим нужен, когда баз много или обновление идёт ночью по расписанию. Цепочка та же: блокировка → бэкап → обновление структуры → запуск обработчиков → снятие блокировки.
Параметры, которые понадобятся:
| Параметр | Режим | Назначение |
|---|---|---|
/F"путь" | любой | файловая база |
/S"сервер\база" | любой | клиент-серверная база |
/N и /P | любой | пользователь и пароль |
/UC"код" | любой | вход в базу с блокировкой |
/DumpIB "файл.dt" | DESIGNER | выгрузка базы |
/UpdateCfg "файл.cfu" | DESIGNER | применить обновление конфигурации |
/UpdateDBCfg | DESIGNER | обновить структуру базы |
/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С, обработка встаёт на паузу до следующего входа |
Для файловой базы с тяжёлым обновлением оставьте на ночь открытый сеанс администратора. Так отложенная обработка закончится к утру.
Как понять, что всё закончилось
- в форме результатов обновления нет оставшихся и упавших обработчиков;
- программа больше не показывает предупреждение о незавершённой обработке данных;
- в журнале регистрации за время обновления нет ошибок по событию «Обновление информационной базы».
Только после этого переходите к закрытию месяца и следующему релизу.
Ошибки при запуске обработчиков и что с ними делать
Подробности любой ошибки обработчика лежат в журнале регистрации. Откройте Администрирование → Обслуживание → Журнал регистрации, задайте отбор по уровню «Ошибка» и по событию «Обновление информационной базы». Текст из журнала точнее, чем короткое сообщение в форме.
Если ошибка повторяется на одном и том же обработчике, а по журналу причина в данных, есть два пути. Первый — исправить данные (тестирование и исправление базы в Конфигураторе, поиск битых ссылок), второй — обратиться к разработчику конфигурации или своему программисту. Править версии подсистем в регистрах вручную на рабочей базе нельзя: можно пропустить обработчики, и данные разойдутся без видимых ошибок.