1с универсальный обмен данными в формате xml. Универсальный обмен данными


Обработка "Универсальный обмен данными в формате XML" предназначена для загрузки и выгрузки данных в файл из любой конфигурации, реализованной на платформе 1С:Предприятие 8


Обработка имеет четыре закладки

Выгрузка данных

Для осуществления выгрузки данных необходимо указать имя файла, в который будет осуществляться выгрузка данных и выбрать файл правил обмена. Правила обмена для любых конфигураций могут быть настроены в специализированной конфигурации "Конвертация данных, редакция 2".


Для выгрузки документов и записей независимых периодических регистров сведений необходимо указать период - "Дату начала" и "Дату окончания". Результирующий файл с выгруженными данными может быть сжат.


На закладке "Правила выгрузки данных" можно выбрать те типы объектов, которые должны выгружаться, настроить отборы для выборки объектов, либо указать узел обмена данными, для которого нужно выгружать данные.


На закладке "Параметры выгрузки" можно указать дополнительные параметры выгрузки данных.


На закладке "Комментарий" можно написать произвольный текст-комментарий, включаемый в файл обмена.

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


Есть возможность настроить загрузку данных в транзакции. Для этого необходимо взвести флажок "Использовать транзакции" и указать количество элементов в одной транзакции при загрузке.

Дополнительные настройки

Закладка служит для тонкой настройки выгрузки и загрузки данных.


"Режим отладки" - флажок определяет режим выгрузки и загрузки данных


"Количество обработанных объектов для обновления статуса" - параметр служит для определения количества обработанных элементов перед изменением строки состояние загрузки/выгрузки


"Настройки выгрузки данных" - позволяют определить количество элементов обрабатываемых в одной транзакции при выгрузке данных, выгружать и обрабатывать только те объекты на которые есть права доступа, настроить тип изменения регистрации для выгруженных объектов через планы обмена


"Протокол обмена" - позволяет настроить вывод информационных сообщений в окно сообщений, ведение и запись в отдельный файл протокола обмена.

Удаление данных

Закладка нужна только для разработчиков правил обмена. Позволяет удалять из информационной базы произвольные объекты.

Отладка выгрузки и загрузки данных

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


Включение режима отладки обработчиков выгрузки производится на закладке "Выгрузка данных" установкой флажка "Режим отладки обработчиков выгрузки". Соответственно, на закладке "Загрузка данных" включение режима отладки загрузки производится установкой флажка "Режим отладки обработчиков загрузки".


После установки режима отладки обработчиков станет доступной кнопка настройки отладки. По нажатию на эту кнопку откроется окно настройки.


Настройка отладки обработчиков выполняется в четыре шага:

Шаг 1: Выбор режима отладки алгоритмов

На первом шаге необходимо определиться с режимом отладки алгоритмов:



    Без отладки алгоритмов


    Вызывать алгоритмы как процедуры


    Подставлять код алгоритмов по месту вызова

Первый режим удобно использовать, когда мы точно знаем, что ошибка в обработчике не связана с кодом какого-либо алгоритма. В этом режиме код алгоритмов не выгружается в модуль отладки. Алгоритмы выполняются в контексте оператора "Выполнить()" и их код недоступен для отладки.


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


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

Шаг 2: Формирование модуля отладки

На втором шаге необходимо произвести выгрузку обработчиков нажатием на кнопку "Сформировать модуль отладки выгрузки (загрузки)". Сформированные обработчики и алгоритмы будут выведены в отдельное окно для просмотра. Содержимое модуля отладки необходимо скопировать в буфер обмена нажатием на кнопку "Копировать в буфер обмена".

Шаг 3: Создание внешней обработки

На этом шаге необходимо запустить конфигуратор и создать новую внешнюю обработку. В модуль обработки необходимо вставить содержимое буфера обмена (модуль отладки) и сохранить обработку под любым именем.

Шаг 4: Подключение внешней обработки

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


Примечание: Возможность отладки глобального обработчика конвертации "После загрузки правил обмена" не поддерживается.

Учебник по 1С Конвертации данных (редакция 2) Оптимизация

Правила Выгрузки данных

1. Порядок правил выгрузки данных

Рекомендуется располагать правила выгрузки данных в таком порядке, что бы ссылки зависимых объектов были снизу вверх. то есть самыми первыми должны располагаться правила выгрузки данных, объекты которых ни на кого не ссылаются, затем должны идти правила выгрузки объектов, ссылающихся на первую группу и т.д.

Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо - ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.

2. Выбирать данные для выгрузки одним запросом

Если в правиле конвертации нет переноса табличных частей и движений, а так же в событиях перед выгрузкой нет прямых обращений к выгружаемому объекту, рекомендуется в правиле выгрузки данных использовать режим "Выбирать данные для выгрузки одним запросом". Этот режим позволит одним запросом получить все выгружаемые данные определенного типа, а не строить отдельные запросы для выгрузки каждого объекта.

Правила Конвертации объектов

3. Использовать быстрый поиск при загрузке

Этот режим выгрузки и загрузки рекомендуется использовать для тех правил конвертации объектов, которые выгружают ссылочные типы общее количество которых сравнительно небольшое (примерно до 1000 элементов), на которые имеется множество ссылок в других объектов.

Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.

4. Не выгружать объекты свойств по ссылкам

Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.

5. Не запоминать выгруженные объекты

Для правил конвертации не ссылочных объектов (регистров) нужно установить флажок "Не запоминать выгруженные объекты", так как ссылаться на строки регистра нельзя, поэтому нет и смысла запоминать те строки регистров, которые были выгружены. Для ссылочных объектов этот флажок, как правило, нужен, что бы оптимизировать повторное обращение для выгрузки одного и того же объекта.

6. Не делать общих обработчиков событий для всех объектов

Не рекомендуется использовать общие обработчики событий перед выгрузкой и загрузкой данных для всех объектов. Обработки выгрузки и загрузки не знают что будет выполняться в этих обработчиках поэтому некоторые оптимизации (например, при загрузке запись только измененных объектов) действовать не будут. Если есть необходимость использовать одни и те же алгоритмы обработки данных при выгрузке и загрузке, то рекомендуется создать новый Алгоритм, а в событиях у нужных объектов его вызывать.

Обработка "Универсальный обмен данными XML"

7. Использовать оптимизированный формат для обмена данными

8. Загружать данные в режиме обмена

Позволяет отказать от излишних проверок на этапе загрузки данных

9. Записывать только измененные объекты

Позволяет производить запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.

10. Оптимизированная запись объектов

Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.

11. Записывать регистры наборами записей

Режим позволяет записывать изменения в регистрах наборами записей, а не менеджерами записей.

12. Обмен данными через COM

Для обмена V8-V8, если информационные базы источника и приемника находятся внутри одной локальной сети, рекомендуется использовать обмен через COM - соединение. Нужно только что бы в конфигурации приемника присутствовала обработка Универсальный обмена данными.

С уважением, Владимир Милькин (преподаватель и разработчик

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

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

Если это платформа «1С: Предприятие 7.7», то код обработчиков интегрируется в код обработки выгрузки или загрузки. Соответственно, каждый обработчик или алгоритм выделяется в отдельную функцию и доступен для отладки при обмене.

Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена. В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить». Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными XML».

Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим COM соединения для подключения к базе источнику. Однако, в последнее время всё большую популярность набирает собственный 1С-овский механизм под названием «Универсальный обмен данными в формате XML».

Внешний вид обработки

В Полном интерфейсе открыть обработку можно по адресу Сервис->Прочие обмены данными-> Универсальный обмен данными в формате XML.

Форма обработки (Рис.1) содержит четыре закладки:

  • Дополнительные настройки;
  • Удаление данных.
  • Интерфейс каждой из закладок сильно загружен элементами, а потому требует отдельного рассмотрения.

    Выгрузка данных

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

    На следующей строке формы находятся два переключателя:

    1. Выгрузка в файл обмена (Рис.2);
    2. Подключение и выгрузка данных в ИБ (рис.3).

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

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

    Табличная часть расположенная ниже позволяет настроить отборы и остальные параметры выгрузки.

    Для отладки алгоритмов и исправления ошибок можно воспользоваться встроенным в обработку обмена механизмом. Его активация производится установкой соответствующего флажка в нижней части формы. Нажатие на кнопку «Настройка отладки…» вызывает окно (Рис. 4).

    Рис.4

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

    Нажатие на кнопку «Готово» проверяет правильность и полноту заполненных данных.

    В отличие от «Выгрузки», на данной закладке (Рис.5) нет табличной части, зато гораздо больше флажков, позволяющих регулировать параметры записи новых и измененных объектов.

    Рис.5

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

    Соответствующие флажки позволяют настроить:

    • Транзакцию при записи объектов (это иногда ускоряет процесс);
    • Загрузку данных в режиме обмена (в этом случае все платформенные проверки, за исключением проверки при проведении документов, будут игнорироваться при записи);
    • Перезапись измененных элементов;
    • Установку пометки удаления для загружаемых элементов;
    • Режим записи новых данных в регистр (либо по одной, либо набором);
    • Обрезку незначащих символов (пробелов и табуляций) для строковых значений.

    Дополнительные настройки

    Как понятно из названия закладки, она содержит инструменты, использование которых позволяет точнее настроить процесс обмена. В частности:

    1. Включает режим отладки;
    2. Позволяет использовать транзакцию в процессе выгрузки;
    3. Оптимизирует обмен между базами 8-ой версии 1С;
    4. Выгружать только те объекты, которые разрешены к использованию текущему пользователю;
    5. Включить протоколирование процесса обмена между базами.

    Эти и некоторые другие функции включаются выставлением соответствующих флажков на форме (рис.6).

    Рис.6

    Удаление данных

    Эта закладка используется только разработчиками в режиме отладки. Позволяет удалять из базы ненужные объекты.

    Коротко о настройке правил обмена

    Использование стандартного обработчика очень упрощает жизнь программистам. В то же самое время, одним из самых сложных моментов для того, кто впервые столкнулся с «Универсальным обменом данным в формате XML» является вопрос: «Где взять файл правил обмена?».

    В первую очередь, для самостоятельного изготовления правил обмена, необходима специальная конфигурация, которая носит название «Конвертация данных». В ее составе есть несколько интересных файлов, которые позволяют настроить практически любой обмен между различными базами 1С 7 и 8 версий:

    1. epf – необходим для выгрузки структуры метаданных для баз 1С 8;
    2. epf – если конфигурация 1С 8 самописная или не стандартная, в ней может не быть обработки «Универсальный обмен данными», этот файл и есть эта обработка;
    3. ert –файл содержит код для выгрузки структуры метаданных конфигураций 1С версий 7.7;
    4. ert – файл обработки выгрузки-загрузки данных для семерки.

    Запустив соответствующие обработки необходимо выгрузить структуры метаданных для исходной базы и базы приемника. Затем в конфигурации «Конвертация» необходимо внести информацию о конфигурациях источника и приемника в справочник «Конфигурации».

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