Здесь я опишу основные моменты при работе со стандартной компонентой v7plus.dll . Информация сильно устаревшая, и появилась она здесь больше для меня самого — чтобы не забыть, когда в следующий раз появится. Описывается чтение из XML-файла средствами XML-парсера почти стандартной компоненты. Примером послужит файл документа-заявки, выгруженного в файл в формате CommerceML 2.03 (с сайта на Битриксе).
Итак, начинаем. Первым делом нужно загрузить компоненту. Вот типичный код:
Если + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtForms\" + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!"); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; Анализатор = СоздатьОбъект("AddIn.XMLParser");Анализатор умеет работать со схемами, но этот момент я рассматривать не буду. Простое линейное (ну или почти линейное) чтение файла. Поэтому просто создаём новый документ:
XML_Документ = Анализатор . СоздатьДокумент (); Если ПустоеЗначение(XML_Документ ) = 1 Тогда Возврат КонецЕсли; XML_Документ . Загрузить (ИмяФайла );В переменной ИмяФайла
записана строка с именем открываемого файла. После этого можно читать файл, постепенно расшифровывая его.
Файл XML состоит из узлов и атрибутов. Каждый узел может содержать ноль и более атрибутов и ноль и более дочерних узлов. Корневой узел можно получить прямо из переменной XML_Документ
. Для наглядности рассмотрим часть XML-файла:
<КоммерческаяИнформация ВерсияСхемы=»2.03″ ДатаФормирования=»2014-04-09 14:25″>
<Документ>
<Ид>53006Ид>
<Номер>53006Номер>
<Дата>2014-04-29Дата>
<ХозОперация>Заказ товараХозОперация>
<Роль>ПродавецРоль>
<Валюта>рубВалюта>
<Курс>1Курс>
<Сумма>300000.00Сумма>
<Контрагенты>…Контрагенты>
<Время>11:52Время>
<Комментарий>ТЕСТ…….БСВКомментарий>
<Товары>
<Товар>
<Ид>ID46Ид>
<Наименование>…Наименование>
<БазоваяЕдиница Код=»796″ НаименованиеПолное=»Штука» МеждународноеСокращение=»PCE»>штБазоваяЕдиница>
Здесь приведена сильно сокращённая версия файла, точнее, его часть. Цель этой статьи — не описать формат CommerceML, а показать работу с XML-файлом, поэтому приведу только команды. Файл CommerceML состоит из корневого узла «КоммерческаяИнформация «. Его мы считаем из документа:
ЭлДокумент = XML_Документ . ВыбратьУзел ("КоммерческаяИнформация");Значением переменной ЭлДокумент будет узел (OLE-объект). У него есть дочерние узлы и атрибуты. В одном файле может быть несколько документов, поэтому перебираем их в цикле:
Выборка = ЭлДокумент . ВыбратьУзлы ("Документ"); Для й = 1 По Выборка . КоличествоУзлов Цикл Док = Выборка . ПолучитьУзел (й - 1);Свойство КоличествоУзлов возвращает общее число дочерних узлов, а метод ПолучитьУзел() возвращает указанный дочерний узел (нумерация идёт с 0).
Узел «Номер » не имеет ни атрибутов, ни дочерних узлов. Он имеет только значение «00006 «. Аналогично «Дата «, «ХозОперация » и многие другие. Для получения значения узла используется следующая конструкция:
Номер = Док . ВыбратьУзел ("Номер"). Значение ; НомерЧисло = Число(Док .ВыбратьУзел ("Номер"). Значение );Здесь используется метод ВыбратьУзел()
. В отличие от «ВыбратьУзлы()
«, он возвращает не список, а самый первый узел с указанным именем. А его свойство «Значение
» возвращает строку со значением. Для преобразования значения к нужному типу воспользуемся функциями преобразования. Дату придётся преобразовывать частями (она в XML хранится в виде гггг-мм-дд, не поддерживаемом стандартной функцией Дата()). Возможно, что при использовании схем преобразование типов будет выполняться автоматически — не проверял.
Для чтения атрибутов служит следующий метод:
Здесь Товар
— это узел «Товар
«. Значение атрибута, как и единичного дочернего узла, можно получить по имени атрибута. Возвращается всегда строка, поэтому при необходимости надо привести тип значения к требуемому. Если у узла понадобится считать несколько атрибутов, лучше сохранить значение узла в отдельной перменной.
Ну вот и все основные функции, необходимые для полноценного чтения XML-файлов.
Работа с файлами XML из 1С:Бухгалтерии 7.7
Сегодня мы рассмотрим с Вами обработку "Универсальная выгрузка в XML для 1с 7.7" . Данная обработка предназначена для выгрузки данных по правилам обмена в файл XML. Правила выгрузки данных представляют из себя также файл XML, в котором содержится описание какие данные и в какой структуре должны быть выгружены в файл XML.
Ниже на скриншоте Вы видите основную форму обработки универсальная выгрузка в XML для 1с 7.7 , давайте разберем основные параметры, которые необходимы для ее правильной работы. Где стоит цифра 1 там мы указываем файл с правилами выгрузки данных, для чего нужны эти правила мы уже говорили в первом абзаце статьи. Для цифры 2 выбираем файл куда будут выгружаться данные. В 3 пункте необходимо указать дату начала и дату окончания, за этот период будут выгружены данные в файл. После того как мы указали все эти параметры жмем "Загрузить правила", после прочтения правил в пункте 5 появится древовидная структура файла правил обмена с наименованием правил. Теперь все что нам осталось сделать, это нажать кнопку в нашей обработке универсальная выгрузка XML 1с 7.7 под цифрой 6 "Выгрузить", после этого действия будут выгружены все данные согласно текущим правилам выгрузки данных, в файл XML который мы указали в пункте 2.
А эта статья описывает шаги необходимые для обмена данными из конфигурации 1С:Предприятия версии 7.7 в 8.2 с помощью такой же конфигурации Конвертация данных, редакция 2.1.4.1.
Найдем в составе дистрибутива конфигурации Конвертация данных файл оработки MD82Exp.epf.
Он понадобиться для выгрузки описания структуры метаданных конфигурации базы приёмника.
Ещё найдем в составе этого же дистрибутива файл оработки V8Exchan82.epf — «Универсальный обмен данными в формате XML».
Он понадобиться для выгрузки базы приёмника. Как видно из названия эти обработки предназначены
для работы с версией 1С:Предприятия 8.2.
Затем найдем инструменты для работы с версией 1С:Предприятия 7.7.
В составе дистрибутива конфигурации Конвертация данных есть файл оработки MD77Exp.ert.
Он понадобиться для выгрузки описания структуры метаданных конфигурации базы источника.
Ещё найдем в составе этого же дистрибутива файл оработки V77Exp.ert — «Универсальная выгрузка данных в формате XML».
Он понадобиться для выгрузки базы источника.
Итак, приступим:
Сначала выгрузим описания структуры метаданных источника и приёмника.
Загрузим описания структуры метаданных обеих конфигураций.
Итак, мы загрузили информацию об источнике и приёмнике. Теперь мы можем производить настройку правил обмена.
Отлично, мы произвели настройку правил обмена. Осталось эти правила обмена выгрузить в файл.
Правила конвертации готовы! Теперь сделаем обмен данными.
Откроем базу источник в режиме 1С:Конфигуратор 7.7, затем откроем обработку V77Exp.ert —
«Универсальная выгрузка данных в формате XML». Откроем закладку «Модуль», удалим всё содержимое модуля.
Вставим строку: #ЗагрузитьИзФайла C:\\Bases\\МодульВыгрузки.txt.
Директивой «ЗагрузитьИзФайла» мы переключаем загрузку программного модуля на загрузку из текстового файла.
Теперь нужно следить, чтобы файл с кодом выгрузки МодульВыгрузки.txt всегда был в указанной нами папке.
Сохраним обработку V77Exp.ert.
Для осуществления выгрузки данных необходимо:
Теперь загрузим данные в базу приёмник. Откроем её в режиме 1С:Предприятие 8.2 и запустим обработку
«Универсальный обмен данными в формате XML» для загрузки данных источника.
Это файл оработки V8Exchan82.epf. Или открыть «Сервис»—>«Прочие обмены данными»—>«Универсальный обмен данными в формате XML»
Данные загружены!
Те же действия для выгрузки из версии 1С:Предприятие 7.7 применимы для версий 1С:Предприятие 8.1 и 1С:Предприятие 8.0.
В составе дистрибутива конфигурации Конвертация данных идут
файлы оработок для этих версий MD81Exp.epf и V8Exchan81.epf, MD80Exp.epf и V8Exchan.epf.
Если Вы хотите загружать данные в 1С:Предприятие 7.7, тогда нужно пользоваться обработкой V77Imp.ert.
Перед загрузкой данных необходимо выполнить те же действия с модулем обработки V77Imp.ert, что были описаны
для обработки V77Exp.ert.
Если Вы выбираете обработку из списка быстрого доступа (Файл — V77Exp.ert) и выдается сообщение, что файл не найден,
хотя файл расположен там же и название не менялось, тогда нужно просто сделать все как в начале —
«Файл | Открыть» и снова выбрать файл V77Exp.ert.
Перенос информации между базами данных является одной из задач их поддержки и администрирования. Для его эффективного выполнения в автоматизированных комплексах 1С создаются обработки. Они значительно облегчают рутинную работу, ускоряют процессы выгрузки-загрузки информации и одновременно реализуют контроль ее корректности. Выгрузка из 1с в xml позволяет создавать файл с содержимым любого объекта настроенной конфигурации, и использовать его, когда необходима выгрузка данных в идентичную конфигурацию.
Для экспорта информации, содержащейся в базах данных, главным образом используется формат xml. Для 1С разработано множество обработок (например, ВыгрузкаЗагрузкаДанныхxml82 epf), при помощи которых возможно выводить в файл и загружать данные. При этом пользователь должен получать файл определенной структуры, который позволяет загружать хранящуюся в нем информацию в родную базу данных или переносить ее в другое место. При создании выгрузки следует соблюдать следующие правила:
Поставляемая в программе поддержки пользователей 1С , которую можно найти на сайте или дисках ИТС, является великолепным средством для экспорта и импорта информации. Пользователь компьютера может выгрузить как всю базу, так и ее отдельные объекты, при этом кроме собственно экспорта производятся различные операции по проверке информации, помогающие избавиться от критических ошибок в данных.Обработка 1с выгрузка в xml работает в двух режимах:
Обработка позволяет произвести контроль объектов на недопустимые символы, а также включает в себя функцию экспорта информации с ограничениями.
Выгрузка может использоваться не только при обмене информацией между базами 1С. С ее помощью можно обеспечить интеграцию различных комплексов, например, 1С и системы Парус. Универсальность формата XML позволяет создавать программы для переноса информации практически для любых информационных банков. Обработка выгрузка и загрузка данных xml – важнейший инструмент обмена информацией.
Рассмотрим, как выгрузить из 1с в xml в обычном режиме. После закачки обработки ВыгрузкаЗагрузкаДанныхxml.epf и ее открытия необходимо выполнить следующие шаги:
Необходимо помнить, что заголовочная часть формата файла выгрузки отличается от формата файла, используемого при выгрузке по планам обмена.
xmlЗагрузка xml в 1с производится в базу-приемник с конфигурацией, идентичной базе-источнику. До того, как загрузить в 1с xml 1с необходимо открыть обработку в базе-приемнике. Затем нужно указать путь до выгруженного ранее файла и осуществить загрузку данных нажатием на кнопку «Загрузить данные».
При необходимости активируются флажки для загрузки данных в режиме обмена в распределенной информационной базе и игнорирования возникающих ошибок при загрузке объектов.
После этого необходимо проверить базы и убедиться, что все элементы загружены корректно, чтобы не получить их потери, например, если произошла ошибка в обработчике события после загрузки объекта.
Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим COM соединения для подключения к базе источнику. Однако, в последнее время всё большую популярность набирает собственный 1С-овский механизм под названием «Универсальный обмен данными в формате XML».
В Полном интерфейсе открыть обработку можно по адресу Сервис->Прочие обмены данными-> Универсальный обмен данными в формате XML.
Форма обработки (Рис.1) содержит четыре закладки:
Интерфейс каждой из закладок сильно загружен элементами, а потому требует отдельного рассмотрения.
В самой верхней части закладки находится поле выбора файла правил обмена. Для нестандартных баз и обменов файл обмена придется создавать самому.
На следующей строке формы находятся два переключателя:
Как видно из приведенных выше рисунков, в зависимости от переключателя отличается внешний вид формы. В случае если выбран файловый вариант обмена, пользователю предлагается выбрать место нахождения файла, куда будет выполнена выгрузка и возможность его сжатия для экономии места и защиты паролем.
Вариант прямого подключения к базе-приемнику поддерживает и файловый и клиент-серверный вариант работы. В этом случае необходимо будет прописать адрес базы, заполнить поля «Пользователь» и «Пароль». Прежде чем приступить к обмену данными, желательно протестировать подключение.
Табличная часть расположенная ниже позволяет настроить отборы и остальные параметры выгрузки.
Для отладки алгоритмов и исправления ошибок можно воспользоваться встроенным в обработку обмена механизмом. Его активация производится установкой соответствующего флажка в нижней части формы. Нажатие на кнопку «Настройка отладки…» вызывает окно (Рис. 4).
Рис.4
Отличительной чертой этой формы является информативная справка в левой части макета, которая описывает каждый из трех возможных режимов отладки. В качестве файла внешней обработки с модулем может выступать любой файл формата epf.
Нажатие на кнопку «Готово» проверяет правильность и полноту заполненных данных.
В отличие от «Выгрузки», на данной закладке (Рис.5) нет табличной части, зато гораздо больше флажков, позволяющих регулировать параметры записи новых и измененных объектов.
Рис.5
В первую очередь необходимо выбрать файл, который послужит источником информации. Это можно сделать в поле ввода «Имя файла для загрузки». В случае если данные выгружались в архив, защищенный паролем, его необходимо будет ввести в соответствующее поле.
Соответствующие флажки позволяют настроить:
Как понятно из названия закладки, она содержит инструменты, использование которых позволяет точнее настроить процесс обмена. В частности:
Эти и некоторые другие функции включаются выставлением соответствующих флажков на форме (рис.6).
Рис.6
Эта закладка используется только разработчиками в режиме отладки. Позволяет удалять из базы ненужные объекты.
Использование стандартного обработчика очень упрощает жизнь программистам. В то же самое время, одним из самых сложных моментов для того, кто впервые столкнулся с «Универсальным обменом данным в формате XML» является вопрос: «Где взять файл правил обмена?».
В первую очередь, для самостоятельного изготовления правил обмена, необходима специальная конфигурация, которая носит название «Конвертация данных». В ее составе есть несколько интересных файлов, которые позволяют настроить практически любой обмен между различными базами 1С 7 и 8 версий:
Запустив соответствующие обработки необходимо выгрузить структуры метаданных для исходной базы и базы приемника. Затем в конфигурации «Конвертация» необходимо внести информацию о конфигурациях источника и приемника в справочник «Конфигурации».
Затем в справочнике Конвертации создается элемент, содержащий информацию о направлении обмена данными. Для него можно настроить Правила обмена.