Как в 1 с загрузить файл xml

«1С:Бухгалтерия 8» (ред. 3.0): как загрузить данные из файла выгрузки в регламентированный отчет (+ видео) Видеоролик выполнен в программе...

Видеоролик выполнен в программе «1С:Бухгалтерия 8» версия 3.0.78.54.

Для форм отчетности, которые можно представлять в электронном виде, доступны кнопки Выгрузить и Загрузить. Команда Выгрузить служит для выгрузки отчетов в XML-файлы электронного представления, а команда Загрузить – для загрузки отчетов из таких файлов.

Функционал регламентированной отчетности позволяет загружать отчеты из файла выгрузки как в виде XML-файла для дальнейшей отправки по каналам связи, так и непосредственно в виде данных отчета.

Чтобы загрузить отчет в виде XML-файла, в списке отчетов единого рабочего места 1С-Отчетность следует нажать на кнопку Загрузить — Файл для отправки. В открывшемся окне потребуется найти папку с сохраненным файлом и подтвердить передачу выбранного файла, после чего открывается окно файла отчета с данными в формате XML. В окне файла отчета можно выбрать и установить другую организацию, другой период отчета, другого получателя и другой вид документа. Но редактировать данные отчета, представленные в формате XML, достаточно сложно. После нажатия на кнопку Записать и закрыть в списке отчетов появляется сохраненный отчет, который можно отправить в контролирующий орган напрямую из программы через сервис 1С-Отчетность.

Как прочитать XML в 1С. Способ № 1 (Линейное чтение)

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

Загрузить данные файла выгрузки можно:

  • из списка отчетов 1С-Отчетности – при этом будет создан новый отчет;
  • из формы регламентированного отчета соответствующего вида – при этом будет выполнена замена показателей отчета на данные из загружаемого файла.

Чтобы создать новый отчет из файла выгрузки, следует перейти в раздел Отчеты единого рабочего места 1С-Отчетность и нажать на кнопку Загрузить — Отчет. В открывшемся окне потребуется найти папку с сохраненным файлом и подтвердить передачу выбранного файла, после чего открывается окно файла отчета. В окне файла отчета можно выбрать и установить другую организацию, другой период отчета, другого получателя и другой вид документа. После нажатия на кнопку Загрузить и закрыть открывается экранная форма отчета.

С отчетом, созданным из файла выгрузки, можно работать так же, как и с любым другим регламентированным отчетом, созданным в программе. Исключение — нельзя расшифровать показатели отчета, загруженные из другой программы, поскольку расшифровке подлежат только данные «своей» информационной базы.

Файл выгрузки можно загрузить непосредственно в форму регламентированного отчета и получить заполненный регламентированный отчет. Для этого следует воспользоваться кнопкой Загрузить, расположенной на верхней командной панели открытого отчета.

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

Выгрузка из 1С в XML файл

Также невозможно загрузить данные из файла с форматом электронного представления, отличным от утвержденного для текущей формы отчета. В том случае, если данные из файла выгрузки загружаются в существующий отчет, и процесс завершается с ошибкой из-за несоответствия форматов, предыдущее заполнение отчета не изменяется.

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

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

Источник: buh.ru

Загрузка данных из файла XML в 1С

XML это наверно самый популярный формат файлов с помощью которых происходит обмен данными как между информационными базами 1С так и с другими ресурсами и сервисами. Поэтому в первую очередь стоить научиться обрабатывать файлы этого формата, загружать и выгружать в них информацию. Так же для этих целей очень часто используются фалы TXT, DBF, CSV и Excel. Прочитать файл XML в 1С можно разными способами, сегодня рассмотрим самый популярный и простой «Фабрика XDTO». Я уже рассказывал про обработку файлов TXT, DBF и Excel, с этими статьями Вам обязательно нужно ознакомиться.

Обработка для загрузки данных из XML в 1С

Первым делом создаем новую процедуру для чтения файлов XML и добавляем условие в процедуру команды «Прочитать». Думаю тут сильно пояснять ничего не нужно, если в переключатели выбран тип файлов XML то открывать процедуру «Прочитать_xml».

Загрузка XML в 1С

Далее пишем код в самой процедуре «Прочитать_xml».

