Имя: Пароль:
1C
 
Как из регистра сведений выбрать последнюю запись в регистре сведений по условию (Действуе
0 Sangria
 
02.04.25
16:27
Добрый день. Как из регистра сведений выбрать последнюю запись в регистре сведений по условию (Действует до должно быть пусто).
Если регистр кадровой истории физ лиц:
Период   /     ФИО    /   Должность   /  Действует до
23.12.24 /Иванов Иван / Специалист    /  
03.03.25 /Иванов Иван / Гл.Специалист /  01.04.2025

Срезом последних найти не получается, т.к. выводит последнюю заполненную строку с гл.специалистом, а нужен просто специалист.
Вот таким запросом не выходит, т.к. ошибка - Поле не найдено "ДействуетДО"
ВЫБРАТЬ
КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудников.Должность КАК Должность,
КадроваяИсторияСотрудников.ДействуетДо КАК ДействуетДо,
МАКСИМУМ (КадроваяИсторияСотрудников.Период) КАК Период
ПОМЕСТИТЬ ВТКадры
ИЗ
РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников

ГДЕ КадроваяИсторияСотрудников.ДействуетДо = ДАТАВРЕМЯ (1,1,1)  

СГРУППИРОВАТЬ ПО
КадроваяИсторияСотрудников.Сотрудник,
КадроваяИсторияСотрудников.Должность,
КадроваяИсторияСотрудников.ДействуетДо,
КадроваяИсторияСотрудников.Период
1 Somebody
 
02.04.25
16:31
а условие по должности что мешает задать?
2 mikecool
 
02.04.25
16:38
(0) ошибка в исходных данных, задача провальная
3 Fedor-1971
 
03.04.25
10:05
(0) Сначала выбери данные
ВЫБРАТЬ
КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудников.Должность КАК Должность,
КадроваяИсторияСотрудников.ДействуетДо КАК ДействуетДо,
КадроваяИсторияСотрудников.Период КАК Период
ПОМЕСТИТЬ ВТКадры
ИЗ
РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников

ГДЕ КадроваяИсторияСотрудников.ДействуетДо = ДАТАВРЕМЯ (1,1,1)

Потом получи максимум периода по Сотруднику
ВЫБРАТЬ
КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник,
МАКСИМУМ (КадроваяИсторияСотрудников.Период) КАК Период
ПОМЕСТИТЬ ВТпериодов
ИЗ
ВТКадры КАК КадроваяИсторияСотрудников

Теперь левым соединением по Сотруднику и Периоду приклей к ВТпериодов временную таблицу ВТКадры - из оной достанешь последнюю должность

Только останется вопрос, а если таких должностей 2 и больше?
4 Sangria
 
03.04.25
13:30
Всем спасибо, решение нашли
Основная теорема систематики: Новые системы плодят новые проблемы.