|
Выборка по совпадениям | ☑ | ||
---|---|---|---|---|
0
Rphoenix
05.12.16
✎
07:27
|
Коды должностей и подразделений должны совпадать:
3=6 столбцу 4=7, а они не совпадают https://i.gyazo.com/d35d81180c5beeba6af7fb0a18736f7f.png ЗапросШт = новый Запрос; ЗапросШт.Текст = "ВЫБРАТЬ | ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Наименование КАК Подразделение, | ШтатноеРасписаниеОрганизаций.Должность.Наименование КАК Должность, | ШтатноеРасписаниеОрганизаций.а_ПроцентВредность, | ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Код КАК кодПодр, | ШтатноеРасписаниеОрганизаций.Должность.Код КАК кодДолжн |ИЗ | РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизаций | |СГРУППИРОВАТЬ ПО | ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Наименование, | ШтатноеРасписаниеОрганизаций.Должность.Наименование, | ШтатноеРасписаниеОрганизаций.а_ПроцентВредность, | ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Код, | ШтатноеРасписаниеОрганизаций.Должность.Код | |УПОРЯДОЧИТЬ ПО | Подразделение, | ШтатноеРасписаниеОрганизаций.Должность.Код"; Выборка = ЗапросШт.Выполнить().Выбрать(ОбходРезультатаЗапроса.Прямой); Podr=выборка.Подразделение; Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ОбластьПодразделение.Параметры,Выборка); ЗапросСотр = новый Запрос; ЗапросСотр.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Наименование КАК ФИО, | СотрудникиОрганизаций.ТарифныйРазряд.Наименование, | СотрудникиОрганизаций.ДатаУвольнения КАК дата, | СотрудникиОрганизаций.Должность.Код как Дкод, | СотрудникиОрганизаций.ПодразделениеОрганизации.Код как Пкод |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.ТекущееПодразделениеОрганизации.Код = &кодПодразд | И СотрудникиОрганизаций.ТекущаяДолжностьОрганизации.Код = &кодДолжност | |СГРУППИРОВАТЬ ПО | СотрудникиОрганизаций.Наименование, | СотрудникиОрганизаций.ТарифныйРазряд.Наименование, | СотрудникиОрганизаций.ДатаУвольнения, | СотрудникиОрганизаций.Должность.Код, | СотрудникиОрганизаций.ПодразделениеОрганизации.Код"; ЗапросСотр.УстановитьПараметр("кодДолжност",выборка.кодДолжн); ЗапросСотр.УстановитьПараметр("кодПодразд",выборка.кодПодр); ЗаполнитьЗначенияСвойств(Областьданные.Параметры,Выборка); ВыборкаСотр = ЗапросСотр.Выполнить().Выбрать(ОбходРезультатаЗапроса.Прямой); Пока ВыборкаСотр.Следующий() Цикл ЗаполнитьЗначенияСвойств(Областьданные.Параметры,ВыборкаСотр); конеццикла; если Podr<>выборка.Подразделение тогда ТабДок.Вывести(ОбластьПодразделение,1); podr=выборка.Подразделение конецЕсли; ТабДок.Вывести(ОбластьДанные,1); КонецЦикла; |
|||
1
SeraFim
05.12.16
✎
07:33
|
Если не смотреть на запросы в цикле и прочие вопросы оптимизации - проблема в данном случае со знанием типовой.
У сотрудника есть "ПодразделениеОрганизации" и "Должность" - это данные трудового договора (куда изначально человек принимался). И есть "ТекущееПодразделениеОрганизации" и "ТекущаяДолжностьОрганизации" - это данные, где работает сотрудник сейчас :) |
|||
2
Rphoenix
05.12.16
✎
07:38
|
СотрудникиОрганизаций.ТекущееПодразделениеОрганизации.Код = &кодПодразд
| И СотрудникиОрганизаций.ТекущаяДолжностьОрганизации.Код = &кодДолжност в штатном ШтатноеРасписаниеОрганизаций.ПодразделениеОрганизации.Код КАК кодПодр, | ШтатноеРасписаниеОрганизаций.Должность.Код КАК кодДолжн |
|||
3
Rphoenix
05.12.16
✎
07:39
|
Сотрудник и должность не совпадают почему-то (1 и 2).
|
|||
4
SeraFim
05.12.16
✎
07:41
|
Не туда смотришь. Сюда смотри:
|
|||
5
Rphoenix
05.12.16
✎
07:44
|
Необходимо поменять "ПодразделениеОрганизации" и "Должность" на "ТекущееПодразделениеОрганизации" и "ТекущаяДолжностьОрганизации" и все?
|
|||
6
Rphoenix
05.12.16
✎
07:46
|
| СотрудникиОрганизаций.ТекущееПодразделениеОрганизации.Код как Пкод,
| СотрудникиОрганизаций.ТекущаяДолжностьОрганизации.Код как Дкод |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.ТекущееПодразделениеОрганизации.Код = &кодПодразд | И СотрудникиОрганизаций.ТекущаяДолжностьОрганизации.Код = &кодДолжност |
|||
7
DrZombi
гуру
05.12.16
✎
07:48
|
(5) Это самое простое. Но сотрудник может быть и совместителем :)
|
|||
8
Rphoenix
05.12.16
✎
07:54
|
вместо текущего сотрудника встал уволенный, но это потому что запросом не предусмотрено. А не соответсвие кодов как было так и есть
|
|||
9
Rphoenix
05.12.16
✎
08:37
|
нашел в чем косяк
если второй запрос пустой, то подставляется предыдущая запись грубо говоря если во втором запросе по данным критериям записей нет, то подставляется запись, которая была найдена до этого |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |