|
Задваивается результат в запросе по регистру в ЗУП | ☑ | ||
---|---|---|---|---|
0
Mary01
04.03.19
✎
14:52
|
Привет всем!
Пишу такой запрос в ЗУП 3.1: ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо, КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия КАК ВидСобытия ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОтчета, ) КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо = &ФизическоеЛицо Получаю результат из двух одинаковых строк. ФизическоеЛицо - Иванова А.А., ВидСобытия - Увольнение. Почему так? Человек действительно был принят и уволен два раза. Но в срезе последних должно отображаться только последнее событие... или нет? |
|||
1
2S
04.03.19
✎
14:54
|
(0) В топку такой запрос и метод получения.
Вас ждет неприятный сюрпрайз. Тему не раз мусолили, в поиск |
|||
2
Alexandr_U1982
04.03.19
✎
14:55
|
(0)Потому что по физлицу "Иванова А.А" у вас два сотрудника.
Она два раза принималась на работу и два раза увольнялась. |
|||
3
Mary01
04.03.19
✎
14:56
|
(2) так и есть, но это же одно физлицо, и я выбираю именно физлицо. если бы я выбирала сотрудника, тогда понятно
|
|||
4
Mary01
04.03.19
✎
14:57
|
(1) вот я и получила этот сюрпрайз. спасибо за наводку, действительно поиском нашла способы решения.
но все же интересно почему так |
|||
5
Alexandr_U1982
04.03.19
✎
15:03
|
(3) Вместо "ВЫБРАТЬ" надо "ВЫБРАТЬ РАЗЛИЧНЫЕ"
|
|||
6
Mary01
04.03.19
✎
15:09
|
(5) получилось. но, теперь если изменить дату, то запрос выдает опять две строки с этим физлицом, а ВидСобытия - в одной строке Перемещение, в другой Увольнение.
|
|||
7
Alexandr_U1982
04.03.19
✎
15:18
|
(6)Что хотите получить-то в итоге?
Запрос все верно выдает) |
|||
8
Mary01
04.03.19
✎
15:19
|
(7) Написала по-другому
ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо, КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия КАК ВидСобытия, МАКСИМУМ(КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОтчета, ) КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо = &ФизическоеЛицо СГРУППИРОВАТЬ ПО КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо, КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия ИМЕЮЩИЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение) |
|||
9
Mary01
04.03.19
✎
15:20
|
(7) почему верно-то?
|
|||
10
Alexandr_U1982
04.03.19
✎
15:21
|
(8) В ЗУП 3.1 для получения кадровых данных по сотрудникам (или физлицам) нужно использовать процедуры/функции командного интерфейса.
Зачем вам такой запрос? |
|||
11
Alexandr_U1982
04.03.19
✎
15:22
|
(9) Ну как почему? Что вы запросили, то он вам и вернул...
|
|||
12
Mary01
04.03.19
✎
15:24
|
(10) надо написать отчет по уволенным сотрудникам с датами увольнения, но при этом надо, чтобы в отчет не попадали сотрудники, которые были уволены, но приняты снова. этот запрос нужен для того, чтобы выбрать не уволенных физлиц, чтобы далее выводить отчет, исключая их.
|
|||
13
Mary01
04.03.19
✎
15:25
|
(11) если бы я запросила вывести сотрудников, тогда было бы понятно, что строк две, т.к. сотрудника 2. но это одно физлицо, и поэтому мне непонятно, почему запрос выдает две строки, а не одну
|
|||
14
Mary01
04.03.19
✎
15:26
|
(10) как эти процедуры использовать в запросе?
|
|||
15
sqr4
04.03.19
✎
15:27
|
(8) Кадровое перемещение которое на определенный срок, не отобразится помоему. Надо Интервальный регистр использовать
|
|||
16
Alexandr_U1982
04.03.19
✎
15:28
|
||||
17
sqr4
04.03.19
✎
15:28
|
+ (15) ХОтя нахрен оно тут)
|
|||
18
Mary01
04.03.19
✎
15:36
|
(16) спасибо, про представления стало понятнее, только непонятно как в консоли отладить такой запрос (например если взять запрос из типового отчета Кадровая история сотрудников). он пустой
|
|||
19
Alexandr_U1982
04.03.19
✎
15:40
|
(18)В консоли никак, нужно делать внешний отчет и отлаживать в нем.
|
|||
20
sqr4
04.03.19
✎
15:56
|
(18) Там запросы как у Льва Николаевича)
|
|||
21
Mary01
04.03.19
✎
15:58
|
(20) понятнее стало пока лишь то, что есть такой механизм и что надо учиться его использовать, вместо обычных запросов)
|
|||
22
hhhh
04.03.19
✎
16:20
|
(13) срез последних выдает срез по каждому измерению.
поэтому проверьте, действительно у вас там одно измерение в РегистрСведений.КадроваяИсторияСотрудников. Может в нем несколько измерений. |
|||
23
Mary01
04.03.19
✎
20:05
|
(22) "срез последних выдает срез по каждому измерению" - раньше каким-то образом получала запросом только по нужному измерению и все работало как надо...
в регистре 3 измерения - физлицо, сотрудник и еще одно |
|||
24
palsergeich
04.03.19
✎
23:16
|
(23) ну если делать не по науке и получить ожидаемый результат, то это не значить что через месяц все будет работать так как надо.
Большая беда - отладка разработок на пустой или почти пустой базе, потом при реальном учете вылезает очень много сёпрайзов. |
|||
25
hhhh
05.03.19
✎
00:22
|
(23) ну если Сотрудник, то чего вы ждете? У вас 2 сотрудника, должны быть 2 записи.
|
|||
26
Бертыш
05.03.19
✎
04:38
|
(0) Последнее для уникальной комбинации измерений.
|
|||
27
catena
05.03.19
✎
05:09
|
(23)Этого не может быть, потому что быть этого не может. Такая клевета на платформу должна подтверждаться скринами и указанием релиза. Всегда штатный срез последних выдавал срез по всем наборам измерений.
|
|||
28
SleepyHead
гуру
05.03.19
✎
05:20
|
(0) Человек был уволен два раза - значит, одному физлицу соответствует два сотрудника (это другой справочник). А вы в запросе выбираете только физлицо.
Выбирайте сотрудника и не путайте справочник ФизическиеЛица и Сотрудники. Сотрудник = физическое лицо + договор (трудовой или ГПХ), одно физлицо может относится к одному, двум и более сотрудникам, каждому из которых соответствует свой уникальный табельный номер. |
|||
29
Mary01
05.03.19
✎
07:18
|
(28) выбираю именно физлицо, т.к. по ТЗ надо отобрать именно по уволенным физлицам. если человека уволили и приняли снова как другого сотрудника, то его выводить в отчет не надо (специально уточнила у бухгалтера)
|
|||
30
Мимохожий Однако
05.03.19
✎
07:24
|
Добавь дату регистратора и выбери с максимальной датой. Пакетный запрос никто не отменял
|
|||
31
Йохохо
05.03.19
✎
08:00
|
(29) Вы выбираете !строки! основной таблицы и из них физлицо
|
|||
32
Mary01
05.03.19
✎
08:18
|
(30) так и сделала (8)
|
|||
33
Мимохожий Однако
05.03.19
✎
08:27
|
(32) Там Период и не дата регистратора
|
|||
34
Mary01
05.03.19
✎
08:34
|
(33) да, потому что нужно дату увольнения вывести (а она может отличаться от даты документа-регистратора)
|
|||
35
Мимохожий Однако
05.03.19
✎
08:47
|
(34) Если дата увольнения есть в регистраторе, то можно привязаться в последней таблице и вытащить.
А если в параметрах идёт отбор только по одному физическому лицу, то достаточно отсортировать по убыванию и взять только первую запись. Это как запасной вариант. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |