Имя: Пароль:
1C
1С v8
СКД. Общий итог не отображается
,
0 darkside
 
18.05.20
11:41
Добрый день. Подскажите пож-та. Делаю вычисляемое поле в скд. Данное поле на вкладке ресурсов также вычисляю, но общий итог не показывает.
Показывает только когда поставлю Сумма(поле1), тогда отображается общий итог, но он не верный.
Поле1 - расчет такой

ВЫБОР КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
Тогда - СуммаЗП * ВЫБОР КОГДА СуммаПлан = 0 Тогда 0 Иначе 100-(СтоимостьОборот *100/СуммаПлан) Конец / 100 ИНАЧЕ 0 КОНЕЦ

Вот пример правильных рассчитанных данных Поле1, и необходимо внизу посчитать общий итог по колонке вцелом.
http://prnt.sc/siuap3
Подскажите как ?
1 darkside
 
18.05.20
11:42
в ресурсах рассчитываю так

ВЫБОР КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
Тогда - Сумма(СуммаЗП) * ВЫБОР КОГДА Сумма(СуммаПлан) = 0 Тогда 0 Иначе 100-(Сумма(СтоимостьОборот) *100/Сумма(СуммаПлан)) Конец / 100 ИНАЧЕ 0 КОНЕЦ
2 Franchiser
 
гуру
18.05.20
11:44
Наверно у тебя там null попадается
3 darkside
 
18.05.20
11:45
(2) так если в ресурсах поставить Сумма(Поле1) общий итог получается, но совсем не коректный.
4 Franchiser
 
гуру
18.05.20
11:46
У тебя же есть еще СуммаПлан, СуммаОборот. Проставь везде ЕстьNULL
5 Franchiser
 
гуру
18.05.20
11:48
и вообще формула у тебя мне кажется не правильная, нужно Выбор Номенклатура... ставить внутри Сумма() наверно.
6 Franchiser
 
гуру
18.05.20
11:49
Сумма(ВЫБОР КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
тогда СуммаЗП иначе 0)
7 Franchiser
 
гуру
18.05.20
11:55
Сумма(ВЫБОР когда СУММАПлан = 0  тогда 0
КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
тогда СуммаЗП*(100-СтоимостьОборот *100)/СуммаПлан/ 100

иначе 0)
8 darkside
 
18.05.20
12:00
(7) так он вообще не то считает, но общий итог отображает.
9 darkside
 
18.05.20
12:01
(8) вот так получается https://prnt.sc/siurme
10 Franchiser
 
гуру
18.05.20
12:02
твоя ошибка в том что номеналтура это не ресурс, ее нет в итоговой записи, поэтому ты своей формулой не посичтаешь. Если хочешь суммировать из группировки номенклатура тогда используй ВычислитьВыражениеСГруппировкойМассив.
Можешб делать различные формулы для разных уровней группировок.
11 darkside
 
18.05.20
12:05
(10) можно поподробнее, как через ВычислитьВыражениеСГруппировкойМассив посчитать?
12 Franchiser
 
гуру
18.05.20
12:06
(9) по твоему скрину не понятно правильно считается или нет. Сколько у тебя уровней, есть ли в отчете иерархия справочников?
13 darkside
 
18.05.20
12:07
(12) не не правильно, правильно было на первом скрине, без итога, отчет выводит Номенклатура только иерархия.
14 Franchiser
 
гуру
18.05.20
12:08
Примерно так:
Сумма(ВычислитьВыражениеСГруппировкойМассив("ВЫБОР КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
Тогда - Сумма(СуммаЗП) * ВЫБОР КОГДА Сумма(СуммаПлан) = 0 Тогда 0 Иначе 100-(Сумма(СтоимостьОборот) *100/Сумма(СуммаПлан)) Конец / 100 ИНАЧЕ 0 КОНЕЦ", "Номенклатура"))
15 darkside
 
18.05.20
12:13
(14) не правильно считает (
16 darkside
 
18.05.20
12:14
а можно просто как то вывести итог по колонке как в екселе например?)
17 darkside
 
18.05.20
12:20
должна быть сумма -1171,85
а считает - -14 689,09
по формуле из (14)
18 Franchiser
 
гуру
18.05.20
12:29
покажи скрин отчета со всеми колонками.
Программно ты можешь любое значение ячейки проставить, отработав табличный документ
19 Franchiser
 
гуру
18.05.20
12:36
Ты можешь вручную проверить. почему программа так считает итог. Используй функцию ТаблицаЗначений
20 Franchiser
 
гуру
18.05.20
12:40
ТаблицаЗначений(Номенклатура,СуммаЗП, СуммаПлан, СтоимостьОборот)
21 Franchiser
 
гуру
18.05.20
12:42
если в отчете есть группы номенлатуры, возможно нужно ставить еще условие Не ЭтоГруппа
22 darkside
 
18.05.20
12:43
(18) http://prnt.sc/sivnf3
вот отчет все суммы считает верно, кроме общего итога по поле 1
23 Franchiser
 
гуру
18.05.20
12:46
(22) че-то не понятно. У тебя суммы как будто стоят на разных уровнях группировки. Где то на уровне товары, где-то на номенклатурная группа.
24 Franchiser
 
гуру
18.05.20
12:48
(22) как ты планируешь суммировать суммы из разных группировок?
25 darkside
 
18.05.20
12:53
(24) можно просто просумировать данные колонки?
там же в итоге суммаоборот это же сумма по номенклатуре.
26 Franchiser
 
гуру
18.05.20
12:54
Только через программный обход табличного документа в коде.
27 Franchiser
 
гуру
18.05.20
12:54
Напиши функцию ТаблицаЗначений
28 Franchiser
 
гуру
18.05.20
12:55
Еще можно сделать сою процедуру в общем модуле.
29 darkside
 
18.05.20
13:17
(28) поподробнее, или ссылочку можно где почитать?
30 darkside
 
18.05.20
13:18
(26) а при програмном обходе я вижу значения ячеек, вроде ж там данные только табличного документа??
31 toypaul
 
гуру
18.05.20
13:21
Во всю эту "тягомотину" вникать желания нет, но вот это

Номенклатура В  (&НоменклатураПапка)

подисчает как вхождение в список, что из следуя из названия параметра совсем не то, что нужно

правильно будет Номенклатура В  ИЕРАРХИИ (&НоменклатураПапка)

хотя не факт что сработает (возможно что и сработает).
32 toypaul
 
гуру
18.05.20
13:26
с другой стороны. если это выражение детальных записей

ВЫБОР КОГДА (Номенклатура В  (&НоменклатураПапка) ИЛИ Номенклатура.НоменклатурнаяГруппа = &НомГруппа) И НоменклатурнаяГруппа = НоменклатураПлан
Тогда - СуммаЗП * ВЫБОР КОГДА СуммаПлан = 0 Тогда 0 Иначе 100-(СтоимостьОборот *100/СуммаПлан) Конец / 100 ИНАЧЕ 0 КОНЕЦ

и устраивает как оно рассчитывается, то общий итог считаем как

СУММА(все вот это выражение), но есть одно НО

вот в этой части ВЫБОР КОГДА СуммаПлан = 0 Тогда 0 Иначе 100-(СтоимостьОборот *100/СуммаПлан) Конец должно быть ИНАЧЕ 0
33 toypaul
 
гуру
18.05.20
13:30
тьфу. увидел ИНАЧЕ
34 toypaul
 
гуру
18.05.20
13:32
тогда правильно написали в (4) к каждой сумме нужно добавить ЕстьNULL
35 Franchiser
 
гуру
18.05.20
13:42
(34) у него 0 потому что условие на номенклатуру стоит в формуле ресурса за пределами агрегатной функции
36 Franchiser
 
гуру
18.05.20
13:44
(30) там нужно брать свойство Текст и преобразовывать к числу
37 Franchiser
 
гуру
18.05.20
13:46
38 darkside
 
18.05.20
15:26
(32) я добавлял есть нулл не меняется ничего, такие же ссуммы.
39 Franchiser
 
гуру
18.05.20
15:50
(38) у тебя чушь какая то написана. Ну что такое "Номенклатура В  (&НоменклатураПапка)" ? И что это за суммы в поле1 означают на разных уровнях группировок и почему их нужно суммировать?
40 darkside
 
18.05.20
16:31
(39) эта чушь, выводит правильные данные. именно так и нужно. А номенклатура папка это по те родители номенклатуры по которым нужно показать суммы, по остальным нет.
41 darkside
 
18.05.20
17:30
не будем заморачиваться, как сделать обход колонки Поле1? И итог запихнуть в "Итого" на постобработке?