ЗУП: должность в запросе

1. АннаШ 130 05.03.26 16:11 Сейчас в теме
День добрый!
Есть запрос:
ВЫБРАТЬ
	КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник,
	КадроваяИсторияСотрудников.Регистратор КАК Регистратор,
	КадроваяИсторияСотрудников.Период КАК Период,
	КадроваяИсторияСотрудников.ДействуетДо КАК ДействуетДо,
	ВложенныйЗапрос.Должность КАК Должность,
	ВложенныйЗапрос.Подразделение КАК Подразделение,
	КадроваяИсторияСотрудников.Должность КАК ДолжностьПеревода,
	КадроваяИсторияСотрудников.Подразделение КАК ПодразделениеПеревода
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
			КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
			КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность
		ИЗ
			РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаНачала, ДействуетДо = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК КадроваяИсторияСотрудниковСрезПоследних) КАК ВложенныйЗапрос
		ПО (КадроваяИсторияСотрудников.ФизическоеЛицо = ВложенныйЗапрос.ФизическоеЛицо)
ГДЕ
	КадроваяИсторияСотрудников.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
	И КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(перечисление.ВидыКадровыхСобытий.Перемещение)
	
УПОРЯДОЧИТЬ ПО
	КадроваяИсторияСотрудников.Сотрудник.ФизическоеЛицо.Наименование
Показать

Все хорошо, но...
Период запрос - год, а сотрудник пришел в феврале (другом месяце - не важно) - нет ни должности, ни подразделения.
Как выкрутиться?
Спасибо.
По теме из базы знаний
Найденные решения
2. nomad_irk 83 05.03.26 16:22 Сейчас в теме
(1) СрезПоследних сделать на &ДатаОкончания
АннаШ; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 83 05.03.26 16:22 Сейчас в теме
(1) СрезПоследних сделать на &ДатаОкончания
АннаШ; +1 Ответить
4. АннаШ 130 05.03.26 16:30 Сейчас в теме
8. Vinzor 121 05.03.26 20:38 Сейчас в теме
(1) А почему такой запрос сложный?
Что вы выбираете?
Можно ведь сделать синтаксис гораздо проще, в том числе через механизм "замены представлений"
9. АннаШ 130 06.03.26 08:16 Сейчас в теме
(5) (6) (7) (8) Спасибо огромное!

(8) Чистый запрос (из консоли) - срочно-кипяточно. Буду в отчет оформлять - есесьно, возьму типовые.
3. rulan87 05.03.26 16:23 Сейчас в теме
Нужно делать "срез последних на каждую дату в запросе". Примеров полно, например: https://infostart.ru/1c/articles/1302246/
5. puzo50 05.03.26 16:36 Сейчас в теме
сделать ВТ с приёмами на работу больше начала периода. и если сотрудник в этой ВТ то подставлять дату приёма из неё, а не начало периода.
это на словах. примера прям-вот-под-рукой нет
6. vmeste 05.03.26 17:49 Сейчас в теме
(1) А "РегистрСведений.КадроваяИсторияСотрудниковИнтервальный" - не подходит?
7. dehro 13 05.03.26 20:01 Сейчас в теме
Выбрать
Период,
Сотрудник
Поместить ВТФильтр
Из РегистрСведений.КадроваяИсторияСотрудников
Где &ВсеУсловияОтбора
;
Выбрать
ДобавитьКДате(Период, День, -1) КАК Период,
Сотрудник КАК Сотрудник
Поместить ВТСотрудники
Из ВТФильтр
Объединить все
Выбрать
Период,
Сотрудник
Из ВТФильтр
;
Выбрать 
Сотрудники.Период,
Значение(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
Значение(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
Значение(Справочник.Должности.ПустаяСсылка) КАК Должность
Поместить Представления_КадровыеДанныеСотрудников
из ВтСотрудники как Сотрудники
;
Выбрать 
Фильтр.Сотрудник,
КадровыеДанныеСотрудниковДО.Подразделение КАК ПодразделениеДо,
КадровыеДанныеСотрудниковДО.Должность КАК ДолжностьДо,
КадровыеДанныеСотрудниковПосле.Подразделение как ПодразделениеПосле,
КадровыеДанныеСотрудниковПосле.Должность КАК ДолжностьПосле
Из ВТФильтр как Фильтр
Левое соединение Представления_КадровыеДанныеСотрудников как КадровыеДанныеСотрудниковДО
ПО Фильтр.Сотрудник = КадровыеДанныеСотрудниковДО.Сотрудник
и ДобавитьКДате(Фильтр.Период, День, -1) = КадровыеДанныеСотрудниковДО.Период
Левое соединение Представления_КадровыеДанныеСотрудников как КадровыеДанныеСотрудниковПосле
ПО Фильтр.Сотрудник = КадровыеДанныеСотрудниковПосле.Сотрудник
и Фильтр.Период = КадровыеДанныеСотрудниковПосле.Период

Показать

Скормить текст запросе процедуре
ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц(Запрос.Текст, Запрос)


Пишу с телефона, прошу прощения за оформление
dandykry; +1 Ответить
10. dandykry 13 06.03.26 13:28 Сейчас в теме
КадровыйУчет.КадровыеДанныеСотрудников - вот сюда смотри
АннаШ; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот