gifts2017

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

Опубликовал Артур Рахманов (A2004333) в раздел Обмен - Обмен через 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

Скачать файлы

Наименование Файл Версия Размер
Универсальная выгрузка в XML 110
.epf 9,65Kb
17.05.13
110
.epf 9,65Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. mozz mozz (mozz) 17.05.13 10:34
:idea: Начну пожалуй комментировать.
1) Весь код в модуле формы (не совсем универсально - не вызвать функционал обработки из другого места)
2) Нет выбора куда сохранять выгружаемый xml
3) Нет управляемой формы
2. Артур Рахманов (A2004333) 17.05.13 10:40
Так этого не было в техзадании.
3. Роман Ложкин (webester) 18.05.13 04:58
Так этого не было в техзадании.

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

Начать, что ли тоже выкладывать все реализованные техзадания...
4. Agema (Agema) 18.05.13 21:50
(3) webester, подскажите обработку для выгрузки выбранного Вида расчета (основного или дополнительного) для ЗУП (ЗиК БУ).
Типовая и доработанные, штук 5-6 перепробовал, не получается.
5. Роман Ложкин (webester) 19.05.13 05:42
(4) Не могу подсказать, могу написать по вашему техзаданию.
6. Konstantin Konstantin (KonstB) 19.05.13 09:00
(4) Agema, а "ВыгрузкаЗагрузкаДанныхXML.epf" - уже не катит?
Sitex; McCoy; vladir; help1Ckr; rimma_n; +5 Ответить
7. Артур Рахманов (A2004333) 27.05.13 21:11
Кстати, для примера, коллега выполнял аналогичное ТЗ - можете сравнить.
http://infostart.ru/public/156014/
8. invalid (нормальный такой) 27.05.13 23:07
думаю нужно изменить название, вводит в заблуждение.
это не "Универсальная выгрузка в XML", это решение задачи на собеседовании, или как вы его называете "техзадание"

и все же нужно указать ссылку на http://infostart.ru/public/156014/
не вооруженным взглядом видно, что послужило основанием для написания вашей публикации

и +, каких 3 основных состояния документа выделяется в 1с?
у вас их почему-то можно получить 6...