Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 12:40

ЗУП (3.1.1.62). Как соединить 2 запроса?

Автор Алексей Рожков, 25 сен 2020, 14:52

0 Пользователей и 1 гость просматривают эту тему.

Алексей Рожков

Привет всем.

Имеется 2 запроса.  Как соединить результат их работы по табельному номеру?

В первом запросе - ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер
Во втором запросе - ИсточникДанных.Сотрудник.Код КАК СотрудникКод

В результате 1 запроса - 719 строк
В результате 2 запроса - 22 строки
Результат второго запроса присоединить к первом по табельному номеру.

Нужно их объединить отдельной колонкой, а пустые заполнить нуллами.


Запрос 1
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Сотрудники.Ссылка КАК Сотрудник,
ВЫБОР
КОГДА &ВыводитьДанныеПредстоящихПриемов
И &Период < ТекущиеКадровыеДанныеСотрудников.ДатаПриема
ТОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема
ИНАЧЕ &Период
КОНЕЦ КАК Период
ПОМЕСТИТЬ ВТСотрудники
ИЗ
Справочник.Сотрудники КАК Сотрудники
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ПО Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
И Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ГДЕ
Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник
И Сотрудники.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ТаблицаОтборов.Период КАК Период,
ТаблицаОтборов.Сотрудник КАК Сотрудник,
СправочникСотрудники.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
ИЗ
ВТСотрудники КАК ТаблицаОтборов
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИзмеренияДаты.Сотрудник КАК Сотрудник,
ИзмеренияДаты.Период КАК Период,
СостоянияСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ВТСведенияОСостоянииСотрудников
ИЗ
ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
ПО ИзмеренияДаты.Сотрудник = СостоянияСотрудников.Сотрудник
И (СостоянияСотрудников.Период <= ИзмеренияДаты.Период)
И (СостоянияСотрудников.ДействуетДо >= ИзмеренияДаты.Период
ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
ГДЕ
СостоянияСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИзмеренияДаты.Период КАК ЗаданныйПериод,
ИзмеренияДаты.Сотрудник КАК Сотрудник,
РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
МАКСИМУМ(РегистрСведений.Период) КАК Период
ПОМЕСТИТЬ ВТПериодыСрезаПлановыйФОТИтоги
ИЗ
ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
ПО (ВЫБОР
КОГДА РегистрСведений.Период <= КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ)
ТОГДА ИСТИНА
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
ГДЕ
РегистрСведений.Сотрудник.ПометкаУдаления = &П
СГРУППИРОВАТЬ ПО
ИзмеренияДаты.Период,
ИзмеренияДаты.Сотрудник,
РегистрСведений.ГоловнаяОрганизация,
РегистрСведений.ФизическоеЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
МаксимальныеПериоды.ЗаданныйПериод КАК Период,
МаксимальныеПериоды.Сотрудник КАК Сотрудник,
РегистрСведений.ТарифнаяСтавка КАК ТарифнаяСтавка,
РегистрСведений.ФОТ КАК ФОТ
ПОМЕСТИТЬ ВТПлановыйФОТИтогиСрезПоследних
ИЗ
ВТПериодыСрезаПлановыйФОТИтоги КАК МаксимальныеПериоды
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
ПО (РегистрСведений.Период = МаксимальныеПериоды.Период)
И (РегистрСведений.Сотрудник = МаксимальныеПериоды.Сотрудник)
И (РегистрСведений.ГоловнаяОрганизация = МаксимальныеПериоды.ГоловнаяОрганизация)
И (РегистрСведений.ФизическоеЛицо = МаксимальныеПериоды.ФизическоеЛицо)
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПериодыСрезаПлановыйФОТИтоги
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
СотрудникиПериоды.Сотрудник КАК Сотрудник,
СотрудникиПериоды.Период КАК Период,
ЕСТЬNULL(ПлановыйФОТИтоги.ТарифнаяСтавка, 0) КАК ТарифнаяСтавка,
ЕСТЬNULL(ПлановыйФОТИтоги.ФОТ, 0) КАК ФОТ
ПОМЕСТИТЬ ВТСведенияОбОплатеТруда
ИЗ
ВТОтборовРазличныхСотрудников КАК СотрудникиПериоды
ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыйФОТИтогиСрезПоследних КАК ПлановыйФОТИтоги
ПО СотрудникиПериоды.Сотрудник = ПлановыйФОТИтоги.Сотрудник
И СотрудникиПериоды.Период = ПлановыйФОТИтоги.Период
ИНДЕКСИРОВАТЬ ПО
Период,
Сотрудник
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПлановыйФОТИтогиСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИзмеренияДаты.Период КАК Период,
ИзмеренияДаты.Сотрудник КАК Сотрудник,
РегистрСведений.Должность КАК Должность,
РегистрСведений.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
ИЗ
ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
ИНАЧЕ ИзмеренияДаты.Период
КОНЕЦ, ДЕНЬ))
И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
ИНАЧЕ ИзмеренияДаты.Период
КОНЕЦ, ДЕНЬ))
И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)
ГДЕ
ИСТИНА
И РегистрСведений.Сотрудник.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТаблицаОтборов.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
КадроваяИсторияСотрудников.Должность КАК Должность,
ТарифныеСтавкиСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
ТарифныеСтавкиСотрудников.ФОТ КАК ФОТ,
ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер,
СведенияОСостоянииСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
ИЗ
ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период
ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбОплатеТруда КАК ТарифныеСтавкиСотрудников
ПО ТаблицаОтборов.Сотрудник = ТарифныеСтавкиСотрудников.Сотрудник
И ТаблицаОтборов.Период = ТарифныеСтавкиСотрудников.Период
ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОСостоянииСотрудников КАК СведенияОСостоянииСотрудников
ПО ТаблицаОтборов.Сотрудник = СведенияОСостоянииСотрудников.Сотрудник
И ТаблицаОтборов.Период = СведенияОСостоянииСотрудников.Период
ГДЕ
СведенияОСостоянииСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОбОплатеТруда
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОСостоянииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
ПредставленияКадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
ПредставленияКадровыеДанныеСотрудников.ФОТ КАК ФОТ,
ПредставленияКадровыеДанныеСотрудников.Должность.ПроцентНадбавкиЗаВредность КАК ДолжностьПроцентНадбавкиЗаВредность
ИЗ
ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников
ГДЕ
ПредставленияКадровыеДанныеСотрудников.Сотрудник.ПометкаУдаления = &П
И ПредставленияКадровыеДанныеСотрудников.Состояние = &П2


