Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрос изменения ЗП

Запрос изменения ЗП
Я
   skupidom
 
30.11.18 - 15:38
Нужно чтобы соблюдалась хронология и документы не повторялись, если не устанавливать отбор:
ВЫБРАТЬ
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ВидРасчета КАК ВидРасчета,
    ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо,
    ПлановыеНачисленияРаботников.Регистратор КАК ПрошлыйДокумент,
    ПлановыеНачисленияРаботников.Показатель1 КАК ПрошлыйРезультат
ПОМЕСТИТЬ ВТПланТекущая
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТПланТекущая.ФизЛицо,
    ВТПланТекущая.ВидРасчета,
    ВТПланТекущая.Период КАК ПериодСтарый,
    ВТПланТекущая.ПрошлыйДокумент,
    ВТПланТекущая.ПрошлыйРезультат,
    МИНИМУМ(ПлановыеНачисленияРаботников.Период) КАК ПериодНовый
ПОМЕСТИТЬ ВТ_Итог
{ВЫБРАТЬ
    ПериодНовый,
    ПериодСтарый}
ИЗ
    ВТПланТекущая КАК ВТПланТекущая
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
        ПО ВТПланТекущая.Период < ПлановыеНачисленияРаботников.Период
            И ВТПланТекущая.ФизЛицо = ПлановыеНачисленияРаботников.ФизЛицо
            И ВТПланТекущая.ВидРасчета = ПлановыеНачисленияРаботников.ВидРасчета
            И ВТПланТекущая.ПрошлыйРезультат <> ПлановыеНачисленияРаботников.Показатель1
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода
{ГДЕ
    ВТПланТекущая.Период,
    ВТПланТекущая.ВидРасчета.*,
    ВТПланТекущая.ФизЛицо.*,
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ВидРасчета.*,
    ПлановыеНачисленияРаботников.ФизЛицо.*,
    ПлановыеНачисленияРаботников.Показатель1,
    ПлановыеНачисленияРаботников.Регистратор.*}

СГРУППИРОВАТЬ ПО
    ВТПланТекущая.ФизЛицо,
    ВТПланТекущая.ВидРасчета,
    ВТПланТекущая.Период,
    ВТПланТекущая.ПрошлыйДокумент,
    ВТПланТекущая.ПрошлыйРезультат
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТПланПрошлая.ФизЛицо,
    ВТПланПрошлая.ВидРасчета,
    ВТ_Итог.ПериодСтарый,
    ВТ_Итог.ПрошлыйДокумент КАК ПрошлыйДокумент,
    ВТ_Итог.ПрошлыйРезультат КАК ПрошлыйРезультат,
    ВТ_Итог.ПериодНовый,
    ВТПланПрошлая.ПрошлыйДокумент КАК НовыйДокумент,
    ВТПланПрошлая.ПрошлыйРезультат КАК НовыйРезультат
ПОМЕСТИТЬ ВТПлановыеНачисления
ИЗ
    ВТ_Итог КАК ВТ_Итог
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПланТекущая КАК ВТПланПрошлая
        ПО ВТ_Итог.ПериодНовый = ВТПланПрошлая.Период
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТПлановыеНачисления.ФизЛицо,
    ВТПлановыеНачисления.ВидРасчета,
    ВТПлановыеНачисления.ПериодСтарый,
    ВТПлановыеНачисления.ПрошлыйДокумент,
    ВТПлановыеНачисления.ПрошлыйРезультат,
    ВТПлановыеНачисления.ПериодНовый,
    ВТПлановыеНачисления.НовыйДокумент,
    ВТПлановыеНачисления.НовыйРезультат
ИЗ
    ВТПлановыеНачисления КАК ВТПлановыеНачисления
 
 
   skupidom
 
1 - 30.11.18 - 17:12
22    19.10.2017    Прием на работу 01390000000 от 19.10.2017 12:59:32    24.07.2018    Кадровое перемещение 00037 от 24.07.2018 17:45:33    92 000,000    138 000,000
23    19.10.2017    Прием на работу 01390000000 от 19.10.2017 12:59:32    24.10.2018    Кадровое перемещение 00084 от 24.10.2018 0:00:00    92 000,000    165 600,000
24    24.07.2018    Кадровое перемещение 00037 от 24.07.2018 17:45:33    24.10.2018    Кадровое перемещение 00084 от 24.10.2018 0:00:00    138 000,000    165 600,000
   skupidom
 
2 - 30.11.18 - 17:12
запрос возвращает
   skupidom
 
3 - 30.11.18 - 17:13
нужно исключить повторения
23    19.10.2017    Прием на работу 01390000000 от 19.10.2017 12:59:32    24.10.2018    Кадровое перемещение 00084 от 24.10.2018 0:00:00    92 000,000    165 600,000
24    24.07.2018    Кадровое перемещение 00037 от 24.07.2018 17:45:33    24.10.2018    Кадровое перемещение 00084 от 24.10.2018 0:00:00    138 000,000    165 600,000
   shuhard
 
4 - 30.11.18 - 17:14
(3) продолжай наблюдения
   Вафель
 
5 - 30.11.18 - 17:51
делай через "представления"
   skupidom
 
6 - 30.11.18 - 18:19
делай через "представления" - весь запрос или часть ?
   МихаилМ
 
7 - 30.11.18 - 18:21
(3) какое из повторений желаете исключить ?
   skupidom
 
8 - 30.11.18 - 18:27
должно быть так
19.10.2017 Прием на работу 01390000000 от 19.10.2017 12:59:32   92 000,000  24.07.2018 Кадровое перемещение 00037 от 24.07.2018 17:45:33 138 000,000
24.07.2018 Кадровое перемещение 00037 от 24.07.2018 17:45:33 138 000,000 24.10.2018 Кадровое перемещение 00084 от 24.10.2018 0:00:00     165 600,000
   skupidom
 
9 - 30.11.18 - 18:28
попробовал сделать так:
ВЫБРАТЬ
    ПлановыеНачисленияРаботников.Период КАК ПрошлыйПериод,
    ПлановыеНачисленияРаботников.ВидРасчета КАК ВидРасчета,
    ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо,
    ПлановыеНачисленияРаботников.Регистратор КАК ПрошлыйДокумент,
    ПлановыеНачисленияРаботников.Показатель1 КАК ПрошлыйРезультат
ПОМЕСТИТЬ ВТПланПрошлая
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И НЕ ПлановыеНачисленияРаботников.Регистратор ССЫЛКА Документ.Увольнение
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТПланПрошлая.ФизЛицо,
    ВТПланПрошлая.ВидРасчета,
    ВТПланПрошлая.ПрошлыйПериод,
    ВТПланПрошлая.ПрошлыйДокумент,
    ВТПланПрошлая.ПрошлыйРезультат,
    МИНИМУМ(ПлановыеНачисленияРаботников.Период) КАК НовыйПериод,
    ПлановыеНачисленияРаботников.Регистратор КАК НовыйДокумент,
    ПлановыеНачисленияРаботников.Показатель1 КАК НовыйРезультат
ИЗ
    ВТПланПрошлая КАК ВТПланПрошлая
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
        ПО ВТПланПрошлая.ФизЛицо = ПлановыеНачисленияРаботников.ФизЛицо
            И ВТПланПрошлая.ВидРасчета = ПлановыеНачисленияРаботников.ВидРасчета
            И ВТПланПрошлая.ПрошлыйПериод < ПлановыеНачисленияРаботников.Период
            И ВТПланПрошлая.ПрошлыйРезультат <> ПлановыеНачисленияРаботников.Показатель1
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И НЕ ПлановыеНачисленияРаботников.Регистратор ССЫЛКА Документ.Увольнение

СГРУППИРОВАТЬ ПО
    ВТПланПрошлая.ПрошлыйПериод,
    ВТПланПрошлая.ВидРасчета,
    ВТПланПрошлая.ФизЛицо,
    ВТПланПрошлая.ПрошлыйДокумент,
    ВТПланПрошлая.ПрошлыйРезультат,
    ПлановыеНачисленияРаботников.Регистратор,
    ПлановыеНачисленияРаботников.Показатель1
   skupidom
 
