СКД. Вычисление выражения по нижестоящей группировке #701813


#0 by vicof
Пусть есть три группировки Контрагент, Договор, ПериодМесяц и ресурс ОДЗ. Хочется на уровне группировки по договору для ОДЗ видеть значение ОДЗ по последнему периоду. Пишу так: ВычислитьВыражение("СУММА(ОДЗ)", "ПериодМесяц", "Группировка", "Последняя", "Последняя") рассчитываю это выражение для Договора. Для остальных группировок просто СУММА(ОДЗ) В результате в поле ОДЗ для Договора ничего не попадает. В чем проблема?
#1 by ИС-2
у меня так и ничего не получилось
#2 by Armando
Может сортировку надо указать?
#3 by vicof
Не, сортировка тут не нужна. Если для нижестоящих группировок или ПериодМесяц указывать мое выражение, то для них мое выражение считается нормально, а для вышестоящей не хочет, как у
#4 by vicof
Призываю Железодемона и Дефендера :)
#5 by fisher
Проблема в том, что ВычислитьВыражение не работает для нижестоящих группировок.
#6 by vicof
Спасибо, тогда как можно поступить?
#7 by ИС-2
мне пришлось делать функцию в общем модуле и отправлять туда таблицу значений для расчета
#8 by fisher
Честно говоря, плохо помню, чем закончились мои борения с аналогичной проблемой. Толи таки красиво решил, то ли выкрутился альтернативно. Попробуй "обернуть" это дело в формуле ресурса ВычислитьВыражениеСГруппировкойМассив, чтобы "поднять" полученные данные на верхний уровень.
#9 by fisher
То бишь попробуй в формуле вычисляемого поля ВычислитьВыражение, а в формуле ресурса по этому полю - ВычислитьВыражениеСГруппировкойМассив
#10 by vicof
щас, забацаю
#11 by fisher
Точно помню, что пробовал этот вариант. Но не могу вспомнить, успешно ли :)
#12 by Necessitudo
Я пробовал неоднократно. Вполне успешно)
#13 by Necessitudo
только тут наверное нужно поднимать наверх ТЗ - ВычислитьВыражениеСГруппировкойТаблицаЗначений с колонками Период и ОДЗ - потом передавать эту тз во внешнюю функцию и там считать.
#14 by vicof
Не хочу корежить модули. не получается. Ругается на то, что не может вычислить выражение Выражение не может быть вычислено "ОДЗ_ПДЗ.ОДЗ, ПериодМесяц"
#15 by fisher
Покажи полностью выражение ресурса. И почему "рассчитывать по" стоит "ПериодМесяц"? Вроде ж по договору считать собирался? На этапе экспериментов лучше поубирай везде "Рассчитывать по" и второй ресурс, чтобы не мешались.
#16 by vicof
И почему "рассчитывать по" стоит "ПериодМесяц" ВычислитьВыражениеСГруппировкойМассив("Сумма(ОДЗ1)", "ПериодМесяц"), рассчитывать по ДоговорКонтрагента Остальные расчеты по ресурсам убрал, все равно также ругается, и я так подозреваю на вычисляемое поле.
#17 by vicof
"подозреваю на вычисляемое поле." зачеркнуть, написать без на
#18 by ppdisk
У меня в своё время получлось так: ВычислитьВыражение("Сумма(СуммаОборот)", "", "Группировка")
#19 by vicof
Так считает, но после этого в ВычислитьВыражениеСГруппировкойМассив("Сумма(ОДЗ1)", "ПериодМесяц") появляются три строчки с нужными суммами за три месяца, как бы мне теперь их отсортироватьи отобрать только одну
#20 by vicof
Отсортировал. Как получить одну сроку из таблицы?, [0] не катит
#21 by echo77
Фильтрануть? Применить функцию Максимум?
#22 by vicof
не получилось, написал "периодмесяц=максимум(периодмесяц)" в параметре
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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