Обработчики обновления 1С: что можно выключить, а что только отложить
Содержание
Полностью отключить обработчики обновления в типовой 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 | Запуск клиента с возможностью отладки |
Как связать ключи с задачей:
- Нужно один раз войти и поработать без фона —
/AllowExecuteScheduledJobs -Off. - Нужно выполнить обновление ночью скриптом, а днём только работать — ночной запуск с
/C ЗапуститьОбновлениеИнформационнойБазы, дневные ярлыки без него. - Нужно убрать отладку — удалить
/Debugиз ярлыка или из дополнительных параметров базы.
Ключ /C передаёт строку в параметр запуска конфигурации. Если в ярлыке уже есть другой /C, второй не добавляйте: строка одна, и значения склеиваются через точку с запятой по правилам конкретной конфигурации.
В клиент-серверной базе ключ /AllowExecuteScheduledJobs почти ничего не даёт: задания выполняет сервер, а не клиент. Для неё есть блокировка в консоли кластера, о ней ниже.
Файл 1cv8.ini, ibases.v8i и другие файлы настроек
Многие инструкции ищут 1cv8.ini. В платформе 8.3 такого файла нет. Настройки запуска лежат в других местах:
| Файл | Где лежит | Что в нём править |
|---|---|---|
ibases.v8i | %APPDATA%\1C\1CEStart\ | Список баз; у каждой базы есть строка AdditionalParameters= |
1cestart.cfg | %APPDATA%\1C\1CEStart\ и общий в папке установки | Настройки стартера: общие списки баз, выбор версии платформы |
conf.cfg | bin\conf\ нужной версии платформы | Параметры платформы, например защита от опасных действий |
logcfg.xml | bin\conf\ или общий каталог conf | Технологический журнал, к обработчикам не относится напрямую |
Чтобы ключ применялся при каждом входе в конкретную базу, пропишите его в дополнительные параметры:
- В окне запуска выделите базу и нажмите
Изменить. - Пройдите мастер до последней страницы.
- В поле дополнительных параметров запуска введите, например,
/AllowExecuteScheduledJobs -Off. - Нажмите
Готово. Строка попадёт вAdditionalParameters=файлаibases.v8i.
Чтобы отключить отладку, проделайте то же самое и удалите оттуда /Debug и /DebuggerURL, если они там есть.
Файл ibases.v8i хранится в профиле пользователя Windows. Правка у администратора не действует на остальных сотрудников. Для общего списка баз меняйте файл, на который ссылается 1cestart.cfg, либо раздавайте ярлыки централизованно.
Как приостановить отложенные обработчики и регламентные задания
Пауза отложенной обработки данных
- Откройте
Администрирование → Обслуживание. - В группе «Обновление версии программы» перейдите по ссылке «Результаты обновления и дополнительная обработка данных».
- В форме видно, сколько обработчиков выполнено, какие с ошибками и идёт ли сейчас обработка. Там же находится команда приостановки; в разных релизах БСП она подписана немного по-разному, ищите её рядом с индикатором прогресса.
- После окончания закрытия месяца или нагрузки запустите обработку снова из той же формы.
Отключение регламентного задания
Если команды приостановки в вашем релизе нет, выключите само задание:
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.- Найдите в списке задание отложенного обновления. В конфигурациях на БСП оно называется «Отложенное обновление».
- Откройте его и снимите флажок «Включено». Сохраните.
- Чтобы перенести работу на ночь, не выключайте задание, а измените его расписание: например, ежедневно с 22:00 до 06:00.
Блокировка всех заданий на сервере 1С
Для клиент-серверной базы есть радикальный вариант — запрет всех регламентных заданий:
- Откройте консоль администрирования серверов 1С.
- Разверните кластер, затем «Информационные базы», откройте свойства нужной базы.
- Включите флажок «Блокировка регламентных заданий включена» и сохраните.
Эта блокировка останавливает все задания разом — загрузку курсов валют, обмены, резервные копии средствами 1С, обработку ЭДО. Записывайте, когда включили, и снимайте её сразу после работ.
| Способ | Что останавливает | Тип базы |
|---|---|---|
| Пауза в форме результатов обновления | Только отложенную обработку | Любой |
| Флажок у задания «Отложенное обновление» | Только это задание | Любой |
/AllowExecuteScheduledJobs -Off | Все задания в этом клиенте | Файловая |
| Блокировка в свойствах базы в консоли | Все регламентные задания базы | Клиент-серверная |
Отладка обработчиков обновления и отключение режима отладки сервера
Как отладить отложенный обработчик
Отложенные обработчики выполняются в фоновом задании, поэтому обычная точка останова в клиенте не срабатывает. Порядок для разработчика:
- Откройте копию базы в Конфигураторе.
- Для клиент-серверной базы сервер 1С должен быть запущен с отладкой (см. ниже). Для файловой этого не нужно.
- В меню
Отладкаоткройте настройку автоматического подключения и отметьте тип «Фоновое задание». - Поставьте точку останова в процедуре обработчика.
- Запустите обработку из формы результатов обновления. Отладчик подключится к фоновому заданию.
Обработчики регистрируются в процедуре ПриДобавленииОбработчиковОбновления модулей обновления подсистем. У каждого есть свойства Версия, Процедура и РежимВыполнения со значениями «Монопольно», «Оперативно», «Отложенно». Исключить обработчик можно, только изменив этот список.
Правка модулей обновления в типовой конфигурации снимает её с полной поддержки и может оставить данные в несогласованном виде. Делайте это лишь на копии для отладки, никогда в рабочей базе.
Как убрать отладку на сервере 1С
Ключ -debug в параметрах службы агента сервера включает отладку для всех баз кластера. На рабочем сервере это лишняя нагрузка и открытый порт отладчика.
- Откройте
services.msc, свойства службы «Агент сервера 1С:Предприятия 8.3». - В поле «Исполняемый файл» найдите
ragent.exeс параметрами. Если там есть-debug(иногда вместе с-httpили-tcp), его надо убрать. - Строку правят в реестре:
HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath. Удалите-debugи протокол отладки, остальное не трогайте. - Перезапустите службу.
Перезапуск службы агента обрывает все сеансы пользователей на этом сервере. Делайте его вечером или в согласованное окно и предупредите людей заранее.
Хранилище конфигурации, номер версии и автопроверка обновлений
Почему обработчики запускаются после захвата из хранилища
БСП сравнивает номер версии в свойствах конфигурации с версией, записанной в базе. Если номер вырос, при следующем запуске выполняются все обработчики с версией выше сохранённой.
Отсюда частая ситуация у разработчиков: коллега поднял номер версии и поместил изменения в хранилище. Вы получили их, обновили конфигурацию базы — и при входе запускается обновление. Варианты:
- 🔢 договориться в команде, что номер версии в свойствах конфигурации меняет только ответственный за сборку релиза;
- 🧪 держать отдельную копию базы для проверки обработчиков, а в рабочей копии разработчика обновляться только по готовым релизам;
- 📦 обработчики для доработок оформлять в расширении, если ваша версия БСП это поддерживает, чтобы не править номер основной конфигурации.
Автоматическая проверка новых версий
В типовых конфигурациях можно выключить и саму проверку обновлений через интернет-поддержку:
Администрирование → Интернет-поддержка и сервисы.- Откройте раздел обновления версии программы и его настройки.
- Выберите вариант без автоматической проверки или по расписанию в удобное время.
Это не влияет на уже загруженные обработчики. Оно лишь убирает напоминания и автоматическое скачивание новых релизов, чтобы обновление не началось без плана.
Как проверить, что фоновое обновление действительно остановлено
Журнал регистрации
Администрирование → Обслуживание → Журнал регистрации.- Установите отбор по событиям обновления информационной базы и по периоду с момента отключения.
- Если после паузы появляются новые записи о выполнении обработчиков, фон продолжает работать: проверьте расписание и флажок задания.
Ошибки обработчиков пишутся туда же с уровнем «Ошибка». Текст ошибки и имя процедуры обработчика удобнее смотреть в форме «Результаты обновления и дополнительная обработка данных»: обработчики с ошибками там выведены отдельно.
Список фоновых заданий
В форме «Регламентные и фоновые задания» есть вкладка фоновых заданий. Активное задание отложенного обновления видно со статусом выполнения. Если оно продолжает выполняться после отключения, дождитесь окончания текущего шага: отключение действует со следующего запуска.
Консоль кластера
В клиент-серверной базе откройте в консоли список сеансов базы. Фоновые задания отображаются как сеансы с приложением «Фоновое задание». Если такой сеанс висит часами и грузит процессор, это и есть обработка данных.
Технологический журнал
Если журнала регистрации мало, включите технологический журнал через logcfg.xml на короткий срок и с отбором по событиям исключений и длительным вызовам. После диагностики файл верните в исходное состояние: журнал без отбора быстро занимает диск.
Ошибки при отключении обработчиков и отладки
- ❌ Удалили обработчик из кода, чтобы база «быстрее открылась». Монопольный обработчик не выполнился, данные остались в старом формате, ошибки всплывут позже в отчётах и документах.
- ❌ Включили блокировку регламентных заданий и забыли. Через неделю выясняется, что не загружались курсы валют и не уходили документы ЭДО.
- ❌ Убрали
/Debugиз ярлыка и ждут, что сервер стал быстрее. Ключ клиента не влияет на сервер; на сервере отладку включает-debugв службе агента. - ❌ Выключили задание только у себя. Флажок «Включено» действует на базу целиком, а ключ
/AllowExecuteScheduledJobs -Off— только на один клиент. В файловой базе задания может подхватить клиент другого сотрудника. - ❌ Ищут
1cv8.ini. В 8.3 его нет: параметры запуска хранятся вibases.v8iи1cestart.cfg.
Частые вопросы
Сколько обычно длится отложенная обработка данных?
Можно ли работать в программе, пока идёт отложенное обновление?
Что будет, если обработчик завершился с ошибкой?
Повлияет ли пауза обработки на следующее обновление релиза?
Нужно ли отключать отладку на сервере, если ей никто не пользуется?
-debug в службе агента добавляет нагрузку и держит открытым порт отладки. На рабочем сервере его не должно быть.