Как правильно выгрузить данные из табличной части в регистр бухгалтерии с несколькими субконто в КД 2.0?

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

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

Отказ от ручного формирования движений

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

Работа с планами счетов

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

  1. В ПКС для счета (например, СчетДт) в качестве значения передаем структуру.
  2. Используем следующий код в обработчике ПередВыгрузкой: Значение = Новый Структура("Код", "62");
  3. Механизм конвертации самостоятельно найдет нужный объект по коду в базе-приемнике. Это гораздо надежнее, чем использование метода НайтиПоКоду непосредственно в коде 1С, так как это делает правила универсальными для разных баз данных.

Корректная настройка субконто

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

  1. Создайте отдельное правило конвертации объекта (ПКО) для ПланВидовХарактеристик, который используется в качестве вида субконто. В этом ПКО настройте поиск по полю Код.
  2. В ПКС, отвечающем за заполнение субконто (например, СубконтоДт), используйте передачу соответствия (Соответствие).

Рассмотрим пример реализации кода в обработчике ПередВыгрузкой для субконто:


СубконтоДт = Новый Соответствие;
СубконтоДт.Вставить(Новый Структура("Код", "Контрагенты"), Источник.Контрагент);
СубконтоДт.Вставить(Новый Структура("Код", "ДоговорыКонтрагентов"), Источник.ДоговорКонтрагента);
Значение = СубконтоДт;
ИмяПКОВидСубконто = "ИмяВашегоПКОДляВидовСубконто";

Почему это лучше «костылей»?

Использование предложенного метода дает несколько существенных преимуществ:

Если счет является предопределенным, вы можете упростить передачу значения, просто указав имя предопределенного элемента в строковом виде. Это позволяет системе автоматически сопоставить объект без поиска по коду.

Используя данный подход, вы сможете переносить данные любой сложности в регистры бухгалтерии, сохраняя структуру кода чистой и понятной. Продолжайте работу с ПКО и ПКС — это единственный правильный путь при использовании Конвертации данных 2.0.

← На главную