Есть несколько сотрудников которые работали в одном подразделении, а потом в другом, переведены кадровым перемещением, не совместители.
Если в ведомости делать отбор по актуальному подразделению сотрудник попадает в него если, по старому подразделению то в старое.
Если без отбора то показывает в актуальном. В чем может быть причина.
Управление торговым предприятием для Украины", редакция 1.2. (1.2.51.1)
ВЫБРАТЬ
| Работники.ПодразделениеОрганизации КАК Подразделение,
| Работники.Сотрудник КАК Сотрудник,
| Работники.Организация КАК Организация
| ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ),
| Сотрудник.ВидЗанятости В (&ПарамОсновнойСотрудник)
| {ПодразделениеОрганизации КАК Подразделение, Организация}
| ) КАК Работники
fly @ Сегодня, 16:47
,
Не понимаю.
этот запрос отбирает нормально
ВЫБРАТЬ
Работники.Организация,
Работники.Сотрудник,
Работники.ПодразделениеОрганизации
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ) КАК Работники
ГДЕ
Работники.ПодразделениеОрганизации = &ПодразделениеОрганизации
И Работники.Организация = &Организация
aik2001 @ Сегодня, 18:00
,
не то же самое, конструкция в фигурных скобках используется построителем отчета и в случае пустых значений просто игнорируется.
По сути, в зависимости от выбранных на форме отборов, исполняемый в БД запрос(текст запроса) может быть разным. Не проверял на практике, но думаю профайлером SQL это будет видно наглядно
aik2001 @ Сегодня, 18:00
,
+ к тому же это параметры виртуальной таблицы, это совсем не то же самое что условия в разделе "ГДЕ"
аналог запроса без конструкций для построителя была бы:
ВЫБРАТЬ
Работники.Организация,
Работники.Сотрудник,
Работники.ПодразделениеОрганизации
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(КОНЕЦПЕРИОДА(&Период, МЕСЯЦ), ПодразделениеОрганизации = &ПодразделениеОрганизации И Организация = &Организация) КАК Работники
Ещё мысля созрела: разница между параметром вирт.таблицы и условием "Где" в следующем:
в первом случае будут отобраны все записи удовлетворяющие всем параметрам(сотрудник, подразделение, организация), и среди них будет выбрана последняя запись(срез последних). Так и получим действующую запись по старому подразделению.
во втором случае будут отобраны все записи по сотруднику, среди них будет взята последняя(актуальное подразделение на тек.момент) и потом только применятся условия из раздела "Где" - т.е. результат будет пустым если указать старое подразделение
Макс1С @ Вчера, 22:57
,
Спасибо поставил в запросе "Где" и все заработало.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua