Как исправить ошибку при запуске и обновлении периферийной базы РИБ в 1С:Розница 2.2

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

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

Рассмотри подробно причины возникновения этих проблем и разберем практические варианты их устранения.

Причина 1. Ошибка «Предопределенный элемент не уникален» при синхронизации

При выполнении обмена данными платформа «1С:Предприятие 8.3» строго проверяет уникальность свойства ИмяПредопределенныхДанных. Если в центральной и периферийной базах дублируются предопределенные элементы (например, в справочнике драйверов оборудования или видов оплаты), при попытке вызова метода Записать() возникает исключение.

Проанализируем порядок действий для устранения этой ошибки:

  1. Удаление имени предопределенного элемента. В конфигураторе или программно в проблемном справочнике необходимо временно очистить реквизит ИмяПредопределенныхДанных у дублирующегося элемента, после чего провести повторную синхронизацию.
  2. Замена и удаление дублей. Воспользоваться стандартной обработкой «Поиск и замена дублей», чтобы перенаправить все ссылки с дубликата на корректный предопределенный элемент, после чего пометить освободившийся объект на удаление.

Причина 2. Ошибки в конкретных релизах конфигурации

Сбои при обновлении версий с 2.2.5/2.2.6 до 2.2.7.23 нередко связаны с критическими ошибками платформенных обработчиков БСП и подсистемы ЕГАИС. В частности, релиз 2.2.7.23 содержал известные ошибки зацикливания процедур заполнения протокола обмена (ошибки 00-00133748 и 00-00133722).

Разберем по шагам правильный порядок обновления релиза:

  1. Отказаться от использования отозванного релиза 2.2.7.23.
  2. Обновить конфигурацию центрального узла сразу до исправленного релиза (2.2.7.27, 2.2.7.29 или более актуального).
  3. После успешного завершения всех обработчиков обновления в главном узле выгрузить изменения в периферийные базы через штатный механизм РИБ.

Причина 3. Отвязка периферийной базы от РИБ и накатывание CF

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

Выясним алгоритм действий:

  1. Запустить периферийную базу в режиме конфигуратора или через внешнюю обработку и программно отключить связь с главным узлом: ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
  2. Выполнить команду Конфигурация -> Загрузить конфигурацию из файла и выбрать полный файл .cf центральной базы нужного релиза.
  3. Запустить базу в режиме «1С:Предприятие» под пользователем с полными правами, чтобы завершились структурные изменения и обработчики обновления.
  4. Восстановить связь с центральным узлом командой:
    
    ГлавныйУзел = ПланыОбмена.Розница.НайтиПоКоду("ЦБ"); // Указать код главного узла
    ПланыОбмена.УстановитьГлавныйУзел(ГлавныйУзел);
    

Причина 4. Зацикливание отложенных обработчиков обновления ЕГАИС

При переходе на новые версии библиотеки ЕГАИС система выполняет фоновую конвертацию старых данных. Процедуры вроде РегистрыСведений.СтатусыДокументовЕГАИС.ОбработатьДанныеДляПереходаНаНовуюВерсию или ИнтеграцияЕГАИСРТ.РассчитатьСтатусыОформленияДокументов могут уходить в бесконечный цикл или выдавать ошибку при наличии некорректных или поврежденных документов.

Рассмотрим варианты решения данной проблемы:

Вариант А. Проверка и исправление документов ЕГАИС
Часто причиной зависания становятся документы Остатки ЕГАИС или ТТН с нестандартными актами расхождений. Очистка или коррекция проблемных документов ЕГАИС на копии базы позволяет обработчику завершиться корректно.

Вариант Б. Обход ошибки через безопасную обработку исключений
Для продолжения работы системы можно временно обернуть выполнение процедуры конвертации данных в блок безопасной обработки. Для этого в соответствующем общем модуле обновлений или процедуре обработки данных добавляется безопасный перехват:


Попытка
    // Штатный код конвертации данных ЕГАИС
Исключение
    ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
    ЗаписьЖурналаРегистрации("ОбновлениеЕГАИС", УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
КонецПопытки;

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

← На главную