Главная Блог Чтение xml 1с — рассматриваем на примере

Чтение xml 1с — рассматриваем на примере

Время чтения: ~ 3 мин
3 месяца 1С:ИТС в подарок при покупке программы 1С
Спасибо за обращение!
Ваша заявка принята и скоро мы с вами свяжемся!

Обновим 1С с гарантией сохранности базы

Поможем с 1С 24/7, без выходных

Установим сервисы 1С бесплатно

Оперативно решим любые задачи по 1С

XML – это расширяемый язык разметки, широко применяющийся в 1С для обмена данными между конфигурациями и между другими внешними источниками данных. Предлагаем рассмотреть два варианта работы с xml 1С —  средствами внутреннего языка и средствами внутреннего языка с использованием XDTO пакетов.

Чтение файла XML средствами внутреннего языка 1С

Создадим новый объект: ЧтениеXML. Он позволяет читать сообщения. Далее привожу простейший код, показывающий принцип чтения и разборки XML файла. Пояснения буду приводить в виде комментариев, чтобы не разрывать код на куски и его можно было скопировать для дальнейшего использования.

 

ЧтениеXML = Новый ЧтениеXML;

ЧтениеXML.ОткрытьФайл("d:\Temp\Test.XML");  //Открываем файл

Пока ЧтениеXML.Прочитать() Цикл  //Цикл по структуре

Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда  //Определяем начало элемента

Пока ЧтениеXML.ПрочитатьАтрибут() Цикл

//Внутри элемента считываем атрибуты

КонецЦикла;

ИначеЕсли ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда

//Если это текст, читаем текст

ИначеЕсли ЧтениеXML.ТипУзла=ТипУзлаXML.КонецЭлемента Тогда

//Определяем дальнейшие действия

КонецЕсли ;

КонецЦикла;

Таким образом, зная структуру файла, можно его разобрать «по полочкам» в программе 1С.

Запись данных из 1C в XML

Так же создадим объект ЗаписьXML.

 

ЗаписьXML = Новый ЗаписьXML;

ЗаписьXML.ОткрытьФайл("d:\Temp\Test.XML", "UTF-8"); //Открываем файл для записи, указываем кодировку

ЗаписьXML.ЗаписатьОбъявлениеXML();  // Записываем объявление XML

ЗаписьXML.ЗаписатьНачалоЭлемента("Организации"); // Начало элемента Организации

Выборка = Справочники.Организации.Выбрать();

Пока Выборка.Следующий() Цикл  // Начинаем выгружать организации

ЗаписьXML.ЗаписатьНачалоЭлемента("Организация"); // Начало элемента Организация

ЗаписьXML.ЗаписатьАтрибут("Код",Строка(Выборка.Код));

ЗаписьXML.ЗаписатьАтрибут("Наименование",Строка(Выборка.Наименование));

ЗаписьXML.ЗаписатьКонецЭлемента(); // Конец элемента Организация

КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // Конец элемента Организации

Таким образом мы выгрузим код и наименование всех организаций из справочника 1С «Организации».

Нужна помощь с настройкой или внедрением 1С? Свяжитесь с нами!
Если у вас остались вопросы, вы можете оставить номер телефона и мы с вами свяжемся

 

Выгрузка из 1C в XML с помощью XDTO-пакетов

В 1С предприятии существует такой объект метаданных, как XDTO-пакеты. Они служат для обмена данными в формате XML.

XDTO-пакет позволяет создать структуру, по которой потом пойдет выгрузка данных.

Теперь, определив структуру (ее, кстати, можно загрузить из файла), мы можем смело сформировать файл:

МойXML = Новый ЗаписьXML;

ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);

МойXML.ОткрытьФайл("d:\Temp\Test.XML",  ПараметрыЗаписиXML);

МойXML.ЗаписатьОбъявлениеXML();

ТипОбъектаАктивыВСистеме = ФабрикаXDTO.Тип("www.primer.ru/assets", "АктивыВСистеме");

ОбъектАктивыВСистеме = ФабрикаXDTO.Создать(ТипОбъектаАктивыВСистеме);

ОбъектАктивыВСистеме.ДатаВыгрузки = ТекущаяДата();

ТипОбъектаАктивы = ФабрикаXDTO.Тип("www.primer.ru/assets", "Активы");

ОбъектАктивы = ФабрикаXDTO.Создать(ТипОбъектаАктивы);

ОбъектАктивыВСистеме.Добавить(ФормаXML.Элемент, "www.primer.ru/assets", "Активы", ОбъектАктивы);

ТипОбъектаАктив = ФабрикаXDTO.Тип("www.primer.ru/assets", "Актив");

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ОбъектАктив = ФабрикаXDTO.Создать(ТипОбъектаАктив);

ОбъектАктив.Наименование = ВыборкаДетальныеЗаписи.Наименование;

ОбъектАктив.ISIN = ВыборкаДетальныеЗаписи.ISIN;

ОбъектАктивы.Актив.Добавить(ОбъектАктив);

КонецЦикла;

ФабрикаXDTO.ЗаписатьXML(МойXML, ОбъектАктивыВСистеме);

МойXML.Закрыть();

Вот так, определив заранее схему, можно создать файл любой сложности.

 

Как оптимизировать работу с 1С?

Сделать это можно двумя основными способами:

  • Иметь в штате квалифицированных специалистов, которые имеют достаточную компетенцию для решения основных вопросов.

  • Обратиться за сопровождением 1С к сторонним специалистам.

Почему клиенты обращаются именно к нам?

  • Мы предлагаем не только внедрение, настройку и сопровождение, но и разработку под 1С, которая позволит оптимизировать ваши бизнес-процессы.

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

  • Вам не нужно оплачивать больничные, отпускные и готовить рабочее место для нового сотрудника.

  • Среди наших сотрудников не только специалисты 1С, но и опытные бухгалтера и юристы, поэтому мы подходим всесторонне к вопросу документооборота и отчетности.

  • Мы выстраиваем взаимодействие с клиентами так, чтобы вам удобно было оперативно обратиться по любому вопросу.

Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы мы могли сориентировать по стоимости и рассказать, как начать сотрудничество.

По правилам фирмы 1С
Без действующего договора ИТС невозмножно:
Обновлять программы 1С версий ПРОФ и КОРП
Вызывать программиста для настройки и доработки программы
Пользоваться линией консультаций по работе с 1С

скидка при продлении подписки ИТС
Действует только при неприрывном продлении

Блог

Переход на Яндекс 360 без потери данных: преимущества и подход

Яндекс 360 для бизнеса представляет собой настоящий виртуальный офис, который дарит Вашей команде доступ к корпоративной почте, календарю, облачному хранилищу,…

07 октября, 2023
Кто обязан представить новую форму РСВ за 9 месяцев 2023 года?

Согласно последним изменениям в законодательстве, в частности Закону от 04.08.2023 г. № 427-ФЗ, был внесен новый пункт в статью 431…

06 октября, 2023
Важное уведомление: не забудьте подать налоговые авансы по УСН

Плательщики налога на упрощенной системе налогообложения (УСН) обязаны не забыть подать в налоговую инспекцию уведомление о суммах рассчитанных авансов по…

05 октября, 2023