Быстрое преобразование XML в Таблицу значений

19.04.13

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Разработчики которые начинают интегрировать 1С8 с внешними системами достаточно часто сталкиваются с необходимость чтения XML. В свое время для унификации обработки чтения была создана обработка разворачивающая дерево XML по определенному узловому элементу в таблицу значения, где имена колонок являются по сути путем к данным XPATH.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
CreatingTZFor1C.exe
.exe 10,50Kb
139 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Но такая схема устраивала всех только до определенного предела,  по мере роста объёмов разбираемых файлов скорость перестала устраивать даже самых терпеливых пользователей, и этот механизм был переписан на C#, для передачи результата в 1с использовалась функция "ЗначениеИзФайла". Приложение является консольным, принимающим на вход следующие параметры:
1. Путь к XML файлу

2. Имя узлового элемента (элемент который развернётся в строку таблицы значений,)

3. Имя файла в который будет записано сериализованное представление таблицы значений

4. Суб путь....необязательный параметр, в случае если надо указать в какой ветке XML искать узловые элементы

 

 В случае если утилитка вложена в качестве макета в обработку то её можно вызвать следующей функцией

 

Функция ПрочитататьВТЧXMLИерархВнеш(пСТрДанных,пТЗ,пИмяУзловогоЭлемента,пСубпуть = "") Экспорт
лПуть = КаталогВременныхФайлов()+"CreatingTZFor1C.exe";
Попытка
ЭтотОбъект.ПолучитьМакет("CreatingTZFor1C").Записать(лПуть);
Исключение
лФайл = Новый Файл(лПуть);
Если НЕ лФайл.Существует() Тогда
Возврат Неопределено;
КонецЕсли;
КонецПопытки;

лВремФайл = ПолучитьИмяВременногоФайла("xml");
лЗаписьТекста = Новый ЗаписьТекста(лВремФайл);
лЗаписьТекста.Записать(пСТрДанных);
лЗаписьТекста.Закрыть();

лВремРезФайл = ПолучитьИмяВременногоФайла("data");
лТЧ = Новый ТаблицаЗначений;
ЗначениеВФайл(лВремРезФайл,лТЧ);

Если ПустаяСтрока(пСубпуть) Тогда
лКоманда = """"+лПуть+""" """+лВремФайл+""" """+пИмяУзловогоЭлемента+""" """+лВремРезФайл+"""";
Иначе
лКоманда = """"+лПуть+""" """+лВремФайл+""" """+пИмяУзловогоЭлемента+""" """+лВремРезФайл+""" """+пСубпуть+"""";
КонецЕсли;
//КомандаСистемы(лКоманда,КаталогВременныхФайлов());
ЗапуститьПриложение(лКоманда,КаталогВременныхФайлов(), Истина);

пТЗ = ЗначениеИзФайла(лВремРезФайл);
Возврат лВремРезФайл;
КонецФункции

 

И собственно вызов 

ТЧДанных = Новый таблицазначений;

//лСтрРез - Строка с XML

//Policy - Имя узла разворачиваемого в строку

ПрочитататьВТЧXMLИерархВнеш(лСтрРез,ТЧДанных,"Policy");

 

Такой финт ушами позволяет из XML файла весом более 17 МБ за 10 секунд положить в таблицу значений 6000 строк и 2700 колонок. Так что польза очевидна :-)

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    192567    383    296    

436

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

50200 руб.

24.04.2015    211470    186    254    

303

Операции по ВЭД Файловый обмен (TXT, XML, DBF), FTP Разработчик Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Платные (руб)

Федеральная таможенная служба России давно поддерживает унифицированный формат электронных документов для обмена с информационными системами предприятий. xmlns="urn:customs.ru:Information:ExchangeDocuments:". Структура, утвержденная комиссией Таможенного союза. Осталось только сделать загрузку в 1С из этого формата. На выходе - два документа ГТД по импорту и Поступление (акты, накладные) Обработка актуализирована на начало 2026 года (ставка НДС 22%)

24400 руб.

09.08.2016    97868    381    379    

126

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    37139    268    68    

204

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

27572 руб.

18.02.2016    209299    686    559    

565

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    64488    86    137    

83

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

55200 руб.

03.12.2020    47147    135    84    

123
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kiko_r 21 20.04.13 20:19 Сейчас в теме
Огромный респект!!! сэкономленное время позволило решить задачу, вместо провала!!
2. kirillkr 30 20.04.13 21:17 Сейчас в теме
Лучше не exe'шник выложить, а исходники.
3. K_A_O 555 25.04.13 14:50 Сейчас в теме
xslt преобразование можно прямо в 1С сделать - скорость будет почти такой же
4. diver.sun 21 25.04.13 15:13 Сейчас в теме
(3) K_A_O, Не спорю, но надо будет сначала разобрать структуру загружаемого документа, а это время и нервы.
5. Kyrales 147 14.05.13 04:47 Сейчас в теме
Тоже самое преобразование в таблицу значения есть тут http://infostart.ru/public/124196/

Также по итогу получение дбф-файла
6. Vladimir_Konyrev 267 09.02.14 11:54 Сейчас в теме
У меня exe-ик не запускается, появляется и закрывается.
7. diver.sun 21 04.03.14 13:08 Сейчас в теме
Каким образом можете передать разбираемый файлик...
8. Zloslaw 20.07.14 18:30 Сейчас в теме
Да, исходники были б в тему
9. Bitnikov 400 11.03.15 15:23 Сейчас в теме
Скачал ради интереса.

Ждал результата 11 минут и закрыл окно.
В моем случае не имеет смысла, ибо разработанная мной процедурка 1С с ОТКРЫТЫМ кодом отработала за 22 минуты. Закрытый код и менее 2-х кратной выгоды по времени убивает все возможные будущие плюсы.

FYI.
Автор, если интересно отловить и исправить, проверю и отпишусь по просьбе.

Детали:
Запускал под XP в cmd.
Файлик Бондовой загрузки от НРД SIR (bonds) весом 38МБ, 780 тыс строк в xml, результат должен быть 56 тыс строк таблицы значений.
10. CagoBHuK 32 24.04.15 15:10 Сейчас в теме
Используйте XSL и СериализаторXDTO - работать будет мгновенно.
Для отправки сообщения требуется регистрация/авторизация