10 - 30.11.18 - 18:30
и так:
ВЫБРАТЬ
    ПлановыеНачисленияРаботников.Период КАК ПрошлыйПериод,
    ПлановыеНачисленияРаботников.ВидРасчета КАК ВидРасчета,
    ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо,
    ПлановыеНачисленияРаботников.Регистратор КАК ПрошлыйДокумент,
    СУММА(ПлановыеНачисленияРаботников.Показатель1) КАК ПрошлыйРезультат
ПОМЕСТИТЬ ВТПланПрошлая
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО
    ПлановыеНачисленияРаботников.Регистратор,
    ПлановыеНачисленияРаботников.ВидРасчета,
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ФизЛицо
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПлановыеНачисленияРаботников.Период КАК ПериодНовый,
    ПлановыеНачисленияРаботников.ФизЛицо,
    ПлановыеНачисленияРаботников.ВидРасчета,
    ПлановыеНачисленияРаботников.Регистратор КАК НовыйРегистратор,
    СУММА(ПлановыеНачисленияРаботников.Показатель1) КАК НовыйРезультат
ПОМЕСТИТЬ ВТПланТекущий
{ВЫБРАТЬ
    ПериодНовый}
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода
{ГДЕ
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ВидРасчета.*,
    ПлановыеНачисленияРаботников.ФизЛицо.*,
    ПлановыеНачисленияРаботников.Показатель1,
    ПлановыеНачисленияРаботников.Регистратор.*}

СГРУППИРОВАТЬ ПО
    ПлановыеНачисленияРаботников.ВидРасчета,
    ПлановыеНачисленияРаботников.Регистратор,
    ПлановыеНачисленияРаботников.ФизЛицо,
    ПлановыеНачисленияРаботников.Период
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    МИНИМУМ(ВТПланТекущий.ПериодНовый) КАК ПериодНовый
ПОМЕСТИТЬ ВТПланТекущийПериод
ИЗ
    ВТПланПрошлая КАК ВТПланПрошлая
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПланТекущий КАК ВТПланТекущий
        ПО ВТПланПрошлая.ПрошлыйПериод < ВТПланТекущий.ПериодНовый
            И ВТПланПрошлая.ФизЛицо = ВТПланТекущий.ФизЛицо
            И ВТПланПрошлая.ВидРасчета = ВТПланТекущий.ВидРасчета
            И ВТПланПрошлая.ПрошлыйРезультат <> ВТПланТекущий.НовыйРезультат
ГДЕ
    ВТПланТекущий.ПериодНовый МЕЖДУ &НачалоПериода И &КонецПериода
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВТПланПрошлая.ФизЛицо,
    ВТПланПрошлая.ВидРасчета,
    ВТПланПрошлая.ПрошлыйПериод,
    ВТПланПрошлая.ПрошлыйДокумент,
    ВТПланПрошлая.ПрошлыйРезультат,
    ВТПланТекущийПериод.ПериодНовый,
    ВТПланТекущий.НовыйРегистратор КАК НовыйДокумент,
    ВТПланТекущий.НовыйРезультат
ИЗ
    ВТПланПрошлая КАК ВТПланПрошлая
        ЛЕВОЕ СОЕДИНЕНИЕ ВТПланТекущий КАК ВТПланТекущий
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПланТекущийПериод КАК ВТПланТекущийПериод
            ПО (ВТПланТекущийПериод.ПериодНовый = ВТПланТекущий.ПериодНовый)
        ПО ВТПланПрошлая.ФизЛицо = ВТПланТекущий.ФизЛицо
            И ВТПланПрошлая.ВидРасчета = ВТПланТекущий.ВидРасчета
 
 Рекламное место пустует
   skupidom
 
11 - 30.11.18 - 18:31
не получается
   skupidom
 
12 - 30.11.18 - 23:57
опять никто не знает
   Радим1987
 
13 - 01.12.18 - 00:09
   skupidom
 
14 - 01.12.18 - 00:47
спасибо
   skupidom
 
15 - 01.12.18 - 13:50
не получается, может как-то изменить запрос ?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует