Пример простого чтения сложного файла xml

07.11.11

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

Несколько рекурсивных функций и процедур, попутно загрузка документов.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Файл обработки
.epf 31,06Kb
108
108 Скачать (1 SM) Купить за 1 850 руб.

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

ПС: Сильно не пинайте, недавно совсем начал писать.

См. также

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

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    140089    781    295    

408

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.234.x) и БП 3.0 (3.0.161.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    23077    157    47    

116

SALE! 10%

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

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

50722 45650 руб.

15.04.2019    71477    180    148    

120

SALE! 10%

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

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

50722 45650 руб.

24.04.2015    194115    148    242    

279

SALE! 10%

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

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

48278 43450 руб.

03.12.2020    35989    90    62    

86

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    10443    11    8    

13

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

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

15300 руб.

18.02.2016    186123    580    509    

519

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

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.19.x).

28000 руб.

23.07.2020    49722    214    69    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. vladshnurkoff 82 09.11.11 01:12 Сейчас в теме
Несколько рекурсивных функций и процедур, попутно загрузка документов.

Перейти к публикации

1. Andry.Boris 59 09.11.11 01:12 Сейчас в теме
2. zfilin 2351 12.11.11 00:41 Сейчас в теме
Прошу прощения, что влезаю со своими "пятью копейками", но я как раз наткнулся в рассылке на вашу публикацию сразу как собрался размещать свою. Посмотрите, возможно, вам это будет интересно: http://infostart.ru/public/98019/
3. curys 21.12.11 11:59 Сейчас в теме
4. jko 01.02.12 10:58 Сейчас в теме
Сам изучаю XML. Появилась потребность. Будем надеяться, что поможет. Спасибо.
5. lsp71 27.02.12 12:33 Сейчас в теме
Для начинающих изучать XML. Для чтения из XML-файлов использую функцию ПрочитатьXMLфайл(ФайлХМЛ), преобразующую такой файл в ДеревоЗначений. А дальше непосредственно нужные данные из него читаю функцией ПолучитьЗначПарам(ИмяПараметра, Дерево). Назначение параметров и их типы понятны из комментариев. Просто и надежно.

Функция ПрочитатьXMLфайл(ФайлХМЛ) Экспорт ////////////////////////////////////////////////////////////­////////
// Ф-я возвращает ДеревоЗначений, прочитанное из XML-файла

//создаем ДЗн с нужными колонками:
дзДеревоХМЛ = Новый ДеревоЗначений;
дзДеревоХМЛ.Колонки.Добавить("ИмяПарам");
дзДеревоХМЛ.Колонки.Добавить("ЗначПарам");

//проверка существования файла:
Если НЕ ФайлХМЛ.Существует() Тогда
Сообщить("ПрочитатьXMLфайл: файл '" + ФайлХМЛ.ПолноеИмя + "' не существует!", СтатусСообщения.Важное);
отказ = Истина;
Возврат дзДеревоХМЛ; //возвращаем пустое ДЗн
КонецЕсли; //НЕ Файл.Существует()

Попытка
объектХМЛ = Новый ЧтениеXML();
объектХМЛ.ОткрытьФайл(ФайлХМЛ.ПолноеИмя); //открываем xml-файл для чтения
Исключение
Сообщить("Не удалось открыть для чтения файл '" + ФайлХМЛ.ПолноеИмя + "'", СтатусСообщения.Важное);
Возврат дзДеревоХМЛ; //возвращаем пустое ДЗн
КонецПопытки;

//------------------------------ читаем данные из XML-файла в ДеревоЗначений ---------------------------------
текСтроки = дзДеревоХМЛ.Строки;

Пока объектХМЛ.Прочитать() Цикл

Если объектХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
текСтрока = текСтроки.Добавить();
текСтрока.ИмяПарам = объектХМЛ.Имя;
текСтроки = текСтрока.Строки;

ИначеЕсли объектХМЛ.ТипУзла = ТипУзлаXML.Текст Тогда
Попытка
текСтроки.Родитель.ЗначПарам = ЗначениеИзСтрокиВнутр(объектХМЛ.Значение);
Исключение
текСтроки.Родитель.ЗначПарам = объектХМЛ.Значение;
КонецПопытки;

ИначеЕсли объектХМЛ.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Если текСтроки.Родитель.Родитель = Неопределено Тогда
текСтроки = текСтроки.Родитель.Строки;
Иначе
текСтроки = текСтроки.Родитель.Родитель.Строки;
КонецЕсли; //текСтроки.Родитель.Родитель = Неопределено

КонецЕсли; //объектХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента

Пока объектХМЛ.ПрочитатьАтрибут() Цикл
текСтрока = текСтроки.Добавить();
текСтрока.ИмяПарам = объектХМЛ.Имя;
текСтрока.ЗначПарам = объектХМЛ.Значение;
КонецЦикла; //Пока объектХМЛ.ПрочитатьАтрибут() Цикл

КонецЦикла; //Пока объектХМЛ.Прочитать() Цикл

объектХМЛ.Закрыть(); //закрываем открытый для чтения xml-файл

Возврат дзДеревоХМЛ; // возвращаем ДЗн с данными

КонецФункции // ПрочитатьXMLфайл(Файл) ////////////////////////////////////////////////////////////­///////////

функция ПолучитьЗначПарам(ИмяПараметра, Дерево) Экспорт //////////////////////////////////////////////////////
// Ф-я возвращает зн-е из колонки "ЗначПарам" строки ДЗн, в кот. в колонке "ИмяПарам" содержится ИмяПараметра.
//ИмяПараметра - строка - название того параметра, кот. надо извлечь.
//Дерево - ДЗн или строка ДЗн, в кот. надо искать. Если задана строка ДЗн, то поиск происходит только в ее пределах
//(только ей подчиненные строки).
// Если зн-е не найдено, то ф-я возвращает Неопределено.

Попытка
стрДЗ = Дерево.Строки.Найти(ИмяПараметра,"ИмяПарам", Истина);
Если стрДЗ <> Неопределено Тогда
Возврат СтрДЗ.ЗначПарам;
Иначе
Возврат Неопределено;
КонецЕсли; //стрДЗ <> Неопределено

Исключение
Возврат Неопределено; //в случае любой ошибки выполнения (например, Дерево не является ДЗн или строкой ДЗн)
КонецПопытки;
КонецФункции //ПолучитьЗначПарам(ИмяПараметра, Дерево) Экспорт ///////////////////////////////////////////////
NN2P; nick_krsk; Поручик; HameleonA; +4 Ответить
Оставьте свое сообщение