Вывести поле одной детальной записи на уровень группировки, предпочтительно без конфигуратора
Вопрос уровня "как сделать, чтобы понравилось менеджеру", а не как достичь технологической сингулярности. Так что, попрошу, воздержаться от шуток-прибауток. Менеджеры люди важные, чем больше работают они, тем меньше работают остальные, это знать надо.
- - -
Есть отчёт на СКД, самописный, который считает отгрузки за период в разрезе брендов по регистру накопления.
Считает хорошо, быстро. В построчной выдаче запроса к базе - условно, всего три колонки:
- склад - бренд - количество отгрузок. На экран выводится в группировках - в группировках по складу.
Но вот настал "час Икс" - менеджер попросил добавить количество и долю по "суперважному" бренду прямо в группировку по складу - для быстроты доступа менеджера к информации, и для вывода на печать тоже.
Вопрос:
Хотелось бы воспользоваться пользовательским полем ресурса (группировка же, не забываем), в котором будет формула ВычислитьВыражение(...). Но как вывести на уровень группировки значение поля по, эм, эталонной сущности?
Я пробовал через СУММА(ВЫБОР КОГДА Бренд.Наименование = "Главпродукт" ТОГДА Количество КОНЕЦ), и это даже работает, но производительность при большой выдаче сильно проседает, в частности, полагаю, из-за сравнения строк, да ещё и не на топ-уровне, а в реквизите. А как иначе вычленить сущность, мне и не ясно.
Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?
- - -
P.S. Долю по отношению к итогу группировки тоже не знаю как правильно посчитать, но этот вопрос, я полагаю, напрямую зависит от того вопроса, что выше в тексте.
- - -
Есть отчёт на СКД, самописный, который считает отгрузки за период в разрезе брендов по регистру накопления.
Считает хорошо, быстро. В построчной выдаче запроса к базе - условно, всего три колонки:
- склад - бренд - количество отгрузок. На экран выводится в группировках - в группировках по складу.
Но вот настал "час Икс" - менеджер попросил добавить количество и долю по "суперважному" бренду прямо в группировку по складу - для быстроты доступа менеджера к информации, и для вывода на печать тоже.
Вопрос:
Хотелось бы воспользоваться пользовательским полем ресурса (группировка же, не забываем), в котором будет формула ВычислитьВыражение(...). Но как вывести на уровень группировки значение поля по, эм, эталонной сущности?
Я пробовал через СУММА(ВЫБОР КОГДА Бренд.Наименование = "Главпродукт" ТОГДА Количество КОНЕЦ), и это даже работает, но производительность при большой выдаче сильно проседает, в частности, полагаю, из-за сравнения строк, да ещё и не на топ-уровне, а в реквизите. А как иначе вычленить сущность, мне и не ясно.
Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?
- - -
P.S. Долю по отношению к итогу группировки тоже не знаю как правильно посчитать, но этот вопрос, я полагаю, напрямую зависит от того вопроса, что выше в тексте.
Прикрепленные файлы:

Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Благодарю за ответ.
Не подскажете ли, даже с конфигуратором - можно ли обойтись своего рода постобработкой силами СКД, а не изменять запрос или делать обход в При Обработке Результата в модуле отчёта, для вывода одного из значений прямо в группировку? Платформа ведь постоянно развивается, я могу что-то проморгать, в т.ч. на ИТС.
Это та часть вопроса, которая "Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?". Именно в СКД, потому что если скатываться в построчный обход, то там возможности, естественно, безграничны.
Благодарю.
Не подскажете ли, даже с конфигуратором - можно ли обойтись своего рода постобработкой силами СКД, а не изменять запрос или делать обход в При Обработке Результата в модуле отчёта, для вывода одного из значений прямо в группировку? Платформа ведь постоянно развивается, я могу что-то проморгать, в т.ч. на ИТС.
Это та часть вопроса, которая "Есть ли в СКД/ВычислитьВыражение аналог знаменитых экселевских ВПР или ИНДЕКС+ПОИСКПОЗ? Как вообще быть ближе к "lookup", а не к "bruteforce"?". Именно в СКД, потому что если скатываться в построчный обход, то там возможности, естественно, безграничны.
Благодарю.
(4) Был не прав, каюсь. Стоило спросить не "можно ли?", а "как?". А то каков вопрос, такой ответ :)
Собственно, реагирую. Как именно можно выполнить данную задачу? Детализирую: Что прописать в вычисляемом выражении? При этом, нужно ли что-либо писать в вычисляемом поле? Или достаточно завести пустое вычисляемое поле, превратить его в ресурс, и там уже устроить магию?
В Хрусталёвой не нашел подходящего примера. Спрашиваю ведь не только для себя, а и для памяти в веках, форум же публичный.
Собственно, реагирую. Как именно можно выполнить данную задачу? Детализирую: Что прописать в вычисляемом выражении? При этом, нужно ли что-либо писать в вычисляемом поле? Или достаточно завести пустое вычисляемое поле, превратить его в ресурс, и там уже устроить магию?
В Хрусталёвой не нашел подходящего примера. Спрашиваю ведь не только для себя, а и для памяти в веках, форум же публичный.
(5) Да, действительно. Очевидное невероятное. Спасибо, что указали.
В моём случае даже ВыражениеПолейГруппировки можно опустить, и всё работает - видимо учитывается "текущая группировка", для которой выводится поле. Если я не ошибаюсь, то "текущая группировка" и должна учитываться, так и задумано. А сам отчёт простой, не заковыристый.
Так что, попробовал так:
ВычислитьВыражениеСГруппировкойМассив("Отгружено", , "Бренд.Наименование=""Главпродукт"")
С виду работает. И даже оборачивать в Сумма не обязательно, ведь ищется одна запись. Формула выглядит... эстетично, что ли. Буду тестирвать.
Благодарю за наводку!
В моём случае даже ВыражениеПолейГруппировки можно опустить, и всё работает - видимо учитывается "текущая группировка", для которой выводится поле. Если я не ошибаюсь, то "текущая группировка" и должна учитываться, так и задумано. А сам отчёт простой, не заковыристый.
Так что, попробовал так:
ВычислитьВыражениеСГруппировкойМассив("Отгружено", , "Бренд.Наименование=""Главпродукт"")
С виду работает. И даже оборачивать в Сумма не обязательно, ведь ищется одна запись. Формула выглядит... эстетично, что ли. Буду тестирвать.
Благодарю за наводку!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот