Как выгрузить данные из 1С в файл XML с помощью XDTO
Продолжаем вместе с изучать 1С программирование. Сегодня речь пойдет про обмен данными между 1С и другими программами и сервисами. Вариантов реализовать подобный обмен очень много, но чаще всего прибегают к обмену с помощью выгрузки и загрузки данных из файла XML. Если Вы только начинаете изучать 1С то разобраться с выгрузкой и загрузкой данных из разных файлов очень важно. Как минимум вы должны уметь работать с файлами CSV, Excel, txt, XML, DBF. Для начала научимся выгружать данный в файл XML из 1С, например из справочника.
Выгрузка справочника в файл XML
Для примера я создам справочник «Номенклатура» и добавлю пару реквизитов «Расшифровка» и «Производитель», в итоге с учет стандартных их будет четыре. Вообще количество реквизитов в данном случае не важно, в любом случае они будут выгружаться все.
Теперь создадим команду «Выгрузка в XML» и размести её в командной панели.
Создадим обработчик команды с процедурой на клиенте и на сервере, и напишем следующий код. Если кратко то открываем файл XML, выбираем справочник, в цикле обходим его записи и записываем в файл, выводим сообщение. Если что-то в коде не понятно спрашивайте!
&НаСервере
Процедура ВыгрузитьВXMLНаСервере()
// Вставить содержимое обработчика.
НовыйСериализаторXDTO = СериализаторXDTO;
НоваяЗаписьXML = Новый ЗаписьXML();
НоваяЗаписьXML.ОткрытьФайл("C:\Номенклатура.xml", "UTF-8");
НоваяЗаписьXML.ЗаписатьОбъявлениеXML();
НоваяЗаписьXML.ЗаписатьНачалоЭлемента("СправочникНоменклатура");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатура = Выборка.ПолучитьОбъект();
НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное);
КонецЦикла;
НоваяЗаписьXML.ЗаписатьКонецЭлемента();
НоваяЗаписьXML.Закрыть();
Сообщить("Выгрузка справочника Номенклатуры в файл XML успешно завершена!!!");
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьВXML(Команда)
ВыгрузитьВXMLНаСервере();
КонецПроцедуры
В итоге должен получиться вот такой код.
Остается только проверить его работоспособность, запускаем 1С открываем справочник и нажимаем кнопку «Выгрузить в XML», если код отработал появиться сообщение.
Далее смотрим что у нас записалось в сам файл XML.
Видим что все данные справочника успешно записались в файл. Теперь из него можно загружать их в другую система или в конфигурацию 1С в которой есть аналогичный справочник номенклатуры.
Кстати файл «Номенклатура.xml» должен быть создан и располагаться по указному пути в коде «C:\Номенклатура.xml». Если его там не будет или он будет иметь другое имя вы увидите ошибку «Ошибка доступа к файлу».