ВТОРОЙ ЗАПРОС:
ВЫБРАТЬ ИсточникДанных.Сотрудник КАК Сотрудник,
ИсточникДанных.Размер КАК Размер,
ИсточникДанных.Сотрудник.Код КАК СотрудникКод
ИЗ
РегистрСведений.ПлановыеНачисления.СрезПоследних(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), (Начисление <> &Д4) И Начисление = &Д5) КАК ИсточникДанных
ГДЕ
ИсточникДанных.Используется = &Д2
И ИсточникДанных.Размер <> 0



LexaK

Алексей Рожков, попробуйте так


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Сотрудник,
    ВЫБОР
        КОГДА &ВыводитьДанныеПредстоящихПриемов
                И &Период < ТекущиеКадровыеДанныеСотрудников.ДатаПриема
            ТОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема
        ИНАЧЕ &Период
    КОНЕЦ КАК Период
ПОМЕСТИТЬ ВТСотрудники
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
            И Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ГДЕ
    Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник
    И Сотрудники.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ТаблицаОтборов.Период КАК Период,
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    СправочникСотрудники.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
ИЗ
    ВТСотрудники КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
        ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    ИзмеренияДаты.Период КАК Период,
    СостоянияСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ВТСведенияОСостоянииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
        ПО ИзмеренияДаты.Сотрудник = СостоянияСотрудников.Сотрудник
            И (СостоянияСотрудников.Период <= ИзмеренияДаты.Период)
            И (СостоянияСотрудников.ДействуетДо >= ИзмеренияДаты.Период
                ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
ГДЕ
    СостоянияСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК ЗаданныйПериод,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
    МАКСИМУМ(РегистрСведений.Период) КАК Период
ПОМЕСТИТЬ ВТПериодыСрезаПлановыйФОТИтоги
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (ВЫБОР
                КОГДА РегистрСведений.Период <= КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ)
                    ТОГДА ИСТИНА
                КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ)
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
ГДЕ
    РегистрСведений.Сотрудник.ПометкаУдаления = &П
