Вывести поле одной детальной записи на уровень группировки, предпочтительно без конфигуратора

1. YA_1130000068584258 26.03.25 12:05 Сейчас в теме
Вопрос уровня "как сделать, чтобы понравилось менеджеру", а не как достичь технологической сингулярности. Так что, попрошу, воздержаться от шуток-прибауток. Менеджеры люди важные, чем больше работают они, тем меньше работают остальные, это знать надо.

- - -

Есть отчёт на СКД, самописный, который считает отгрузки за период в разрезе брендов по регистру накопления.

Считает хорошо, быстро. В построчной выдаче запроса к базе - условно, всего три колонки:
- склад - бренд - количество отгрузок. На экран выводится в группировках - в группировках по складу.

Но вот настал "час Икс" - менеджер попросил добавить количество и долю по "суперважному" бренду прямо в группировку по складу - для быстроты доступа менеджера к информации, и для вывода на печать тоже.

Вопрос:

Хотелось бы воспользоваться пользовательским полем ресурса (группировка же, не забываем), в котором будет формула ВычислитьВыражение(...). Но как вывести на уровень группировки значение поля по, эм, эталонной сущности?

Я пробовал через СУММА(ВЫБОР КОГДА Бренд.Наименование = "Главпродукт" ТОГДА Количество КОНЕЦ), и это даже работает, но производительность при большой выдаче сильно проседает, в частности, полагаю, из-за сравнения строк, да ещё и не на топ-уровне, а в реквизите. А как иначе вычленить сущность, мне и не ясно.

Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?

- - -

P.S. Долю по отношению к итогу группировки тоже не знаю как правильно посчитать, но этот вопрос, я полагаю, напрямую зависит от того вопроса, что выше в тексте.
Прикрепленные файлы:
Найденные решения
5. VmvLer 26.03.25 15:47 Сейчас в теме
Сумма(ВычислитьВыражениеСГруппировкойМассив (Выражение, ВыраженияПолейГруппировки, ОтборЗаписей)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 26.03.25 13:14 Сейчас в теме
(1)
Я пробовал через СУММА(ВЫБОР КОГДА Бренд.Наименование = "Главпродукт" ТОГДА Количество КОНЕЦ), и это даже работает
Ну вот так и оставьте, без конфигуратора быстрее не будет.
3. YA_1130000068584258 26.03.25 13:47 Сейчас в теме
(2) Благодарю за ответ.

Не подскажете ли, даже с конфигуратором - можно ли обойтись своего рода постобработкой силами СКД, а не изменять запрос или делать обход в При Обработке Результата в модуле отчёта, для вывода одного из значений прямо в группировку? Платформа ведь постоянно развивается, я могу что-то проморгать, в т.ч. на ИТС.

Это та часть вопроса, которая "Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?". Именно в СКД, потому что если скатываться в построчный обход, то там возможности, естественно, безграничны.

Благодарю.
4. RustamZz 26.03.25 15:34 Сейчас в теме
(3) Можно, в вычисляемых выражениях.
6. YA_1130000068584258 26.03.25 21:41 Сейчас в теме
(4) Был не прав, каюсь. Стоило спросить не "можно ли?", а "как?". А то каков вопрос, такой ответ :)

Собственно, реагирую. Как именно можно выполнить данную задачу? Детализирую: Что прописать в вычисляемом выражении? При этом, нужно ли что-либо писать в вычисляемом поле? Или достаточно завести пустое вычисляемое поле, превратить его в ресурс, и там уже устроить магию?

В Хрусталёвой не нашел подходящего примера. Спрашиваю ведь не только для себя, а и для памяти в веках, форум же публичный.
5. VmvLer 26.03.25 15:47 Сейчас в теме
Сумма(ВычислитьВыражениеСГруппировкойМассив (Выражение, ВыраженияПолейГруппировки, ОтборЗаписей)
7. YA_1130000068584258 26.03.25 23:08 Сейчас в теме
(5) Да, действительно. Очевидное невероятное. Спасибо, что указали.

В моём случае даже ВыражениеПолейГруппировки можно опустить, и всё работает - видимо учитывается "текущая группировка", для которой выводится поле. Если я не ошибаюсь, то "текущая группировка" и должна учитываться, так и задумано. А сам отчёт простой, не заковыристый.

Так что, попробовал так:

ВычислитьВыражениеСГруппировкойМассив("Отгружено", , "Бренд.Наименование=""Главпродукт"")

С виду работает. И даже оборачивать в Сумма не обязательно, ведь ищется одна запись. Формула выглядит... эстетично, что ли. Буду тестирвать.

Благодарю за наводку!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот