Имя: Пароль:
1C
1С v8
Помогите победить СКД
0 dimaxx
 
08.08.17
17:33
Есть запрос. Все нормально собирает и выводит, но есть вычисляемое поле.
Сумма(СуммаВзаиморасчетовОстаток)/ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","Контрагент","Группировка")*ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности
Отлично отрабатываети считает до уровня договора, но нужно чтобы на уровне Контрагента посчиталось по данным договоров. Написал вот такой ресурс Сумма(ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка")/ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","Контрагент","Группировка")*ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, "ДоговорКонтрагента")) ругается на синтактическую ошибку. Помогите весь мозг сломал
1 Ёпрст
 
08.08.17
17:35
текст ошибки то какой хоть ?
2 aleks_default
 
08.08.17
17:37
ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма
3 aleks_default
 
08.08.17
17:37
Так низзя
4 dimaxx
 
08.08.17
17:38
{Отчет.КонсольОтчетов.МодульОбъекта(237)}: Ошибка при вызове метода контекста (Следующий)
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
по причине:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка
5 dimaxx
 
08.08.17
17:39
(3) А как можно?
6 aleks_default
 
08.08.17
17:43
как-то по-другому
функции языка выражений компоновки не поддерживают вложенность
7 dimaxx
 
08.08.17
17:48
Я что только не делал.
Пробовал в вычисляемые поля
тест2 ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","Контрагент","Группировка")
тест3 ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","ДоговорКонтрагента","Группировка")
Тест4
ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности
Потом пишу
Сумма(Тест3/Тест2*Тест4)
Получаю только по договору на контрагента не расчитывается
8 dimaxx
 
08.08.17
17:49
Если отдельно итоги запросом брать, очень долго выполняется запрос.
9 kittystark
 
08.08.17
17:50
кури выражение ресурса ГрупповаяОбработка
10 dimaxx
 
08.08.17
17:51
(6) Это я понял. Что никак не решить проблему?
11 dimaxx
 
08.08.17
17:51
(9) Чего? Что за ресурс?
12 dimaxx
 
08.08.17
17:57
Если пишу ВычислитьВыражениеСГруппировкойМассив("Тест3/Тест2*Тест5", "договорКонтрагента")
Ошибка:
Выражение не может быть вычислено "Сумма(НаборДанных1.СуммаВзаиморасчетовОстаток), ДоговорКонтрагента"
13 aleks_default
 
08.08.17
17:58
Ты пойми для начала что вычислить хочешь.
на уровне договора у тебя отношении суммы остатка по договору к сумме остатка по контрагенту, умноженое на количество дней из договора. Что это должно быть на уровне контрагента?
14 aleks_default
 
08.08.17
18:00
зачем тащить ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка")
когда это на уровне контрагента будет равно "Сумма(СуммаВзаиморасчетовОстаток)"?
15 Tateossian
 
08.08.17
21:52
Все вот такие вычисления (относительные) нужно делать в пользовательских полях. Они корректно делят по группировке. Я по оборачиввемости делал когда-то отчет похожий по сути.
16 dimaxx
 
08.08.17
21:53
(14) Ну уровне контрагента, хочется получить сумму показателей посчитанных по договору. ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка") согласен, но все равно не будет работать т.к. так как запрещены вложенные агрегатные функции.
напишите если не сложно свой вариант.
17 dimaxx
 
08.08.17
21:54
(15) Можете разложить по полочкам в моем случае?
18 Tateossian
 
09.08.17
00:44
(17) Если пришлешь скрин отчета с группировками и примером как должно быть.
19 kittystark
 
09.08.17
09:52
(11) в одном из достаточно старых офиц. мануалов по СКД в главе 4. Функции системы компоновки данных в 4.2 агрегатные функции описывается

ГрупповаяОбработка(<Выражения>, <ВыражениеИерархии>, <ИмяГруппировки>)

и там же дан пример с функцией ABCКлассификация в целый лист А4 и ее использование с выражением

ABCКлассификация(ГрупповаяОбработка("Сумма(СуммаОборот)"));
20 dimaxx
 
09.08.17
10:26
Спасибо, всем за участие, переписал отчет полностью, расчет ведется в запросе теперь.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс