Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: Использование планов обмена в расширении конфигурации
Дальше: Обмен данными в распределенной информационной базе

Универсальный способ обмена данными

Чтобы продемонстрировать возможности использования планов обмена в расширении, доработаем немного наш пример, рассмотренный в разделе «».

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

Чтобы реализовать поставленные задачи, загрузим в нашу конфигурацию (с диска, прилагающегося к книге) или создадим с нуля расширение для описания характеристик номенклатуры. Это расширение содержит специальным образом связанные между собой объекты: план видов характеристик Расш1_ВидыХарактеристик (для хранения видов характеристик номенклатуры), справочник Расш1_ЗначенияХарактеристик (для хранения дополнительных значений видов характеристик) и регистр сведений Расш1_ДополнительныеХарактеристики (для хранения значений характеристик номенклатуры).

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

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

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

Для этого позаимствуем в расширение план обмена УдаленныеСклады. Объекты расширяемой конфигурации, которые нужно включить в состав плана обмена, тоже надо заимствовать. Поэтому позаимствуем из расширяемой конфигурации справочник ТипыЦен и регистр сведений ЦеныНоменклатуры.

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

Рис. 3.35. Состав расширяющего плана обмена «УдаленныеСклады»

После этого в модули новых объектов (плана видов характеристик Расш1_ВидыХарактеристик и справочника Расш1_ЗначенияХарактеристик), участвующих в обмене, поместим процедуру ПриУстановкеНовогоКода() – листинг 3.103.

Листинг 3.103. Процедура «ПриУстановкеНовогоКода»

Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)

 

Префикс = Обмен.ПолучитьПрефиксНомера();

 

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

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

Добавим в заимствованный план обмена реквизит Расш1_СпособОбмена. Чтобы отобразить его в форме узла, позаимствуем эту форму из расширяемой конфигурации. Откроем форму в расширении, выделим основной реквизит формы Объект и нажмем кнопку Добавить в расширение в командной панели окна реквизитов формы. После этого перетащим новый реквизит плана обмена в окно элементов формы (рис. 3.36).

Рис. 3.36. Расширяющая форма узла плана обмена «УдаленныеСклады» в конфигураторе

Обновим конфигурацию базы данных, примем все изменения в окне реструктуризации информации и запустим «1С:Предприятие». Форма узла обмена примет следующий вид (рис. 3.37).

Рис. 3.37. Форма узла плана обмена «Удаленные склады» в режиме «1С:Предприятие»

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

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

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

В центральной базе в обработке Обмен с удаленными складами выберем узел обмена Розничный склад. Сначала удалим всю регистрацию изменений для этого узла обмена с помощью кнопки Удалить регистрацию изменений, а потом снова выполним полную регистрацию изменений по этому узлу с помощью кнопки Полная регистрация изменений. Затем нажмем кнопку Выгрузить данные и запишем все изменения, зарегистрированные в центральной базе для розничного склада, в файл выгрузки.

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

В обработке Обмен с удаленными складами выберем узел обмена Центральный офис, нажмем кнопку Загрузить данные и получим все изменения, переданные от центральной базы. Помимо ранее передаваемых данных тут будут данные о ценах и о характеристиках номенклатуры. Добавим новый вид характеристики (его код будет иметь префикс «РС») и значение этой характеристики для номенклатуры (рис. 3.38).

Рис. 3.38. Данные о характеристиках номенклатуры в узле обмена «Розничный склад»

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

Назад: Использование планов обмена в расширении конфигурации
Дальше: Обмен данными в распределенной информационной базе