Имя: Пароль:
1C
 
Перенос средствами КД 2.1 переодического РС в непериодический РС
0 inkvizitr
 
16.01.19
10:42
У меня стоит задача перенести из ЗУП 2.5 периодический регистр сведений "РаботникиОрганизаций" в БП 3.0 КОРП непериодический регистр сведений "ОсновныеСотрудникиФизическихЛиц"

Настройку ПКС я сделал так
https://cdn1.savepice.ru/uploads/2019/1/16/6a1b16fa40d89f6745e06e02a2339920-full.png

как видно из картинки я программно заполняю дату начало и дату конца, для этого у меня используется запрос,
ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Регистратор.Дата КАК Дата
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(, Сотрудник = &Сотрудник) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
    И РаботникиОрганизацийСрезПоследних.Регистратор ССЫЛКА Документ.УвольнениеИзОрганизаций
    И РаботникиОрганизацийСрезПоследних.Сотрудник = &Сотрудник

и программный код перед выгрузкой у ПКС ДатаНачало

Запрос = Запросы.Запрос_ЗагрузкаРегистраСведений;
Запрос.УстановитьПараметр("Сотрудник", Источник.Сотрудник);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    Значение = Выборка.Дата;
КонецЕсли;

и программный код перед выгрузкой у ПКС ДатаОкончания

Запрос = Запросы.Запрос_ЗагрузкаРегистраСведений;
Запрос.УстановитьПараметр("Сотрудник", Источник.Сотрудник);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
    Значение = Дата('3999.12.31 00:00:00');
КонецЕсли;    

вроде пока все работает, но вопрос заключается в следующем, если в ЗУП допустим уволить сотрудника, то нужно делать так, искать запись в регистре бухгалтерии и удалять конечную дату в записи и выставлять начальную дату, в начальной дате будет указываться дата увольнения, вопрос, как лучше организовать поиск нужной мне записи, т.к. у меня бывает такая ситуация, что сотрудника могу раз 5 уволить и раз 5 принять, история в регистре бухгалтерии по всем увольнениям должна остаться но если сотрудника уволили полностью, то дата конца должна поменяться на увольнения
1 Ёпрст
 
гуру
16.01.19
11:07
(0) ну и ищи свои даты запросом
2 Ёпрст
 
гуру
16.01.19
11:07
можешь в запросе проссумировать количество увольнений/приёмов, если совпадает, то дата = максимум(дата)
3 inkvizitr
 
16.01.19
11:13
(2) кстати хорошая идея, сейчас попробую
4 inkvizitr
 
16.01.19
11:17
(2) а еще последний вопрос по КД2.1, чтобы новую ветку не создавать, а можно допустим в ПКС, у ДатыОкончания из события ПередВыгрузкой передать переменную или параметр в событие ПослеВыгрузки того же ПКС ДатыОкончания
5 inkvizitr
 
16.01.19
15:55
а возможно запросом с помощью правил прочитать данные в приемнике?
6 Масянька
 
16.01.19
15:58
(5) Двоечник! Ты чего первое слово (в теме) пишешь неправильно , а второе правильно? Инквизиции на тебя нет...
:)))
7 Ёпрст
 
гуру
16.01.19
18:08
(5) можно, в момент перед загрузкой/поиска/загрузки этих данных..