Содержание:
1. Зачем изменять типовой XDTO-пакет?
2. Образцы описания документа в XDTO-пакете
3. Обновление 1С 8.3 записей регистра сведений НастройкиОбменаДаннымиXDTO
В статье описан порядок действий при подключении нетиповых документов к механизму «Синхронизация данных через универсальный формат» (КД 3.0).
В контексте данной статьи термин «нетиповой» означает, что документ не описан ни в одном из XDTO-пакетов механизма «Синхронизация данных через универсальный формат».
Если же документ описан в типовом XDTO-пакете, то порядок его подключения к обмену можно посмотреть в статье «Обмен через универсальный формат (КД 3.0): подключение типового документа».
1. Зачем изменять типовой XDTO-пакет?
Основной смысл технологии КД 3.0 (обмен через универсальный формат) – это добиться «универсальности» правил обмена, чтобы правила выгрузки/загрузки объектов не зависели от того, какая конфигурация (или ее релиз) находятся на том «конце провода». И если мы корректируем типовой XDTO-пакет, то мы эту «универсальность» разрушаем.
Но в полной мере преимуществом «универсальности» может воспользоваться только сама 1С (и ее партнеры – разработчики конфигураций), которая таким образом упрощает себе процедуры обновления правил обмена при переходе от одного релиза типовых конфигураций 1С 8.3 к другим, а также упрощает подключения к обменам новых конфигураций.
На стороне пользователя выгоды от «универсальности» гораздо меньше, ведь он работает с конкретной конфигурацией-источником и конкретной конфигурацией-приемником. Все изменения правил обмена между этими конфигурациями (в т.ч. структура XDTO-пакетов) согласованы внутри его «корпорации». А то, что его правила обмена становятся несовместимы с правилами обмена, принятыми в других «корпорациях», его в большинстве случаев не волнует. Поэтому изменить структуру XDTO-пакета обычно некритично.
Более того, если речь идет о добавлении в обмен новых объектов, то технически это проще сделать через технологию КД 2.0:
· Там нужно писать всего один комплект правил обмена вместо двух для КД 3.0.
· Включение в обмен КД 3.0 промежуточного «универсального формата» сильно повышает уровень абстракции (он уже не связан напрямую с прикладной областью) и избыточности (он же «универсальный»). А это, в свою очередь, повышает требования к квалификации специалистов, которые этот обмен будут настраивать.
Но в последних конфигурациях 1С продвигается обмен именно по технологии КД 3.0. И чтобы для своих нетиповых объектов не строить параллельно еще и второй механизм обмена (на КД 2.0), приходится корректировать типовые XDTO-пакеты.
Есть описания примеров, когда для нетиповых объектов создаются отдельные XDTO-пакеты, а для работы с ними в 1С запускается отдельная 1С 8.3 XDTO-фабрика. Но это опять-таки – построение параллельного механизма обмена (два механизма на КД 3.0), а этого хочется избежать.
Итак, если мы хотим остаться внутри единого механизма «Синхронизация данных через универсальный формат», и для нас некритичен факт изменения типового XDTO-пакета, то изменим типовой XDTO-пакет.
2. Образцы описания документа в XDTO-пакете
Объекты обмена, которые включены в состав механизма «Синхронизация данных через универсальный формат», описаны в XDTO-пакетах, наименования которых начинаются с «EnterpriseData». Например, EnterpriseData_1_2_3 … EnterpriseData_1_6_20, где 1_2, … 1_6 – это номера «версий форматов».
Добавлять описание своего объекта необязательно во все XDTO-пакеты EnterpriseData_1_2_3 … EnterpriseData_1_6_20. Достаточно это сделать только для того номера версии формата, на котором обмениваются наши конкретные конфигурации. Узнать его можно в настройках синхронизации данных.
Т.е. в нашем примере достаточно скорректировать пакет EnterpriseData_1_5_20.
Корректировать XDTO-пакет можно либо вручную, либо с использованием специализированного редактора.
Посмотрим на образец описания документа. В примере добавляем описание нетипового документа «экзРапортФ114». Вносим описание типа значения:
Вносим описание его структуры (реквизиты шапки, в т.ч. ключевые свойства, табличную часть «Сырье» и реквизиты строки табличной части:
Такую настройку необходимо выполнить в обеих обменивающихся конфигурациях. Поскольку одноименные XDTO-пакеты во всех конфигурациях одинаковы, то настройку достаточно произвести в одной из них, а во вторую – перенести настройки через «сравнение и объединение».
3. Обновление 1С 8.3 записей регистра сведений НастройкиОбменаДаннымиXDTO
После добавления описания документа в XDTO-пакет есть один тонкий момент. Даже если Вы включили свой документ (в примере - это «экзРапортФ114» синоним «Рапорт на выработку комбикорма») в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат», и он появится на форме регистрации изменений, этот документ еще не включен в механизм обмена. Об этом свидетельствует его отсутствие на ветке «AvailableObjectTypes» файла обмена.
Дело в том, что механизм обмена содержит в себе описание «доступных объектов», которое среди прочего хранится в регистре сведений НастройкиОбменаДаннымиXDTO. «Доступные объекты» в этом регистре заполняются:
А) Из состава XDTO-пакет при первичной настройке плана обмена à определяются объекты, которые «в принципе могут обмениваться».
Б) При анализе правил обмена текущей конфигурации à уточняется перечень объектов, доступных на «прием» и «отправку» относительно текущей базы.
В) При анализе ветки AvailableObjectTypes полученного файла обмена от конфигурации-корреспондента à уточняется перечень объектов, доступных на «прием» и «отправку» относительно конфигурации-корреспондента.
Объект становится «доступным на отправку», если он «в принципе может обмениваться» (выполнен п.А), имеет правила «на отправку» в текущей базе (п.Б) и имеет правила «на приемку» в базе-корреспонденте (п.В). Аналогично «доступен на приемку», если есть п.А, есть правила «на приемку» у текущей (п.Б) и правила «на отправку» у корреспондента (п.В).
Для того, чтобы выполнить п.Б и п.В достаточно настроить правила обмена (инструкции и примеры можно найти в интернете оп запросу «1С:Конвертация данных 3»).
А вот с п.А сложнее. Как уже сказано, он выполняется при первичной настройке плана обмена 1С 8.3. Когда Вы добавляете свой объект, как правило, первичная настройка обмена уже произведена. Как быть?
Можно, например, в настройку синхронизации добавить команду «Обновить настройку синхронизации», которая перечитывает состав XDTO-пакетов. Текст модуля этой команды приведен в прил.1.
Данную команду необходимо настроить и выполнить в обеих обменивающих конфигурациях.
После того как Вы включили свой нетиповой документ в состав «доступных объектов», в т.ч. выполнили настройку правил обмена, Ваш документ появится на ветке AvailableObjectTypes.
В примере выполняется односторонний обмен документом «экзРапортФ114» из конфигурации Бухгалтерия 3.0 в конфигурацию «1С:ERP Управление предприятием 2». Поэтому в файле, выгруженном из «1С:Бухгалтерия 3.0» документ прописан на ветке «Sending».
А в файле, выгруженном из «1С:ERP Управление предприятием 2», документ прописан на ветке «Receiving»/
Нетиповой документ готов к обмену через типовой механизм.
Если документ не описан в XDTO-пакете, то для его включения в обмен посредством механизма «Синхронизация данных через универсальный формат» необходимо выполнить следующие процедуры:
1. Описать документ в XDTO-пакете обеих обменивающихся конфигураций.
2. Обновить записи регистра сведений НастройкиОбменаДаннымиXDTO обеих обменивающихся баз.
3. Выполнить действия для «типовых» документов (см. статью «Обмен через универсальный формат (КД 3.0): подключение типового документа», - ссылка в начале):
a. В конфигурации-источнике подключить документ в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат».
b. Настроить правила обмена (КД 3.0) в обеих конфигурациях
Данный способ универсален и пригоден для любых конфигураций и любых видов объектов (Документов, Справочников и т.п.).
Приложение 1
Текст модуля команды «Обновить настройку синхронизации».
Специалист компании ООО «Кодерлайн»
Игорь Борисенко.