А эта статья описывает шаги необходимые для обмена данными из конфигурации 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 и запустим обработку MD77Exp.ert
для выгрузки описания структуры метаданных источника.
Сохраним структуру метаданных источника в файл Rules1.xml. - Откроем базу приёмника в режиме 1С:Предприятие 8.2 и запустим обработку MD82Exp.epf
для выгрузки описания структуры метаданных приёмника.
Сохраним структуру метаданных приёмника в файл Rules2.xml.
Загрузим описания структуры метаданных обеих конфигураций.
- Запустим конфигурацию Конвертация данных в режиме 1С:Предприятие 8.2.
- Откроем справочник «Конфигурации» (Справочники—>Конфигурации). Он хранит информацию о конфигурациях,
между которыми может производиться настройка правил обмена. - Добавим информацию о конфигурации источнике. Нажмём кнопку «Добавить» или клавишу «Insert».
- Укажем путь к файлу со структурой метаданных источника Rules1.xml. Нажмём кнопку «Выполнить загрузку».
- Добавим информацию о конфигурации приёмнике. Нажмём кнопку «Добавить» или клавишу «Insert».
- Укажем путь к файлу со структурой метаданных приёмника Rules2.xml. Нажмём кнопку «Выполнить загрузку».
Итак, мы загрузили информацию об источнике и приёмнике. Теперь мы можем производить настройку правил обмена.
- Откроем справочник «Конвертации» (Справочники—>Конвертации). Этот справочник содержит иформацию,
в которой определяется между какими конфигурациями осуществляется обмен и в каком направлении. - Добавим новый элемент. Нажмём кнопку «Добавить» или клавишу «Insert».
- Укажем кофигурацию источник из справочника «Конфигурации». Поле «Конфигурация — источник:».
- Укажем кофигурацию приёмник из справочника «Конфигурации». Поле «Конфигурация — приемник:».
- Важная деталь!!! Откроем закладку «Дополнительно». Поле «Имя файла модуля выгрузки:».
- Укажем место расположения файла модуля выгрузки, например: C:\\Bases\\МодульВыгрузки.txt.
- Содержимое этого файла необходимо, чтобы в будущем (подробнее об этом ниже) заменить весь
модуль в обработке V77Exp.ert. Без этой замены выгрузка невозможна! - Нажмём кнопку «ОК».
Отлично, мы произвели настройку правил обмена. Осталось эти правила обмена выгрузить в файл.
- В справочнике «Конвертации» выделим только что созданный элемент.
- На панели справочника нажмём кнопку «Перейти к правилам». Откроется форма с правилами конвертации.
- Во вкладке «Правила выгрузки данных» укажем, что конкретно мы хотим выгружать.
- На вкладке «Конвертация свойств» мы можем указать сопоставление реквизитов обменивающихся объектов.
- На этой форме в левом верхнем углу найдём кнопку «Сохранить правила».
- Укажем имя файла и путь (Например, C:\\Bases\\ПравилаОбменаДанными.xml). Нажмём кнопку «Открыть».
- Позже, указанный путь мы можем изменить в справочнике «Конвертации»—>«Изменить текущий элемент (F2)»—>закладка «Дополнительно»—>поле «Имя файла правил обмена:».
- Во время сохранения правил, также записывается модуль выгрузки, по указанному нами ранее пути: C:\\Bases\\МодульВыгрузки.txt.
Правила конвертации готовы! Теперь сделаем обмен данными.
Откроем базу источник в режиме 1С:Конфигуратор 7.7, затем откроем обработку V77Exp.ert —
«Универсальная выгрузка данных в формате XML». Откроем закладку «Модуль», удалим всё содержимое модуля.
Вставим строку: #ЗагрузитьИзФайла C:\\Bases\\МодульВыгрузки.txt.
Директивой «ЗагрузитьИзФайла» мы переключаем загрузку программного модуля на загрузку из текстового файла.
Теперь нужно следить, чтобы файл с кодом выгрузки МодульВыгрузки.txt всегда был в указанной нами папке.
Сохраним обработку V77Exp.ert.
Для осуществления выгрузки данных необходимо:
- Открыть базу источник в режиме 1С:Предприятие 7.7, затем открыть только что сохраннёную обработку V77Exp.ert.
- Указать имя файла правил обмена в поле «Имя файла правил:» (мы его сохраняли здесь: C:\\Bases\\ПравилаОбменаДанными.xml) и
выбрать файл в поле «Имя файла данных:», в который будет осуществляться выгрузка данных (Например, C:\\Bases\\ВыгрузкаДанныхИз7.7.xml). - Далее необходимо загрузить правила обмена, нажав кнопку «Загрузить правила обмена».
- Для выгрузки документов за определенный интервал необходимо указать период — «Дату начала» и «Дату окончания».
- Флажки в списке «Правила выгрузки данных» указывают, какие данные будут выгружаться, а какие нет.
Теперь загрузим данные в базу приёмник. Откроем её в режиме 1С:Предприятие 8.2 и запустим обработку
«Универсальный обмен данными в формате XML» для загрузки данных источника.
Это файл оработки V8Exchan82.epf. Или открыть «Сервис»—>«Прочие обмены данными»—>«Универсальный обмен данными в формате XML»
- В обработке на вкладке «Загрузка данных» выберем имя файла данных (мы его сохраняли здесь: C:\\Bases\\ВыгрузкаДанныхИз7.7.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.
Сегодня мы рассмотрим с Вами обработку "Универсальная выгрузка в XML для 1с 7.7" . Данная обработка предназначена для выгрузки данных по правилам обмена в файл XML. Правила выгрузки данных представляют из себя также файл XML, в котором содержится описание какие данные и в какой структуре должны быть выгружены в файл XML.
Как пользоваться обработкой универсальная выгрузка в XML для 1с 7.7 ?
Ниже на скриншоте Вы видите основную форму обработки универсальная выгрузка в XML для 1с 7.7 , давайте разберем основные параметры, которые необходимы для ее правильной работы. Где стоит цифра 1 там мы указываем файл с правилами выгрузки данных, для чего нужны эти правила мы уже говорили в первом абзаце статьи. Для цифры 2 выбираем файл куда будут выгружаться данные. В 3 пункте необходимо указать дату начала и дату окончания, за этот период будут выгружены данные в файл. После того как мы указали все эти параметры жмем "Загрузить правила", после прочтения правил в пункте 5 появится древовидная структура файла правил обмена с наименованием правил. Теперь все что нам осталось сделать, это нажать кнопку в нашей обработке универсальная выгрузка XML 1с 7.7 под цифрой 6 "Выгрузить", после этого действия будут выгружены все данные согласно текущим правилам выгрузки данных, в файл XML который мы указали в пункте 2.
Здесь я опишу основные моменты при работе со стандартной компонентой 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
Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим COM соединения для подключения к базе источнику. Однако, в последнее время всё большую популярность набирает собственный 1С-овский механизм под названием «Универсальный обмен данными в формате XML».
Внешний вид обработки
В Полном интерфейсе открыть обработку можно по адресу Сервис->Прочие обмены данными-> Универсальный обмен данными в формате XML.
Форма обработки (Рис.1) содержит четыре закладки:
Интерфейс каждой из закладок сильно загружен элементами, а потому требует отдельного рассмотрения.
Выгрузка данных
В самой верхней части закладки находится поле выбора файла правил обмена. Для нестандартных баз и обменов файл обмена придется создавать самому.
На следующей строке формы находятся два переключателя:
- Выгрузка в файл обмена (Рис.2);
- Подключение и выгрузка данных в ИБ (рис.3).
Как видно из приведенных выше рисунков, в зависимости от переключателя отличается внешний вид формы. В случае если выбран файловый вариант обмена, пользователю предлагается выбрать место нахождения файла, куда будет выполнена выгрузка и возможность его сжатия для экономии места и защиты паролем.
Вариант прямого подключения к базе-приемнику поддерживает и файловый и клиент-серверный вариант работы. В этом случае необходимо будет прописать адрес базы, заполнить поля «Пользователь» и «Пароль». Прежде чем приступить к обмену данными, желательно протестировать подключение.
Табличная часть расположенная ниже позволяет настроить отборы и остальные параметры выгрузки.
Для отладки алгоритмов и исправления ошибок можно воспользоваться встроенным в обработку обмена механизмом. Его активация производится установкой соответствующего флажка в нижней части формы. Нажатие на кнопку «Настройка отладки…» вызывает окно (Рис. 4).
Рис.4
Отличительной чертой этой формы является информативная справка в левой части макета, которая описывает каждый из трех возможных режимов отладки. В качестве файла внешней обработки с модулем может выступать любой файл формата epf.
Нажатие на кнопку «Готово» проверяет правильность и полноту заполненных данных.
В отличие от «Выгрузки», на данной закладке (Рис.5) нет табличной части, зато гораздо больше флажков, позволяющих регулировать параметры записи новых и измененных объектов.
Рис.5
В первую очередь необходимо выбрать файл, который послужит источником информации. Это можно сделать в поле ввода «Имя файла для загрузки». В случае если данные выгружались в архив, защищенный паролем, его необходимо будет ввести в соответствующее поле.
Соответствующие флажки позволяют настроить:
- Транзакцию при записи объектов (это иногда ускоряет процесс);
- Загрузку данных в режиме обмена (в этом случае все платформенные проверки, за исключением проверки при проведении документов, будут игнорироваться при записи);
- Перезапись измененных элементов;
- Установку пометки удаления для загружаемых элементов;
- Режим записи новых данных в регистр (либо по одной, либо набором);
- Обрезку незначащих символов (пробелов и табуляций) для строковых значений.
Дополнительные настройки
Как понятно из названия закладки, она содержит инструменты, использование которых позволяет точнее настроить процесс обмена. В частности:
- Включает режим отладки;
- Позволяет использовать транзакцию в процессе выгрузки;
- Оптимизирует обмен между базами 8-ой версии 1С;
- Выгружать только те объекты, которые разрешены к использованию текущему пользователю;
- Включить протоколирование процесса обмена между базами.
Эти и некоторые другие функции включаются выставлением соответствующих флажков на форме (рис.6).
Рис.6
Удаление данных
Эта закладка используется только разработчиками в режиме отладки. Позволяет удалять из базы ненужные объекты.
Коротко о настройке правил обмена
Использование стандартного обработчика очень упрощает жизнь программистам. В то же самое время, одним из самых сложных моментов для того, кто впервые столкнулся с «Универсальным обменом данным в формате XML» является вопрос: «Где взять файл правил обмена?».
В первую очередь, для самостоятельного изготовления правил обмена, необходима специальная конфигурация, которая носит название «Конвертация данных». В ее составе есть несколько интересных файлов, которые позволяют настроить практически любой обмен между различными базами 1С 7 и 8 версий:
- epf – необходим для выгрузки структуры метаданных для баз 1С 8;
- epf – если конфигурация 1С 8 самописная или не стандартная, в ней может не быть обработки «Универсальный обмен данными», этот файл и есть эта обработка;
- ert –файл содержит код для выгрузки структуры метаданных конфигураций 1С версий 7.7;
- ert – файл обработки выгрузки-загрузки данных для семерки.
Запустив соответствующие обработки необходимо выгрузить структуры метаданных для исходной базы и базы приемника. Затем в конфигурации «Конвертация» необходимо внести информацию о конфигурациях источника и приемника в справочник «Конфигурации».
Затем в справочнике Конвертации создается элемент, содержащий информацию о направлении обмена данными. Для него можно настроить Правила обмена.