ЧтениеXML.ОткрытьФайл(Объект.ПутьКФайлу); КотрагентыXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); Для Каждого КотрагентыXDTO Из КотрагентыXDTO.Сontragent Цикл НоваяСтрока = Объект.ДанныеФайла.Добавить(); НоваяСтрока.Наименование = КотрагентыXDTO.NAME; НоваяСтрока.Расшифровка = КотрагентыXDTO.FULL_NAME; НоваяСтрока.ИНН = КотрагентыXDTO.INN; КонецЦикла; КонецПроцедуры

XDTO позволяет напрямую обращаться к свойствам XML файла, без использования его узлов, это намного удобней.

Загрузка данных из файла XML в 1С

Сам XML файл в моем случае выгладить следующим образом.

Обработка для загрузки данных из XML в 1С

Остается только проверить работоспособность написанного кода.

1С загрузка данных из файлов XML

Как видите все прекрасно работает, данные из файла были успешно прочитаны и отображены в табличной части обработки. В следующей статье расскажу про обработку файлов CSV и приступим непосредственно к команде «Загрузить», которая будет создавать новые элементы справочника контрагенты.

Источник: sibsisadmin.ru

XML файлы 1С: запись и чтение

Анна Викулина

Формат XML пользуется большой популярностью при обмене различными текстовыми документами между информационными системами. Возможность создания уникальной структуры у документов позволяет ее использовать во многих областях – электронные библиотеки, WEB, импорт/экспорт, а также многих других. Без возможности удобной работы с этим форматом системы 1С не смогли бы получить такую популярность. Поскольку 1С активно использует WEB-технологии, каждый разработчик должен уметь читать XML и записывать в них информацию.

Представление файла XML и его чтение

Одним из ключевых преимуществ языка разметки XML является достаточно удобная и интуитивно понятная структура и синтаксис. При его создании авторы ставили цель создать язык разметки, который был бы удобен для чтения и человеком, и ЭВМ. На сегодняшний день XML получил широкое развитие в другие форматы, но остается популярным и широко используемым. Структура XML файла строится по следующей схеме:

Планшет

Приглашаем на
бесплатный вебинар!
18 июля в 11:00 мск

Рис.1 Структура XML файла

Для рассмотрения примера импорта данных в 1С достаточно будет представленного выше файла. Чтобы написанная процедура смогла прочитать XML файл, достаточно в нее передать путь к самому файлу. Это можно сделать через интерфейс, позволив пользователям самостоятельно указывать файл, либо жестко прописав в тексте обработки.

Одним из популярных способов работы с XML размером до 100 МБ в 1С считается использование объектной модели документа (DOM). Его смысл заключается в поочередной обработке всех узлов документа, представленных в XML. На встроенном языке 1С этот алгоритм выглядит так:

  1. Объявление механизмов, с помощью которых происходит чтение XML файла; Цикл для обхода узлов;
  2. Считывания данных и атрибутов в узле;
  3. Вывод информации. Если есть необходимость, на этом этапе может происходить запись в переменные или сразу в нужные таблицы;
  4. Завершение работы механизма.

МеханизмЧтения.ОткрытьФайл(ПутьКФайлу); Построитель = Новый ПостроительDOM; Документ = Построитель.Прочитать(МеханизмЧтения); //цикл для обхода узлов Для каждого элемента Из Документ.ЭлементДокумента.ДочерниеУзлы Цикл //считывание данных Если элемента.ИмяУзла = «Товар» Тогда товар = элемента; Для каждого значения Из товар.ДочерниеУзлы Цикл Если значения.ИмяУзла = «Наименование» тогда Наименование = значения; Цвет = Наименование.Атрибуты.ПолучитьИменованныйЭлемент(«Цвет»); ИначеЕсли значения.ИмяУзла = «Цена» тогда Стоимость = значения; Валюта = Стоимость.Атрибуты.ПолучитьИменованныйЭлемент(«Валюта»); КонецЕсли; КонецЦикла; //вывод сообщений Сообщить(«Наименование: » + Наименование.ТекстовоеСодержимое + «; цвет: «+Цвет.Значение +»; Цена: «+Стоимость.ТекстовоеСодержимое + «; Валюта: «+Валюта.Значение); КонецЕсли; КонецЦикла; //закрытие механизма НеханизмЧтения.Закрыть(); КонецПроцедуры

В качестве результата мы выводим пользователю сообщения с импортированными данными. Также вы можете поместить все данные в нужную структуру и на ее основании запрограммировать создание документа или записей в справочнике. Скорость работы 1С с xml достаточно велика, поэтому все чаще именно этот формат используется при обмене данными с другими источниками.

