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

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

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

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

Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена. В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить». Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными 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 есть возможность создавать произвольные алгоритмы, которые вызываются из обработчиков ПОД и ПКПД. Наименование, параметры и содержимое алгоритмов определяются при разработке правил.

Параметры

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

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

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

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

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

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

Для связи нескольких баз существует Обмен 1С. Как он работает?

Что такое Обмен 1С?

Есть сеть магазинов и центральный офис. В каждом магазине и в офисе есть склад. Товары перемещаются со склада на склад (в основном с центрального на склады магазинов), и в магазинах — продаются.

Используется база 1С Розница в офисе и эта же база в каждом магазине. Базы в магазинах – подчинены базе в офисе.

В офисе создают документы о перемещении товаров со склада на склад, назначаются цены. Документы заливаются в подчиненные базы и там «появляются» товары.

В магазинах создаются документы о совершенных продажа товаров. Документы заливаются в офисную базу и там «появляются» продажи.

Такая схема называется – распределенная информационная база (РИБ). Процедуры «заливки» документов – двусторонний обмен 1С. А настройка этой схемы – УРИБ или УРИБД (управление распределенными информационными базами данных).

Принципы Обмена справочниками в 1С

Справочники 1С (а набор всех справочников «в комплексе» называют НСИ – нормативно справочная информация) – в разных базах обычно должны быть едины. Это значит, что даже если баз несколько, то список товаров, складов, контрагентов – един в разных базах.

Обычная практика, когда в одной базе справочник разрешено редактировать, а в остальные он копируется («мигрирует»). Как мы раньше уже обсуждали – у каждого элемента 1С есть уникальный идентификатор – GUID . Справочники обычно копируются вместе со своим GUID, и таким образом идентичны во всей распределенной информационной системе.

В ином случае, когда соединяются несколько изначально существующих баз, или когда справочники можно создавать в разных базах одновременно, их GUID будут разными. Для этого существует механизм сопоставления. В специальный регистр сведений при обмене 1С записывается информация, что элемент из базы №1 с GUID ххх равен элементу в этой базе с GUID yyy. Первоначально имеющиеся элементы, которые уже не равны, нужно сопоставить автоматически (по другим реквизитам, например по наименованию или по ИНН и КПП) или вручную.

Принципы Обмена документами в 1С

Документы в 1С проводятся по регистрам и после этого считаются «проведенными». Это рождает понятные сложности при переносе.

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

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

Допустим, нам нужно перенести элемент справочника Номенклатура. У этого справочника есть 10 полей, из которых 5 являются строками и числами, а 5 – ссылками на другие справочники.

Соответственно при переносе одного элемента Номенклатуры мы вынуждены искать и переносить также 5 элементов других справочников.

Таким образом при переносе одного элемента справочника или одного документа, по ссылке может быть перенесено 100 и больше других объектов 1С.

Фактически говорят, что почти все справочники конфигурации так или иначе ссылаются друг на друга.

Планы обмена 1С

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

Что делать? Провести снова полный обмен 1С? Долго и неэффективно! Гораздо лучше было бы вычислить что именно было добавлено или изменено пользователями в офис, чтобы в магазины попали только изменения.

Для этого существует – планы обмена 1С. Программист заранее создает план обмена 1С для проведения обменов 1С с какой-либо другой базой данных, например с нашими магазинами.

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

Создание УРИБ 1С

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

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

  • Обмен 1С с сайтом: обмен с сайтом 1С:Битрикс
  • Обмен 1С УПП-УТ или УТ-Розница: типовые обмены с конфигурациями-побратимами
  • Полный – обмен 1С с базой данных на базе такой же конфигурации.

РИБ – распределенная информационная база – можно сделать в том числе на базе плана обмена 1С «Полный». В конфигураторе в этом плане обмена 1С должна стоять галочка «Распределенная информационная база».

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

Зайдем в план обмена 1С (Операции/План обмена; также могут быть в другом меню, часто в меню Сервис/ХХХ).

В списке баз данных в плане обмена 1С есть одна с зеленым кружочком на картинке. Этот элемент обозначает ЭТУ БАЗУ. Остальные элементы обозначают ДРУГИЕ базы, с которыми идет обмен 1С.

Необходимо, чтобы было заполнено и наименование и код у всех элементов.

Чтобы создать подчиненную базу «магазина»:

  • Установите кусор в списке на элемент плана обмена 1С, который мы создали как «базу магазина»
  • Выберите пункт меню «Действия/Создать начальный образ».

В результате будет создана одна база, с выгруженными в нее начальными данными. Это нужно повторить для каждого элемента плана обмена 1С, кроме ТЕКУЩЕЙ БАЗЫ.

Теория проведения обменов 1С

Теория обмена 1С достаточно проста:

  • Одна из баз (чаще база центра) инициирует обмен 1С по расписанию или «по событию» (вход в базу определенного пользователя и т.п.)
  • Обмен 1С заключается в выгрузке из базы файла
  • Файл должен быть перемещен в то место, откуда его сможет забрать подчиненная база (чаще шара или ftp, реже электронная почта)
  • Подчиненная база загружает полученный файл
  • В качестве подтверждения, что информация получена, подчиненная база выгружает «ответный» файл, который таким же образом загружается обратно в центральную базу
  • Сеанс обмена 1С завершен.

Существуют другие методы обмена 1С, не через файлы, а например, через прямое COM-соединение между двумя базами. Его плюсы:

  • Не требуется «место для хранения и передачи файлов»
  • Не требуется повторной загрузки подтверждения
  • Все происходит быстрее за счет первых двух пунктов.

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

Настройка РИБ 1С

В константах типовых конфигураций (Операции/Константы; или Сервис/Настройки программы) — обычно есть общая настройка обменов 1С. Это – префикс в кодах элементов и номерах документов, чтобы легко определять в какой базе он создан. А также внутренний метод сохранения информации о месте создания справочников и документов.

Теперь необходимо настроить как будет происходить сам процесс периодического обмена 1С информацией между созданными базами.
Все настройки РИБ в 1С находятся в типовых конфигурациях обычно в меню Сервис/Распределенные информационные базы/Настроить узлы РИБ.

Для каждого ранее созданного элемента «удаленной базы магазина» необходимо добавить элемент настройки.

В настройке указывается способ обмена 1С: файл (шара), файл (FTP), файл (e-mail).

Создание и настройка распределенной информационная базы 1С в тонком клиенте

Посмотрим аналогичную настройку в типовой конфигурации на базе тонкого клиента – Управление торговлей редакция 11.
Настройки (и создание с нуля) находятся на закладке интерфейса Администрирование. Пункт «Обмен данными».

Выберем «Создать обмен в распределенной информационной базе».

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

Вот вариант настройки через файл на FTP.

Название нашей настройки обмена 1С.

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

В отличии от конфигурации на толстом клиенте обе настройки обмена 1С находятся в одном месте.

Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим 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 – файл обработки выгрузки-загрузки данных для семерки.

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

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

    Есть дописанная БД 1С Управление Торговлей (далее УТ) редакции 10.2 на платформе 8.1.
    И есть стандартная БД 1С Бухгалтерия на платформе 8.3.

    Задача:

    Наладить обмен данными между базами.

    Решение:

    Установил 1С Конвертация данных, редакция 2.1.
    Загрузил.
    Запускаю "Стартовый помощник" (рис.1).

    1. Далее.
    2. Выбираю "Создать новые правила обмена данными (с нуля)". Далее.
    3. На третьем шаге программа просит указать конфигурации источника и приемника.
    Создаю конфигурацию источника (1С УТ):
    - так как у меня 1С УТ на платформе 8.1, то с диска ИТС беру внешнюю обработку MD81Exp.epf (ее можно скачать) .
    - открываю 1С УТ. Файл --> Открыть --> MD81Exp.epf .

    Указываю файл, в который будет выгружаться информация о структуре метаданных. Он должен быть в формате XML.

    Нажимаю кнопку "Выгрузить".

    Аналогично проделываю все тоже самое с базой приемником. С 1С Бухгалтерией 8.3. Только для нее беру внешнюю обработку MD83Exp.epf (ее можно скачать) .

    Перехожу обратно в 1С Конвертация данных.

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

    4. На четвертом шаге выбираю пункт "Автоматически создать все возможные правила обмена данными".

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