Обновим 1С с гарантией сохранности базы
Поможем с 1С 24/7, без выходных
Установим сервисы 1С бесплатно
Оперативно решим любые задачи по 1С
XML – это расширяемый язык разметки, широко применяющийся в 1С для обмена данными между конфигурациями и между другими внешними источниками данных. Предлагаем рассмотреть два варианта работы с xml 1С — средствами внутреннего языка и средствами внутреннего языка с использованием XDTO пакетов.
Создадим новый объект: ЧтениеXML. Он позволяет читать сообщения. Далее привожу простейший код, показывающий принцип чтения и разборки XML файла. Пояснения буду приводить в виде комментариев, чтобы не разрывать код на куски и его можно было скопировать для дальнейшего использования.
ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл("d:\Temp\Test.XML"); //Открываем файл Пока ЧтениеXML.Прочитать() Цикл //Цикл по структуре Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда //Определяем начало элемента Пока ЧтениеXML.ПрочитатьАтрибут() Цикл //Внутри элемента считываем атрибуты КонецЦикла; ИначеЕсли ЧтениеXML.ТипУзла=ТипУзлаXML.Текст Тогда //Если это текст, читаем текст ИначеЕсли ЧтениеXML.ТипУзла=ТипУзлаXML.КонецЭлемента Тогда //Определяем дальнейшие действия КонецЕсли ; КонецЦикла;
Таким образом, зная структуру файла, можно его разобрать «по полочкам» в программе 1С.
Так же создадим объект ЗаписьXML.
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("d:\Temp\Test.XML", "UTF-8"); //Открываем файл для записи, указываем кодировку ЗаписьXML.ЗаписатьОбъявлениеXML(); // Записываем объявление XML ЗаписьXML.ЗаписатьНачалоЭлемента("Организации"); // Начало элемента Организации Выборка = Справочники.Организации.Выбрать(); Пока Выборка.Следующий() Цикл // Начинаем выгружать организации ЗаписьXML.ЗаписатьНачалоЭлемента("Организация"); // Начало элемента Организация ЗаписьXML.ЗаписатьАтрибут("Код",Строка(Выборка.Код)); ЗаписьXML.ЗаписатьАтрибут("Наименование",Строка(Выборка.Наименование)); ЗаписьXML.ЗаписатьКонецЭлемента(); // Конец элемента Организация КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); // Конец элемента Организации
Таким образом мы выгрузим код и наименование всех организаций из справочника 1С «Организации».
В 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С, но и опытные бухгалтера и юристы, поэтому мы подходим всесторонне к вопросу документооборота и отчетности.
Мы выстраиваем взаимодействие с клиентами так, чтобы вам удобно было оперативно обратиться по любому вопросу.
Позвоните по номеру телефона, указанному на сайте или заполните форму обратной связи, чтобы мы могли сориентировать по стоимости и рассказать, как начать сотрудничество.
Яндекс 360 для бизнеса представляет собой настоящий виртуальный офис, который дарит Вашей команде доступ к корпоративной почте, календарю, облачному хранилищу,…
Согласно последним изменениям в законодательстве, в частности Закону от 04.08.2023 г. № 427-ФЗ, был внесен новый пункт в статью 431…
Плательщики налога на упрощенной системе налогообложения (УСН) обязаны не забыть подать в налоговую инспекцию уведомление о суммах рассчитанных авансов по…