Имя: Пароль:
1C
1С v8
СКД ВычислитьВыражение()
,
0 ChAlex
 
14.06.12
16:36
Можно ли в группировке получить значение вычисленное по значениям дочерних группировок, на которые наложен некий отбор? Пример: Есть группировки Склад,Товар,Партия и ресурсы КоличествоРасход, КоличествоПриход, КоличествоПоПартии, СуммаПоПартии. Детальные записи получены по документам приходным и расходным документам.На уровне группировки "Партия" наложен отбор "КоличествоРасход=КоличествоПоПартии". (допустим хочу видеть все партии, проданные в ноль) В группировке Товар хочу получить сумму товара полученного в отчете по отобранным партиям.

Сумма по ресурсу - не катит, ибо формирует неправильный результат - рассчитывается по детальным записям, а там естественно партии дублируются из-за наличия документов движения.
Пробовал использовать Сумма(ВычислитьВыражение("Максимум(СуммаПоПартии)","Партия") -  не работате правильно (Так же как и ВычислитьВыражениеСГруппировкойМассив) - вычисляется без учета наложенного отбора.

Собственно в этом и вопрос: а можно ли как-то получить корректно данные в таком случае или никак?
1 ChAlex
 
14.06.12
17:36
ап
2 mzelensky
 
14.06.12
17:40
делай ручной отчет
3 ChAlex
 
14.06.12
17:57
(2) = не делай ничего, с удовольствием, если бы не суровая необходимость :-)
4 ChAlex
 
15.06.12
09:59
ап
5 BabySG
 
15.06.12
10:15
Не ту функцию используешь - смотри ГРУППОВАЯОБРАБОТКА
6 ChAlex
 
15.06.12
11:06
(5) - а это что? Что-то в СКД такого не нахожу
7 soldatkin
 
15.06.12
12:34
Сумма по ресурсу, но в дополнительном поле указать до какой Группировки рассчитывать
Либо дополнительное Вычисляемое Поле делать
8 ChAlex
 
15.06.12
13:36
(7) - Ну так сумма по ресурсу - не берет сформированные итоги дочерних группировок, а рассчитывает все заново из детальных записей. Поэтому получить правильную сумму по группировке партия возможно через функцию Максимум(СуммаПоПартии) (можно минимум) - без разницы, поскольку в детальных записях это поле для группировки Партия имеет одинаковое значение, которое повторяется во всех строчках. Вот если бы теперь эту цифру можно было бы распространять на родительские группировки - все бы работало прекрасно. А так сумма даст завышенный результат. Теперь по вычисляемому полу - так я пробую в него забить ВычислитьВыражение("Максимум(СуммаПоПартии)","Партия")  - значение рассчитывается опять же для родительских группировок криво
9 BabySG
 
15.06.12
18:28
(6) Поиск по ИТС поможет, там даже пример есть.
10 ChAlex
 
15.06.12
18:51
(9) - может тогда конкретно наведете где, а то что-то я не только в ИТС НЕ Нашел ничего конкретного
11 BabySG
 
16.06.12
16:51
Открыл ИТС, ввел в поиск "ГРУППОВАЯОБРАБОТКА", ПРОФИТ. ЧЯДНТ?

ГРУППОВАЯОБРАБОТКА (GROUPPROCESSING)

Функция возвращает объект ДанныеГрупповойОбработкиКомпоновкиДанных (DataCompositionGroupProcessingData), который имеет следующие свойства:

? Данные (Data. – Тип – таблица значений. В это свойство функция помещает таблицу значений, содержащую результаты вычисления выражения, указанного в первом параметре функции для каждой групповой записи группировки. Если группировка иерархическая, то каждый уровень иерархии обрабатывается функцией отдельно, при этом значения для иерархических записей также помещаются в данные.

? ТекущийЭлемент (CurrentItem) – строка таблицы значений, являющихся текущими. При вызове для общего итога ТекущийЭлемент содержит значение Неопределено. В данное свойство функция помещает строку таблицы значений, для которой в настоящий момент вычисляется функция.

? ВременныеДанныеОбработки (ProcessingTempData) – структура, в которую могут быть помещены данные промежуточных результатов. Рекомендуется в различных функциях давать свойствам уникальные имена, т.к. возможна ситуация, когда один и тот же объект ДанныеГрупповойОбоработкиКомпоновкиДанных будет передан в несколько различных функций.

Функция имеет следующие параметры:

? Выражения. –. Строка, в которой через запятую перечислены выражения, которые нужно вычислить. После каждого выражение возможно наличие необязательного ключевого слова КАК и имени колонки результирующей таблицы значений.

? ВыраженияИерархии. – Выражения, которые нужно вычислить для иерархических записей. Аналогично параметру Выражения с тем отличием, что параметр Выражения используется для не иерархических записей, а параметр ВыраженияИерархии используется для иерархических записей. Если параметр не указан, то для вычисления значений для иерархических записей используется выражения, указанные в параметре Выражение.

? ИмяГруппировки. – Имя группировки, в которой нужно вычислять группировку обработки. Строка. Если не указано, то вычисление происходит в текущей группировке. Если вычисление идет в таблице и параметр содержит пустую строку, или не указан, то значение вычисляется для группировки – строки. Компоновщик макета при генерации макета компоновки данных заменяет данное имя на имя группировки в результирующем макете. Если группировка не доступна, то функция будет заменена на значение NULL.