СКД ВычислитьВыражение() #615525


#0 by ChAlex
Можно ли в группировке получить значение вычисленное по значениям дочерних группировок, на которые наложен некий отбор? Пример: Есть группировки Склад,Товар,Партия и ресурсы КоличествоРасход, КоличествоПриход, КоличествоПоПартии, СуммаПоПартии. Детальные записи получены по документам приходным и расходным документам.На уровне группировки "Партия" наложен отбор "КоличествоРасход=КоличествоПоПартии". (допустим хочу видеть все партии, проданные в ноль) В группировке Товар хочу получить сумму товара полученного в отчете по отобранным партиям. Сумма по ресурсу - не катит, ибо формирует неправильный результат - рассчитывается по детальным записям, а там естественно партии дублируются из-за наличия документов движения. Пробовал использовать Сумма(ВычислитьВыражение("Максимум(СуммаПоПартии)","Партия") -  не работате правильно (Так же как и ВычислитьВыражениеСГруппировкойМассив) - вычисляется без учета наложенного отбора. Собственно в этом и вопрос: а можно ли как-то получить корректно данные в таком случае или никак?
#1 by ChAlex
ап
#2 by mzelensky
делай ручной отчет
#3 by ChAlex
= не делай ничего, с удовольствием, если бы не суровая необходимость :-)
#4 by ChAlex
ап
#5 by BabySG
Не ту функцию используешь - смотри ГРУППОВАЯОБРАБОТКА
#6 by ChAlex
- а это что? Что-то в СКД такого не нахожу
#7 by soldatkin
Сумма по ресурсу, но в дополнительном поле указать до какой Группировки рассчитывать Либо дополнительное Вычисляемое Поле делать
#8 by ChAlex
- Ну так сумма по ресурсу - не берет сформированные итоги дочерних группировок, а рассчитывает все заново из детальных записей. Поэтому получить правильную сумму по группировке партия возможно через функцию Максимум(СуммаПоПартии) (можно минимум) - без разницы, поскольку в детальных записях это поле для группировки Партия имеет одинаковое значение, которое повторяется во всех строчках. Вот если бы теперь эту цифру можно было бы распространять на родительские группировки - все бы работало прекрасно. А так сумма даст завышенный результат. Теперь по вычисляемому полу - так я пробую в него забить ВычислитьВыражение("Максимум(СуммаПоПартии)","Партия")  - значение рассчитывается опять же для родительских группировок криво
#9 by BabySG
Поиск по ИТС поможет, там даже пример есть.
#10 by ChAlex
- может тогда конкретно наведете где, а то что-то я не только в ИТС НЕ Нашел ничего конкретного
#11 by BabySG
Открыл ИТС, ввел в поиск "ГРУППОВАЯОБРАБОТКА", ПРОФИТ. ЧЯДНТ? ГРУППОВАЯОБРАБОТКА (GROUPPROCESSING) Функция возвращает объект ДанныеГрупповойОбработкиКомпоновкиДанных (DataCompositionGroupProcessingData), который имеет следующие свойства: ? Данные (Data. – Тип – таблица значений. В это свойство функция помещает таблицу значений, содержащую результаты вычисления выражения, указанного в первом параметре функции для каждой групповой записи группировки. Если группировка иерархическая, то каждый уровень иерархии обрабатывается функцией отдельно, при этом значения для иерархических записей также помещаются в данные. ? ТекущийЭлемент (CurrentItem) – строка таблицы значений, являющихся текущими. При вызове для общего итога ТекущийЭлемент содержит значение Неопределено. В данное свойство функция помещает строку таблицы значений, для которой в настоящий момент вычисляется функция. ? ВременныеДанныеОбработки (ProcessingTempData) – структура, в которую могут быть помещены данные промежуточных результатов. Рекомендуется в различных функциях давать свойствам уникальные имена, т.к. возможна ситуация, когда один и тот же объект ДанныеГрупповойОбоработкиКомпоновкиДанных будет передан в несколько различных функций. Функция имеет следующие параметры: ? Выражения. –. Строка, в которой через запятую перечислены выражения, которые нужно вычислить. После каждого выражение возможно наличие необязательного ключевого слова КАК и имени колонки результирующей таблицы значений. ? ВыраженияИерархии. – Выражения, которые нужно вычислить для иерархических записей. Аналогично параметру Выражения с тем отличием, что параметр Выражения используется для не иерархических записей, а параметр ВыраженияИерархии используется для иерархических записей. Если параметр не указан, то для вычисления значений для иерархических записей используется выражения, указанные в параметре Выражение. ? ИмяГруппировки. – Имя группировки, в которой нужно вычислять группировку обработки. Строка. Если не указано, то вычисление происходит в текущей группировке. Если вычисление идет в таблице и параметр содержит пустую строку, или не указан, то значение вычисляется для группировки – строки. Компоновщик макета при генерации макета компоновки данных заменяет данное имя на имя группировки в результирующем макете. Если группировка не доступна, то функция будет заменена на значение NULL.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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