В начало

Перенос документа «ЕжиИУжи» с причиндалами

 

            Имеется некий документ под названием «ЕжиИУжи», для которого существует план обмена «ОбменЕжамиИУжами», документы нормально переносятся из центральной базы  в базу филиала, но с небольшой оговоркой. Поскольку документ связан со справочником «Животинки», то возникают ситуации, когда в базе-приемнике нет соответствующего элемента и тогда возникает ситуация, когда вместо элемента справочника в документе показывается ссылка на него. Есть несколько путей решения данной проблемы: нужно или предварительно переносить справочник «Животинки» из центральной базы в базу филиала, или же все организовать в одном плане обмена «ОбменЕжамиИУжами».

 

Рис. Структура документа «ЕжиИУжи»

 

            В данном документе реквизиты табличных частей «Еж» и «Уж» имеют тип «СправочникСсылка.Животинки».

            Сначала изменяем состав плана обмена. Добавляем в состав справочник «Животинки».

Рис. План обмена «ОбменЕжамиИУжами», изменение состава

 

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

 

Листинг. Модуль формы списка плана обмена

Процедура ЗарегистрироватьИзмененияНажатие(Элемент)

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |          ЕжиИУжиИзменения.Ссылка

                        |ИЗ

                        |          Документ.ЕжиИУжи.Изменения КАК ЕжиИУжиИзменения";

           

            Результат = Запрос.Выполнить();

            Выборка = Результат.Выбрать();

            ТекУзел = ЭлементыФормы.ПланОбменаСписок.ТекущаяСтрока;

           

            Пока Выборка.Следующий() Цикл

                        //Регистрируем документы

                        ПланыОбмена.ЗарегистрироватьИзменения(ТекУзел, Выборка.Ссылка);

                       

                        //Обходим первую табличную часть

                        Для Каждого Ужа Из Выборка.Ссылка.Ужи Цикл

                        ПланыОбмена.ЗарегистрироватьИзменения(ТекУзел, Ужа.Уж.Ссылка);

                        КонецЦикла;

                       

                        //Обходим вторую табличную часть

                        Для Каждого Ежа Из Выборка.Ссылка.Ежи Цикл

                        ПланыОбмена.ЗарегистрироватьИзменения(ТекУзел, Ежа.Еж.Ссылка);

                        КонецЦикла; 

            КонецЦикла;

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

 

Функция ЭтоПредопределенныйУзел(Узел)

            Возврат Узел = ПланыОбмена.ОбменЕжамиИУжами.ЭтотУзел();

КонецФункции

 

Процедура ПланОбменаСписокПриАктивизацииСтроки(Элемент)

            Если ЭтоПредопределенныйУзел(ЭлементыФормы.ПланОбменаСписок.ТекущаяСтрока) Тогда

                        ЭлементыФормы.ЗарегистрироватьИзменения.Доступность = Ложь;

            Иначе

                        ЭлементыФормы.ЗарегистрироватьИзменения.Доступность = Истина;

            КонецЕсли;

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

 

            Аналогичные изменения проводим в конфигурации филиала.

            Далее запускаем режим отладки и проверяем. Создаем новый документ.

Рис. Новый документ «ЕжиИУжи»

 

            В данном документе, в табличных частях используются элементы справочника «Животинки», которых нет в базе филиала. Документа №5, к слову сказать, тоже нет

Рис. Справочник «Животинки»:

в центральной базе (слева) и в филиале (справа)

 

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

Рис. Фрагмент файла-сообщения «Сообщение_ОбменЕжамиИУжами_ФЛ-ЦБ.xml»

 

            Переходим в пользовательский режим базы филиала и принимаем данные. При этом появляется новый документ «ЕжиИУжи», а также новые элементы справочника «Животинки».

 

Рис. Документ «ЕжиИУжи» и справочник «Животинки» в базе филиала

 

            Таким образом, мы организовали обмен документом «ЕжиИУжи» со связанным с ним объектом – справочником «Животинки» между центральной базой «ЦБ» и филиалом «ФЛ».