|
Запрос к регистру сведений РаботникиОрганизации | ☑ | ||
---|---|---|---|---|
0
Алерон
18.11.15
✎
09:57
|
В данном регистре содержаться записи "сотрудники". Проблема в том, что сотрудник в справочнике записан один, но в этом регистре он может быть записан несколько раз(так как поле подразделение организации может быть разным). В итоге это создает определенную проблему, если мы в запросе будем брать данные с использованием этого р.с. : Документ КАК Док ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, ) ПО Док.Ответственный.ФизЛицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо
В итоге, в результатах будут повторяющиеся записи. Можно как-то в запросе сгруппировать сотрудников в р.с.? Или лучше вместо р.с. обращаться к справочнику "Сотрудники"? |
|||
1
olegves
18.11.15
✎
10:01
|
(0) что тебе нужно из этого регистра?
|
|||
2
Алерон
18.11.15
✎
10:02
|
(1) в этом регистре для каждого сотрудника указаны должность и подразделение организации. Это и хочу вытащить.
|
|||
3
Алерон
18.11.15
✎
10:03
|
И вытаскивается, только дубликаты получаются.
|
|||
4
ДенисЧ
18.11.15
✎
10:04
|
Документ КАК Док ЛЕВОЕ СОЕДИНЕНИЕ ( выбрать различные Сотрудник изРегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, )) как рс ПО Док.Ответственный.ФизЛицо = рс.Сотрудник.Физлицо
|
|||
5
kumena
18.11.15
✎
10:32
|
>> И вытаскивается, только дубликаты получаются.
это ты мощно задвинул. про срез последних слышал? |
|||
6
Алерон
18.11.15
✎
10:32
|
(4) говорит поле (ЕСТЬNULL(РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование, 0) Как Подразделение) не найдено
" Выбрать | ЕСТЬNULL(РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование, 0) Как Подразделение, | ЕСТЬNULL(РаботникиОрганизацийСрезПоследних.Должность.Наименование, 0) Как Должность, | РаботникиОрганизацийСрезПоследних.Сотрудник, | ВнутреннийЗаказ.Ответственный, | КОЛИЧЕСТВО(ВнутреннийЗаказ.Ссылка) КАК КоличествоЗаМесяц, | КОЛИЧЕСТВО(ВЫБОР КОГДА ВнутреннийЗаказ.Дата МЕЖДУ &ДатаН И &ДатаК ТОГДА ВнутреннийЗаказ.Ссылка КОНЕЦ) КАК КоличествоЗаДень |ИЗ | Документ.ВнутреннийЗаказ КАК ВнутреннийЗаказ | ЛЕВОЕ СОЕДИНЕНИЕ | ( выбрать различные Сотрудник из РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, )) как РаботникиОрганизацийСрезПоследних ПО | ВнутреннийЗаказ.Ответственный.ФизЛицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо |ГДЕ | ВнутреннийЗаказ.Дата МЕЖДУ &ДатаНачалаМесяца И &ДатаК |СГРУППИРОВАТЬ ПО | ВнутреннийЗаказ.Ответственный, | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, | РаботникиОрганизацийСрезПоследних.Должность, | РаботникиОрганизацийСрезПоследних.Сотрудник"; |
|||
7
Алерон
18.11.15
✎
10:33
|
(5) не понял? Я и так с ним делаю.
|
|||
8
Мимохожий Однако
18.11.15
✎
10:35
|
выбрать различные
|
|||
9
kumena
18.11.15
✎
10:39
|
(7) из первого поста вообще не понятно было чего ты делаешь
вместо этой фигни ЛЕВОЕ СОЕДИНЕНИЕ | ( выбрать различные Сотрудник из РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, )) как РаботникиОрганизацийСрезПоследних ПО | ВнутреннийЗаказ.Ответственный.ФизЛицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо надо другой запрос написать, чтобы в результате было соответсвие физлиц их сотрудникам и должностям на дату документа. запрос будет сложнее (8) смотри внимательней, у него и так различные |
|||
10
kumena
18.11.15
✎
10:40
|
+9 и тогда уже соединять с физлицом
|
|||
11
ibreiter
18.11.15
✎
10:40
|
(6) В конструкторе открывается запрос?
|
|||
12
Алерон
18.11.15
✎
10:41
|
(9) а если не к р.с., а к справочнику не посредственно обращаться? Там ведь по идее актуальные данные.
|
|||
13
ibreiter
18.11.15
✎
10:46
|
(12) У сотрудника вроде реквизиты есть тек должность и подразделение
|
|||
14
piter3
18.11.15
✎
10:48
|
(13) нет.это неправильная подсказка
|
|||
15
kumena
18.11.15
✎
10:49
|
не знаю что у вас за конфа, но в зуп они для формы списка и если брать не из регистра то может быть криво
|
|||
16
Алерон
18.11.15
✎
10:49
|
(13) ответственный ссылка на справочник "пользователи". Поэтому нужно в через другой объект выцепить его должность и подразделение
|
|||
17
Алерон
18.11.15
✎
10:50
|
(15) УПП. А почему криво?
|
|||
18
kumena
18.11.15
✎
10:51
|
(17) потому что гладиолус.
не хочешь не пиши правильно, я тут никого не заставляю. |
|||
19
mehfk
18.11.15
✎
10:51
|
(17) В Вашей УПП в шапке документа ВнутреннийЗаказ нет Организации?
|
|||
20
Новиков
18.11.15
✎
10:53
|
СрезПоследних возвращает выборку по уникальному набору измерений на дату. Поэтому у тебя и есть дубли в первоначальной выборке, которые джойнятся далее.
Тебе сначала нужно выбрать из РС, по твоим сотрудникам, записи по физ.лицу с максимальным периодом. После этого, эту выборку уже джойнишь опять же к этому рс, по физ.лицу и макс.периоду, и получаешь должности и подразделения. Если нужно, можешь ограничить физ.лица каким-то фильтром. А срез последних здесь использовать не нужно. |
|||
21
Алерон
18.11.15
✎
10:54
|
(19) есть. И зачем оно здесь понадобиться?
(18) да нет, мне просто интересно :) |
|||
22
mehfk
18.11.15
✎
10:54
|
+ Проверка в соединении на вид занятости основное место работы или внешнее совметительство
|
|||
23
mehfk
18.11.15
✎
10:54
|
(21) Чтобы не было (0)
|
|||
24
Алерон
18.11.15
✎
10:55
|
(20) а нет такой фичи, как выбрать сотрудников с максимальной датой(по идее я бы назвал это СрезПоследних).
|
|||
25
sapphire
18.11.15
✎
10:56
|
(0) Может всё-таки разберетесь, что именно хранит этот регистр и как с ним работать?
|
|||
26
sapphire
18.11.15
✎
10:56
|
(2) А Вы знаете как они правильно определяются?
|
|||
27
Новиков
18.11.15
✎
10:58
|
(24) только запросом как я описал выше, с выбором максимального периода и последующим джойном по нему.
|
|||
28
Jonny_Khomich
18.11.15
✎
10:58
|
А как человек может работать в двух подразделениях?
|
|||
29
mehfk
18.11.15
✎
11:00
|
(28) Внутреннее совместительство
|
|||
30
Jonny_Khomich
18.11.15
✎
11:02
|
(29) тогда нужен признак какое подразделение надо ставить. А то будет 3 подразделения, а что ставить не ясно.
|
|||
31
Алерон
18.11.15
✎
11:06
|
(26) В смысле откуда берутся? Приём/увольнение на работу., перемещение и т.п.
|
|||
32
SeraFim
18.11.15
✎
11:08
|
(0) сотрудник в регистре может быть записан несколько раз.
Но в СрезПоследних он будет один раз! Несколько раз может быть одно физ лицо. По основному месту/внешнему совместительству + внутреннее совместительство. Вопрос - какое подразделение/должность тебе нужно??? По основной - сотрудник программист 1С, по совместительству - дворник. Что ставить? Если всегда по основной - то отбирай по виду занятости. В Программе есть контроль, чтобы по основной он работал только в 1 месте. |
|||
33
sapphire
18.11.15
✎
11:10
|
Мало того, подразделение еще лихо определяется
|
|||
34
Алерон
18.11.15
✎
11:12
|
(32) нужно то подразделение с которого он работал на момент создания документа.
|
|||
35
sapphire
18.11.15
✎
11:12
|
(32) там еще надо проверять, что ПричинаИмзененияСостояния!=Увольнение
|
|||
36
sapphire
18.11.15
✎
11:13
|
+ (35) проверять ПериодЗавершения, коли указан то ДолжностьЗавершения
|
|||
37
Алерон
18.11.15
✎
11:14
|
(32) по идее можно и последнее.
|
|||
38
SeraFim
18.11.15
✎
11:16
|
(37) что означает последнее?
Еще раз: Иванов с 01.11 по основной - программист 1С, по совместительству с 01.11 - дворник. какую должность ему выводить? Как говорится, "правильно поставленный вопрос содержит половину ответа" |
|||
39
Brogan
18.11.15
✎
11:18
|
Как я понял, автору нужно выбрать кадровые данные сотрудника, которому соответствует исполнитель документа при условии, что этот исполнитель может занимать другие ставки по внутреннему совместительству. Автор правильно заметил, что физик в программе один, а сотрудников для этого физика может быть много.
В ЗБУ я бы решил вопрос таким запросом, откинув уволенных и внутренних совместителей и проверив данные на ПериодЗавершения. Т.е. нашел бы основного сотрудника, работающего на &Период. Для примера взял док. НачислениеЗарплатыРаботникамОрганизаций. ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Сотрудник, ВЫБОР КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность КОНЕЦ КАК Должность, ВЫБОР КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КОНЕЦ КАК ПодразделениеОрганизации ИЗ Документ.НачислениеЗарплатыРаботникамОрганизаций КАК НачислениеЗарплатыРаботникамОрганизаций ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизацийСрезПоследних ПО НачислениеЗарплатыРаботникамОрганизаций.Ответственный.ФизЛицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо И НачислениеЗарплатыРаботникамОрганизаций.Организация = РаботникиОрганизацийСрезПоследних.Сотрудник.Организация ГДЕ ВЫБОР КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния КОНЕЦ <> &Увольнение И РаботникиОрганизацийСрезПоследних.Сотрудник.ВидЗанятости <> &ВнутреннееСовместительство |
|||
40
mehfk
18.11.15
✎
11:18
|
(38) "Дворник-программист" :) Или наоборот "Программист-дворник"
|
|||
41
Алерон
18.11.15
✎
11:19
|
(38) а как это храниться? В справочнике сотрудники, что будет указанно в должности?
|
|||
42
mehfk
18.11.15
✎
11:20
|
(41) Напрягись и промоделируй сам.
|
|||
43
SeraFim
18.11.15
✎
11:22
|
(41) в справочнике "Сотрудники" будет 2 сотрудника - по основной работе, и по совместительству.
|
|||
44
Алерон
18.11.15
✎
11:30
|
(39) спасибо за код, обязательно попробую, отпишусь как получиться.
(43) проверил справочник, совмещенки нет. Только увольнение/приём на работу. В этом случае можно узнать подразделение сверив даты. А если совмещает? Тут же не узнать, если это не будет записано вместе с документом. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |