Как перенести реквизит СтатьяРасходов из табличной части при обмене УТ 11 — БП 3.0

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

При настройке типового синхронизационного обмена между «1С:Управление торговлей 11» и «1С:Бухгалтерия предприятия 3.0» через Универсальный формат (EnterpriseData) разработчики часто сталкиваются с ситуацией, когда реквизит СтатьяРасходов из табличной части документа «Поступление товаров и услуг» не выгружается в XML-файл обмена. В результате при загрузке документа в БП 3.0 («Поступление услуг») статья затрат либо остаётся незаполненной, либо подставляется первой из справочника по умолчанию (например, «Вознаграждение за поиск клиентов»).

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

Выясним причину проблемы

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

  1. Строгая структура XDTO-схемы: формат EnterpriseData описан XSD-схемой. Если попытаться передать тег, которого нет в определении текущей версии формата, данные либо проигнорируются, либо не пройдут валидацию.
  2. Различие учетных моделей: в УТ 11 используется справочник СтатьиРасходов, а в БП 3.0 затраты относятся на конкретные статьи затрат и способы отражения расходов. Прямого соответствия имени СтатьяРасходов в табличной части формата для услуг может не существовать.
  3. Заполнение по умолчанию в приемнике: если при выгрузке значение реквизита не передано, логика загрузки в БП 3.0 подставляет первое доступное значение из справочника или данные из регистра сведений «Счета учета номенклатуры».

Пошаговое решение доработки обмена

Разберем рабочий алгоритм доработки правил обмена, содержащихся в общем модуле МенеджерОбменаЧерезУниверсальныйФормат.

  1. Откроем модуль МенеджерОбменаЧерезУниверсальныйФормат в УТ 11 и найдем процедуру настройки правил конвертации отправки для документа поступления — ДобавитьПКО_Документ_ПоступлениеТоваровУслуг_Отправка(ПравилаКонвертации).

  2. Добавим в описание свойств табличной части сопоставление со свойством формата (например, НаименованиеСпособаОтраженияРасходов), установив флаг использования алгоритма конвертации:

    
    НоваяСтрока = СвойстваТЧ.Добавить();
    НоваяСтрока.СвойствоФормата = "НаименованиеСпособаОтраженияРасходов";
    НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
    
  3. Найдем запрос, который формирует выборку данных для выгрузки табличной части «Товары» или «Услуги» в данном ПКО, и добавим получение наименования статьи расходов:

    Товары.СтатьяРасходов.Наименование КАК НаименованиеСпособаОтраженияРасходов
  4. Проверим наличие соответствующего свойства в структуре XDTO-пакета формата (или добавим его в расширение XDTO), чтобы при формировании XML-файла элемент корректно выгружался в итоговый файл обмена.

После выполнения этих действий в итоговом XML-файле обмена для каждой строки табличной части появится необходимое текстовое значение статьи расходов, которое приемник в БП 3.0 сможет правильно сопоставить с соответствующей статьей затрат.

Альтернативные варианты решения

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

  1. Передача через «ДополнительныеРеквизиты»: схема формата EnterpriseData содержит коллекцию ДополнительныеРеквизиты (пары «Свойство — Значение»). Можно передавать наименование статьи расходов в составе этой коллекции без изменения XDTO-схемы, а в БП 3.0 в обработчике ПослеЗагрузкиОбъекта заполнять субконто счета затрат.
  2. Настройка регистра «Счета учета номенклатуры» в БП 3.0: если статьи затрат жестко привязаны к номенклатурным позициям или их группам, подстановку нужной статьи можно настроить средствами бухгалтерии без правки кода обмена.
← На главную