Перенос РС подчиненного регистратору в РС где регистратор "Перенос данных".

1. kh_xen 24.03.21 12:41 Сейчас в теме
Добрый день, коллеги!

Суть задачи: обмен ЗУП 3.1 - УПП 1.3.
Подзадача: перенос данных регистра "КадроваяИсторияСотрудников" в регистр "РаботникиОрганизаций". В качестве регистратора в базе приемнике хотелось бы видеть документ "Перенос данных".

Для документа "Перенос данных" создан ПКО, в котором в обработчике "ПриВыгрузке" следующий код:

ВходящиеДанные = Новый Структура;
ВходящиеДанные.Добавить("Номер", Строка(Год(ТекущаяДата())) + "-ЗУП");
ВходящиеДанные.Добавить("Дата", НачалоГода(ТекущаяДата());
ВходящиеДанные.Добавить("Организация", Справочники.Организации.НайтиПоНаименованию("ООО ""11"""));
ВходящиеДанные.Добавить("ПериодРегистрации", НачалоГода(ТекущаяДата());

ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПереносДанных");

Так как в источнике этого документа нет, то по моей идее (возможно ошибочной) этим кодом мы найдем документ, а если его нет, то создадим.

Далее этот документ необходимо использовать в качестве регистратора для РС "РаботникиОрганизаций". Значит нужен параметр куда будем передавать найденную ссылку.

Тут первый вопрос: в каком обработчике это можно сделать? Пробовала в ПКО "Переноса данных", в обработчике "ПослеЗагрузки"

Данные самого РС выбираю запросом и в ПВД выгружаю по правилу. Ниже, где регистратор должен быть документ "Перенос данных".

Пока Выборка.Следующий() Цикл
	ДанныеГрафикаДо = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Выборка.Сотрудник, "ГрафикРаботы", Выборка.Период);
	РезультатДанныеГрафикаДо = ДанныеГрафикаДо.Получить(0);
	
	Если Выборка.ПериодЗавершения <>Дата(1,1,1) Тогда
		ДанныеГрафикаПосле = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Выборка.Сотрудник, "ГрафикРаботы", Выборка.Период-86400);
		РезультатДанныеГрафикаПосле = ДанныеГрафикаПосле.Получить(0);	
	КонецЕсли;
	
	ВходящиеДанные = Новый Структура;
	ВходящиеДанные.Вставить("Период", Выборка.Период);
	ВходящиеДанные.Вставить("Регистратор", Параметры.ПереносДанных);
	ВходящиеДанные.Вставить("НомерСтроки", 1);
	ВходящиеДанные.Вставить("Активность", Выборка.Активность);
	ВходящиеДанные.Вставить("Сотрудник", Выборка.Сотрудник);
	ВходящиеДанные.Вставить("Организация", Выборка.Организация);
	ВходящиеДанные.Вставить("ЗанимаемыхСтавок", Выборка.ЗанимаемыхСтавок);
	ВходящиеДанные.Вставить("ОбособленноеПодразделение", Выборка.ОбособленноеПодразделение);
	ВходящиеДанные.Вставить("ПодразделениеОрганизации", Выборка.ПодразделениеОрганизации);
	ВходящиеДанные.Вставить("Должность", Выборка.Должность);
	ВходящиеДанные.Вставить("ГрафикРаботы", РезультатДанныеГрафикаДо.ГрафикРаботы);
	ВходящиеДанные.Вставить("ПериодЗавершения", Выборка.ПериодЗавершения);
	ВходящиеДанные.Вставить("ЗанимаемыхСтавокЗавершения", Выборка.ЗанимаемыхСтавокЗавершения);
	ВходящиеДанные.Вставить("ОбособленноеПодразделениеЗавершения", Выборка.ОбособленноеПодразделениеЗавершения);
	ВходящиеДанные.Вставить("ПодразделениеОрганизацииЗавершения", Выборка.ПодразделениеОрганизацииЗавершения);
	ВходящиеДанные.Вставить("ДолжностьЗавершения", Выборка.ДолжностьЗавершения);
	ВходящиеДанные.Вставить("ГрафикРаботыЗавершения", РезультатДанныеГрафикаПосле.ГрафикРаботы);
	ВходящиеДанные.Вставить("ПричинаИзмененияСостояния", Выборка.ПричинаИзмененияСостояния);
	ВходящиеДанные.Вставить("ПричинаИзмененияСостоянияЗавершения", Выборка.ПричинаИзмененияСостоянияЗавершения);
	

	ВыгрузитьПоПравилу(,,ВходящиеДанные,,"РаботникиОрганизаций");
КонецЦикла;
Показать
По теме из базы знаний
Найденные решения
9. RustamZz 24.03.21 16:46 Сейчас в теме
(1) Вам не нужны ПВД на этот объект. В ПКС реквизита документ в ПКО на регистр сведений присвойте переменной Значение структуру с полями реквизитами Перенос данных. Источник у этого реквизита будет пустой.
10. ZergKRSK 130 25.03.21 07:17 Сейчас в теме
(3) держи, накидал тебе для примера. Думаю суть поймешь и сделаешь по аналогии.
Прикрепленные файлы:
ПравилаОбменаДанными.xml
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 130 24.03.21 12:51 Сейчас в теме
(1) блин много объяснять надо бежать, делал подобное. Если никто не подскажет завтра смогу помочь.
3. kh_xen 24.03.21 12:57 Сейчас в теме
(2) В любом случае буду ждать.
10. ZergKRSK 130 25.03.21 07:17 Сейчас в теме
(3) держи, накидал тебе для примера. Думаю суть поймешь и сделаешь по аналогии.
Прикрепленные файлы:
ПравилаОбменаДанными.xml
11. kh_xen 25.03.21 08:11 Сейчас в теме
9. RustamZz 24.03.21 16:46 Сейчас в теме
(1) Вам не нужны ПВД на этот объект. В ПКС реквизита документ в ПКО на регистр сведений присвойте переменной Значение структуру с полями реквизитами Перенос данных. Источник у этого реквизита будет пустой.
12. kh_xen 25.03.21 08:12 Сейчас в теме
(9) Спасибо! Регистратор по вашему совету встал как надо!
4. user633533_encantado 11 24.03.21 13:02 Сейчас в теме
Есть пример в ЗУПе, там правила обмена для КД2 для переноса данных из ЗУП2.5.

Суть простая: собираются запросом данные для переноса и загружаются в ЗУП 3.1 документом "перенос данных".
5. kh_xen 24.03.21 13:08 Сейчас в теме
(4) Именно это я и хочу сделать. Данные для переноса собраны, осталось только с регистратором разобраться.
6. user633533_encantado 11 24.03.21 13:09 Сейчас в теме
(5) Разрешаю, делайте. Где взять рабочий пример я написал.
7. kh_xen 24.03.21 13:26 Сейчас в теме
(6) Вы пробовали брать этот рабочий пример и применять его?
Там используются процедуры общих модулей на стороне приемника. Мне нужно сделать все в правилах обмена, потому что обмен будет запускаться только на стороне источника.
8. user633533_encantado 11 24.03.21 13:29 Сейчас в теме
(7) Да, я брал эти правила и переделывал под себя. Нужно было из четырех баз ЗУП 2.5 все слить в ERP.

После доработки правил я все сделал с помощью универсальной загрузки XML, все прошло успешно :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот