Имя: Пароль:
1C
1С v8
Как из запроса убрать сторнированные часы?
0 VID1234
 
06.09.21
13:40
Здраствуйте. Есть такой запрос
ВЫБРАТЬ РАЗЛИЧНЫЕ
            Начисления.Сотрудник КАК Сотрудник,
            ЕСТЬNULL(Начисления.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
            Начисления.Регистратор КАК Регистратор,
            Начисления.ВидРасчета Как ВидРасчета
                    
        ИЗ
            РегистрРасчета.Начисления КАК Начисления
        ГДЕ
           (Начисления.ВидРасчета.Наименование ПОДОБНО "%Оплата по окладу%" ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Персональная надбавка%" ИЛИ Начисления.ВидРасчета.Наименование ПОДОБНО "%Премия разовая%")
           И Начисления.Результат > 0
           И Начисления.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода


В этот регистр заносятся данные с документа увольнения, а там есть вкладка начисления, данные попадают как нужно, но также есть вкладка пересчет начислений, где часть времени сторнируют. Допустим, от уже начисленного оклада программа автоматически пересчитывает, нужную сумму и сторнирует ее и это время попадает в запрос, а мне нужно, чтобы попадали только данные, которые на первой вкладке "Начисления"
1 Ёпрст
 
06.09.21
15:02
(0)
1. выкинуть ЕСТЬNULL, для начала
2. посмотреть, какие движения делаются из вкладки "Начисления", установить соответствующий фильтр в текст запросаю
2 Ёпрст
 
06.09.21
15:03
3. .ВидРасчета.Наименование ПОДОБНО // это, конечно, полный пэ.
3 VID1234
 
07.09.21
10:14
(2) Здравствуйте. А как иначе?
4 Ёпрст
 
07.09.21
10:21
(3) Изменили тебе наименование вида расчета и привет котёнку
5 Ёпрст
 
07.09.21
10:28
ЗЫ: если что, есть предопределенные виды расчетов
6 Ёпрст
 
07.09.21
10:28
хотя бы их использовать в тексте запроса
7 ГдеСобака Зарыта
 
07.09.21
10:38
(5) Если это ЗУП 3, то нет предопредленных, да и в 2.5 таковых не помню
8 VID1234
 
07.09.21
10:46
(5) предопределенных нет, только так.
С этим вроде получилось, но теперь новая проблема документ "Отпуска"
Во вкладке начисления (подробно) есть 5 строк:
Оплата по окладу 80 часов (5000)
Персональная надбавка 80 часов (10000)
Оплата по окладу 28 часов 6000
персональная надбавка 28 часов 7000
отпуск (он не попадает все ок)
Запрос должен выдать так:
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу)
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка)
Иванов Иван ИВанович без часов 10000 руб (это оплата по окладу)
Иванов Иван ИВанович без часов 7000 руб. (это персональная надбавка)

А у меня выходит так:
Иванов Иван ИВанович без часов 10000 руб (это оплата по окладу) - это норм
Иванов Иван ИВанович без часов 7000 руб. (это персональная надбавка) - это норм
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу) - это норм
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка) - это норм
Иванов Иван ИВанович 80 часов 5000 руб. ( это оплата по окладу) дубляж не нужен
Иванов Иван ИВанович 28 часов 6000 руб (это персональная надбавка) дубляж не нужен
9 VID1234
 
07.09.21
10:48
(8) Как можно это исправить, уже все перепробовал, причем в регистре дубляжей нет.
10 DrShad
 
07.09.21
10:52
а откуда у тебя суммы взялись? в первом запросе их нет
11 1Сергей
 
07.09.21
10:53
Виртуальные таблицы? не, не слышал
12 unbred
 
07.09.21
11:02
убери все "ПОДОБНО" и задай параметры.
наверняка у тебя там что-то лишнее лезет из регистра.
13 VID1234
 
07.09.21
11:07
(12) Вот весь запрос
ВЫБРАТЬ
    Начисления.Сотрудник КАК Сотрудник,
    ЕСТЬNULL(Начисления.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
    Начисления.Регистратор КАК Регистратор,
    Начисления.ВидРасчета КАК ВидРасчета
ПОМЕСТИТЬ ВТ_Часы
ИЗ
    РегистрРасчета.Начисления КАК Начисления
ГДЕ
    Начисления.ВидРасчета.ВидВремени = &ВидВремени
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    БухучетРаспределениеОсновногоЗаработка.Сотрудник КАК Сотрудник,
    БухучетРаспределениеОсновногоЗаработка.СтатьяФинансирования КАК СтатьяФинансирования,
    БухучетРаспределениеОсновногоЗаработка.СпособОтраженияЗарплатыВБухучете КАК СпособОтраженияЗарплатыВБухучете,
    БухучетРаспределениеОсновногоЗаработка.ДоляРаспределения КАК ДоляРаспределения
ПОМЕСТИТЬ ВТ_Доля
ИЗ
    РегистрСведений.БухучетРаспределениеОсновногоЗаработка КАК БухучетРаспределениеОсновногоЗаработка
ГДЕ
    БухучетРаспределениеОсновногоЗаработка.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    БухучетНачисленияУдержанияПоСотрудникам.Сотрудник КАК Сотрудник,
    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете КАК СпособОтраженияЗарплатыВБухучете,
    БухучетНачисленияУдержанияПоСотрудникам.СтатьяФинансирования КАК СтатьяФинансирования,
    БухучетНачисленияУдержанияПоСотрудникам.Сумма КАК Сумма,
    ЕСТЬNULL(ВТ_Часы.ОтработаноЧасов * ВТ_Доля.ДоляРаспределения / 100, 0) КАК Часы
ИЗ
    РегистрНакопления.БухучетНачисленияУдержанияПоСотрудникам КАК БухучетНачисленияУдержанияПоСотрудникам
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Часы КАК ВТ_Часы
        ПО БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = ВТ_Часы.Сотрудник
            И БухучетНачисленияУдержанияПоСотрудникам.Регистратор = ВТ_Часы.Регистратор
            И БухучетНачисленияУдержанияПоСотрудникам.НачислениеУдержание = ВТ_Часы.ВидРасчета
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Доля КАК ВТ_Доля
        ПО БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = ВТ_Доля.Сотрудник
            И БухучетНачисленияУдержанияПоСотрудникам.СтатьяФинансирования = ВТ_Доля.СтатьяФинансирования
            И БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = ВТ_Доля.СпособОтраженияЗарплатыВБухучете
ГДЕ
    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ
    И БухучетНачисленияУдержанияПоСотрудникам.Период МЕЖДУ &НачПериода И &КонПериода
    И БухучетНачисленияУдержанияПоСотрудникам.НачислениеУдержание.ВклВРаспределениеПЭО
14 VID1234
 
07.09.21
11:09
(11) пока еще в процессе
15 DrShad
 
07.09.21
11:30
а почему все через физические таблицы?
16 VID1234
 
07.09.21
11:34
(15) сам не знаю, такой был, сейчас я просто хочу его доработать как нужно, ну а затем уже буду переводить на виртуальные таблицы!
17 DrShad
 
07.09.21
11:39
без виртуальных таблиц не получится как нужно
18 VID1234
 
07.09.21
11:57
(17) попробую сейчас, не знаю что получится правда!