1С скд підсумовування значень на різних рівнях угруповань - Благиня константин

1С СКД: Підсумовування значень на різних рівнях угруповань

В даній невеличкій замітці хочу показати, як можна зробити підсумовування значень на різних рівнях угруповання, в звіті з використанням системи компоновки даними.






Як показано на зображенні, тільки на рівні угруповання «Групи номенклатури», розраховується ресурс «Замовити», в ньому відображається, скільки потрібно замовити за поточною групі номенклатури виходячи з певних умов:

1С скд підсумовування значень на різних рівнях угруповань - Благиня константин

1С СКД: Підсумовування значень на різних рівнях угруповань


Дане значення може бути розраховане тільки на даному рівні угруповання, так як, вище або нижче, відсутні значення для розрахунку. Наприклад, на рівні детальних записів, немає даних по максимальній кількості в групі, тому що ці дані вірні тільки для групи в цілому, а не для окремих її складових.

Відповідно, тепер необхідно розрахувати підсумки, по вище знаходяться угрупованням ( «Склади», «ТіпиСкладов») і загальний підсумок.
Для цього використовується функція ВичіслітьВираженіеСГруппіровкойМассів:






ВИЧІСЛІТЬВИРАЖЕНІЕСГРУППІРОВКОЙМАССІВ (EVALEXPRESSIONWITHGROUPARRAY)
синтаксис:
ВичіслітьВираженіеСГруппіровкойМассів (.)
опис:
Функція повертає масив, кожен елемент якого містить результат обчислення виразу для угруповання за вказаною полю.
Компоновщик макета при генерації макета перетворює параметри функції в терміни полів макета компонування даних. Наприклад, поле Контрагент буде перетворено в НаборДанних.Контрагент.
Компоновщик макета при генерації виразів для виведення користувальницького поля, в вираженні якого присутній тільки функціяВичіслітьМассівСГруппіровкойМассів (), генерує виведене вираження таким чином, щоб виведена інформація була впорядкована. Наприклад, для призначеного для користувача поля з виразом:

ВичіслітьВираженіеСГруппіровкойМассів ( "Сума (СуммаОборот)", "Контрагент")
Компоновщик макета згенерує для виведення такий вираз:

параметри:

Тип: Рядок. Вираз, який потрібно обчислити. Рядок, наприклад, Сума (СуммаОборот).

Тип: Рядок. Вирази полів угруповання - вираження полів угруповання, перераховані через кому. Наприклад, Контрагент, Партія.

Тип: Рядок. Вираз, що описує відбір, який застосовується до детальним записам. У вираженні не підтримує використання агрегатних функцій. Наприклад, ПометкаУдаленія = Брехня.

Тип: Рядок. Вираз, що описує відбір, який застосовується до груповим записів. Наприклад, Сума (СуммаОборот)> Параметр1.
приклад:

Максимум (ВичіслітьВираженіеСГруппіровкойМассів ( "Сума (СуммаОборот)", "Контрагент"));

В результаті отримуємо наступну конструкцію:

1С скд підсумовування значень на різних рівнях угруповань - Благиня константин

1С СКД: Підсумовування значень на різних рівнях угруповань

Навігація по публікаціям