Обработчики обновления 1С: что можно выключить, а что только отложить

· 10 мин

Содержание

Полностью отключить обработчики обновления в типовой 1С нельзя: монопольная часть выполняется при первом запуске после обновления конфигурации, и без неё программа не пустит пользователей в работу. Отключить можно другое: отложенную обработку данных, регламентные задания, автопроверку новых версий и режим отладки на сервере. Это делается в Администрирование → Обслуживание, ключами запуска 1cv8 и в свойствах базы в консоли кластера.

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

Когда и зачем отключают обработчики обновления

Механизм обновления в типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) делит обработчики по режиму выполнения:

РежимКогда выполняетсяМожно ли отключить
МонопольноПри первом входе после обновления, пользователи ждутНет, это условие запуска программы
ОперативноТоже при входе, но без полной блокировки базыНет
ОтложенноВ фоне, после того как пользователи уже работаютДа, приостановить

Причины, по которым администратор хочет остановить фоновую часть:

  • 🐢 база тормозит днём, потому что фоновое задание перебирает документы за несколько лет;
  • 📅 идёт закрытие месяца или сдача отчётности, нужна вся мощность сервера;
  • 🧪 разработчик отлаживает доработку и не хочет, чтобы фон менял данные под ним;
  • 💾 нужно снять резервную копию или выгрузить .dt без параллельной записи в базу.

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

Ключи командной строки 1cv8 для запуска без фоновых заданий

Ключи запуска удобны тем, что действуют только на один сеанс. Ничего в базе не меняется.

Пример запуска файловой базы в режиме Предприятия без выполнения регламентных заданий в этом клиенте:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /AllowExecuteScheduledJobs -Off /DisableStartupMessages

Ключи, которые относятся к теме:

КлючЧто делает
/AllowExecuteScheduledJobs -OffКлиент не выполняет регламентные задания (важно для файловой базы)
/AllowExecuteScheduledJobs -ForceНаоборот, принудительно разрешает их выполнение в этом клиенте
/C ЗапуститьОбновлениеИнформационнойБазыПараметр для БСП: запуск, который сразу выполняет обновление базы после загрузки конфигурации
/DisableStartupMessagesНе показывать стартовые сообщения платформы
/DisableStartupDialogsНе показывать стартовые диалоги, нужен для пакетных сценариев
/DebugЗапуск клиента с возможностью отладки

Как связать ключи с задачей:

  1. Нужно один раз войти и поработать без фона — /AllowExecuteScheduledJobs -Off.
  2. Нужно выполнить обновление ночью скриптом, а днём только работать — ночной запуск с /C ЗапуститьОбновлениеИнформационнойБазы, дневные ярлыки без него.
  3. Нужно убрать отладку — удалить /Debug из ярлыка или из дополнительных параметров базы.

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

В клиент-серверной базе ключ /AllowExecuteScheduledJobs почти ничего не даёт: задания выполняет сервер, а не клиент. Для неё есть блокировка в консоли кластера, о ней ниже.

Файл 1cv8.ini, ibases.v8i и другие файлы настроек

Многие инструкции ищут 1cv8.ini. В платформе 8.3 такого файла нет. Настройки запуска лежат в других местах:

ФайлГде лежитЧто в нём править
ibases.v8i%APPDATA%\1C\1CEStart\Список баз; у каждой базы есть строка AdditionalParameters=
1cestart.cfg%APPDATA%\1C\1CEStart\ и общий в папке установкиНастройки стартера: общие списки баз, выбор версии платформы
conf.cfgbin\conf\ нужной версии платформыПараметры платформы, например защита от опасных действий
logcfg.xmlbin\conf\ или общий каталог confТехнологический журнал, к обработчикам не относится напрямую

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

  1. В окне запуска выделите базу и нажмите Изменить.
  2. Пройдите мастер до последней страницы.
  3. В поле дополнительных параметров запуска введите, например, /AllowExecuteScheduledJobs -Off.
  4. Нажмите Готово. Строка попадёт в AdditionalParameters= файла ibases.v8i.

Чтобы отключить отладку, проделайте то же самое и удалите оттуда /Debug и /DebuggerURL, если они там есть.

Файл ibases.v8i хранится в профиле пользователя Windows. Правка у администратора не действует на остальных сотрудников. Для общего списка баз меняйте файл, на который ссылается 1cestart.cfg, либо раздавайте ярлыки централизованно.

Как приостановить отложенные обработчики и регламентные задания

Пауза отложенной обработки данных

  1. Откройте Администрирование → Обслуживание.
  2. В группе «Обновление версии программы» перейдите по ссылке «Результаты обновления и дополнительная обработка данных».
  3. В форме видно, сколько обработчиков выполнено, какие с ошибками и идёт ли сейчас обработка. Там же находится команда приостановки; в разных релизах БСП она подписана немного по-разному, ищите её рядом с индикатором прогресса.
  4. После окончания закрытия месяца или нагрузки запустите обработку снова из той же формы.

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

Если команды приостановки в вашем релизе нет, выключите само задание:

  1. Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
  2. Найдите в списке задание отложенного обновления. В конфигурациях на БСП оно называется «Отложенное обновление».
  3. Откройте его и снимите флажок «Включено». Сохраните.
  4. Чтобы перенести работу на ночь, не выключайте задание, а измените его расписание: например, ежедневно с 22:00 до 06:00.

