Задача состоит в том, чтобы доработать типовой обмен между типовыми же конфигурациями.
В качестве эксперимента возьмем УНФ 1.6.27.232 и БП 3.0.156.17
В обеих конфигурациях есть самописный справочник mv_ТемыОбучения. Чтобы не захламлять статью ненужными пока деталями, справочник будет простой, содержащий только стандартные реквизиты: rод, наименование, пометка удаления.
Необходимо сделать односторонний обмен элементами справочника из УНФ в БП.
Сделать это можно несколькими способами.
- Доработать пакет XDTO EnterpriseData со всеми вытекающими, т.е. снятием с поддержки и самоcтоятельно следить за изменениями при обновлении.
- Разными экзотическими способами через самописные файлы json, xml или при посредстве КД2.
- С помощью расширения пакета ED. Это стало возможным, начиная с версии БСП 3.1.3
Для меня последний выглядит предпочтительней.
В УНФ 1.6.27.232 версия БСП "3.1.7.61", В БП 3.0.156.17 версия БСП "3.1.9.421"
Узнать версию БСП можно посмотрев в конфигураторе ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы
1. Создадим расширяющий пакет XDTO "Ex1akru" на основе ED 1.10
URI пространство имен: http://v8.1c.ru/edi/edi_stnd/1akru/1.10
Директивы импорта: http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10
http://www.1c.ru/SSL/Exchange/Message
Типы значений: "СправочникСсылка.mv_ТемыОбучения" с базовым типом Ref (http://www.1c.ru/SSL/Exchange/Message)
Типы объектов:
КлючевыеСвойстваmv_ТемыОбучения
со свойствами:
Ссылка тип СправочникСсылка.mv_ТемыОбучения (http://v8.1c.ru/edi/edi_stnd/1akru/1.10)
Наименование тип string (http://www.w3.org/2001/XMLSchema)
КодВПрограмме тип string (http://www.w3.org/2001/XMLSchema)
Справочник.mv_ТемыОбучения тип Object (http://www.1c.ru/SSL/Exchange/Message)
со свойствами:
КлючевыеСвойства тип КлючевыеСвойстваmv_ТемыОбучения (http://v8.1c.ru/edi/edi_stnd/1akru/1.10)
3. Выгрузим пакет XML и импортируем его в БП
4. Заходим в общий модуль ОбменДаннымиПереопределяемый и в процедуре ПриПолученииДоступныхРасширенийФормата пишем РасширенияФормата.Вставить("http://v8.1c.ru/edi/edi_stnd/1akru/1.10", "1.10");
Такую же операцию проделываем в БП
4. В плане обмена "СинхронизацияДанныхЧерезУниверсальныйФормат" включаем в состав наш справочник и запрещаем авторегистрацию.
5. В макете "ПравилаРегистрации" прописываем правило регистрации справочника.
6. В подписку на события "СинхронизацияДанныхЧерезУниверсальныйФорматРегистрация" и "СинхронизацияДанныхЧерезУниверсальныйФорматРегистрацияУдаления", добавляем в источник наш СправочникОбъект
7. В общий модуль "МенеджерОбменаЧерезУниверсальныйФормат18" прописываем правила регистрации
В процедуре "ЗаполнитьПравилаОбработкиДанных" в направлении "Отправка"
и правило:
В процедуре "ЗаполнитьПравилаКонвертацииОбъектов" в направлении "Отправка"
и правило:
8. В БП в общий модуль "МенеджерОбменаЧерезУниверсальныйФормат13" прописываем правила регистрации
В процедуре "ЗаполнитьПравилаОбработкиДанных" в направлении "Получение"
и правило:
В процедуре "ЗаполнитьПравилаКонвертацииОбъектов" в направлении "Получение"
и правило:
Для написания правил можно воспользоваться КД 3.1 (об этом в другой статье)
Регистрируем элемент справочника к обмену, синхронизируем обе базы и радуемся результату.