Почему не загружается независимый регистр сведений при обмене через Конвертацию данных?

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

При настройке правил обмена в конфигурации «Конвертация данных» (КД 2) нередко возникает ситуация: правила выгрузки и конвертации объекта настроены корректно, файл выгрузки XML содержит все необходимые строки регистра, процесс загрузки завершается без ошибок, однако в базе-приемнике целевой независимый регистр сведений (например, СоответствиеНоменклатурыЕГАИС или СоответствиеОрганизацийЕГАИС) остается пустым.

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

Шаг 1. Проверка фактического наличия записей через консоль запросов

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

  1. Установленные отборы в динамическом списке: Формы сопоставления ЕГАИС по умолчанию содержат предустановленные скрытые фильтры (по конкретной организации, статусу сопоставления или признаку актуальности).
  2. Отключенные функциональные опции: Если в базе-приемнике выключена функциональная опция интеграции с ЕГАИС или учета алкоголя, интерфейсные формы могут скрывать данные.

Откроем Консоль запросов и выполним прямой запрос к реальной таблице базы данных:


ВЫБРАТЬ
	РС.*
ИЗ
	РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК РС

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

Шаг 2. Настройка режима записи в обработке загрузки

Если запрос показал пустую таблицу, проанализируем параметры используемой внешней обработки загрузки данных (УниверсальныйОбменДаннымиXML):

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

Шаг 3. Проверка полей поиска в ПКО регистра

Выясним причину на уровне правил конвертации объектов (ПКО) в «Конвертации данных»:

  1. Откроем ПКО соответствующего независимого регистра сведений.
  2. Перейдем в табличную часть Правила конвертации свойств (ПКС).
  3. Убедимся, что для ключевых измерений регистра (например, Номенклатура, ОрганизацияЕГАИС, АлкогольнаяПродукция) установлены флаги «Поиск».
  4. Если флаги поиска не расставлены, алгоритм сопоставления при загрузке не сможет сформировать правильный отбор для набора записей, что приводит к многократной перезаписи одного и того же набора пустыми значениями либо к его очистке.

Шаг 4. Анализ связанных объектов и порядка загрузки

Проанализируем ссылки, входящие в состав измерений регистра:

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

Шаг 5. Отладка событий загрузки

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

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

// Пример проверки структуры набора в обработчике "ПослеЗагрузки" ПКО регистра:
Для Каждого Запись Из Объект Цикл
	Если Не ЗначениеЗаполнено(Запись.Номенклатура) Тогда
		ЗаписьЖурналаРегистрации("ОбменДанными", УровеньЖурналаРегистрации.Предупреждение,,,
			"Пустая ссылка в измерении Номенклатура при загрузке записи ЕГАИС!");
	КонецЕсли;
КонецЦикла;

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

← На главную