Запрос к регистру сведений РаботникиОрганизации #758525


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

В этой группе 1С