При выполнении технического обслуживания или обновлении конфигурации через Конфигуратор (нажатие F7) администраторы часто сталкиваются с ситуацией, когда процесс блокируется активным фоновым заданием — для этого подойдёт инструментарий для управления процессами и мониторинга пользователей. Особенность этого задания заключается в его «живучести»: после принудительного завершения в консоли администрирования кластера оно мгновенно запускается снова. В этой статье мы подробно разберем природу этого явления и изучим все доступные способы решения проблемы без полной перезагрузки физического сервера.
Рассмотрим типичную картину: вы установили монопольный режим, включили блокировку регламентных заданий (удобно через панель управления регламентными и фоновыми заданиями) и начала сеансов, завершили все пользовательские соединения. Однако при попытке обновить конфигурацию или расширение система сообщает о наличии активного фонового процесса. Проанализируем параметры этого процесса в консоли:
DefUser.04:00 текущего дня, даже если вы начали работу вечером.Выясним причину такого поведения. Это фоновое задание — механизм «Проверки правомерности использования конфигурации». Оно инициируется самой платформой (начиная с версий 8.3.18 и выше) при выполнении критических операций с метаданными. Платформа проверяет наличие лицензий, корректность подписки на ИТС и легальность используемых функций (например, функций КОРП-версии на ПРОФ-лицензиях). Статичное время 04:00 — это зашитая в логику платформы «точка отсчета» для сервисных процедур самодиагностики.
Прежде чем переходить к радикальным мерам, попробуем самый простой вариант. Процесс проверки лицензионности обращается к серверам компании 1С через интернет. Если интернет-канал стабилен, процедура обычно занимает от 2 до 10 минут. Если же доступ к ресурсам 1С заблокирован брандмауэром или прокси-сервером, задание может «висеть» часами, пытаясь достучаться до сервера мониторинга.
Рекомендация: Убедитесь, что сервер 1С имеет доступ к портам 80 и 443 для связи с ресурсами интернет-поддержки. Если задание не завершается более 15-20 минут, переходим к следующим шагам.
Поскольку задание инициируется Центром мониторинга, мы можем попробовать отключить его функционал через пользовательский интерфейс. Для этого выполним следующие действия:
После этих манипуляций попробуем снова зайти в Конфигуратор и принять изменения. Часто это позволяет платформе «успокоиться» и не запускать проверку при обновлении.
Если фоновое задание блокирует обновление даже после отключения настроек в интерфейсе, мы можем применить «силовой» метод запуска Конфигуратора. Платформа позволяет подавлять запуск регламентных и фоновых заданий на уровне сеанса через командную строку.
Для запуска используем следующую команду (через cmd или в свойствах ярлыка):
"C:\Program Files\1cv8\common\1cestart.exe" CONFIG /S"ИмяСервера\ИмяБазы" /AllowExecuteScheduledJobs -Off
Разберем, что делает этот параметр. Ключ /AllowExecuteScheduledJobs -Off запрещает платформе инициировать любые фоновые и регламентные процессы в контексте данного подключения. Это один из самых эффективных способов «проскочить» этап проверки при принятии изменений F7.
Проанализируем ситуацию, когда перезапуск службы Агент сервера 1С:Предприятие не помогает. Это происходит потому, что информация о «незавершенном» системном задании кэшируется в файлах состояния кластера. Пока эти файлы существуют, менеджер кластера (rmngr) будет пытаться восстановить задание сразу после старта службы.
Выполним глубокую очистку по шагам:
1C:Enterprise 8.3 Server Agent.C:\Program Files\1cv8\srvinfo).reg_1541).snaccfg. Именно здесь хранятся настройки и состояния планировщика.temp и кэш-директории внутри папки конкретной информационной базы.После такой очистки «память» системы о зависшем задании будет стерта, и вы сможете беспрепятственно выполнить обновление.
Иногда бывает так, что в консоли 1С задание выглядит активным, хотя на самом деле это «фантомное» соединение. Реальная блокировка может удерживаться на уровне SQL-сервера. Посмотрим, как это проверить:
status = 'sleeping'), который удерживает блокировки (X-locks) на системных таблицах (например, Config), его необходимо завершить.Пример команды для удаления процесса в SQL:
KILL [номер_вашего_spid];
Это принудительно разорвет связь между СУБД и сервером приложений, что позволит Конфигуратору захватить монопольный доступ к таблицам метаданных.
Заметим, что в современных версиях платформы расширения стали полноценными объектами метаданных. Платформа анализирует их код на предмет обхода ограничений лицензии (например, попытка программно включить функционал КОРП в версии ПРОФ). Поэтому фоновое задание DefUser запускается не только при нажатии F7 в основной конфигурации, но и при обновлении (принятии) конфигурации расширения — здесь пригодится мониторинг журнала регистрации и фоновых заданий. Все вышеперечисленные способы актуальны и для работы с расширениями.
Подведем итог. «Неубиваемое» задание — это штатный, хоть и навязчивый механизм платформы. Чтобы минимизировать проблемы с ним в будущем, рекомендуем:
/AllowExecuteScheduledJobs -Off как наиболее быстрый способ решения.Помните, что перезагрузка всего сервера — это крайняя мера, которой почти всегда можно избежать, понимая механизмы работы регламентных заданий и планировщика задач 1С.