Как исправить ошибку «Поле объекта не обнаружено (СтруктураВременныеТаблицы)» при обмене в РИБ УТ 11.4?

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

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

Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПередЗаписью': {РегистрНакопления.РасчетыСПоставщиками.МодульНабораЗаписей(67)}: Поле объекта не обнаружено (СтруктураВременныеТаблицы)

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

Причины возникновения ошибки

Выясним причину, почему возникает сбой. При штатном проведении документа поступления в узле РИБ система формирует движения по регистру накопления РасчетыСПоставщиками. В процессе проведения менеджер документа инициализирует служебную структуру ДополнительныеСвойства, куда помещается СтруктураВременныеТаблицы.

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

Способ 1. Доработка модуля через расширение или конфигуратор

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

Выполним следующие действия в режиме доработки или с помощью расширения конфигурации:

  1. Откроем модуль набора записей регистра накопления РасчетыСПоставщиками.
  2. Найдем процедуру ПередЗаписью.
  3. В самое начало процедуры добавим условие обхода алгоритмов проведения при загрузке данных обмена:

Если ОбменДанными.Загрузка Тогда
    Возврат;
КонецЕсли;

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

Способ 2. Обновление конфигурации УТ 11.4

Посмотрим на решение проблемы штатным путем. Ошибка в обработчике набора записей является известным багом ранних релизов УТ 11.4 и ERP. Фирма «1С» выпустила исправление в последующих релизах программы.

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

Способ 3. Тестирование и исправление информационной базы

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

  1. Запустим конфигуратор информационной базы в монопольном режиме.
  2. Перейдем в меню Администрирование — Тестирование и исправление...
  3. Установим следующие параметры:
    • Реиндексация таблиц информационной базы;
    • Проверка логической целостности информационной базы;
    • Проверка ссылочной целостности информационной базы (с выбором действия «Очищать ссылки» или «Создавать объекты»).
  4. Нажмем кнопку Выполнить и дождемся завершения процесса.
  5. Повторим аналогичную процедуру в периферийном узле РИБ.

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

← На главную