Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помогите пожалуйста с запросом

Помогите пожалуйста с запросом
Я
   lg2marvel
 
05.06.19 - 17:56
Добрый день. Запросом получаю виды начислений, помещаю перечень видов в ВТНачисленияУдержания

ВЫБРАТЬ
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое
ПОМЕСТИТЬ ВТНачисленияУдержания
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам
ГДЕ
    НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
    И (НЕ &ОтборПоПодразделению
            ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение))
    И (НЕ &ОтборПоФизЛицу
            ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо)

Затем нужно вывести Физлицо, Подразделение на котором устроен сотрудник, начисление и сумму начисления, но с таким условием чтоб если для данного сотрудника начисление не используется то выводилась пустая строка или 0.
Не могу придумать как связаться с временной таблицей чтоб это реализовать? Второй запрос выглядит примерно так:

ВЫБРАТЬ
    ВТНачисленияУдержания.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
    ВТНачисленияУдержания.НачислениеУдержание КАК НачислениеУдержание,
    ВТНачисленияУдержания.НачислениеУдержаниеКраткое КАК НачислениеУдержаниеКраткое,
    НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение,
    ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0) КАК СуммаНУ,
    НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(
            НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ),
            КОНЕЦПЕРИОДА(&Кон, ДЕНЬ),
            ,
            (НЕ &ОтборПоФизЛицу
                ИЛИ ФизическоеЛицо = &ФизическоеЛицо)
                И (НЕ &ОтборПоПодразделению
                    ИЛИ Подразделение = &Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты,
    ВТНачисленияУдержания КАК ВТНачисленияУдержания
ИТОГИ
    СУММА(СуммаНУ)
ПО
    Подразделение ИЕРАРХИЯ,
    ФизическоеЛицо,
    ГруппаНачисленияУдержанияВыплаты,
    НачислениеУдержание
АВТОУПОРЯДОЧИВАНИЕ

Если делаю ЛЕВОЕ СОЕДИНЕНИЕ и связь по НачислениеУдержание - если не используется начисление - оно пропускается
 
 
   novichok79
 
1 - 05.06.19 - 18:07
а база какая? версия платформы?
   novichok79
 
2 - 05.06.19 - 18:08
если ЗУП 3.1 там для этого уже запросы создаются, ты чисто из таблиц данные тягаешь
   lg2marvel
 
3 - 05.06.19 - 18:12
(1) ЗУП 3.1.9 платформа (8.3.13.1644)
   lg2marvel
 
4 - 05.06.19 - 18:21
По сути надо решить задачу: есть 2 таблицы:
А
Наименование сумма   цвет
а                            10      красный
б                            15      синий
с                             20     синий

Б
Наименование
Красный
Синий
Желтый

Надо вывести запросом в таблицу
С
Наименование  Сумма  Цвет
а                             10        Красный
а                              0         синий
а                              0         Желтый
б                              0        Красный
б                              15        синий
б                              0         Желтый
с                             0         Красный
с                              20         синий
с                              0         Желтый
   lg2marvel
 
5 - 05.06.19 - 18:23
Или может имея 2 результата запроса объединить их...
   Бертыш
 
6 - 05.06.19 - 23:31
(5) Какой то ты левый. Наше дело правое. Мы победим
   catena
 
7 - 06.06.19 - 04:54
Составляете таблицу всех начислений/удержаний, которые должны фигурировать.
К ней левым по удержанию и физлицу крепите значения по физлицам с ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0).
   lg2marvel
 
8 - 06.06.19 - 10:09
(7) Сделал вот так:
ВЫБРАТЬ
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое,
    НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение,
    НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо,
    ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот, 0) КАК СуммаНУ
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(
                НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ),
                КОНЕЦПЕРИОДА(&Кон, ДЕНЬ),
                ,
                (НЕ &ОтборПоФизЛицу
                    ИЛИ ФизическоеЛицо = &ФизическоеЛицо)
                    И (НЕ &ОтборПоПодразделению
                        ИЛИ Подразделение = &Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты
        ПО (НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо)
            И (НачисленияУдержанияПоСотрудникам.НачислениеУдержание = НачисленияУдержанияПоСотрудникамОбороты.НачислениеУдержание)
ГДЕ
    НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
    И (НЕ &ОтборПоПодразделению
            ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение))
    И (НЕ &ОтборПоФизЛицу
            ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо)


ИТОГИ
    СУММА(СуммаНУ)
ПО
    Подразделение ИЕРАРХИЯ,
    ФизическоеЛицо,
    ГруппаНачисленияУдержанияВыплаты,
    НачислениеУдержание
АВТОУПОРЯДОЧИВАНИЕ    

В итоге выводится не так как хотелось бы
   lg2marvel
 
9 - 06.06.19 - 10:11
   catena
 
10 - 06.06.19 - 10:55
(8)Хорошо, уточняю: Составляете таблицу всех ``уникальных`` начислений/удержаний
   novichok79
 
14 - 06.06.19 - 11:41
погуглите в конфигурации:

СоздатьВТНачисленияСПоказателямиТарифныхСтавок
СоздатьВТКадровыеДанныеСотрудников

я бы шел таким путем, учитывая переделки ЗУП 3.1, прямой запрос при следующем обновлении может сломаться.
   lg2marvel
 
15 - 06.06.19 - 12:05
(10) (14) спасибо, смотрю
   lg2marvel
 
16 - 06.06.19 - 12:15
(10) Это и есть уникальные начисления удержания
НачислениеУдержание    
Оплата по окладу    
Премия мес
НДФЛ    
Удержание по исполнительному документу

ВЫБРАТЬ
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам
ГДЕ
    НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
    И (НЕ &ОтборПоПодразделению
            ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение))
    И (НЕ &ОтборПоФизЛицу
            ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо)

СГРУППИРОВАТЬ ПО
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование
АВТОУПОРЯДОЧИВАНИЕ
   catena
 
17 - 06.06.19 - 12:26
(16)Но в (8) соединение ведь не с такой таблицей.
   breezee
 
18 - 06.06.19 - 12:28
(16) Не пишите такую констуркцию
    И (НЕ &ОтборПоПодразделению
            ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение))
ИЛИ плохо работает, оптимизатор его плохо ест. В ИЕРАРХИИ тоже лучше не использовать.
Не пишите, потом кто-то будет переписывать..
   lg2marvel
 
19 - 06.06.19 - 12:55
(17) вот запрос: таблица начислений удержаний и к ней левым соединением регистр с оборотами

ВЫБРАТЬ
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование КАК НачислениеУдержаниеКраткое,
    НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо КАК ФизическоеЛицо,
    НачисленияУдержанияПоСотрудникамОбороты.Подразделение КАК Подразделение,
    ЕСТЬNULL(НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот,0) КАК СуммаОборот
ИЗ
    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ), КОНЕЦПЕРИОДА(&Кон, ДЕНЬ), , Подразделение В (&Подразделение)) КАК НачисленияУдержанияПоСотрудникамОбороты
        ПО (НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо
                И НачисленияУдержанияПоСотрудникам.НачислениеУдержание = НачисленияУдержанияПоСотрудникамОбороты.НачислениеУдержание)
ГДЕ
    НачисленияУдержанияПоСотрудникам.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
    И (НЕ &ОтборПоПодразделению
            ИЛИ НачисленияУдержанияПоСотрудникам.Подразделение В ИЕРАРХИИ (&Подразделение))
    И (НЕ &ОтборПоФизЛицу
            ИЛИ НачисленияУдержанияПоСотрудникам.ФизическоеЛицо = &ФизическоеЛицо)

СГРУППИРОВАТЬ ПО
    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание,
    НачисленияУдержанияПоСотрудникам.НачислениеУдержание.КраткоеНаименование,
    НачисленияУдержанияПоСотрудникамОбороты.ФизическоеЛицо,
    НачисленияУдержанияПоСотрудникамОбороты.Подразделение,
    НачисленияУдержанияПоСотрудникамОбороты.СуммаОборот
ИТОГИ
    СУММА(СуммаОборот)
ПО
    Подразделение ИЕРАРХИЯ,
    ФизическоеЛицо
АВТОУПОРЯДОЧИВАНИЕ

а результат тот-же: http://i.piccy.info/i9/0a87667e6df6fd1c7affcd4a0bc7578e/1559815411/73356/1312453/Snymok.jpg
   catena
 
20 - 06.06.19 - 13:02
(19)В данном случае сгруппировать работает уже с результатом.

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