Блокировка всех заданий на сервере 1С

Для клиент-серверной базы есть радикальный вариант — запрет всех регламентных заданий:

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

Эта блокировка останавливает все задания разом — загрузку курсов валют, обмены, резервные копии средствами 1С, обработку ЭДО. Записывайте, когда включили, и снимайте её сразу после работ.

СпособЧто останавливаетТип базы
Пауза в форме результатов обновленияТолько отложенную обработкуЛюбой
Флажок у задания «Отложенное обновление»Только это заданиеЛюбой
/AllowExecuteScheduledJobs -OffВсе задания в этом клиентеФайловая
Блокировка в свойствах базы в консолиВсе регламентные задания базыКлиент-серверная
Что именно вам нужно остановить?

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

Как отладить отложенный обработчик

Отложенные обработчики выполняются в фоновом задании, поэтому обычная точка останова в клиенте не срабатывает. Порядок для разработчика:

  1. Откройте копию базы в Конфигураторе.
  2. Для клиент-серверной базы сервер 1С должен быть запущен с отладкой (см. ниже). Для файловой этого не нужно.
  3. В меню Отладка откройте настройку автоматического подключения и отметьте тип «Фоновое задание».
  4. Поставьте точку останова в процедуре обработчика.
  5. Запустите обработку из формы результатов обновления. Отладчик подключится к фоновому заданию.

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

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

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

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

  1. Откройте services.msc, свойства службы «Агент сервера 1С:Предприятия 8.3».
  2. В поле «Исполняемый файл» найдите ragent.exe с параметрами. Если там есть -debug (иногда вместе с -http или -tcp), его надо убрать.
  3. Строку правят в реестре: HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath. Удалите -debug и протокол отладки, остальное не трогайте.
  4. Перезапустите службу.

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

Хранилище конфигурации, номер версии и автопроверка обновлений

Почему обработчики запускаются после захвата из хранилища

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

Отсюда частая ситуация у разработчиков: коллега поднял номер версии и поместил изменения в хранилище. Вы получили их, обновили конфигурацию базы — и при входе запускается обновление. Варианты:

  • 🔢 договориться в команде, что номер версии в свойствах конфигурации меняет только ответственный за сборку релиза;
  • 🧪 держать отдельную копию базы для проверки обработчиков, а в рабочей копии разработчика обновляться только по готовым релизам;
  • 📦 обработчики для доработок оформлять в расширении, если ваша версия БСП это поддерживает, чтобы не править номер основной конфигурации.

Автоматическая проверка новых версий

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

  1. Администрирование → Интернет-поддержка и сервисы.
  2. Откройте раздел обновления версии программы и его настройки.
  3. Выберите вариант без автоматической проверки или по расписанию в удобное время.

Это не влияет на уже загруженные обработчики. Оно лишь убирает напоминания и автоматическое скачивание новых релизов, чтобы обновление не началось без плана.

Перед тем как ставить обработку на паузу
Выполнено: 0 / 5

Как проверить, что фоновое обновление действительно остановлено

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

  1. Администрирование → Обслуживание → Журнал регистрации.
  2. Установите отбор по событиям обновления информационной базы и по периоду с момента отключения.
  3. Если после паузы появляются новые записи о выполнении обработчиков, фон продолжает работать: проверьте расписание и флажок задания.

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

Список фоновых заданий

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

Консоль кластера

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

Технологический журнал

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

Ошибки при отключении обработчиков и отладки

  • ❌ Удалили обработчик из кода, чтобы база «быстрее открылась». Монопольный обработчик не выполнился, данные остались в старом формате, ошибки всплывут позже в отчётах и документах.
  • ❌ Включили блокировку регламентных заданий и забыли. Через неделю выясняется, что не загружались курсы валют и не уходили документы ЭДО.
  • ❌ Убрали /Debug из ярлыка и ждут, что сервер стал быстрее. Ключ клиента не влияет на сервер; на сервере отладку включает -debug в службе агента.
  • ❌ Выключили задание только у себя. Флажок «Включено» действует на базу целиком, а ключ /AllowExecuteScheduledJobs -Off — только на один клиент. В файловой базе задания может подхватить клиент другого сотрудника.
  • ❌ Ищут 1cv8.ini. В 8.3 его нет: параметры запуска хранятся в ibases.v8i и 1cestart.cfg.

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

Сколько обычно длится отложенная обработка данных?
От нескольких минут до нескольких суток. Зависит от объёма базы, числа лет учёта и мощности сервера. Прогресс показывает форма результатов обновления.
Можно ли работать в программе, пока идёт отложенное обновление?
Да, для этого обработка и вынесена в фон. Ограничения возможны только в отчётах за период, данные которого ещё не обработаны.
Что будет, если обработчик завершился с ошибкой?
Остальные обработчики продолжат работу, а ошибочный будет повторён при следующем запуске задания. Если ошибка повторяется, исправьте причину по тексту из формы результатов или обратитесь к разработчику конфигурации.
Повлияет ли пауза обработки на следующее обновление релиза?
Может. Программа способна отказаться обновляться, пока не доделана обработка данных предыдущей версии. Возобновите обработку до установки нового релиза.
Нужно ли отключать отладку на сервере, если ей никто не пользуется?
Да. Ключ -debug в службе агента добавляет нагрузку и держит открытым порт отладки. На рабочем сервере его не должно быть.