Итак, первоначально это был Excel файл, а не первоисточник xml, поэтому писалась обработка по выгрузке из dbf файла. Но, думаю эта тема не интересна, тут и так много обработок по выгрузке/загрузке Excel данных.
Поэтому разбираем загрузку xml.
Итак, при открытии обработки мы видим два поля ("Справочник" и "Файл XML") и три закладки. Теперь подробнее:
"Справочник" - выбираем из списка метаданных базы нужный нам справочник по его имени в конфигураторе.
"Файл XML" - выбираем файл, который нам надо загрузить. При выборе файла происходит первичное заполнение вкладки "Структура выгрузки" а также немного значений строк из файла (их можно увидеть на закладке "Другие настройки")
Перед тем, как действовать далее, необходимо немного проанализировать сам файл XML (напрямую открыть его в браузере и ознакомиться со структурой), а также значения строк этого файла, которые обработка вывела на закладке "Другие настройки".
Проанализировали? Теперь переходим к более тонким настройкам:
Закладка "Настройка выгрузки":
"Идентификатор объекта" - среди узлов файла находим тот, который отвечает за различные объекты как элементы справочника (то есть те тэги, в рамках которых в файле прописаны свойства одного элемента справочника).
"Идентификатор актуальности" - используется, если справочник имеет свойство "Актуальность данных", а файл - параметр отвечающий за это свойство (в случае если данные справочника нельзя удалять, а хранить обязаны)
Далее идут три таблицы:
"Повторные" - это такие тэги файла, которые называются одинаково, но применяются в разных реквизитах справочника (например, "Идентификатор" - отвечает за тип того или иного реквизита справочника и для каждого такого реквизита имеет свой список выбора)
"Уникальные" - это такие тэги файла, подтэги которых могут встречаться ранее, но загрузка может быть в другой реквизит
"МультиЗначные" - это такие тэги, в значение которых записано сразу несколько вариантов для реквизита справочника. Обычно в справочнике это строки табличных частей. Во второй ячейке строки надо прописать разделитель, который используется в многозначном узле файла (обычно "," или ";"). Какой разделитель использовать определяется при анализе самого файла в браузере или значения его строк на закладке "Другие настройки".
Закладка "Другие настройки":
переключатель "Россия/Америка" - отвечает за формат даты, который используется в файле (подсказка по формату перед переключателем)
"Разделитель даты" - символ, который используется в дате для разделения дня, месяца и года (обычно "." или "-", но может и "/")
"Лишние символы" - бывает так, что значение узлов файла содержит в себе какой-нибудь префикс или постфикс, который не несет никакую информационную нагрузку и его не надо переносить в базу. Тогда надо выписать их в строку через запятую.
"Пример строк ХМЛ" - на данный момент первый 200 (установлено жёстко в модуле формы) значений узлов файла. Выведены для наглядности что именно представляет из себя файл.
Установив все нужные настройки, необходимо перезаполнить таблицу соответствий на первой закладке. Для этого надо просто нажать кнопку "Обновить". В результате все "Повторные" и "Уникальные" имена узлов файла отобразятся со своим "Родителем" (выше стоящим открывающим тэгом)
Теперь можно устанавливать соответствия с реквизитами справочника. При начале выбора данных во второй колонке таблицы соответствия Вам предоставляется список всех реквизитов справочника. При этом реквизиты табличных частей отображаются как "ИмяТЧ.ИмяКолонки".
Немного обязательств:
- Необходимо поставить соответствие по реквизиту "Код", по нему идет поиск уже существующих элементов справочника.
- Необходимо поставить соответствие по реквизиту "Наименование", какой же справочник и без наименования :)
- Для заполнения табличных частей необходимо на первом соответствии каждой ТЧ установить флажок "Идентификатор новой строки" - это даст понять обработке, что на этом узле мы начинаем новую строку ТЧ.
Если всё сделано правильно, то по нажатию кнопки "Загрузить" выполняется заполнение справочника.
Плюсы:
- работа напрямую с файлом xml
- по возможности гибкая настройка выгрузки
Минусы:
- пока не работает со ссылочными реквизитами (на другие справочники и перечисления), только с простыми типами - строка, дата, булево (значения "0" и "1"), число.
Насчет аналогов - не нашел, но если кто подскажет, пропишу.