Чтобы продемонстрировать возможности использования планов обмена в расширении, доработаем немного наш пример, рассмотренный в разделе «».
Добавим в нашу конфигурацию расширение, реализующее создание и описание характеристик номенклатуры. Затем позаимствуем в расширение план обмена, с помощью которого в расширяемой конфигурации выполняется обмен данными универсальным образом. Включим в его состав новые объекты, добавленные расширением, а также объекты из расширяемой конфигурации, не включенные ранее в состав этого плана обмена. Кроме того, добавим в заимствованный план обмена новый реквизит и отобразим его в форме узла.
Чтобы реализовать поставленные задачи, загрузим в нашу конфигурацию (с диска, прилагающегося к книге) или создадим с нуля расширение для описания характеристик номенклатуры. Это расширение содержит специальным образом связанные между собой объекты: план видов характеристик Расш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. Данные о характеристиках номенклатуры в узле обмена «Розничный склад»
Выгрузим эти изменения и прочитаем их в центральной базе. Все работает правильно. Все доработки, сделанные ранее в расширяемой конфигурации (стратегия распространения данных, разрешение коллизий, ручная регистрация данных и т. п.), также функционируют, поскольку в расширении мы их никак не изменяли.