В начало

Перенос документа «ПриемНаРаботу» с причиндалами

 

            Необходимо перенести документ «ПриемНаРаботу» со связанными объектами, а именно со справочниками: «Должности», «Подразделения» и «Сотрудники».  Это необходимо потому, что в базе источнике может и не быть некоторых элементов связанных объектов.

            Сначала изменим состав в плане обмена, добавим нужные справочники.

 

Рис. План обмена «ПриемНаРаботу», изменение состава

 

            Поскольку для каждого конкретного узла обмена мы регистрируем изменения специальной процедурой, изменим и ее. Для этого переходим в модуль формы списка плана обмена, где она и находится.

 

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

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

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

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

            "ВЫБРАТЬ

            |         ПриемНаРаботуИзменения.Ссылка,

            |         ПриемНаРаботуИзменения.Ссылка.Сотрудник КАК Сотрудник,

            |         ПриемНаРаботуИзменения.Ссылка.Должность КАК Должность,

            |         ПриемНаРаботуИзменения.Ссылка.Подразделение КАК Подразделение

            |ИЗ

            |         Документ.ПриемНаРаботу.Изменения КАК ПриемНаРаботуИзменения";

           

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

           

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

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

           

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

                        //Регистрация документа "ПриемНаРаботу"

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

                        //Регистрация, связанных справочников

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

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

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

            КонецЦикла;

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

 

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

            Возврат Узел = ПланыОбмена.ПриемНаРаботу.ЭтотУзел();

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

 

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

            //На "Элемент" подсказка через точку не работает:(

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

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

            Иначе

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

            КонецЕсли;

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

 

            Далее внесем изменения в конфигурацию филиала. Также, для проверки нужно удалить в базе филиала последний документ «ПриемНаРаботу», а также сотрудника «Иревли Н», должность «водитель» и подразделение «Транспортный отдел».

            Затем вертаемся в центральную базу, перепроводим последний документ «ПриемНаРаботу», переходим в план обмена, регистрируем изменения. Далее выполняем обмен обработкой «ОбменПриемомНаРаботу».

Рис. Обработка «Обмен приемом на работу»

 

            Переходим в базу филиала и также запускаем обработку «ОбменПриемомНаРаботу».  Смотрим сам документ «ПриемНаРаботу».

Рис. Документ «ПриемНаРаботу» в базе филиала

 

            Документ, который мы предварительно удалили восстановился из базы филиала, все колонки документа заполнились, а значит, что и справочники «Сотрудники», «Должности» и «Подразделения» также восстановились.