Имя: Пароль:
1C
 
КД2 отбор по текущему плану обмена
0 spiller26
 
03.09.25
16:07
Как в ПВД указать текущий план обмена, для формирования запроса с отбором по этому плану обмена?

"ВЫБРАТЬ СотрудникиИзменения.Ссылка КАК Ссылка ИЗ Справочник.Сотрудники.Изменения КАК СотрудникиИзменения ГДЕ СотрудникиИзменения.Узел = &Узел"
1 PR
 
03.09.25
16:17
ЗНАЧЕНИЕ(ПланОбмена.МойПлан.ЭтотУзел)
2 spiller26
 
03.09.25
16:23
(1) их 5 штук.
3 spiller26
 
03.09.25
16:32
По всем выходит, но мне нужно в ПВД как указать текущий

"ВЫБРАТЬ
|    дит_ОбменЗарплата3_УПП13.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВтПО
|ИЗ
|    ПланОбмена.дит_ОбменЗарплата3_УПП13 КАК дит_ОбменЗарплата3_УПП13
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    СотрудникиИзменения.Узел КАК Узел,
|    СотрудникиИзменения.Ссылка КАК Ссылка
|ИЗ
|    Справочник.Сотрудники.Изменения КАК СотрудникиИзменения
|ГДЕ
|    СотрудникиИзменения.Узел В
|            (ВЫБРАТЬ
|                ВтПО.Ссылка КАК Ссылка
|            ИЗ
|                ВтПО КАК ВтПО)"
4 spiller26
 
03.09.25
16:41
Нашел.

На стороне источника, чтобы обратиться к узлу плана обмена, необходимо использовать переменную: «УзелДляОбмена».
5 scanduta
 
03.09.25
16:45
(0) Если через БСП-шную синхронизацию то у меня так работало


Фильтр = Новый Массив;
Фильтр.Добавить(Метаданные.РегистрыСведений.КадроваяИсторияСотрудниковИнтервальный);
ВыборкаДанных = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения, Фильтр);


ЗаписьСообщения.Получатель - хранится узел получателя
6 spiller26
 
03.09.25
17:10
В обмене авторегистрация Сотрудников, по которым нужно ещё Кадровую историю для УПП перекинуть.
По идее как-то так.
Пойду тестировать.

ПВД:
Способ выборки = Произвольный алгоритм
Правило конвертации = ПереносДанных_РС_РаботникиОрганизаций            
"Перед обработкой"

ДатаВыгрузки = ТекущаяДата();

Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
|    дит_ОбменЗарплата3_УПП13.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВтПО
|ИЗ
|    ПланОбмена.дит_ОбменЗарплата3_УПП13 КАК дит_ОбменЗарплата3_УПП13
|ГДЕ
|    дит_ОбменЗарплата3_УПП13.Ссылка = &УзелДляОбмена
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    СотрудникиИзменения.Ссылка КАК Сотрудник
|ПОМЕСТИТЬ ВтСотрудники
|ИЗ
|    Справочник.Сотрудники.Изменения КАК СотрудникиИзменения
|ГДЕ
|    СотрудникиИзменения.Узел В
|            (ВЫБРАТЬ
|                ВтПО.Ссылка КАК Ссылка
|            ИЗ
|                ВтПО КАК ВтПО)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период,
|    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
|    КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
|    КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация,
|    КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
|    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
|    КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия КАК ВидСобытия,
|    КадроваяИсторияСотрудниковСрезПоследних.КоличествоСтавок КАК КоличествоСтавок
|ИЗ
|    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(
|            &ДатаОбмена,
|            Сотрудник В
|                (ВЫБРАТЬ
|                    ВтСотрудники.Сотрудник КАК Сотрудник
|                ИЗ
|                    ВтСотрудники КАК ВтСотрудники)) КАК КадроваяИсторияСотрудниковСрезПоследних";
Запрос.УстановитьПараметр("УзелДляОбмена", УзелДляОбмена);
Запрос.УстановитьПараметр("ДатаОбмена", ДатаВыгрузки);
Выборка = Запрос.Выполнить().Выбрать();

ТаблицаКИС = Новый ТаблицаЗначений(); //Таблица Кадровая история сотрудников
ТаблицаКИС.Колонки.Добавить("Период");
ТаблицаКИС.Колонки.Добавить("Сотрудник");
ТаблицаКИС.Колонки.Добавить("Организация");
ТаблицаКИС.Колонки.Добавить("ЗанимаемыхСтавок");
ТаблицаКИС.Колонки.Добавить("ОбособленноеПодразделение"); //Организация
ТаблицаКИС.Колонки.Добавить("ПодразделениеОрганизации");
ТаблицаКИС.Колонки.Добавить("Должность");

Пока Выборка.Следующий() Цикл
    СтрокаКИС = ТаблицаКИС.Добавить();
    СтрокаКИС.Период = Выборка.Период;    
    СтрокаКИС.Сотрудник = Выборка.Сотрудник;
    СтрокаКИС.Организация = Выборка.ГоловнаяОрганизация;
    СтрокаКИС.ЗанимаемыхСтавок = Выборка.КоличествоСтавок;
    СтрокаКИС.ОбособленноеПодразделение = Выборка.Организация;
    СтрокаКИС.ПодразделениеОрганизации = Выборка.Подразделение;
    СтрокаКИС.Должность = Выборка.Должность;
КонецЦикла;
//
ТаблицаИменРегистров = Новый ТаблицаЗначений();
ТаблицаИменРегистров.Колонки.Добавить("Имя");
ТаблицаИменРегистров.Колонки.Добавить("Представление");

СтрокаТаблицы = ТаблицаИменРегистров.Добавить();
СтрокаТаблицы.Имя = "РаботникиОрганизаций";
СтрокаТаблицы.Представление = "Кадровая история сотрудников (по юрлицам)";

ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Дата", ДатаВыгрузки);
ИсходящиеДанные.Вставить("Комментарий", "Данные обмена ЗУП в УПП " + Строка(ДатаВыгрузки));

ИсходящиеДанные.Вставить("ТаблицаРегистровСведений", ТаблицаИменРегистров);
ИсходящиеДанные.Вставить("РаботникиОрганизаций", ТаблицаКИС);

ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ПереносДанных_РС_РаботникиОрганизаций");