Выгрузка документа в XML произвольной структуры (+пример для выгрузки в ECOD)


Обновлено до версии 0.7.
Добавлена функция пропуска заголовков табличных частей.
Исправлены баги в версии без сохранения (если стандартная версия выдает ошибки)

 

Цель обработки:

Обработка предназначена для выгрузки документов из 1с в xml-файл произвольной структуры, чтобы потом загрузить этот файл в другие системы. Например, система ЭДО ECOD, где можно сохранять черновики документов в виде xml-файлов, а потом загружать их обратно. Настройка загрузки документа Уведомление об отгрузке приложена в качестве бонуса.


Возможности обработки:

  • Создание настройки выгрузки на основе существующего xml-файла. Вам не нужно создавать структуру выгрузки с нуля.
  • Указание соответствия узлов/атрибутов в дереве в xml-файла и дерева реквизитов документа для выгрузки.
  • Дерево реквизитов документов можно разворачивать до любого желаемого уровня.

  • В список реквизитов входят свойства и категории.

  • Для объекта типа «Номенклатура» в список реквизитов входят данные регистра сведений «Номенклатура контрагентов»
  • Использование форматирования выгружаемых значений
  • Использование таблицы соответствия для фиксированной замены выгружаемых значений
  • Работа с табличной частью документа.

  • Указание кодировки конечного xml-файла
  • Сохранение настроек в файл

  • Сохранение настроек в типовой справочник Сохраненные настройки (для конфигураций без типового справочника отдельная версия обработки)

  • Использование обработки как внешней печатной формы

 

Чего обработка не может (возможно только пока):

  • управляемая форма
  • работа с пространством имён (нет образца для проверки)
  • выгрузка списка документов
  • выгрузка табличных частей нескольких документов в один файл
  • использование произвольных запросов для установки значения для выгрузки
  • работа с csv файлами
  • работа со схемами XML


Подробнее.
Настройки.

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

Соответствие между реквизитом/табличной частью/строкой табличной части документа и узлом/атрибутом через колонку Реквизит документа. При нажатии кнопки «Выбрать»(F4) откроется структура документа, где можно выбрать необходимое. При этом можно практически любой реквизит «развернуть» ещё дальше, т. е. получить реквизиты реквизита. Для этого нужно нажать правой кнопкой на реквизит и выбрать соответствующий пункт в меню. Получить табличную часть для реквизита строки табличной части нельзя.

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

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

Колонка Формат позволяет установить форматную строку для выгружаемого значения.

 

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

 

После всех настроек их можно сохранить в файл или в типовой справочник Сохраненные настройки.

 

Использование в качестве обработки.

  • Загрузить настройки из файла или типового справочника Сохраненные настройки.

  • Выбрать документ для выгрузки

  • Нажать кнопку Выгрузить документ

  • Выбрать каталог и имя файла.

  • Profit

 

Использование в качестве печатной формы:

  • Загрузить обработку в качестве внешней печатной формы

  • Указать тип документа

  • В параметрах добавить элемент Настройка, где в качестве значения указать ссылку на нужную настройку из справочника Сохраненные настройки.

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

  • Profit

 

З.Ы. Просто и удобно. Не на чем пока проверить использование атрибутов, т. к. ECOD использует только узлы.

З.Ы.Ы. Настройка для ECOD потребует изменения для 4 реквизитов: Buyer — ILN, Seller — ILN, CodeByBuyer, DeliveryPoint – ILN. У меня данные реквизиты хранятся в качестве свойств элементов справочников Контрагенты и Организация — это коды контрагентов и организации в системе ECOD и системе покупателя.

 

 

Файлы обработки:

-