Помогите победить СКД #802675


#0 by dimaxx
Есть запрос. Все нормально собирает и выводит, но есть вычисляемое поле. Сумма(СуммаВзаиморасчетовОстаток)/ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","Контрагент","Группировка")*ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности Отлично отрабатываети считает до уровня договора, но нужно чтобы на уровне Контрагента посчиталось по данным договоров. Написал вот такой ресурс Сумма(ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка")/ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","Контрагент","Группировка")*ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, "ДоговорКонтрагента")) ругается на синтактическую ошибку. Помогите весь мозг сломал
#1 by Ёпрст
текст ошибки то какой хоть ?
#2 by aleks_default
ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма
#3 by aleks_default
Так низзя
#4 by dimaxx
{Отчет.КонсольОтчетов.МодульОбъекта}: Ошибка при вызове метода контекста (Следующий)         ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий; по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине: Синтаксическая ошибка
#5 by dimaxx
А как можно?
#6 by aleks_default
как-то по-другому функции языка выражений компоновки не поддерживают вложенность
#7 by dimaxx
Я что только не делал. Пробовал в вычисляемые поля тест2 ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","Контрагент","Группировка") тест3 ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток)","ДоговорКонтрагента","Группировка") Тест4 ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности Потом пишу Сумма(Тест3/Тест2*Тест4) Получаю только по договору на контрагента не расчитывается
#8 by dimaxx
Если отдельно итоги запросом брать, очень долго выполняется запрос.
#9 by kittystark
кури выражение ресурса ГрупповаяОбработка
#10 by dimaxx
Это я понял. Что никак не решить проблему?
#11 by dimaxx
Чего? Что за ресурс?
#12 by dimaxx
Если пишу ВычислитьВыражениеСГруппировкойМассив("Тест3/Тест2*Тест5", "договорКонтрагента") Ошибка: Выражение не может быть вычислено "Сумма(НаборДанных1.СуммаВзаиморасчетовОстаток), ДоговорКонтрагента"
#13 by aleks_default
Ты пойми для начала что вычислить хочешь. на уровне договора у тебя отношении суммы остатка по договору к сумме остатка по контрагенту, умноженое на количество дней из договора. Что это должно быть на уровне контрагента?
#14 by aleks_default
зачем тащить ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка") когда это на уровне контрагента будет равно "Сумма(СуммаВзаиморасчетовОстаток)"?
#15 by Tateossian
Все вот такие вычисления (относительные) нужно делать в пользовательских полях. Они корректно делят по группировке. Я по оборачиввемости делал когда-то отчет похожий по сути.
#16 by dimaxx
Ну уровне контрагента, хочется получить сумму показателей посчитанных по договору. ВычислитьВыражениеСГруппировкойМассив(ВычислитьВыражение("Сумма(СуммаВзаиморасчетовОстаток))","ДоговорКонтрагента","Группировка") согласен, но все равно не будет работать т.к. так как запрещены вложенные агрегатные функции. напишите если не сложно свой вариант.
#17 by dimaxx
Можете разложить по полочкам в моем случае?
#18 by Tateossian
Если пришлешь скрин отчета с группировками и примером как должно быть.
#19 by kittystark
в одном из достаточно старых офиц. мануалов по СКД в главе 4. Функции системы компоновки данных в 4.2 агрегатные функции описывается и там же дан пример с функцией ABCКлассификация в целый лист А4 и ее использование с выражением
#20 by dimaxx
Спасибо, всем за участие, переписал отчет полностью, расчет ведется в запросе теперь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С