|
Поля ДатаНачала и ДатаОкончания в регистре сведений КадроваяИсторияСотрудниковИнтервальный | ☑ | ||
---|---|---|---|---|
0
paxan
15.10.19
✎
15:47
|
Здравствуйте. Пытаюсь запросом получить кадровое состояние сотрудника на конкретные даты. Использую для этого регистр КадроваяИсторияСотрудниковИнтервальный, он на первый взгляд отлично под это подходит.
Все бы ничего, но на границах дат есть проблемы, а именно непонятно почему они "залезают" всегда или иногда (пока не понял логику) на другие дни. К примеру: человек был переведен 1 октября в другое подразделение, но у него стоит ДатаОкончания предыдущего интервала не 31 сентября 23 часа 59 минут 59 секунд, а 1 октября к примеру 5 секунд! Т.е. хрен с ним с секундами, а идет перехлест даже на другой день. Новый интервал где уже новое подразделение начинается к примеру в 6 секунд 1 октября. Если запросом с этим работать, то куча проблем, не понятно в какой день по сути закончился интервал... те. функции КонецДня или НачалоДня тут не помогут. Возможно конечно использовать какие-то спец-функции самой конфы для получения подобных данных, но не очень хочется логику переделывать да и хочется понять смысл почему так сделано и как с этим можно все-таки работать с этим регистром? Может сдвиг какой-то времени нужно делать изначально в запросах, чтобы такого не было, в общем нужно понимание возникновения этих секунд. Подскажите может кто разбирался с этим, т.е. интересует откуда берутся эти самые секунды и как их учитывать, чтобы не попадали лишние данные в запросы. По родным запросам бегло пока смотрел, но там вроде и не учитываются эти секунды никак, просто ставится условие на сам интервал, что дата должна лежать в этом интервале... Даже когда докопаюсь до откуда растут ноги секунд это особо не поможет в трактовке данных. Могу сюда и запрос выложить существующий (он отлично работает, но эти секунды мешают), который получает работающих сотрудников, за период по которому сдается табель (для табеля это делается, выгружаю это в ексель), но он довольно сложный, боюсь это только усложнит вопрос. |
|||
1
paxan
15.10.19
✎
15:48
|
Да. забыл сказать, ЗУП 3,1
|
|||
2
Temai
15.10.19
✎
15:57
|
А регистр "КадроваяИсторияСотрудников" тебе не подойдет? на нём есть такие же "глюки"?
|
|||
3
Айвонттубифри
15.10.19
✎
15:59
|
(0) В ЗУП3 состояния сотрудников надо получать готовыми типовыми функциями, погуглите по форуму...
|
|||
4
paxan
15.10.19
✎
16:00
|
(2) Из него очень сложно получать данные на текущую дату (а мне еще хитрее нужно, т.к нужно получать кто работает где сейчас и кто работал вообще за период выгрузки табеля), я уже не помню все нюансы этого запроса что получался, но там условий очень много нужно писать или еще что-то, в общем я от него отказался по итогу, когда раскопал этот "интервальный". С интервального проще все это тянуть.
|
|||
5
paxan
15.10.19
✎
16:02
|
(3) Если не пойму откуда эти секунды и как с ними работать, то так и сделаю конечно (да и методически это правильнее), переделывать только пока не очень хочется что почти работает как надо, плюс сам принцип хотелось бы понять. С этими функциями тоже за секунду на разберешься.
|
|||
6
singlych
15.10.19
✎
16:31
|
(5) разберешься не за секунду, зато потом кучу времени сэкономишь.
Период сдвигается, чтобы можно было разные документы впихнуть в одну дату. Подробно не расскажу, посмотри куда-то сюда - ЗарплатаКадрыРасширенный.ЗначениеСдвигаПериодаЗаписиРегистра(Документ) |
|||
7
singlych
15.10.19
✎
16:33
|
Как с этим работать, разрабы зупа уже подумали за тебя
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников |
|||
8
paxan
15.10.19
✎
16:43
|
(6) Спасибо, посмотрю, особенно про сдвиг времени. Как-то странно тут все-таки логика, в моем случае нет нескольких документов на один день, но при переводе сотрудника в другое подразделение конец предыдущего пероода зачем-то налазит на несколько секунд на день, где сотрудник уже должен быть в другом подразделении. Как-то перемудрили с этим...
|
|||
9
singlych
15.10.19
✎
16:47
|
Двигается-то не конец в интервальном регистре, а период обычного регистра. Конец уже потом в интервальном заполняется соответственно. Но вообще я очень приблизительно этой темы касался, лучше сам посмотри.
|
|||
10
paxan
16.10.19
✎
04:07
|
(7) Не подходит КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников() т.к. в ней получаются кадровые данные не за период, а на конкретную дату. Курю дальше..
|
|||
11
paxan
16.10.19
✎
04:14
|
Больше всего подходит из модуля менеджера самого документа табель функция ВыборкаДанныхОВремени(), как не хотел я ее использовать..
|
|||
12
singlych
16.10.19
✎
12:18
|
(10) Не на конкретную дату, а на конкретные даты. А что ты подразумеваешь под периодом?
|
|||
13
paxan
16.10.19
✎
12:44
|
(12) Да я вроде понял, что там именно дату нужно передавать, или туда можно кучу дат передать?
Я подразумеваю период вот как: все это мне нужно чтобы выгрузить шаблон табеля для заполнения подразделением. Соответственно табель заполняется за какой-то период (весь месяц, или первая половина). Вот в этот табель и нужно заполнить сотрудниками, т.е. это не те сотрудники, что работают на какую-то дату, а все кто либо работал за любой из день периода. Собственно запрос написал, беру данные из этого интервального регистра, но он больно замудренный получился, потенциально опасный из-за того что в регистре применяется сдвиг дат на секунды, пока это обошел тем, что сдвиг вроде используется небольшой, не больше минуты, поэтому это корректирую в запросе, но это довольно сложно и кривовато. Лучше конечно функцию какую подходящую под это найти. |
|||
14
singlych
16.10.19
✎
13:00
|
(13) Кучу дат.
// Формирует временную таблицу ВТКадровыеДанныеСотрудников, список сотрудников и периодов, // по которым необходимо получить данные, берутся из временной таблицы в менеджере временных // таблиц, переданном в качестве параметра. Временная таблица обязательно должна содержать // колонки Сотрудник и Период. Берешь таблицу периодов (если че, есть ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды()) Берешь сотрудников Джойнишь полным, пихаешь в менеджер вт суешь менеджер вт в СоздатьВТКадровыеДанныеСотрудников профит. |
|||
15
singlych
16.10.19
✎
13:00
|
не путай с СоздатьНаДатуВТКадровыеДанныеСотрудников
|
|||
16
paxan
16.10.19
✎
13:49
|
(14) Спасибо, попробую.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |