Функция максимум (минимум) в запросе

1. nikchoo 06.05.14 18:25 Сейчас в теме
В запросе с помощью функции максимум (минимум), получаю максимальную (минимальную) цену ТМЦ. Как теперь узнать дату (документ и т.д) на какую был получен максимум (минимум)?

Процедура Сформировать()  
	
	Запрос = СоздатьОбъект("Запрос");
	
	ТекстЗапроса = "//{{ЗАПРОС(Макс)
	|Период с ВыбНачПериода по ВыбКонПериода;
	|ТМЦ = Документ.ПриходнаяНакладнаяМед.ТМЦ;
	|Пост = Документ.ПриходнаяНакладнаяМед.Контрагент;
	|ДляАпт = Документ.ПриходнаяНакладнаяМед.ДляАптеки;
	|Док = Документ.ПриходнаяНакладнаяМед.ТекущийДокумент; 
	|ЦенаПр = Документ.ПриходнаяНакладнаяМед.ЦенаБезНДС; 
	|Группировка ТМЦ упорядочить по ТМЦ.Наименование, ТМЦ.Код без групп; 
	|Функция Макс = Максимум(ЦенаПр);
	|Функция Мин = Минимум(ЦенаПр);
	|Условие (Пост в Поставщик);
	|"
	; //}}ЗАПРОС 
	
	// Если ошибка в запросе, то выход из процедуры
	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли; 
	
	Таб = СоздатьОбъект("Таблица");	
	Таб.ИсходнаяТаблица("Таблица");
	Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
	Таб.ВывестиСекцию("Заголовок");	
	Состояние("Заполнение выходной таблицы...");	
	
	НПП = 0;
	Пока Запрос.Группировка(1) = 1 Цикл 		
			НПП = НПП + 1;
			Таб.ВывестиСекцию("Строка");			
		КонецЕсли;
		КонецЕсли;
					 		
	КонецЦикла; 
	
	Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
	// Вывод заполненной формы
	Таб.ТолькоПросмотр(1);
	Таб.Показать("Сформировать", ""); 
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. vcv 89 07.05.14 12:58 Сейчас в теме
Сначала группировку по ТМЦ, потом по ДатаДок.
Потом где-то так
Пока Запрос.Группировка(1) = 1 Цикл
  МинЦена = Запрос.Мин;
  МаксЦена = Запрос.Макс;
  Пока Запрос.Группировка(2) = 1 Цикл
    Если Запрос.Мин = МинЦена Тогда
      ДатаМинЦены = Запрос.ДатаДок;
    КонецЕсли;
    Если Запрос.Макс = МаксЦена Тогда
      ДатаМаксЦены = Запрос.ДатаДок;
    КонецЕсли;
  КонецЦикла;
  НПП = НПП + 1;
  Таб.ВывестиСекцию("Строка");
КонецЦикла;
Показать

Остаётся вопрос: а если несколько раз товар поступал по минимальной цене или весь месяц по одной цене?
9. nikchoo 07.05.14 13:52 Сейчас в теме
(8) Все получилось! Спасибо Вам огромное!
2. adva 45 06.05.14 18:32 Сейчас в теме
Выбрать запросом по условию Цена = ЦенаМакс (и соответственно ЦенаМин)
3. nikchoo 06.05.14 18:59 Сейчас в теме
(2) Что-то не могу понять как это сделать одним запросом
4. adva 45 06.05.14 20:06 Сейчас в теме
(3) это пожалуй уже двумя другими запросами. Не знаю, как в 7.7 это одним сделать
5. vcv 89 06.05.14 22:13 Сейчас в теме
А добавить группировку по ДатаДок не помогает?
6. nikchoo 07.05.14 11:56 Сейчас в теме
(5)К сожалению не помогло. Пробую выгружать в таблицу значений и переберать строки, но хотелось бы конечно запросом все получить
7. stranik7777 12 07.05.14 12:16 Сейчас в теме
Введи вначале группировку по Док, а потом по ТМЦ. вот и отловишь ДатуДок
Оставьте свое сообщение

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