СКД, получение максимального значения по реквизиту #708684


#0 by mishkerdon
Здравствуйте! Помогите пожалуйста, в СКД есть группировка по элементу справочника, мне надо в ресурсах получить элемент с максимальным значением какого-либо реквизита этого элемента. Ну например, есть справочник Товары с реквизитом Цена. Мне надо получить тот товар, у которого самая большая цена, как реализовать это через вычисляемые поля и ресурсы СКД?
#1 by fisher
Непонятно, как должен выглядеть результат в отчете.
#2 by Enders
а почему не сразу в запросе?
#3 by mishkerdon
Я конечно немножко утрировал насчет справочника. Сейчас объясню подробнее. ну например так выглядит справочник: Товар (ссылка на справочник Товар), Склад (ссылка на справочник Склад), Цена (Число). Товар может встречаться на одном складе несколько раз, и на разных складах может быть один и тот же товар, цены могут быть как разные, так и одинаковые. Я в СКД делаю группировку по полю Склад, и мне надо вытащить на этом складке товар с самой высокой ценой.
#4 by fisher
Задача не совсем тривиальная. Совсем простых путей не вижу. В СКД только какие-то извраты в голову лезут типа связанных наборов данных. Лучше всего прямо в запросе это сделать. Но и в запросе только коррелирующие подзапросы в голову лезут :)
#5 by Alex S D
ну сделай еще один запрос с группировками, и соединяй с ним потом
#6 by fleet
Попробуй настроить отчет следующим образом: 1. Создаем группировку склад. 2. Создаем вложенную группировку "Детальные записи" 3. Выделяем  группировку "Детальные записи" и на вкладке "Другие настройки"  указываем "Количество записей" = 1 4. В сортировке указываем "Цена"  по убыванию Пример: Получится похоже на твое описание.
#7 by fisher
О, точно! Думал в эту сторону, но так и не вспомнил, как в СКД ограничить количество выводимых записей.
#8 by mishkerdon
нет мне не только надо вывести максимальную цену, мне еще надо вывести другие реквизиты товара. Вот в этом загвоздка, т.е. я должен определить именно какой Товар с самой высокой ценой, а не какая самая высокая цена по складу
#9 by Classic
А если товаров с максимальной ценой будет несколько?
#10 by Enders
так в вроде как один товар с максимальной ценой и есть) В кстати тоже правильный вопрос, что делать если таких товаров несколько. Если всё равно показывать только 1 случайный, то можно как в . Если все, тогда сначала сгруппировать и найти максимальную цену, а потом соединить изначальную таблицу с полученной таблицей макс цен.
#11 by fleet
Что мешает на вкладке "выбранне поля" вывести другие реквизиты "товара"? А на вкладке дополнительно указать "Расположение реквизитов" для отчета в целом или конкретной группировки.   В случае когда товаров с максимальной ценой будет несколько, можно в сортировке указать дополнительные поля, или вывести записей больше чем 1. Все зависит от целей, для которых разрабатывается отчет.
#12 by mishkerdon
да, если товаров с одинаковой максимальной ценой будет несколько то первый попавшийся, неважно. , меня интересует именно средствами СКД, так как группировка идет именно в СКД (в запросах получаю детальные записи без группировки, и не хотелось бы нарушать костылями саму идею СКД). Такое можно сделать? Временно сделал так -  добавил вычисляемое поле ТоварСМаксимальнойЦеной с выражением "ВЫБОР КОГДА Цена=ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Цена","Склад") ТОГДА Товар ИНАЧЕ NULL КОНЕЦ". Затем в ресурсах беру Максимум(Товар) по группировке Склад. Но тут есть одно но - непонятно как считать итоговые значения. Хотел было сделать еще одно вычисляемое поле Максимум(ВЫЧИСЛИТЬВЫРАЖЕНИЕСГРУППИРОВКОЙМАССИВ("ТоварСМаксимальнойЦеной"), но оказывается нельзя из одного вычисл поля брать другое вычисл поле. :(
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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