Как исправить ошибку «Тип не определен» при загрузке правил обмена в Конвертации данных 2.1

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

Разбор причины возникновения ошибки

При адаптации правил обмена в конфигурации «Конвертация данных 2.1» (например, при переходе с выгрузки из «Бухгалтерии предприятия 1.6» на «Бухгалтерию предприятия 3.0») часто возникает ошибка вида Тип не определен (СправочникСсылка.ДолжностиОрганизаций).

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

Основные места хранения неактуальных типов

Рассмотрим, где именно могут скрываться неисправленные ссылки на старый тип данных:

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

Пошаговые способы решения проблемы

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

Способ 1. Проверка и исправление ПКС во всех правилах конвертации

Разберем порядок действий непосредственно в интерфейсе конфигурации «Конвертация данных 2.1»:

  1. Выгрузим актуальную структуру метаданных из базы-источника с помощью обработки MD83Exp.epf и загрузим её в КД 2.1 для конфигурации-источника.
  2. Проанализируем список ПКО и проверим все документы и справочники, в которых встречается данный реквизит (например, документы приема на работу, кадровые перемещения, увольнения).
  3. Откроем правила конвертации свойств (ПКС) для реквизита должности в каждом объекте и заменим тип источника с СправочникСсылка.ДолжностиОрганизаций на СправочникСсылка.Должности.
  4. Пересохраним правила обмена и повторим загрузку.

Способ 2. Поиск устаревшего типа через XML-файл правил

Если визуально найти все вхождения в дереве правил сложно, воспользуемся текстовым поиском по сохраненному файлу правил:

  1. Сохраним правила обмена в XML-файл.
  2. Откроем полученный файл в текстовом редакторе (например, Notepad++).
  3. Выполним поиск по подстроке с именем удаленного типа: ДолжностиОрганизаций.
  4. Определим конкретные блоки ПКС, ПВД или текстовые обработчики, где фигурирует старое имя.
  5. Вернемся в «Конвертацию данных» и внесем исправления в найденные элементы.

Способ 3. Отладка процесса загрузки правил

Посмотрим, как определить точное место сбоя с помощью отладчика платформы 1С:

  1. Откроем базу-источник в режиме «Конфигуратор».
  2. В меню «Отладка» выберем «Настройка остановки по ошибке» и активируем параметр «Останавливаться по ошибке».
  3. Запустим базу в режиме «1С:Предприятие» и откроем обработку «Универсальный обмен данными в формате XML».
  4. Начнем загрузку файла правил. При вызове ошибки отладчик остановит выполнение на строке кода обработки. По значениям переменных и стеку вызовов можно легко определить, при чтении какого именно свойства или правила происходит сбой.
← На главную