Универсальная выгрузка в 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 не будет опубликован. Обязательные поля помечены *