Как исправить ошибку выполнения дополнительных процедур обработки данных при обновлении 1С:Управление торговлей 11?

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

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

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

Причины сбоя процедур обновления

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

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

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

Выясним причину сбоя с помощью системного журнала. Для этого перейдем в раздел НСИ и администрирование → Обслуживание → Журнал регистрации и установим отбор:

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

Шаг 2. Очистка и удаление неактуальных отчетов и СКД

Если в тексте ошибки фигурирует обращение к удаленному регистру из схемы компоновки данных, выполним следующие действия:

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

Шаг 3. Очистка сохраненных вариантов и настроек отчетов

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

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

Шаг 4. Перезапуск процедур отложенного обновления

После удаления конфликтных схем и настроек необходимо принудительно перезапустить незавершенные обработчики БСП. Разберем, как это сделать:

  1. Перейдем в раздел НСИ и администрирование → Обслуживание → Результаты обновления и дополнительная обработка данных.
  2. В открывшейся форме нажмем гиперссылку с описанием состояния процедур обновления.
  3. Для процедуры со статусом ошибки выберем команду Перезапустить.

Если требуется выполнить отложенное обновление принудительно в текущем сеансе, можно воспользоваться вызовом программного метода БСП через внешнюю обработку:


// Принудительный запуск отложенных обработчиков обновления
ОбновлениеИнформационнойБазы.ВыполнитьОтложенноеОбновлениеСейчас();

Шаг 5. Корректировка статуса обработчика в регистре сведений

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

  1. Через функцию Все функции (или Функции для технического специалиста) откроем регистр сведений ОбработчикиОбновления (в некоторых версиях — ОбработчикиОбновленияИнформационнойБазы).
  2. Найдем запись с зависшей процедурой.
  3. Изменим статус выполнения процедуры на Выполнено.
  4. Перезапустим сеанс «1С:Предприятие» и убедимся, что процесс обновления завершился успешно.

Важно: При обновлении между редакциями (например, 11.1 → 11.2) строго соблюдайте порядок обновления, указанный в файле 1cv8upd.htm. Не выполняйте накат конфигураций через несколько версий подряд без промежуточного запуска базы в режиме предприятия для отработки регламентных процедур БСП.

← На главную