Почему в 1С не выполняются регламентные задания и как исправить зависшее обновление базы?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При обновлении конфигураций 1С:Предприятие многие администраторы и разработчики сталкиваются с крайне неприятной ситуацией: процесс обновления базы зависает на этапе выполнения отложенных обработчиков данных. На экране отображается сообщение вида «выполнено 0 из 61 при переходе на новую версию», цифры не меняются часами, а в самой базе перестают автоматически выполняться любые регламентные процедуры. При этом в других аналогичных базах на том же сервере все может работать абсолютно нормально.

В этой статье мы подробно разберем, почему возникает эта проблема в клиент-серверном варианте работы, и рассмотрим пошаговые алгоритмы ее устранения — от простых настроек в пользовательском интерфейсе до глубокого администрирования сервера приложений 1С.

Причина 1. Блокировка регламентных заданий в консоли администрирования сервера 1С

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

Выясним, как проверить и снять эту блокировку через консоль администрирования:

  1. Откроем утилиту «Администрирование серверов 1С:Предприятия» на сервере приложений.
  2. Раскроем дерево нашего кластера и перейдем в ветку Информационные базы.
  3. Найдем в списке проблемную базу данных, нажмем на нее правой кнопкой мыши и выберем пункт Свойства.
  4. При необходимости введем имя и пароль администратора информационной базы.
  5. В открывшемся окне свойств найдем параметр «Блокировка регламентных заданий включена».
  6. Если напротив этого свойства стоит галочка, то сервер принудительно запрещает запуск любых фоновых процессов для этой конкретной базы. Снимем эту галочку и нажмем кнопку ОК для сохранения изменений.

Как только блокировка будет снята в консоли, сервер автоматически начнет инициализировать фоновые процессы, и зависшее обновление сдвинется с мертвой точки.

Причина 2. Блокировка работы с внешними ресурсами в режиме «1С:Предприятие»

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

В этом случае при входе в базу под администратором система обычно выводит предупреждение о том, что база является копией. Если этот шаг был пропущен или проигнорирован, регламентные задания будут заблокированы внутри самой конфигурации.

Чтобы разблокировать работу заданий через пользовательский интерфейс (на примере типовых конфигураций, таких как ЗУП, ERP или Бухгалтерия предприятия), выполним следующие действия:

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

Причина 3. Специфика отложенного обновления и способы его форсирования

Иногда штатный механизм фонового обновления действительно зависает из-за некорректных данных в базе (например, дублирующихся элементов справочников или незаполненных обязательных реквизитов), из-за чего обработчик обновления уходит в бесконечный цикл. Проанализируем способы принудительного завершения обновления.

Способ А. Форсированный запуск в активном сеансе через командную строку

Мы можем заставить систему выполнить все обработчики обновления монопольно непосредственно в текущем сеансе пользователя (в обход механизма регламентных заданий). Для этого необходимо запустить платформу 1С из командной строки со специальным параметром /СОбновлениеИнформационнойБазы. Пример команды запуска:


"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" ENTERPRISE /S "Server1C\BaseName" /N "Администратор" /P "Пароль" /CОбновлениеИнформационнойБазы

При таком запуске программа откроется в специальном режиме и выполнит все 61 (или сколько требуется) обновление последовательно на клиенте. Вы увидите визуальный прогресс-бар выполнения процедур.

Способ Б. Ручной обход зависших обработчиков в регистре сведений

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

  1. Откроем функции для технического специалиста (или через "Все функции") и найдем регистр сведений ОбработчикиОбновления.
  2. Найдем записи со статусом Выполняется или Ошибка.
  3. Если мы точно уверены, что данный конкретный обработчик не критичен для текущей работы базы (или мы исправим его данные позже вручную), мы можем открыть запись регистра и принудительно изменить статус на Выполнен. Это позволит системе продолжить выполнение оставшихся процедур обновления.

Причина 4. Некорректно настроенные требования назначения функциональности (ТНФ)

В крупных кластерах 1С:Предприятия (особенно при использовании КОРП-лицензий) администраторы часто распределяют нагрузку между рабочими серверами с помощью Требований назначения функциональности.

Если для объекта требования Клиентское соединение с ИБ с дополнительным параметром BackgroundJob.ScheduledJob на всех доступных рабочих серверах по ошибке установлено значение Не назначать, то ни одно регламентное задание физически не сможет запуститься в данном кластере.

Для исправления этой ситуации выполним проверку настроек ТНФ:

  1. В консоли администрирования серверов 1С перейдем к свойствам рабочего сервера (или серверов) внутри нашего кластера.
  2. Откроем раздел Требования назначения функциональности.
  3. Проанализируем правила. Убедимся, что правила не запрещают выполнение фоновых заданий (тип требования должен быть Назначать или Авто для соответствующих типов объектов).

Причина 5. Недостаток прав у системной учетной записи службы сервера 1С

Служба сервера 1С (обычно запускаемая под учетной записью usr1cv8 в ОС Windows или под пользователем 1c в Linux) должна обладать полным доступом к временным каталогам и папкам кэша на сервере. При запуске регламентных заданий сервер 1С активно работает с файловой системой.

Если у учетной записи usr1cv8 нет прав на запись в системный каталог временных файлов C:\Windows\Temp или в локальную директорию профиля этой учетной записи (например, AppData\Local\Temp), то при попытке запуска фонового задания платформа будет мгновенно аварийно завершать процесс. При этом в самом интерфейсе 1С никаких ошибок выводиться не будет.

Для устранения этой проблемы проверим права:

  1. Откроем свойства папки C:\Program Files\1cv8, а также папок временных файлов службы сервера 1С.
  2. Перейдем на вкладку Безопасность и убедимся, что пользователь usr1cv8 имеет права уровня «Полный доступ» (Full Control) к этим директориям.

Причина 6. Сбои лицензирования и влияние защитных модулей

Хотя фоновые задания в стандартном режиме не требуют выделения отдельных клиентских лицензий, для их инициализации серверу 1С необходима корректно работающая серверная лицензия. Если на сервере происходят сбои в работе программных лицензий (например, из-за изменения аппаратной конфигурации виртуальной машины) или отваливается USB-ключ HASP, новые сеансы фоновых заданий не смогут запуститься.

Отдельно отметим отраслевые конфигурации, использующие внешние системы защиты (например, СЛК от Рарус или решения от ИТ-РП). Их внутренний защищенный код, исполняемый в регламентных заданиях, может требовать наличия свободных дополнительных лицензий в ключе защиты. Если все лицензии заняты активными пользователями, регламентные задания будут ожидать освобождения лицензий неограниченное время.

Причина 7. Очистка кэша сервера и борьба с «зомби-процессами»

Бывают ситуации, когда одно из ранее запущенных регламентных заданий зависло «намертво» (например, ожидая ответа от внешнего веб-сервиса без установленного таймаута) и заблокировало рабочие процессы сервера rphost. Новые задания при этом встают в очередь и не выполняются. Также негативно на работу фоновых процессов влияет поврежденный кэш конфигурации на сервере.

Решим эту проблему радикальным, но самым надежным способом — очисткой серверного кэша:

  1. Остановим службу «Агент сервера 1С:Предприятия» через консоль служб Windows (или выполнив команду остановки демона в Linux).
  2. Перейдем в каталог с данными сервера (по умолчанию для Windows это C:\Program Files\1cv8\srvinfo или C:\ClusterData).
  3. Найдем папки с именами кэша метаданных (папки с длинными буквенно-цифровыми GUID-именами) и удалим их. Также удалим содержимое каталогов snccntx (кэш сеансовых данных). Внимание: не удаляйте файлы настроек кластера 1cv8reg.lst!
  4. Запустим службу сервера 1С заново.

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

← На главную