Скачать обработку универсальный обмен данными xml. Обработка "Универсальный обмен данными в формате XML" назначена для загрузки и выгрузки данных в файл из

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Порядок работы

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

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

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

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

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

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

На панели "Реквизиты выгрузки" допустимо определить добавочные реквизиты выгрузки данных.

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

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

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

"Загружать данные в варианте обмена (ОбменДанными.Загрузка = Истина)" – если флажок выставлен, то загрузка объектов будет выполнятся с заданным признаком загрузки. Это значит, что при записи объектов в базу данных будут отключены все платформенные и прикладные проверки. Исключение составляют документы, которые фиксируются в варианте проведения либо отмены проведения. Проведение и отмена проведения документа производится всегда без назначения режима загрузки, т.е. проверки будут производиться.

Добавочные настройки

Панель предназначен для детальной настройки выгрузки и загрузки данных.

"Порядок отладки" – флажок для задания режима отладки обмена. Если данный флажок выставлен, то механизм обмена данными не будет остановлен при возникновении какой-или ошибки. Обмен завершится до конца с выводом отладочных сообщений в файл протокола обмена. Данный порядок советуется применять при отладке правил обмена.

"Вывод информационных сообщений в окно сообщений" – если флажок выставлен, то в окно сообщений будет отображаться протокол процесса обмена данными.

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

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

"Использовать оптимизированный формат для обмена данными (V8 - V8, версия обработки не ниже 2.0.18)" – оптимизированный формат сообщения обмена предполагает наличие узла "ИнформацияОТипахДанных" в заголовке сообщения, в который выгружается информация о типах данных. Это разрешает ускорить механизм загрузки данных.

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

"Количество элементов в транзакции" – задает максимальное число элементов данных, которые помещаются в сообщение в границах одной транзакции базы данных. Если содержимое параметра идентично 0 (содержимое по умолчанию), то все данные помещаются в границах одной транзакции. Такой порядок есть рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Однако при создании сообщения в многопользовательском варианте имеют возможность быть конфликты блокировок промеж транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми иными пользователями. Для снижения вероятности появления подобных конфликтов допустимо определить содержимое этого параметра, отличное от значения по умолчанию. Чем меньше содержимое параметра, тем меньше вероятность конфликта блокировок, однако выше вероятность помещения в сообщение несогласованных данных.

"Выгружать объекты на которые есть права доступа" – если флажок выставлен, то выборка объектов информационной базы будет производиться учитывая прав доступа данного пользователя программы. Это предполагает применение литерала "РАЗРЕШЕННЫЕ" в тексте запроса для выборки данных.

"Автоматом удалять недопустимые символы из строчек для записи в XML" – если флажок выставлен, то при записи данных в сообщение обмена недопустимые символы будут удалены. Символы анализируются на соотношение рекомендации XML 1.0.

"Редактирования фиксации для узлов обмена после выгрузки" – поле задает порядок работы с регистрацией корректировок данных после завершения выгрузки данных. Допустимые значения:

* Не удалять регистрацию – после выгрузки данных фиксирование корректировок на узле удалена не будет.

* Целиком убрать регистрацию для узла обмена – после выгрузки данных фиксирование корректировок на узле будет целиком удалена.

* Убрать регистрацию лишь для выгруженных метаданных – после выгрузки данных фиксирование корректировок на узле будет удалена лишь для объектов метаданных, которые были заданы к выгрузке.

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

"Наименование файла, протокола обмена" – наименование файла для отображения протокола процесса обмена данными.

"Протокол загрузки (для COM - соединения)" – наименование файла для отображения протокола процесса обмена данными в базе-приемнике при обмене через COM-соединение. Обратите внимание: путь к файлу обязан быть доступен с компьютера, на котором определена база-приемник.

"Дописывать данные в протокол обмена" – если флажок выставлен, то содержимое файла протокола обмена сохраняется, если файл протокола уже имеется.