Для выгрузки информации нам также пригодится взаимодействие с файлами формата XML. Рассмотрим пример записи с помощью объекта платформы 1С ЗаписьXML и выгрузим данные по номенклатуре. Главными его преимуществами являются простота кода и скорость обработки данных. Серверный алгоритм записи файла XML можно представить в виде нескольких последовательных шагов:

  1. Подключаемся к файлу xml;
  2. Создаем головные элементы и в них записываем данные. Если вы хотите выгрузить в XML файл большой объем информации, то на этом этапе у вас будут использоваться циклы. Будьте аккуратны и не забывайте, что запрос данных нужно делать до цикла, а не в нем;
  3. Закрываем файл.

//открываем файл Nomenclatura.xml и записываем головной элемент ЗаписьВФайл = Новый ЗаписьХML(); ЗаписьВФайл.ОткрытьФайл(«D:Nomenclatura.xml», «UTF-8»); ЗаписьВФайл.3аписатьНачалоЭлемента(«Товары»); //выбираем данные для записи ВыборкаИзСправочника = Справочники.Номенклатура.Выбрать(); //цикл, в котором происходит запись Пока ВыборкаИзСправочника.Следующий() цикл //запись новых данных ЗаписьВФайл.ЗаписатьНачалоЭлемента(«Товар»); ЗаписьВФайл.ЗаписатьАтрибут(«Наименование», ВыборкаИзСправочника.Наименование); ЗаписьВФайл.ЗаписатьАтрибут(«НачальнаяЦена», Строка(ВыборкаИзСправочника.НачальнаяЦена)); ЗаписьВФайл.ЗаписатьКонецЭлемента(); КонецЦикла; //Закрываем головной элемент и файл ЗаписьВФайл.ЗаписатьКонецЭлемента(); ЗаписьВФайл.Закрыть();

Механизм XDTO в 1С

Разработчики компании 1С для обмена информацией через XML создали собственный механизм – XDTO (XML Data Transfer Objects). Начиная с версии 8.1, в платформе появляется возможность обмениваться данными с другими системами, не вникая в вопросы формирования файла XML. Большинство технических вопросов берет на себя 1С, а нам остается только указывать данные, необходимые, чтобы сформировать XML. Правда, для этого разработчику необходимо заранее проделать некоторые манипуляции.

Чтобы загрузить файл XML, используя XDTO, мы должны сообщить 1С структуру файла. Она передается через набор схем, которые можно создать в редакторе текста или воспользоваться специализированной программой. В результате должен получиться файл, описывающий общую структуру и типы данных, используемые в файле XML. Перед тем как считывать или записывать новый XML, разработчик должен загрузить его схему в конфигурацию в раздел «ПакетыXDTO».

В данном случае создадим руками простой пакет, чтобы 1С понимала структуру нашего файла для примера. Чтобы формирование файла закончилось успешно, нам нужно отразить в схеме, что у нас присутствует головной элемент и вложение с атрибутами. Созданную схему нужно экспортировать в файл формата xsd и передать вместе с xml, чтобы другой стороне не понадобилось разбираться со структурой и опять создавать пакет xdto.

Рис.2 Механизм XDTO

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

//Открываем файл XML ЗаписьВФайл = Новый ЗаписьXML; ЗаписьВФайл.ОткрытьФайл(«D:Nomenclatura.xml», «UTF-8»); //Указываем 1C, какой тип данных следует создать — головной элемент ВсеТовары = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(«http://wiseadviceXML.org»,»Товары»)); //выбираем данные для выгрузки ВыборкаИзСправочника = Справочники.Номенклатура.Выбрать(); //Добавляем отдельные товары в головной элемент Пока ВыборкаИзСправочника.Следующий() цикл Товар = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(«http://wiseadviceXML.org»,»Товар»)); Товар.Наименование = ВыборкаИзСправочника.Наименование; Товар.НачальнаяЦена = Строка(ВыборкаИзСправочника.НачальнаяЦена); ВсеТовары.Добавить(Товар); КонецЦикла; //записываем данные и закрываем файл ФабрикаXDTO.ЗаписатьXML(ЗаписьВФайл, ВсеТовары); ЗаписьВФайл.Закрыть();

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

Источник: wiseadvice-it.ru

Оцените статью
Добавить комментарий