Имя: Пароль:
1C
 
Заблудился в трёх соснах с запросом
0 lamme
 
29.09.23
11:57
унф.

есть документ перемещение кадров.
в документе есть колонки - Сотрудник/ Прежняя должность/ Новая должность/ Прежнее подразделение/ Новое подразделение / Период

Показатели - прежняя должность/прежнее подразделение - это запрос к РС - Сотрудники на дату = Период из строки документа.

Хотят увидеть отчет - типа реестра - по кадровым перемещениям.
С колонками - сотрудник/период/Прежняя должность/Новая должность / Прежнее подразделение/ Новое подразделение.

делаю так
выводит х.ню


ВЫБРАТЬ
    КадровоеПеремещениеСотрудники.Ссылка КАК Ссылка,
    КадровоеПеремещениеСотрудники.Сотрудник КАК Сотрудник,
    ТутПрежниеКадровыеДанные.СтруктурнаяЕдиница КАК СтруктурнаяЕдиницаПрежняя,
    КадровоеПеремещениеСотрудники.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ТутПрежниеКадровыеДанные.Должность КАК ДолжностьПрежняя,
    КадровоеПеремещениеСотрудники.Должность КАК Должность,
    
    КадровоеПеремещениеСотрудники.Период КАК Период
    
ИЗ
    Документ.КадровоеПеремещение.Сотрудники КАК КадровоеПеремещениеСотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            Сотрудники.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
            Сотрудники.Должность КАК Должность,
            Сотрудники.Сотрудник КАК Сотрудник,
            Сотрудники.Организация КАК Организация,
            МАКСИМУМ(Сотрудники.Период) КАК Период
        ИЗ
            РегистрСведений.Сотрудники КАК Сотрудники
        
        СГРУППИРОВАТЬ ПО
            Сотрудники.СтруктурнаяЕдиница,
            Сотрудники.Должность,
            Сотрудники.Сотрудник,
            Сотрудники.Организация) КАК ТутПрежниеКадровыеДанные
        ПО КадровоеПеремещениеСотрудники.Сотрудник = ТутПрежниеКадровыеДанные.Сотрудник
            И КадровоеПеремещениеСотрудники.Ссылка.Организация = ТутПрежниеКадровыеДанные.Организация
            И КадровоеПеремещениеСотрудники.Период = ТутПрежниеКадровыеДанные.Период
ГДЕ
    КадровоеПеремещениеСотрудники.Ссылка.Проведен = ИСТИНА
    И КадровоеПеремещениеСотрудники.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо
1 vicof
 
29.09.23
12:02
И смысл соединять две разные таблицы?
2 lamme
 
29.09.23
12:03
данные по 2м разным таблицам разнесены
3 lamme
 
29.09.23
12:04
одна таблица - это ТЧ документа кадровое перемещение
вторая - это периодический РС - сотрудники.
4 rphosts
 
29.09.23
12:11
А зачем группировка в РегистрСведений.Сотрудники? Если у тебя сотрудник сдвигается с места на место - он двигается за 1 движение и да кто мешает двигать его так:
01.01.2023 - Нчальник
01.02.2023 - Зам
01.03.2023 - Нчальник
01.04.2023 - Зам

что твой отчёт выдаст?

И в принципе не вижу смысла в этом левом соединении документа с РС, если какие-то допреквизиты из документа не достаешь.

ГДЕ
    КадровоеПеремещениеСотрудники.Ссылка.Проведен = ИСТИНА

необходимость прокачки запросов детектед.
5 lamme
 
29.09.23
12:13
эм ... в смысле - из одного РС все тянуть?
интересно
не рассматривал с это стороны вопрос
6 lamme
 
29.09.23
12:21
ну и все равно
из РС беру данные текущие
а как без  левого соединения получить из этого же РС информацию по прежнему состоянию
7 lamme
 
29.09.23
12:21
?
8 lamme
 
29.09.23
13:36
закрыто
9 AlexeyKh
 
29.09.23
14:44
попробуйте такой запрос (могут быть опечатки)

ВЫБРАТЬ
    КадровоеПеремещениеСотрудники.Ссылка КАК Ссылка,
    КадровоеПеремещениеСотрудники.Сотрудник КАК Сотрудник,
    ТутПрежниеКадровыеДанные.СтруктурнаяЕдиница КАК СтруктурнаяЕдиницаПрежняя,
    КадровоеПеремещениеСотрудники.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
    ТутПрежниеКадровыеДанные.Должность КАК ДолжностьПрежняя,
    КадровоеПеремещениеСотрудники.Должность КАК Должность,
    
    КадровоеПеремещениеСотрудники.Период КАК Период
    
ИЗ
    Документ.КадровоеПеремещение.Сотрудники КАК КадровоеПеремещениеСотрудники

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Сотрудники ТутПрежниеКадровыеДанные
    по КадровоеПеремещениеСотрудники.Сотрудник = ТутПрежниеКадровыеДанные.Сотрудник
    и КадровоеПеремещениеСотрудники.Период > ТутПрежниеКадровыеДанные.Период
    
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Сотрудники Рег2
    по Рег2.Сотрудник = ТутПрежниеКадровыеДанные.Сотрудник
    и Рег2.Период > ТутПрежниеКадровыеДанные.Период
ГДЕ
    КадровоеПеремещениеСотрудники.Ссылка.Проведен = ИСТИНА
    И КадровоеПеремещениеСотрудники.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо
    и рег2.Сотрудник Есть Null