"Вывод в протокол информационных сообщений" – если флажок выставлен, то в протокол обмена будут отображаться сообщения информативного характера, кроме сообщений об ошибках обмена.

"Открывать файлы протоколов обмена после исполнения операций" – если флажок выставлен, то после исполнения обмена данными файлы протоколов обмена будут автоматом открыты для чтения.

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

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

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

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

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

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

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

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

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

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

* Вызывать мехенизмы как процедуры

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

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

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

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

Шаг 2: Создание модуля отладки

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

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

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

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

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

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

Произвольный конфигурации, реализованной на платформе 1С:Предприятие 8.

Порядок работы

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

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

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

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

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

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

На панели "Реквизиты выгрузки" допустимо определить добавочные реквизиты выгрузки данных.

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

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

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

"Загружать данные в варианте обмена (ОбменДанными.Загрузка = Истина)" – если флажок выставлен, то загрузка объектов будет выполнятся с заданным признаком загрузки. Это значит, что при записи объектов в базу данных будут отключены все платформенные и прикладные проверки. Исключение составляют документы, которые фиксируются в варианте проведения либо отмены проведения. Проведение и отмена проведения документа производится всегда без назначения режима загрузки, т.е. проверки будут производиться.

Добавочные настройки

Панель предназначен для детальной настройки выгрузки и загрузки данных.

"Порядок отладки" – флажок для задания режима отладки обмена. Если данный флажок выставлен, то механизм обмена данными не будет остановлен при возникновении какой-или ошибки. Обмен завершится до конца с выводом отладочных сообщений в файл протокола обмена. Данный порядок советуется применять при отладке правил обмена.

"Вывод информационных сообщений в окно сообщений" – если флажок выставлен, то в окно сообщений будет отображаться протокол процесса обмена данными.

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

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

"Использовать оптимизированный формат для обмена данными (V8 - V8, версия обработки не ниже 2.0.18)" – оптимизированный формат сообщения обмена предполагает наличие узла "ИнформацияОТипахДанных" в заголовке сообщения, в который выгружается информация о типах данных. Это разрешает ускорить механизм загрузки данных.

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

"Количество элементов в транзакции" – задает максимальное число элементов данных, которые помещаются в сообщение в границах одной транзакции базы данных. Если содержимое параметра идентично 0 (содержимое по умолчанию), то все данные помещаются в границах одной транзакции. Такой порядок есть рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Однако при создании сообщения в многопользовательском варианте имеют возможность быть конфликты блокировок промеж транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми иными пользователями. Для снижения вероятности появления подобных конфликтов допустимо определить содержимое этого параметра, отличное от значения по умолчанию. Чем меньше содержимое параметра, тем меньше вероятность конфликта блокировок, однако выше вероятность помещения в сообщение несогласованных данных.

"Выгружать объекты на которые есть права доступа" – если флажок выставлен, то выборка объектов информационной базы будет производиться учитывая прав доступа данного пользователя программы. Это предполагает применение литерала "РАЗРЕШЕННЫЕ" в тексте запроса для выборки данных.

"Автоматом удалять недопустимые символы из строчек для записи в XML" – если флажок выставлен, то при записи данных в сообщение обмена недопустимые символы будут удалены. Символы анализируются на соотношение рекомендации XML 1.0.

"Редактирования фиксации для узлов обмена после выгрузки" – поле задает порядок работы с регистрацией корректировок данных после завершения выгрузки данных. Допустимые значения:

* Не удалять регистрацию – после выгрузки данных фиксирование корректировок на узле удалена не будет.

* Целиком убрать регистрацию для узла обмена – после выгрузки данных фиксирование корректировок на узле будет целиком удалена.

* Убрать регистрацию лишь для выгруженных метаданных – после выгрузки данных фиксирование корректировок на узле будет удалена лишь для объектов метаданных, которые были заданы к выгрузке.

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

"Наименование файла, протокола обмена" – наименование файла для отображения протокола процесса обмена данными.

"Протокол загрузки (для COM - соединения)" – наименование файла для отображения протокола процесса обмена данными в базе-приемнике при обмене через COM-соединение. Обратите внимание: путь к файлу обязан быть доступен с компьютера, на котором определена база-приемник.

"Дописывать данные в протокол обмена" – если флажок выставлен, то содержимое файла протокола обмена сохраняется, если файл протокола уже имеется.

"Вывод в протокол информационных сообщений" – если флажок выставлен, то в протокол обмена будут отображаться сообщения информативного характера, кроме сообщений об ошибках обмена.

"Открывать файлы протоколов обмена после исполнения операций" – если флажок выставлен, то после исполнения обмена данными файлы протоколов обмена будут автоматом открыты для чтения.

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

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

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

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

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

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

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

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

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

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

* Вызывать мехенизмы как процедуры

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

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

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

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

Шаг 2: Создание модуля отладки

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

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

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

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

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

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

2018-11-15T19:32:35+00:00

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

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

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

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

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

Печать (Ctrl+P)

Обмен через универсальный формат

Подсистема «Обмен данными» библиотеки стандартных подсистем содержит 4 варианта (технологии) обмена информацией между различными информационными базами:

  • распределенные информационные базы (РИБ);
  • обмен данными через универсальный формат;
  • обмен данными по правилам обмена (правила обмена создаются при помощи конфигурации «Конвертация данных», редакция 2.1);
  • обмен данными без правил обмена.

В этой статьи рассматривается технология обмена данными через универсальный формат EnterpriseData . Данная технология доступна в “Библиотеке стандартных подсистем”, начиная с версии 2.3.1.62. выпущенной в начале 2016 году. На текущий момент, последняя редакция БСП 2.3 (для использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.8.1652 с отключенным режимом совместимости) имеет релиз 2.3.6.17 .

Рис. 1 Последние релизы БСП 2.3

Среди файлов поставки прикладных решений 1С имеется текстовый файл “Версии библиотек”, где написана на базе какой версии БСП разработано приложение, например, на основе прикладного решения УТ 11.3.3.231 легло БСП 2.3.5.65.

Отметим, что для использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.10.2168 с отключенным режимом совместимости выпущена редакция БСП 2.4.

Описание формата EnterpriseData

Что такое формат EnterpriseData ?

Это формат, позволяющий описать объект информационной базы (контрагента, накладную и т.п.) или сообщить о факте удаления этого объекта. Ожидается, что конфигурация, получившая файл в формате EnterpriseData, отреагирует соответствующим образом – создаст у себя новые объекты и удалит те, которые в файле помечены как удаленные. Он предназначен для обмена информацией между конфигурациями УТ, РТ, УНФ, БП. Также формат может использоваться для обмена информацией с любыми другими информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.

Версия формата EnterpriseData

Данные формата хранятся в XDTO – пакетах в ветки общие конфигурации базы данных, как показано на рис. 2

Рис.2 XDTO – пакеты формата данных EnterpriseData

На рис. 2 видно, что существуют несколько XDTO – пакетов. Это разные версии формата. Номер версии формата состоит из X.Y.Z, где X.Y – версия, Z – это Minor версия. Minor версия увеличивается в случае исправления ошибок и прочих изменениях, при которых: сохраняется работоспособность логики конвертации данных, основанной на предыдущей версии формата (сохранение обратной совместимости текущих алгоритмов передачи данных через формат); поддержка новых возможностей формата для логики конвертации носит добровольный характер. Примером таких изменений может быть исправление ошибки, изменения свойств объектов формата, добавление свойств, использование которых при конвертации данных не является обязательным. В остальных случаях при изменении формата увеличивается Major версия: X – в случае глобальной реструктуризации, Y – в остальных случаях.
Формат описывает представление объектов (документов или элементов справочников) в виде XML-файлов. Версия 1.0.1 содержит описание 94-х объектов из различных областей (финансы, производство, закупки и продажи, складские операции). Названия типов, как правило, хорошо понятны и не нуждаются в дополнительных объяснениях: например, «Документ.АктВыполненныхРабот» или «Справочник.Контрагенты». Как можно заметить, описание типов документов начинается с префикса «Документ.», элемента справочника – с префикса «Справочник.». Подробнее описание формата можно посмотреть
Последняя версия 1.3, однако, чаще всего используется версия 1.0. Нет большой разницы между версиями. Формат EnterpriseDataExchange_1_0_1_1 используется при обмене через веб-сервис.
Отметим, что вместе с пакетом формата данных EnterpriseData используется пакет ExchangeMessage при создании правилах конвертации. Именно этот пакет содержит тип объект AdditionalInfo, который может иметь любой тип значения и используется при при создании правила конвертации между объектами конфигураций. которые отсутствуют в формате данных. Именно, благодаря AdditionalInfo, можно адаптировать и настраивать правила обмена без изменения данных формата в XDTO-пакетах.


Рис. 3 Структура XDTO-пакетаExchangeMessage

Как обмениваться данными в формате EnterpriseData?

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

  • через выделенный файловый каталог,
  • через каталог FTP,
  • через веб-сервис, развернутый на стороне информационной базы. Файл с данными передается как параметр веб-методов.

Примечание . Для двустороннего обмена данными между сторонним приложением и конфигурацией на стороне информационной базы должен быть сделан ряд настроек – стороннее приложение должно быть зарегистрировано в информационной базе, для него должен быть определен канал обмена (через файловый или FTP-каталог) и т.п. Но для случаев простой интеграции, когда достаточно только передавать информацию от стороннего приложения в информационную базу и обратной передачи данных из информационной базы в стороннее приложение не требуется (например, интеграция онлайн-магазина, передающего информацию о продажах в «1С:Бухгалтерию»), есть упрощенный вариант работы через веб-сервис, не требующий настроек на стороне.

При обмене с использованием планов обмена конфигурации в ходе синхронизации передают только информацию об изменениях, произошедших со времени последней синхронизации (чтобы минимизировать объем передаваемой информации). При первой синхронизации конфигурация выгрузит все объекты в формате EnterpriseData в XML-файл (поскольку все они являются «новыми» для стороннего приложения).

Следующий шаг за сторонним приложением – оно должно обработать информацию из XML-файла и при следующем сеансе синхронизации поместить в секцию информацию, что сообщение от конфигурации за определенным номером успешно принято (поместить в поле ReceivedNo номер полученного от конфигурации сообщения). Сообщение-квитанция является для конфигурации сигналом, что все объекты успешно обработаны внешним приложением и информацию о них передавать больше не нужно. Помимо квитанции XML-файл от стороннего приложения также может содержать данные для синхронизации (в секции ).

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

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

Конфигурация после обработки файла сформирует XML-файл, который будет содержать сообщение-квитанцию и новые данные для синхронизации со стороны конфигурации (если такие есть со времени последнего сеанса синхронизации).

Более подробно об обмен данными с прикладными решениями на платформе «1С:Предприятие» в формате EnterpriseData можно посмотреть

Общий модуль “менеджера обмена через универсальный формат”.

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


Рис. 4 Структура модуля менеджера обмена через универсальный формат

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

Модуль состоит из нескольких крупных разделов, каждый из которых содержит свою группу процедур и функций.

  1. Комментарий. Первая строка модуля содержит комментарий с наименованием конвертации. Эта строка необходима для идентификации модуля при использовании команды в программе «Конвертация данных», редакция 3.0., например. // Конвертация УП2.2.3 от 01.06.2017 19:51:50
  2. Процедуры конвертации . Содержит предопределенные процедуры, которые выполняются на разных этапах синхронизации данных: перед конвертацией, после конвертации, перед отложенным заполнением.
  3. Правила обработки данных (ПОД) . Содержит процедуры и функции, которые описывают правила обработки данных.
  4. Правила конвертации объектов (ПКО) . Содержит процедуры и функции, которые описывают правила конвертации объектов, а также правила конвертации свойств данных объектов.
  5. Правила конвертации предопределенных данных (ПКПД). Содержит процедуру, заполняющую правила конвертации предопределенных данных.
  6. Алгоритмы . Содержит произвольные алгоритмы, которые вызываются из других правил (ПОД или ПКО).
  7. Параметры. Содержит логику заполнения параметров конвертации.
  8. Общего назначения . Содержит процедуры и функции, которые широко используются в правилах и алгоритмах.

Ниже описаны параметры процедур и функций, которые используются в нескольких видах процедур модуля менеджера.

КомпонентыОбмена. Тип – Структура . Содержит параметры и правила обмена, инициализированные в рамках выполнения сеанса обмена.

НаправлениеОбмена. Тип – Строка . Либо «Отправка», либо «Получение».

ДанныеИБ. Тип – СправочникОбъект либо ДокументОбъект .

Процедуры, связанные с событиями конвертации

Предусмотрены три предопределенные процедуры, которые вызываются в процессе конвертации:

  • ПередКонвертацией . Вызывается перед выполнением синхронизации данных. Обычно в этой процедуре размещается логика инициализации различных параметров конвертации, заполнения значений по умолчанию и т. д. Параметры:КомпонентыОбмена .
  • ПослеКонвертации . Вызывается после выполнения синхронизации данных, но до выполнения отложенного заполнения. Параметры:КомпонентыОбмена .
  • ПередОтложеннымЗаполнением . Вызывается перед выполнением отложенного заполнения. Здесь может быть расположена логика сортировки или корректировки таблицы объектов, подлежащих отложенному заполнению. Параметры:КомпонентыОбмена .

Процедуры ПОД

ЗаполнитьПравилаОбработкиДанных. Экспортная процедура, в которой располагается логика заполнения правил обработки данных. Содержит вызовы других процедур, которые добавляют в таблицу правил правило обработки конкретного объекта (см. ниже процедуры ДобавитьПОД ). Параметры: НаправлениеОбмена , ПравилаОбработкиДанных

ДобавитьПОД_<ИмяПОД>. Набор процедур, которые наполняют таблицу ПОД правилами для конкретных объектов. Количество таких процедур соответствует количеству ПОД, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаОбработкиДанных (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПОД_<ИмяПОД>_ПриОбработке. Процедура содержит текст обработчика ПриОбработке для конкретного ПОД. Обработчик предназначен для реализации логики конвертации на уровне объектов. Например, назначить конкретному объекту определенное ПКО в зависимости от содержимого объекта. Параметры:

  • ДанныеИБ либо ДанныеXDTO (в зависимости от направления обмена):
  • при отправке – объект (СправочникОбъект ,ДокументОбъект );
  • при получении – структуру с описанием объекта XDTO.
  • ИспользованиеПКО . Тип –Структура . Ключ содержит строку с именем ПКО, а значение типа Булево (Истина – ПКО используется, Ложь – ПКО не используется).
  • КомпонентыОбмена .

ПОД_<ИмяПОД>_ВыборкаДанных. Функция содержит текст обработчика ПриВыгрузке . Обработчик предназначен для реализации произвольного алгоритма выборки объектов, подлежащих выгрузке. Возвращаемое значение: массив объектов, подлежащих выгрузке. В массиве могут содержаться как ссылки на объекты информационной базы, так и структура с данными для выгрузки. Параметры: КомпонентыОбмена .

Процедуры ПКО

ЗаполнитьПравилаКонвертацииОбъектов. Экспортная процедура, в которой располагается логика заполнения правил конвертации объектов. Содержит вызовы других процедур, которые добавляют в таблицу правил правило конвертации конкретного объекта (см. ниже процедуры ДобавитьПКО ). Параметры: НаправлениеОбмена , ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ДобавитьПКО_<ИмяПКО>. Набор процедур, которые наполняют таблицу ПКО правилами для конкретных объектов. Количество таких процедур соответствует количеству ПКО, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПКО_<ИмяПКО>_ПриОтправкеДанных. Процедура содержит текст обработчика ПриОтправке для конкретного ПКО. Обработчик используется при выгрузке данных. Предназначен для реализации логики конвертации данных, содержащихся в объекте информационной базы, в описание объекта XDTO. Параметры:

  • ДанныеИБ . Тип –СправочникОбъект , ДокументОбъект . Обрабатываемый объект информационной базы.
  • ДанныеXDTO . Тип –Структура . Предназначен для доступа к данным объекта XDTO.
  • КомпонентыОбмена .
  • СтекВыгрузки . Тип –Массив . Содержит ссылки на выгружаемые объекты с учетом вложенности.

ПКО_<ИмяПКО>_ПриКонвертацииДанныхXDTO. Процедура содержит текст обработчика ПриКонвертацииДанныхXDTO для конкретного ПКО. Обработчик используется при загрузке данных. Предназначен для реализации произвольной логики конвертации данных XDTO. Параметры:

  • ДанныеXDTO . Тип –Структура . Свойства объекта XDTO, прошедшие предварительную обработку для упрощения доступа к ним.
  • ПолученныеДанные . Тип –СправочникОбъект , ДокументОбъект . Объект информационной базы, сформированный путем конвертации данных XDTO. Не записан в информационную базу.
  • КомпонентыОбмена .

ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных. Процедура содержит текст обработчика ПередЗаписьюПолученныхДанных для конкретного ПКО. Обработчик используется при загрузке данных. Предназначена для реализации дополнительной логики, которую необходимо выполнить перед записью объекта в информационную базу. Например, нужно ли загрузить изменения в существующие данные ИБ либо следует загрузить их как новые данные. Параметры:

  • ПолученныеДанные . Тип –СправочникОбъект , ДокументОбъект . Элемент данных, сформированный путем конвертации данных XDTO.

Записывается в случае, если эти данные являются для информационной базы новыми (параметр ДанныеИБ содержит значение Неопределено ).

В противном случае ПолученныеДанные замещают собой ДанныеИБ (все свойства из ПолученныеДанные переносятся в ДанныеИБ ).

Если стандартное замещение данных ИБ полученными данными не требуется, следует прописать свою логику переноса, после чего установить параметру ПолученныеДанные значение Неопределено :

  • ДанныеИБ . Тип –СправочникОбъект , ДокументОбъект . Элемент данных информационной базы, соответствующий полученным данным. Если соответствующие данные не найдены, содержит Неопределено .
  • КонвертацияСвойств . Тип –Таблица значений . Содержит правила конвертации свойств текущего объекта, инициализированные в рамках выполнения сеанса обмена.
  • КомпонентыОбмена .

Процедуры ПКПД

ЗаполнитьПравилаКонвертацииПредопределенныхДанных . Экспортная процедура, в которой располагается логика заполнения правил конвертации предопределенных данных. Параметры: НаправлениеОбмена , ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

Алгоритмы

В программе «Конвертация данных», редакция 3.0 есть возможность создавать произвольные алгоритмы, которые вызываются из обработчиков ПОД и ПКПД. Наименование, параметры и содержимое алгоритмов определяются при разработке правил.

Параметры

ЗаполнитьПараметрыКонвертации. Экспортная процедура, в которой происходит заполнение структуры с параметрами конвертации. Параметры: ПараметрыКонвертации (тип – Структура ).

Процедуры и функции общего назначения

ВыполнитьПроцедуруМодуляМенеджера. Параметры: ИмяПроцедуры (строка), Параметры (структура). Экспортная процедура, которая предназначена для вызова неэкспортной процедуры модуля, имя и параметры которой получены на вход. Позволяет выполнить вызов процедуры или функции по строке без использования метода Выполнить .

ВыполнитьФункциюМодуляМенеджера. Параметры: ИмяПроцедуры (строка), Параметры (структура). Функция, назначение аналогично ВыполнитьПроцедуруМодуляМенеджера . Отличие в том, что она вызывает функцию и возвращает ее значение.