Универсальная выгрузка в XML

Универсальная выгрузка в XML

Задача.

 

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

Обработка должна быть реализована в виде «внешней обработки». Необходимо, чтобы обработка работала в произвольной конфигурации на платформе 1С:Предприятие 8.1.

 

Обработка должна предусматривать возможность выбора:

  • Период, документы из которого необходимо обработать.
  • Признак документа «проведен», «помечен на удаление», «записан». Необходимо предусмотреть возможность использование нескольких «признаков» документов для обработки документов.
  • Выбор видов обрабатываемых документов. Список видов документов необходимо взять из структуры метаданных текущей конфигурации.

 

Структура файла .xml:

Файл должен содержать два основные секции: «Справочники» и «Документы». Каждый выгружаемый в файл объект (элемент справочника или документ) должен иметь уникальный во всем файле идентификатор (id). Во время всех выгрузок объект должен иметь один и тот же идентификатор.

 

В секции «Справочники» должны располагаться вложенные секции, названия которых совпадают с названием «Вида» справочника, как он задан в конфигурации.

Если элемент справочника является группой, тогда он располагается в элементе файла, имеющем название «Группа». Если  элемент справочника не является группой, тогда он располагается в элементе с названием «Элемент».

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

  • Id – уникальный идентификатор элемента.
  • Код – код элемента справочника.
  • Наименование – наименование элемента справочника.
  • Родитель – элемент справочника, который расположен на уровень выше по отношению к данному элементу.
  • Владелец —  элемент справочника или документ, которому подчинен данный элемент справочника.
  • Состояние – состояние элемента справочника, которое может принимать значение «записан» или «удален».

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

Если реквизит справочника имеет тип «Справочник» или «Документ», тогда он должен быть помещен в соответствующую секцию файла выгрузки согласно правилам выгрузки элементов справочников, а использование данного значение реквизита должно быть заменено значением id данного объекта. Если реквизит справочника имеет примитивный тип (строка, число, булево) или «Перечисление», тогда значение реквизита сразу помещается в файл.

Элементы справочника необходимо развернуть по иерархии, т.е. указать все элементы справочника, расположенные на более высоком уровне по отношению к текущему элементу.

 

Внутри секции «Документы» должны располагаться вложенные секции, названия которых совпадают с названием «Вида» документа, как он задан в конфигураторе. Каждый документ выгружается в элемент файла «Документ». Для каждого документа необходимо выгрузить обязательные атрибуты:

  • Id – уникальный идентификатор документа
  • Номер – номер документа
  • Дата – дата документа
  • Состояние – состояние документа, которое может принимать значение «проведен», «записан» или «удален».

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

 

Пример иерархии элементов файла XML:

  • Справочники
    • СправочникВид1
      • Группа1
      • Группа2
      • Элемент1
      • Элемент2
      • Группа3
      • Элемент3
    • СправочникВид2
      • Элемент1
  • Документы
    • ДокументВид1
      • Документ1
      • Документ2

8 Comments

  1. mozz

    💡 Начну пожалуй комментировать.

    1) Весь код в модуле формы (не совсем универсально — не вызвать функционал обработки из другого места)

    2) Нет выбора куда сохранять выгружаемый xml

    3) Нет управляемой формы

    Reply
  2. A2004333

    Так этого не было в техзадании.

    Reply
  3. webester
    Так этого не было в техзадании.

    А, что там было? Сделать через задний проход?

    Начать, что ли тоже выкладывать все реализованные техзадания…

    Reply
  4. Agema

    (3) webester, подскажите обработку для выгрузки выбранного Вида расчета (основного или дополнительного) для ЗУП (ЗиК БУ).

    Типовая и доработанные, штук 5-6 перепробовал, не получается.

    Reply
  5. webester

    (4) Не могу подсказать, могу написать по вашему техзаданию.

    Reply
  6. KonstB

    (4) Agema, а «ВыгрузкаЗагрузкаДанныхXML.epf» — уже не катит?

    Reply
  7. A2004333

    Кстати, для примера, коллега выполнял аналогичное ТЗ — можете сравнить.

    http://infostart.ru/public/156014/

    Reply
  8. нормальный такой

    думаю нужно изменить название, вводит в заблуждение.

    это не «Универсальная выгрузка в XML», это решение задачи на собеседовании, или как вы его называете «техзадание»

    и все же нужно указать ссылку на http://infostart.ru/public/156014/

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

    и +, каких 3 основных состояния документа выделяется в 1с?

    у вас их почему-то можно получить 6…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *