Универсальный конвертер XML в Таблицу значений + вывод XML в печатную форму (v 7.7)

Универсальная обработка для 1С 7.7 по конвертации XML-файла заранее неизвестной структуры в Таблицу значений с возможностью вывода наглядной печатной формы формата MXL (с возможностью свёртки узлов XML) и/или наглядной печатной формы формата Excel (с возможностью свёртки узлов XML).

Арт.: 724344

1_Форма_отчета.jpg
2_Интерактивные_отладочные_таблицы_узлов_XML.jpg
3_Классическая_печатная_форма_узлов_и_атрибутов_XML.jpg
4_Иерархическая_печатная_форма_узлов_и_атрибутов_XML.jpg
5_Excel_файл_узлов_и_атрибутов_XML.jpg
1_Форма_отчета.jpg
2_Интерактивные_отладочные_таблицы_узлов_XML.jpg
3_Классическая_печатная_форма_узлов_и_атрибутов_XML.jpg
4_Иерархическая_печатная_форма_узлов_и_атрибутов_XML.jpg
5_Excel_файл_узлов_и_атрибутов_XML.jpg

1200 руб.

500 руб.

При написании обмена между 1С 7.7 и "Меркурием" через ВЕТИС.API я впервые вплотную столкнулся с форматом XML. За основу взял существующую обработку "Обмен с системой Меркурий через Ветис.API" (//infostart.ru/public/665865/). Обработка использует внешнюю компоненту V7PLUS.DLL, которая позволяет генерировать XML для запроса и читать XML ответа.

По мере погружения в более сложные XML-запросы и дешифровки всё более сложных ответов в формате XML я понял, что становится всё тяжелее "переварить" ответный XML с помощью навигации по узлам, тем более, что у разных запросов XML-ответ приходит в разном формате с разной "глубиной залегания" узлов. Просмотр сложных XML-файлов в браузере помогал в понимании структуры XML, но окончательно не устраивал.

Я стал искать универсальные "читалки" XML для 1С 7.7, но универсального решения не нашёл, всё сводилось к фразе "циклы ... циклы ... циклы".

Пришлось самому осваивать свойства и методы внешней компоненты V7PLUS.DLL для навигации по узлам XML и конвертации узла XML в объекты 1С. В результате была написана функция "ПолучитьТаблицуПодчиненныхУзловXML()", которой на вход подаётся узел XML или весь XML-документ, а на выходе возвращается таблица значений, которая содержит подчинённые узлы, их характеристики, и для каждого подчинённого узла, имеющего свои подчинённые узлы - свою таблицу подчинённых узлов. И так до самого глубокого уровня. Атрибуты узлов содержатся в списке атрибутов, который доступен в отдельной колонке. Таким образом, подавая на вход функции любой XML-файл заранее неизвестной структуры мы получаем его автоматический перевод в объекты 1С (таблицу значений со вложенными таблицами и списками значений), что позволяет поручать разбор любого XML 1С-специалисту, который может быть не знаком со свойствами и методами "чтения" узлов XML.

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

Для наглядного анализа XML-файла заранее неизвестной структуры в обработке имеется возможность конвертации XML-файла в печатную форму формата MXL древовидной структуры (см. рис. 3). Кроме того, с помощью внешней компоненты "Йоксель" (SpreadSheet.dll) в обработке есть возможность вывода иерархической печатной формы со свёрткой строк по узлам (см. рис. 4).

Кроме того, наряду с конвертацией XML-файла в печатную форму MXL, в обработке предусмотрена конвертация XML-файла в файл формата Excel (XLS) (см рис. 5). В случае использования внешней компоненты "Йоксель" - Excel-файл сохраняется сразу иерархическим, а при отсутствии внешней компоненты "Йоксель" - происходит попытка добавить иерархию в Excel-файл через VBA-операторы. Однако для этого на клиентском компьютере должно быть установлено приложение "Excel" (тестирование проводилось на Microsoft Office Excel 2007 (12.0.6611.1000) SP3 MSO (12.0.6662.5000)).

Обработка позволяет сохранять полученные файлы MXL и/или XLS по заданным путям.

Таким образом, обработка "ОтладочныйПросмотрXML.ert" позволяет:

  • преобразовать XML-файл неизвестной структуры в таблицу значений для дальнейших манипуляций с ней средствами встроенного языка 1С (конвертер XML в Таблицу значений)
  • вывести полученную из XML-файла таблицу значений на просмотр с возможностью "погружения" в более глубокие узлы XML
  • вывести XMLфайл неизвестной структуры в древовидную печатную форму формата MXL с возможностью свёртки строк по узлам XML (конвертер XML в MXL)
  • вывести XMLфайл неизвестной структуры в древовидную печатную форму формата Excel (XLS) с возможностью свёртки строк по узлам XML (конвертер XML в XLS)

Обработка использует внешние компоненты V7PLUS.DLL и SpreadSheet.dll, которые можно положить в каталог внешнего отчёта, каталог базы или каталог программы.

Тестирование обработки проводилось на релизе 1С 7.7 (7.70.025) как в DBF, так и в SQL версии.

Срок бесплатной технической поддержки - 1 месяц.

Статистика:
Просмотры 26032
Загрузки 8
Рейтинг 12
Создание 16.01.18 14:33
Обновление 16.01.18 14:33
№ Публикации 724344
Характеристики:
Теги

Обработка XML конвертер MXL XLS

Рубрики Файловый обмен (TXT, XML, DBF), FTP
Кому Программист
Тип файла Внешняя обработка (ert,epf)
Платформа Платформа 1С v7.7
Конфигурация Конфигурации 1cv7
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Платные (руб)
Код открыт Да

Оставьте свое сообщение

См. также

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0. Переносятся остатки, документы и справочники

Перенос данных из 1С:Бухгалтерия 7.7 в БП 3.0 | Продукт является развитием и исправлением ошибок стандартной обработки для выгрузки данных из 1С Бухгалтерии 7.7 в Бухгалтерию 3.0 | Предоставляем техподдержку | Обновляем на новые релизы 1С |...

50722 45650 руб.

SALE! 10%

Загрузка документов в 1С (7.7) из табличных файлов Excel,OpenOffice,1C,DBF,TXT (обработка)

Обработка решает поставленную задачу по вводу документов, а кроме того обладает важной функцией: настраивается на ассортимент конкретного поставщика, запоминая соответствие между его номенклатурой и «нашей». Т.е. фактически – является самоо...

2400 руб.

Робот-загрузчик и архив документов. Распознавание/загрузка сканов документов в 1С8(7.7), архив сканированных документов.

Программный комплекс способный распознавать сотни листов за раз любых сканированных(фото) документов (УПД, ТОРГ12, СФ, паспорт и пр.) и загружать их в любую 1С (БП3.0, УТ, КА, УНФ, УПП, 1С7.7 ТиС, ЗУП3 и пр.), а также формировать архив скан...

10800 руб.

ФИАС для 7.7

Класс 1С++ для подключения ФИАС (Федеральная информационная адресная система) к любой конфигурации 1С 7.7. Опционально доступно геокодирование адресов и хранение географических координат адресных элементов ФИАС в отдельной БД. В конфигур...

6000 руб.

Выгрузка книги продаж и книги покупок для декларации НДС 2015-2021 из 1С 7.7 в "Налогоплательщик ЮЛ"

Обработка для переноса выставленных и полученных счетов-фактур из "Бухгалтерии 7.7", "Подрядчик Строительства", “Производство+Услуги+Бухгалтерия 7.7”, "Торговля и Склад 7.7", "Комплексной 7.7", еФарма...

7200 руб.

Загрузка справочников в 1С (7.7) из Excel, OpenOffice, 1C (обработка)

Универсальная обработка, предназначенная для загрузки справочной информации в программу 1С:Предприятие 7.7 из файлов различных типов: Excel, OpenOffice, 1C. Позволяет загрузить объемную информацию о товарах, материалах, контрагентах, а т...