Имя: Пароль:
1C
 
Среднее в СКД
0 gul_Sayan
 
25.06.22
03:01
Что-то не корректно считается среднее в СКД. Если во всех строках (4) одна сумма то выдает корректно, а вот если разная то нет например есть 2 строки с суммой 10500 и 2 с 42000 а среднее за место 26250 выдает 21000. Из-за чего это может происходить? И как заставить учитывать пустые значения в расчете среднего как 0?
1 gul_Sayan
 
25.06.22
03:14
Да выдаю подробнее.
Формируется отчет средняя ЗП, в разрезе видов начислений.
При этом нужно получить сумму всех начислений по сотруднику и средние значения по должностям и подразделениям как для различных видов начислений так для суммы.
В ресурсах 2 поля по результату сумма по сотруднику и среднее по видам начислений должностям, подразделениям и общее. Но даже сумма по сотруднику считается не корректно.
Например у сотрудника в этом месяце всего 2 начисления 10500 и 10750 а в сумму выдает 42500. Про среднее уже писал.
Что-то я совсем запутался.
2 gul_Sayan
 
25.06.22
03:27
Ну с суммой разобрался, она в ячейку с начислением отображала среднее, так как у человека было 2 строки начислений по этому виду расчета.
3 gul_Sayan
 
25.06.22
03:31
Просуммировал начисления в запросе все встало на место.
4 gul_Sayan
 
25.06.22
03:40
Осталось выяснить как подставить 0 если у сотрудника в этом месяце этого начисления не было.
5 Asmody
 
25.06.22
03:42
(4) строка с 0 в результате запроса есть?
6 gul_Sayan
 
25.06.22
06:19
(5) нет этих строк нет совсем. Т.е. получается что по видам расчета нужно итог по формуле сумма по виду расчета / на количество строк? Где количество считать по группировке по которой хочу получить результат? И как это выглядит? ВычислитьВыражение("Сумма(Результат)", "Подразделение")/ВычислитьВыражение("Количество(Сотрудник)", "Подразделение")? Выдает ту же ошибку, т.е. учитывает только заполненные строки, а вот как посчитать все для колонок с видом расчета?
7 gul_Sayan
 
27.06.22
13:50
А как запросом дополнить строки видов расчета чтобы у каждого сотрудника были все виды расчета, пусть и с 0?
8 Ryzeman
 
27.06.22
14:01
(7) Если у тебя запрос по виртуальной таблице, кури МетодДополнения, если нет - то ЕСТЬNULL(ТвояТаблица.ТвоёЗначение, 0)
9 gul_Sayan
 
27.06.22
14:23
(8) с дополнением сталкивался только с периодами, а вот как дополнить начисления сотруднику с 0 если у него этого начисления в этом месяце нет, полный список начислений получил, также как и начисления сотрудника, а вот как дополнить недостающими начислениями не знаю.
10 Ryzeman
 
27.06.22
14:25
(9) Выбери месяца, как периоды и левым соединением привяжи к ним свои начисления. Ты же в любом случае за какое то конечное количество месяцев свой отчёт делаешь? Если за любое то тут немножко усложнится алгоритм - надо бубет отдельно найти первый и последний месяц, а потом уже выбрать все периоды между ними
11 gul_Sayan
 
27.06.22
14:34
(10)основная выборка идет по регистру расчета, а не по виртуальным таблицам.
12 Ryzeman
 
27.06.22
14:44
А я тебе и не про виртуальные таблицы говорю. В запросе свою выборку по дате привяжи к таблице периодов левым соединением. То есть у тебя левая таблица будет Период | Сотрудник, правая - ПериодИзРегистра | Сотрудник | Начисления. Соединяешь по периоду и сотруднику, причём в левой периоды без "пробелов", в значение итоговой выборки для начислений прописываешь ЕСТЬNULL
13 gul_Sayan
 
30.06.22
14:23
(12)Забыл про пересечение таблиц, это когда соединение не указывается.
14 Ryzeman
 
30.06.22
14:42
(13) точно, так даже лучше. У тебя всё получилось?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс