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

Печать - Универсальные печатные формы

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

При написании обмена между 1С 7.7 и "Меркурием" через ВЕТИС.API я впервые вплотную столкнулся с форматом XML. За основу взял существующую обработку "Обмен с системой Меркурий через Ветис.API" (//printforms.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 месяц.

Гарантия возврата денег

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

Программа настолько проверена в работе, что мы с полной уверенностью можем дать такую гарантию. Мы хотим, чтобы все наши покупатели оставались довольны покупкой.

Для возврата оплаты просто свяжитесь с нами.



Новый вопрос

E-mail*
Тема (вопрос)*

См. также