Имя: Пароль:
1C
 
Выборка суммы начисления в пакетном запросе
,
0 NIGHTHUNTER
 
19.04.22
06:01
//

Данный запрос, по сотруднику выбирает 4 310,44 .

//

ВЫБРАТЬ
    Начисления.Сотрудник КАК Сотрудник,
    СУММА(Начисления.Результат) КАК Результат
ИЗ
    РегистрРасчета.Начисления КАК Начисления
ГДЕ
    Начисления.ПериодРегистрации МЕЖДУ &НачДата И &КонДата
    И Начисления.Сотрудник = &Сотрудник

СГРУППИРОВАТЬ ПО
    Начисления.Сотрудник


//

Этот же запрос, по сотруднику выбирает 59 584,02 . Ввведенный в СКД.

В чем причина расхождений? Где что не так указанно? Что нужно исправить?

//


ВЫБРАТЬ
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц КАК ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник КАК Сотрудник,
    1 КАК КолВоСотр,
    СУММА(ВЫБОР
            КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ВидУчетаВремени = &ДОЗаСвойСчет
                ТОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК КолвоДОЗаСвойСчет,
    ВЫБОР
        КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник.Наименование ПОДОБНО "%(удал.)%"
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ КАК УдаленныйСотрудник
ПОМЕСТИТЬ ВТ_ТабельныйУчет
ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников.Обороты(&НачДата, &КонДата, Авто, ) КАК ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты

СГРУППИРОВАТЬ ПО
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Начисления.Сотрудник КАК Сотрудник,
    СУММА(Начисления.Результат) КАК Результат
ПОМЕСТИТЬ ВТ_Начисления
ИЗ
    РегистрРасчета.Начисления КАК Начисления
ГДЕ
    Начисления.ПериодРегистрации МЕЖДУ &НачДата И &КонДата

СГРУППИРОВАТЬ ПО
    Начисления.Сотрудник
;

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

СГРУППИРОВАТЬ ПО
    ВТ_ТабельныйУчет.ПериодМесяц,
    ВТ_ТабельныйУчет.Сотрудник


Как мне выявить причину расхождений отдельного запроса  4 310,44 и суммы 59 584,02 по этому же сотруднику в пакетном запросе СКД ?
1 VoditelKobyly
 
19.04.22
06:15
Почему соединение только по сотруднику? Куда делся ПериодМесяц?
2 VoditelKobyly
 
19.04.22
06:17
И зачем по одной задаче столько веток заводишь? Как сам-то потом в них разбираться будешь?
3 NIGHTHUNTER
 
19.04.22
06:21
(1) Вот проверяю так, сумма должна быть 4 310,44 .

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

СГРУППИРОВАТЬ ПО
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник,
    ВЫБОР
        КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник.Наименование ПОДОБНО "%(удал.)%"
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ,
    Начисления.ПериодРегистрации,
    Начисления.ПериодДействия,
    Начисления.ПериодДействияНачало,
    Начисления.ПериодДействияКонец,
    Начисления.БазовыйПериодНачало,
    Начисления.БазовыйПериодКонец,
    Начисления.ВидРасчета,
    Начисления.Сотрудник,
    Начисления.Результат,
    Начисления.Месяц


(2) Постарался обновить и конкретизировать текущий вопрос. По той ветке прошло сдвижение. Думал, там не будут читать. А тут сразу по вопросу, описываю суть.

(1) А как нужно ещё по ПериодМесяц соединять?
4 VoditelKobyly
 
19.04.22
06:25
У тебя в отчете период может охватывать больше месяца? Скорее всего да, раз от тебя просят отчет по месяцам?
Значит во втором запросе тоже должен оказаться ПериодМесяц, которого у тебя сейчас нет.
5 NIGHTHUNTER
 
19.04.22
06:30
(1) Поправился по вашей подсказке. Буду проверять далее.

ВЫБРАТЬ
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц КАК ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник КАК Сотрудник,
    1 КАК КолВоСотр,
    СУММА(ВЫБОР
            КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ВидУчетаВремени = &ДОЗаСвойСчет
                ТОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ДниОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК КолвоДОЗаСвойСчет,
    ВЫБОР
        КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник.Наименование ПОДОБНО "%(удал.)%"
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ КАК УдаленныйСотрудник
ПОМЕСТИТЬ ВТ_ТабельныйУчет
ИЗ
    РегистрНакопления.ДанныеТабельногоУчетаРабочегоВремениСотрудников.Обороты(&НачДата, &КонДата, Авто, ) КАК ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты

СГРУППИРОВАТЬ ПО
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник,
    ВЫБОР
        КОГДА ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник.Наименование ПОДОБНО "%(удал.)%"
            ТОГДА 1
        ИНАЧЕ 0
    КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Начисления.Сотрудник КАК Сотрудник,
    СУММА(Начисления.Результат) КАК Результат,
    Начисления.ПериодРегистрации КАК ПериодРегистрации
ПОМЕСТИТЬ ВТ_Начисления
ИЗ
    РегистрРасчета.Начисления КАК Начисления
ГДЕ
    Начисления.ПериодРегистрации МЕЖДУ &НачДата И &КонДата

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

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

СГРУППИРОВАТЬ ПО
    ВТ_ТабельныйУчет.ПериодМесяц,
    ВТ_ТабельныйУчет.Сотрудник
6 NIGHTHUNTER
 
19.04.22
06:32
(4) Пока из второго запроса взял ПериодРегистрации.
Для связи. Не знаю верно ли.

Смотрел в консоле, и пытался понять, какое поле правильнее выбрать для связи во втором запросе.
7 VoditelKobyly
 
19.04.22
06:36
(3) Для того, чтобы что-то проверить выкидывай вообще все группировки из запросов и вставляй параметры, которые тебе ограничат выборку, чтобы понимать какие данные находятся в таблицах
и как ты эти данные пытаешься связать.
8 VoditelKobyly
 
19.04.22
06:37
По запросу в (3) ты вряд-ли что-то поймешь.
9 NIGHTHUNTER
 
19.04.22
06:39
(7) Это я уже после как в консоле посмотрел, сделал в СКД. Там то все настроено.
10 VoditelKobyly
 
19.04.22
06:40
После этого поймешь, что тебе нужно два запроса, а не 1 как ты пытаешься сделать в (3)
11 NIGHTHUNTER
 
19.04.22
06:42
(10) в (3) это проверка в консоле была.
А используемый запрос в (5) .

На сколько он верен теперь?
12 VoditelKobyly
 
19.04.22
06:43
(5) Похож на правду
13 VoditelKobyly
 
19.04.22
06:44
Только одна группировка в 1-м запросе вроде лишняя
14 VoditelKobyly
 
19.04.22
06:45
Тебе же количество удаленных нужно, зачем группировка по этому полю? Это должно быть ресурсом.
15 VoditelKobyly
 
19.04.22
06:47
Только это в еще один подзапрос выкатывается...
16 NIGHTHUNTER
 
19.04.22
06:47
(14) видимо это ошибка
17 NIGHTHUNTER
 
19.04.22
06:48
(13) В первом запросе (5) такие только должны быть группировки?

СГРУППИРОВАТЬ ПО
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник,
18 VoditelKobyly
 
19.04.22
06:48
Я же тебе раньше советовал: сделай в СКД одну часть отчета с одного регистра, потом добавляй нужные запросы и нужные ресурсы.
19 NIGHTHUNTER
 
19.04.22
06:49
(17+)

СГРУППИРОВАТЬ ПО
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.ПериодМесяц,
    ДанныеТабельногоУчетаРабочегоВремениСотрудниковОбороты.Сотрудник
20 VoditelKobyly
 
19.04.22
06:49
(19) Да, этого хватит
21 NIGHTHUNTER
 
19.04.22
06:50
(18) Я так и делаю же.

http://joxi.ru/xAeZ8e6iMPLKpr

проверяю сейчас данные на корректность .
22 VoditelKobyly
 
19.04.22
06:50
Только если уволенных будешь так считать, то это еще один запрос, иначе цифры будут не верные
23 NIGHTHUNTER
 
19.04.22
06:52
(22) Пока так по первому сотруднику получилось. Как и ожидалось. Из за отсутствия связи было искажение.

http://joxi.ru/Y2L18qBCxLb4pA

(22) Пока я не выявил, и не дошел до этого момента.
24 VoditelKobyly
 
19.04.22
06:55
(21) Для проверки в консоле один из запросов с параметрами в которые добавь сотрудника, но без группировок. Получишь полную картину всех данных по одному сотруднику
25 VoditelKobyly
 
19.04.22
06:58
По поводу уволенных. А что будешь делать если кадровики человека уволили, а наименование поменять забыли? Или у вас это автоматически делается?
А как нужно считать тех, кого уволили из одной организации, но приняли в другую и у них нет такой комбинации букв в наименовании?
Или это не к тебе вопрос?
26 NIGHTHUNTER
 
19.04.22
07:04
(24) В процессе. Пока тут провел некоторые проверки.

(25) Незнаю я. Я вот делаю запрос СКД. Стал проверять данные. наверное эти все ситуации, следует выявлять в процессе и устранять.
Я сделал заготовку, которую сейчас можно развивать. Дорабатывать.
27 VoditelKobyly
 
19.04.22
07:08
Похоже у нас половина всего так делается  "выявлять в процессе и устранять."
28 VoditelKobyly
 
19.04.22
07:10
А ничего, что потом при устранении половина переписать придется? А иногда приходится и все переделывать заново только из-за того, что какой-то момент забыли обговорить сразу?
29 VoditelKobyly
 
19.04.22
07:11
Хотя для франчевых контор это смысл жизни...
30 NIGHTHUNTER
 
19.04.22
07:12
(28) Сегодня и будем обговаривать.
До этого был только ворд файл. Сейчас есть запрос и СКД.
Можно продолжать отладку.

То есть, сейчас как я понимаю, актуальный самый вопрос. Это учесть уволенных .
31 VoditelKobyly
 
19.04.22
07:15
Для тебя - да. Если ты уже почти со всем разобрался, то тебе остается понять как считать уволенных. Где брать эту инфу. Метод предложенный ранее, на мой взгляд не правильный, но вам виднее...
32 VoditelKobyly
 
19.04.22
07:18
И опять же определись что для тебя важнее: быстрее закрыть задачу или на примере этой задачи разобраться технологии решения и организации данных в ЗУП
33 NIGHTHUNTER
 
19.04.22
07:41
(32) Конечно разобраться.
А закрыть я сам ничего не смогу.
Закрывает задачу, же постановщик. Руководитель.

Они же и будут говорить о недочетах, которые нужно исправлять.

Мне же важно видеть фронт работ. Что бы заниматься его решением.
34 VoditelKobyly
 
19.04.22
07:56
"Они же и будут говорить о недочетах, которые нужно исправлять."
Правильно, пусть Руководитель сам во все вникает, а то сидит там только руководит, ничего не делает...
Пусть хотя бы ошибки выискивает...
35 NIGHTHUNTER
 
19.04.22
08:03
(34) Почему. Вникаю то я.
И стараюсь понимать, то что выводится.
Увидев результат. Сдаю его на проверку.
дальше. в процессе выясняется.
Если что то не так. будет же сообщено.
И я начну исправлять.
36 hhhh
 
19.04.22
09:17
(35) а сам не можешь потестировать и увидеть что не так? Хотя бы явные ляпы убрать, чтобы не нервировать заказчика.