СГРУППИРОВАТЬ ПО
    ИзмеренияДаты.Период,
    ИзмеренияДаты.Сотрудник,
    РегистрСведений.ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    МаксимальныеПериоды.ЗаданныйПериод КАК Период,
    МаксимальныеПериоды.Сотрудник КАК Сотрудник,
    РегистрСведений.ТарифнаяСтавка КАК ТарифнаяСтавка,
    РегистрСведений.ФОТ КАК ФОТ
ПОМЕСТИТЬ ВТПлановыйФОТИтогиСрезПоследних
ИЗ
    ВТПериодыСрезаПлановыйФОТИтоги КАК МаксимальныеПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (РегистрСведений.Период = МаксимальныеПериоды.Период)
            И (РегистрСведений.Сотрудник = МаксимальныеПериоды.Сотрудник)
            И (РегистрСведений.ГоловнаяОрганизация = МаксимальныеПериоды.ГоловнаяОрганизация)
            И (РегистрСведений.ФизическоеЛицо = МаксимальныеПериоды.ФизическоеЛицо)
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПериодыСрезаПлановыйФОТИтоги
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    СотрудникиПериоды.Сотрудник КАК Сотрудник,
    СотрудникиПериоды.Период КАК Период,
    ЕСТЬNULL(ПлановыйФОТИтоги.ТарифнаяСтавка, 0) КАК ТарифнаяСтавка,
    ЕСТЬNULL(ПлановыйФОТИтоги.ФОТ, 0) КАК ФОТ
ПОМЕСТИТЬ ВТСведенияОбОплатеТруда
ИЗ
    ВТОтборовРазличныхСотрудников КАК СотрудникиПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыйФОТИтогиСрезПоследних КАК ПлановыйФОТИтоги
        ПО СотрудникиПериоды.Сотрудник = ПлановыйФОТИтоги.Сотрудник
            И СотрудникиПериоды.Период = ПлановыйФОТИтоги.Период
ИНДЕКСИРОВАТЬ ПО
    Период,
    Сотрудник
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПлановыйФОТИтогиСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК Период,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.Должность КАК Должность,
    РегистрСведений.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
        ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
            И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)
ГДЕ
    ИСТИНА
    И РегистрСведений.Сотрудник.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудников.Должность КАК Должность,
    ТарифныеСтавкиСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ТарифныеСтавкиСотрудников.ФОТ КАК ФОТ,
    ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер,
    СведенияОСостоянииСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
        ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
            И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбОплатеТруда КАК ТарифныеСтавкиСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТарифныеСтавкиСотрудников.Сотрудник
            И ТаблицаОтборов.Период = ТарифныеСтавкиСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОСостоянииСотрудников КАК СведенияОСостоянииСотрудников
        ПО ТаблицаОтборов.Сотрудник = СведенияОСостоянииСотрудников.Сотрудник
            И ТаблицаОтборов.Период = СведенияОСостоянииСотрудников.Период
ГДЕ
    СведенияОСостоянииСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОбОплатеТруда
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОСостоянииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
    ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
    ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
    ПредставленияКадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ПредставленияКадровыеДанныеСотрудников.ФОТ КАК ФОТ,
    ПредставленияКадровыеДанныеСотрудников.Должность.ПроцентНадбавкиЗаВредность КАК ДолжностьПроцентНадбавкиЗаВредность,
//данные из второй таблицы
    ИсточникДанных.Размер КАК Размер
ИЗ
    ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников

//ваша вторая таблица
левое соединение
    РегистрСведений.ПлановыеНачисления.СрезПоследних(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), (Начисление <> &Д4) И Начисление = &Д5) КАК ИсточникДанных
по ПредставленияКадровыеДанныеСотрудников.Сотрудник = ИсточникДанных.Сотрудник
и ИсточникДанных.Используется = &Д2
    И ИсточникДанных.Размер <> 0

ГДЕ
    ПредставленияКадровыеДанныеСотрудников.Сотрудник.ПометкаУдаления = &П
    И ПредставленияКадровыеДанныеСотрудников.Состояние = &П2

если помогло нажмите: Спасибо!

Алексей Рожков

Попробовал, но не сработало. Как раз соединяемая часть пустая.
Добавлено: 28 сен 2020, 12:10


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Сотрудник,
    ВЫБОР
        КОГДА &ВыводитьДанныеПредстоящихПриемов
                И &Период < ТекущиеКадровыеДанныеСотрудников.ДатаПриема
            ТОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема
        ИНАЧЕ &Период
    КОНЕЦ КАК Период
ПОМЕСТИТЬ ВТСотрудники
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
            И Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ГДЕ
    Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник
    И Сотрудники.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ТаблицаОтборов.Период КАК Период,
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    СправочникСотрудники.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
ИЗ
    ВТСотрудники КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
        ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    ИзмеренияДаты.Период КАК Период,
    СостоянияСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ВТСведенияОСостоянииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
        ПО ИзмеренияДаты.Сотрудник = СостоянияСотрудников.Сотрудник
            И (СостоянияСотрудников.Период <= ИзмеренияДаты.Период)
            И (СостоянияСотрудников.ДействуетДо >= ИзмеренияДаты.Период
                ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
ГДЕ
    СостоянияСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК ЗаданныйПериод,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
    МАКСИМУМ(РегистрСведений.Период) КАК Период
ПОМЕСТИТЬ ВТПериодыСрезаПлановыйФОТИтоги
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (ВЫБОР
                КОГДА РегистрСведений.Период <= КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ)
                    ТОГДА ИСТИНА
                КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ)
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
ГДЕ
    РегистрСведений.Сотрудник.ПометкаУдаления = &П
СГРУППИРОВАТЬ ПО
    ИзмеренияДаты.Период,
    ИзмеренияДаты.Сотрудник,
    РегистрСведений.ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    МаксимальныеПериоды.ЗаданныйПериод КАК Период,
    МаксимальныеПериоды.Сотрудник КАК Сотрудник,
    РегистрСведений.ТарифнаяСтавка КАК ТарифнаяСтавка,
    РегистрСведений.ФОТ КАК ФОТ
ПОМЕСТИТЬ ВТПлановыйФОТИтогиСрезПоследних
ИЗ
    ВТПериодыСрезаПлановыйФОТИтоги КАК МаксимальныеПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (РегистрСведений.Период = МаксимальныеПериоды.Период)
            И (РегистрСведений.Сотрудник = МаксимальныеПериоды.Сотрудник)
            И (РегистрСведений.ГоловнаяОрганизация = МаксимальныеПериоды.ГоловнаяОрганизация)
            И (РегистрСведений.ФизическоеЛицо = МаксимальныеПериоды.ФизическоеЛицо)
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПериодыСрезаПлановыйФОТИтоги
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    СотрудникиПериоды.Сотрудник КАК Сотрудник,
    СотрудникиПериоды.Период КАК Период,
    ЕСТЬNULL(ПлановыйФОТИтоги.ТарифнаяСтавка, 0) КАК ТарифнаяСтавка,
    ЕСТЬNULL(ПлановыйФОТИтоги.ФОТ, 0) КАК ФОТ
ПОМЕСТИТЬ ВТСведенияОбОплатеТруда
ИЗ
    ВТОтборовРазличныхСотрудников КАК СотрудникиПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыйФОТИтогиСрезПоследних КАК ПлановыйФОТИтоги
        ПО СотрудникиПериоды.Сотрудник = ПлановыйФОТИтоги.Сотрудник
            И СотрудникиПериоды.Период = ПлановыйФОТИтоги.Период
ИНДЕКСИРОВАТЬ ПО
    Период,
    Сотрудник
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПлановыйФОТИтогиСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК Период,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.Должность КАК Должность,
    РегистрСведений.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
        ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
            И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)
ГДЕ
    ИСТИНА
    И РегистрСведений.Сотрудник.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудников.Должность КАК Должность,
    ТарифныеСтавкиСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ТарифныеСтавкиСотрудников.ФОТ КАК ФОТ,
    ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер,
    СведенияОСостоянииСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
        ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
            И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбОплатеТруда КАК ТарифныеСтавкиСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТарифныеСтавкиСотрудников.Сотрудник
            И ТаблицаОтборов.Период = ТарифныеСтавкиСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОСостоянииСотрудников КАК СведенияОСостоянииСотрудников
        ПО ТаблицаОтборов.Сотрудник = СведенияОСостоянииСотрудников.Сотрудник
            И ТаблицаОтборов.Период = СведенияОСостоянииСотрудников.Период
ГДЕ
    СведенияОСостоянииСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОбОплатеТруда
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОСостоянииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
    ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
    ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
    ПредставленияКадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ПредставленияКадровыеДанныеСотрудников.ФОТ КАК ФОТ,
    ПредставленияКадровыеДанныеСотрудников.Должность.ПроцентНадбавкиЗаВредность КАК ДолжностьПроцентНадбавкиЗаВредность,
    //данные из второй таблицы
    ИсточникДанных.Размер КАК Размер
ИЗ
    ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников
   
//ваша вторая таблица   
левое соединение   
    РегистрСведений.ПлановыеНачисления.СрезПоследних(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), Начисление = &Д3) КАК ИсточникДанных
    по ПредставленияКадровыеДанныеСотрудников.Сотрудник = ИсточникДанных.Сотрудник   
ГДЕ
ИсточникДанных.Используется = ИСТИНА
   

Немного допилил, но получается нужно сделать наоборот.

у меня в первой таблице около 800 сотрудников, а во второй 22.
Нужно из второй добавить значения в первую, а остальное заполнить пустотой. По сотруднику. Как инвертировать результат работы запроса?

Добавлено: 28 сен 2020, 12:23


Переделал еще раз, убрал параметры ненужные. Но все равно, инвертировать не могу результат.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
Сотрудники.Ссылка КАК Сотрудник,
ВЫБОР
КОГДА &ВыводитьДанныеПредстоящихПриемов = ЛОЖЬ И &Период < ТекущиеКадровыеДанныеСотрудников.ДатаПриема
ТОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема
ИНАЧЕ &Период
КОНЕЦ КАК Период
ПОМЕСТИТЬ ВТСотрудники
ИЗ
Справочник.Сотрудники КАК Сотрудники
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ПО Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
И Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ГДЕ
Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
ТаблицаОтборов.Период КАК Период,
ТаблицаОтборов.Сотрудник КАК Сотрудник,
СправочникСотрудники.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
ИЗ
ВТСотрудники КАК ТаблицаОтборов
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИзмеренияДаты.Период КАК ЗаданныйПериод,
ИзмеренияДаты.Сотрудник КАК Сотрудник,
РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
МАКСИМУМ(РегистрСведений.Период) КАК Период
ПОМЕСТИТЬ ВТПериодыСрезаПлановыйФОТИтоги
ИЗ
ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
ПО (ВЫБОР
КОГДА РегистрСведений.Период <= КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ)
ТОГДА ИСТИНА
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ)
И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
СГРУППИРОВАТЬ ПО
ИзмеренияДаты.Период,
ИзмеренияДаты.Сотрудник,
РегистрСведений.ГоловнаяОрганизация,
РегистрСведений.ФизическоеЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
МаксимальныеПериоды.ЗаданныйПериод КАК Период,
МаксимальныеПериоды.Сотрудник КАК Сотрудник,
РегистрСведений.ТарифнаяСтавка КАК ТарифнаяСтавка,
РегистрСведений.ФОТ КАК ФОТ
ПОМЕСТИТЬ ВТПлановыйФОТИтогиСрезПоследних
ИЗ
ВТПериодыСрезаПлановыйФОТИтоги КАК МаксимальныеПериоды
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
ПО (РегистрСведений.Период = МаксимальныеПериоды.Период)
И (РегистрСведений.Сотрудник = МаксимальныеПериоды.Сотрудник)
И (РегистрСведений.ГоловнаяОрганизация = МаксимальныеПериоды.ГоловнаяОрганизация)
И (РегистрСведений.ФизическоеЛицо = МаксимальныеПериоды.ФизическоеЛицо)
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПериодыСрезаПлановыйФОТИтоги
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
СотрудникиПериоды.Сотрудник КАК Сотрудник,
СотрудникиПериоды.Период КАК Период,
ЕСТЬNULL(ПлановыйФОТИтоги.ТарифнаяСтавка, 0) КАК ТарифнаяСтавка,
ЕСТЬNULL(ПлановыйФОТИтоги.ФОТ, 0) КАК ФОТ
ПОМЕСТИТЬ ВТСведенияОбОплатеТруда
ИЗ
ВТОтборовРазличныхСотрудников КАК СотрудникиПериоды
ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыйФОТИтогиСрезПоследних КАК ПлановыйФОТИтоги
ПО СотрудникиПериоды.Сотрудник = ПлановыйФОТИтоги.Сотрудник
И СотрудникиПериоды.Период = ПлановыйФОТИтоги.Период
ИНДЕКСИРОВАТЬ ПО
Период,
Сотрудник
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПлановыйФОТИтогиСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИзмеренияДаты.Период КАК Период,
ИзмеренияДаты.Сотрудник КАК Сотрудник,
РегистрСведений.Должность КАК Должность,
РегистрСведений.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
ИЗ
ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
ИНАЧЕ ИзмеренияДаты.Период
КОНЕЦ, ДЕНЬ))
И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
ИНАЧЕ ИзмеренияДаты.Период
КОНЕЦ, ДЕНЬ))
И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)
ГДЕ
ИСТИНА
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ТаблицаОтборов.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
КадроваяИсторияСотрудников.Должность КАК Должность,
ТарифныеСтавкиСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
ТарифныеСтавкиСотрудников.ФОТ КАК ФОТ,
ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер
ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
ИЗ
ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период
ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбОплатеТруда КАК ТарифныеСтавкиСотрудников
ПО ТаблицаОтборов.Сотрудник = ТарифныеСтавкиСотрудников.Сотрудник
И ТаблицаОтборов.Период = ТарифныеСтавкиСотрудников.Период
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОбОплатеТруда
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
ПредставленияКадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
ПредставленияКадровыеДанныеСотрудников.ФОТ КАК ФОТ,
ПредставленияКадровыеДанныеСотрудников.Должность.ПроцентНадбавкиЗаВредность КАК ДолжностьПроцентНадбавкиЗаВредность,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПредставленияКадровыеДанныеСотрудников.Подразделение) КАК ПодразделениеПредставление,
ПредставленияКадровыеДанныеСотрудников.Подразделение.Наименование КАК ПодразделениеНаименование,
ПРЕДСТАВЛЕНИЕССЫЛКИ(ПредставленияКадровыеДанныеСотрудников.Сотрудник) КАК СотрудникПредставление,
ПредставленияКадровыеДанныеСотрудников.Сотрудник.Наименование КАК СотрудникНаименование,
//данные из второй таблицы
    ИсточникДанных.Размер КАК Размер
