Что делать, если не завершается отложенное обновление в 1С:Бухгалтерия предприятия

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

Ситуация, когда после успешной установки релиза конфигурации программа продолжает выдавать сообщение «Не завершено обновление 1С БП», знакома многим администраторам и программистам. В современных редакциях «1С:Бухгалтерия предприятия 3.0» на базе Библиотеки стандартных подсистем (БСП) используется механизм отложенного обновления. Это позволяет пользователям начать работу в базе сразу после обновления, в то время как тяжелые операции по пересчету данных и заполнению новых реквизитов выполняются в фоновом режиме. Однако иногда эти процессы «зависают». Рассмотрим подробно, как диагностировать и решить эту проблему.

Разберем механизм отложенного обновления

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

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

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

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

Шаг 2. Ускорение выполнения через изменение расписания

Часто обработка данных идет слишком медленно из-за того, что стандартное расписание настроено на редкие запуски с большими паузами. Проанализируем, как можно ускорить процесс. Для этого нам нужно найти регламентное задание ОтложенноеОбновлениеИБ и изменить его параметры. Рассмотрим рекомендуемые настройки:

  1. Перейдем в раздел Администрирование — Обслуживание — Регламентные и фоновые задания.
  2. Найдем в списке Отложенное обновление ИБ.
  3. Откроем настройки расписания и установим следующие значения: «повторять каждые 10 секунд; завершать через 1 секунду».

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

Шаг 3. Диагностика ошибок через Журнал регистрации

Если время идет, задания выполняются, но прогресса в процентах нет, выясним причину остановки. Скорее всего, при выполнении кода возникает исключение. Нам поможет ЖурналРегистрации. Сформируем отбор по событию «Фоновое задание» и статусу «Ошибка».

Типичные причины сбоев в обработчиках по НДС и договорам:

Шаг 4. Глубокий анализ через форму «Результаты обновления»

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

Если обработчик помечен значком ошибки (красный восклицательный знак), выделим его и нажмем «Перезапустить». Здесь же часто доступен текст технической ошибки с указанием строки кода, где произошло прерывание. Это поможет нам понять, является ли проблема программной ошибкой релиза или следствием некорректных данных в базе.

Шаг 5. Принудительный запуск в сеансе пользователя

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


// Пример программного запуска отложенного обновления
ПроцедурыОбновления = ОбновлениеИнформационнойБазы.ВсеПроцедурыОтложенногоОбновления();
Для Каждого Строка Из ПроцедурыОбновления Цикл
    Если Строка.Статус = "Ошибка" Или Строка.Статус = "Выполняется" Тогда
        ОбновлениеИнформационнойБазы.ВыполнитьОтложенноеОбновлениеСейчас(Строка.ИмяПроцедуры);
    КонецЕсли;
КонецЦикла;

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

Шаг 6. Техническая профилактика и очистка кэша

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

  1. Попросим всех пользователей выйти из базы.
  2. Выполним Тестирование и исправление (ТиИ) через конфигуратор (обязательно выбрав пункты «Проверка логической целостности» и «Реиндексация таблиц»).
  3. Очистим серверный кэш (папки snccntx в каталоге сервера 1С).
  4. Перезапустим службу 1C:Enterprise 8.3 Server Agent.

После этих манипуляций запустим базу снова и проверим статус задания ОтложенноеОбновлениеИБ. В большинстве случаев после очистки кэша и исправления ссылочной целостности обработчики успешно доходят до 100% выполнения.

Важное замечание: Если вы столкнулись с тем, что зависли именно обработчики по НДС в версии 3.0.67.67, это может быть признаком известной ошибки релиза, связанной с переходом на ставку 20%. В этом случае наиболее эффективным решением будет обновление конфигурации на следующий, более стабильный патч или релиз, где логика обработки этих регистров была исправлена разработчиками.

← На главную