Имя: Пароль:
1C
1С v8
Как скорректировать результат запроса УПП 1.3
0 skupidom
 
19.11.18
22:44
Сейчас выводит:
09.11.2015    Прием на работу 01200000000 от 09.11.2015 0:00:00    01.11.2016    Кадровое перемещение 037 от 01.11.2016 0:00:00    46 000,000    57 700,000
09.11.2015    Прием на работу 01200000000 от 09.11.2015 0:00:00    15.11.2017    Кадровое перемещение 0131 от 15.11.2017 17:47:47    46 000,000    86 300,000
09.11.2015    Прием на работу 01200000000 от 09.11.2015 0:00:00    17.10.2018    Кадровое перемещение 00117 от 17.10.2018 12:00:02    46 000,000    164 400,000
01.11.2016    Кадровое перемещение 037 от 01.11.2016 0:00:00    15.11.2017    Кадровое перемещение 0131 от 15.11.2017 17:47:47    57 700,000    86 300,000
01.11.2016    Кадровое перемещение 037 от 01.11.2016 0:00:00    17.10.2018    Кадровое перемещение 00117 от 17.10.2018 12:00:02    57 700,000    164 400,000
15.11.2017    Кадровое перемещение 0131 от 15.11.2017 17:47:47    17.10.2018    Кадровое перемещение 00117 от 17.10.2018 12:00:02    86 300,000    164 400,000
надо так:
Зарплата    Старая ЗП    Новая ЗП
01.11.2016    Кадровое перемещение 037 от 01.11.2016 0:00:00    15.11.2017    Кадровое перемещение 0131 от 15.11.2017 17:47:47    46 000,000    57 700,000
01.11.2016    Кадровое перемещение 037 от 01.11.2016 0:00:00    17.10.2018    Кадровое перемещение 00117 от 17.10.2018 12:00:02    57 700,000    86 300,000
15.11.2017    Кадровое перемещение 0131 от 15.11.2017 17:47:47    17.10.2018    Кадровое перемещение 00117 от 17.10.2018 12:00:02    86 300,000    164 400,000
1 skupidom
 
19.11.18
22:45
Запрс:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ВидРасчета КАК ВидРасчета,
    ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо,
    ПлановыеНачисленияРаботников.Показатель1 КАК Результат,
    ПлановыеНачисленияРаботников.Регистратор
ПОМЕСТИТЬ ВТПланТекущая
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода

ИНДЕКСИРОВАТЬ ПО
    ВидРасчета,
    ФизЛицо
;

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

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

УПОРЯДОЧИТЬ ПО
    ПлановыеНачисленияРаботников.ФизЛицо.Наименование
2 skupidom
 
20.11.18
21:41
можно ли так настроить ?
3 RomanYS
 
20.11.18
22:01
(2) можно

(1)
Зачем второй раз выбирать из РС, если эти данные уже в ВТ. Соединяй ВТ с самой собой//это так - оптимизация)

в СГРУППИРОВАТЬ ПО не должно быть поля только из одной таблицы (или новой или старой), из второй только
МАКСИМУМ(ВТНовая.Период) КАК ПериодНовый
или
МИНИНМУМ(ВТСтарая.Период) КАК ПериодНовый,

придется сделать еще одно соединение со второй таблицей по периоду
4 RomanYS
 
20.11.18
22:02
*(3)в СГРУППИРОВАТЬ ПО должны быть поля только из одной таблицы...
5 skupidom
 
20.11.18
22:05
как это должно быть в итоге
6 skupidom
 
21.11.18
09:42
как сделать, чтобы даты в колонках Старая дата и новая дата не повторялись ?
7 skupidom
 
21.11.18
10:18
Получилось вывести в столбик:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПлановыеНачисленияРаботников.Период,
    ПлановыеНачисленияРаботников.ВидРасчета КАК ВидРасчета,
    ПлановыеНачисленияРаботников.ФизЛицо КАК ФизЛицо,
    ПлановыеНачисленияРаботников.Показатель1 КАК Результат,
    ПлановыеНачисленияРаботников.Регистратор
ПОМЕСТИТЬ ВТПланТекущая
ИЗ
    РегистрСведений.ПлановыеНачисленияРаботников КАК ПлановыеНачисленияРаботников
ГДЕ
    ПлановыеНачисленияРаботников.Период МЕЖДУ &НачалоПериода И &КонецПериода

ИНДЕКСИРОВАТЬ ПО
    ВидРасчета,
    ФизЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТПланТекущая.Период КАК Период,
    ВТПланТекущая.ФизЛицо,
    ВТПланТекущая.ВидРасчета,
    ВТПланТекущая.Регистратор,
    ВТПланТекущая.Результат
{ВЫБРАТЬ
    Период}
ИЗ
    ВТПланТекущая КАК ВТПланТекущая
{ГДЕ
    ВТПланТекущая.Период,
    ВТПланТекущая.ВидРасчета.*,
    ВТПланТекущая.ФизЛицо.*,
    ВТПланТекущая.Результат,
    ВТПланТекущая.Регистратор.*}

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