ИЗ
ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников

//ваша вторая таблица   
левое соединение   
   РегистрСведений.ПлановыеНачисления.СрезПоследних(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), Начисление = &Д3) КАК ИсточникДанных
    по ПредставленияКадровыеДанныеСотрудников.Сотрудник = ИсточникДанных.Сотрудник
       
ГДЕ
ИсточникДанных.Используется = ИСТИНА

Добавлено: 28 сен 2020, 12:38


ВСЕ, ЗАРАБОТАЛО.
ИТОГОВЫЙ ВАРИАНТ:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Сотрудник,
    ВЫБОР
        КОГДА &ВыводитьДанныеПредстоящихПриемов
                И &Период < ТекущиеКадровыеДанныеСотрудников.ДатаПриема
            ТОГДА ТекущиеКадровыеДанныеСотрудников.ДатаПриема
        ИНАЧЕ &Период
    КОНЕЦ КАК Период
ПОМЕСТИТЬ ВТСотрудники
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО Сотрудники.ФизическоеЛицо = ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо
            И Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
ГДЕ
    Сотрудники.Ссылка = Сотрудники.ГоловнойСотрудник
    И Сотрудники.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ТаблицаОтборов.Период КАК Период,
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    СправочникСотрудники.Код КАК ТабельныйНомер
ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
ИЗ
    ВТСотрудники КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
        ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    ИзмеренияДаты.Период КАК Период,
    СостоянияСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ВТСведенияОСостоянииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
        ПО ИзмеренияДаты.Сотрудник = СостоянияСотрудников.Сотрудник
            И (СостоянияСотрудников.Период <= ИзмеренияДаты.Период)
            И (СостоянияСотрудников.ДействуетДо >= ИзмеренияДаты.Период
                ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
ГДЕ
    СостоянияСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК ЗаданныйПериод,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
    МАКСИМУМ(РегистрСведений.Период) КАК Период
ПОМЕСТИТЬ ВТПериодыСрезаПлановыйФОТИтоги
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (ВЫБОР
                КОГДА РегистрСведений.Период <= КОНЕЦПЕРИОДА(ИзмеренияДаты.Период, ДЕНЬ)
                    ТОГДА ИСТИНА
                КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                    ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ)
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
ГДЕ
    РегистрСведений.Сотрудник.ПометкаУдаления = &П
СГРУППИРОВАТЬ ПО
    ИзмеренияДаты.Период,
    ИзмеренияДаты.Сотрудник,
    РегистрСведений.ГоловнаяОрганизация,
    РегистрСведений.ФизическоеЛицо
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    МаксимальныеПериоды.ЗаданныйПериод КАК Период,
    МаксимальныеПериоды.Сотрудник КАК Сотрудник,
    РегистрСведений.ТарифнаяСтавка КАК ТарифнаяСтавка,
    РегистрСведений.ФОТ КАК ФОТ
ПОМЕСТИТЬ ВТПлановыйФОТИтогиСрезПоследних
ИЗ
    ВТПериодыСрезаПлановыйФОТИтоги КАК МаксимальныеПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыйФОТИтоги КАК РегистрСведений
        ПО (РегистрСведений.Период = МаксимальныеПериоды.Период)
            И (РегистрСведений.Сотрудник = МаксимальныеПериоды.Сотрудник)
            И (РегистрСведений.ГоловнаяОрганизация = МаксимальныеПериоды.ГоловнаяОрганизация)
            И (РегистрСведений.ФизическоеЛицо = МаксимальныеПериоды.ФизическоеЛицо)
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПериодыСрезаПлановыйФОТИтоги
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    СотрудникиПериоды.Сотрудник КАК Сотрудник,
    СотрудникиПериоды.Период КАК Период,
    ЕСТЬNULL(ПлановыйФОТИтоги.ТарифнаяСтавка, 0) КАК ТарифнаяСтавка,
    ЕСТЬNULL(ПлановыйФОТИтоги.ФОТ, 0) КАК ФОТ
ПОМЕСТИТЬ ВТСведенияОбОплатеТруда
ИЗ
    ВТОтборовРазличныхСотрудников КАК СотрудникиПериоды
        ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыйФОТИтогиСрезПоследних КАК ПлановыйФОТИтоги
        ПО СотрудникиПериоды.Сотрудник = ПлановыйФОТИтоги.Сотрудник
            И СотрудникиПериоды.Период = ПлановыйФОТИтоги.Период
ИНДЕКСИРОВАТЬ ПО
    Период,
    Сотрудник
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТПлановыйФОТИтогиСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИзмеренияДаты.Период КАК Период,
    ИзмеренияДаты.Сотрудник КАК Сотрудник,
    РегистрСведений.Должность КАК Должность,
    РегистрСведений.Подразделение КАК Подразделение
ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
        ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
                    КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
                        ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
                    ИНАЧЕ ИзмеренияДаты.Период
                КОНЕЦ, ДЕНЬ))
            И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
            И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)
ГДЕ
    ИСТИНА
    И РегистрСведений.Сотрудник.ПометкаУдаления = &П
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТаблицаОтборов.Сотрудник КАК Сотрудник,
    КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудников.Должность КАК Должность,
    ТарифныеСтавкиСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ТарифныеСтавкиСотрудников.ФОТ КАК ФОТ,
    ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер,
    СведенияОСостоянииСотрудников.Состояние КАК Состояние
ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
ИЗ
    ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
        ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
            И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОбОплатеТруда КАК ТарифныеСтавкиСотрудников
        ПО ТаблицаОтборов.Сотрудник = ТарифныеСтавкиСотрудников.Сотрудник
            И ТаблицаОтборов.Период = ТарифныеСтавкиСотрудников.Период
        ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОСостоянииСотрудников КАК СведенияОСостоянииСотрудников
        ПО ТаблицаОтборов.Сотрудник = СведенияОСостоянииСотрудников.Сотрудник
            И ТаблицаОтборов.Период = СведенияОСостоянииСотрудников.Период
ГДЕ
    СведенияОСостоянииСотрудников.Состояние = &П2
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОбОплатеТруда
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТСведенияОСостоянииСотрудников
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
    ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
    ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
    ПредставленияКадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    ПредставленияКадровыеДанныеСотрудников.ФОТ КАК ФОТ,
    ПредставленияКадровыеДанныеСотрудников.Должность.ПроцентНадбавкиЗаВредность КАК ДолжностьПроцентНадбавкиЗаВредность,
    //данные из второй таблицы
    ИсточникДанных.Размер КАК Размер
ИЗ
    ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников
   
//ваша вторая таблица   
левое соединение   
    РегистрСведений.ПлановыеНачисления.СрезПоследних(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), Начисление = &Д5) КАК ИсточникДанных
    по ПредставленияКадровыеДанныеСотрудников.Сотрудник = ИсточникДанных.Сотрудник
     
   



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск