|
Регистр сведений срез последних | ☑ | ||
---|---|---|---|---|
0
Len1vec
17.10.18
✎
15:46
|
Добрый день. Разъясните, пожалуйста.
ЗУП 3.1. Был создан документ кадрового перевода, который переводил сотрудника Иванова с подразделения "Смена 1" на подразделение "Смена 2" с 15.09 по 11.10 нынешнего года, который породил в регистре сведений "КадроваяИсторияСотрудников" запись. Имеется заполнялка в документе (не стандартном), которая подставляет сотрудника в ТЧ по указанному подразделению. ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&НачалоПериода, ) КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ КадроваяИсторияСотрудниковСрезПоследних.Подразделение = &Подразделение УПОРЯДОЧИТЬ ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование Запрос.УстановитьПараметр("Подразделение", Объект.Подразделение); Запрос.УстановитьПараметр("НачалоПериода", Объект.Дата); Вопрос. Должен ли добавиться в ТЧ документа сотрудник Иванов на сегодняшнее число, если указать подразделение "Смена 1"? Я считаю, что нет, т.к. последняя запись в регистре сведений КадроваяИсторияСотрудниковСрезПоследних указана с подразделением "Смена 2". Поэтому я изменил запрос следующим образом, который выводит данные корректно: ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&НачалоПериода, ) КАК КадроваяИсторияСотрудниковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПервых КАК КадроваяИсторияСотрудниковСрезПервых ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПервых.Сотрудник ГДЕ ВЫБОР КОГДА КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо >= &ТекущаяДата ТОГДА КадроваяИсторияСотрудниковСрезПоследних.Подразделение = &Подразделение ИНАЧЕ КадроваяИсторияСотрудниковСрезПервых.Подразделение = &Подразделение КОНЕЦ УПОРЯДОЧИТЬ ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование Запрос.УстановитьПараметр("Подразделение", Объект.Подразделение); Запрос.УстановитьПараметр("НачалоПериода", Объект.Дата); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); Корректен ли мой запрос? |
|||
1
piter3
17.10.18
✎
16:25
|
гугл,представления.
|
|||
2
aleks_default
17.10.18
✎
16:53
|
(0) Срез первых без указания даты среза вернет самую первую запись регистра, а не ту что нужно - предпоследнюю.
|
|||
3
Len1vec
18.10.18
✎
08:18
|
В общем и мой запрос не корректен.
Можете, пожалуйста, помочь разобраться в этом вопросе? |
|||
4
1Сергей
18.10.18
✎
08:48
|
Ничего не понял. Чего вам в ТЧ вставить нужно?
|
|||
5
catena
18.10.18
✎
09:07
|
А почему не воспользоваться процедурами ЗУП?
|
|||
6
Len1vec
18.10.18
✎
09:22
|
(4) Сотрудника, который в настоящий момент работает в определенном подразделении
|
|||
7
Len1vec
18.10.18
✎
09:24
|
(5) Вы про какие говорите?
|
|||
8
catena
18.10.18
✎
09:44
|
(7)Моя версия может немного отличаться от вашей, но, например, посмотрите вот эти процедуры. В коментариях к ним написано про использование.
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; ПараметрыПолученияСотрудников.ОкончаниеПериода = Период; ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолученияСотрудников); |
|||
9
aleks_default
18.10.18
✎
09:50
|
(3) В старой версии ЗУП специально для таких случаев был ресурс ПодразделениеОкончания, в новых вроде как его уже удалили.
Можно покопаться в ЗУП, поискать как решается сейчас эта ситуация типовыми средствами. Но мне лень. Лично я, если бы возникла такая необходимость, решил бы так: 1. Срез последних где ДействуетДо < ТекущаяДата 2. Таблица Срез последних на каждую дату в первой таблице |
|||
10
НЕА123
18.10.18
✎
10:29
|
(0)
почти ОФФ. в первом запросе, вторым параметром таблицы поставить ФизическоеЛицо = ФизическоеЛицо не спасает? |
|||
11
Len1vec
18.10.18
✎
10:36
|
(10) немного не понял о чем Вы.
|
|||
12
Len1vec
18.10.18
✎
11:03
|
(8) В предложенном Вами решении в ТаблицаСотрудников имеются записи, которые по идее не должны присутствовать.
Пример: Иванов изначально работал в подразделении "Смена 1". С 1 по 5 октября был кадровый перевод в "Смена 2". Сегодня заполняется документ по подразделению "Смена 2", где в ТаблицаСотрудников имеется запись Иванов, т.к. он когда был в "Смена 2". Хотя записи не должно быть. |
|||
13
piter3
18.10.18
✎
11:05
|
не мучься ищи готовую функцию,вроде на форуме приводили примеры.Для понимания кадровая история обрастала всякими интервальными регистрами сестрами
|
|||
14
catena
18.10.18
✎
11:09
|
(12)Я же говорю, что мой вариант может отличаться от вашего. Читайте описания к процедурам в общих модулях. Смотрите, как заполняются типовые документы.
Есть мнение, что в ЗУП3 решать запросами опасно и не выгодно, во-первых, структура и логика данных может меняться, во-вторых, они действительно намудрили с регистрами, а подробного описания к каждому релизу нет. Переучивайтесь на использование уже существующих механизмов. |
|||
15
Len1vec
18.10.18
✎
11:38
|
(14) в любом случае спасибо огромное!
|
|||
16
Temai
18.10.18
✎
11:46
|
Может быть пригодится:
ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК Организация, КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация.ОГРН КАК ОГРН, КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Представление КАК ФИО, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК Код, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.ИНН КАК ИНН, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо.СтраховойНомерПФР КАК Снилс, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.ФизическоеЛицо.ДатаРождения КАК ДатаРождения, КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.ФизическоеЛицо.Пол КАК Пол, КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность, КадроваяИсторияСотрудниковСрезПоследних.ВидДоговора КАК ВидДоговора, ВидЗанятостиСотрудникаСрезПоследних.ВидЗанятости КАК ТипЗанятости, ГрафикРаботыСотрудниковСрезПоследних.ГрафикРаботы КАК ГрафикРаботы, КадроваяИсторияСотрудниковСрезПервых.Период КАК ДатаПриема ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПервых(, ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)) КАК КадроваяИсторияСотрудниковСрезПервых ПО (КадроваяИсторияСотрудниковСрезПервых.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) И (КадроваяИсторияСотрудниковСрезПервых.ГоловнаяОрганизация = КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация) И (КадроваяИсторияСотрудниковСрезПервых.ФизическоеЛицо = КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВидыЗанятостиСотрудников.СрезПоследних КАК ВидЗанятостиСотрудникаСрезПоследних ПО (ВидЗанятостиСотрудникаСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) И (ВидЗанятостиСотрудникаСрезПоследних.ГоловнаяОрганизация = КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация) И (ВидЗанятостиСотрудникаСрезПоследних.ФизическоеЛицо = КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо) ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикРаботыСотрудников.СрезПоследних КАК ГрафикРаботыСотрудниковСрезПоследних ПО КадроваяИсторияСотрудниковСрезПоследних.Сотрудник = ГрафикРаботыСотрудниковСрезПоследних.Сотрудник И КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация = ГрафикРаботыСотрудниковСрезПоследних.ГоловнаяОрганизация ЛЕВОЕ СОЕДИНЕНИЕ Документ.Увольнение.ДополнительныеРеквизиты КАК УвольнениеДополнительныеРеквизиты ПО КадроваяИсторияСотрудниковСрезПоследних.Регистратор = УвольнениеДополнительныеРеквизиты.Ссылка И (УвольнениеДополнительныеРеквизиты.Свойство.Наименование = "Внутрифирменный перевод (Увольнения)") |
|||
17
aleks_default
18.10.18
✎
11:51
|
(16) А может и не пригодится
|
|||
18
Temai
18.10.18
✎
12:12
|
(17) Может и так, мне не жалко
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |