/// Как упорядочить результат запроса по
/// определенным полям в 1с 8.3, 8.2
&НаСервере
Процедура КакУпорядочитьРезультатЗапросаПоПолямНаСервере()
// Чтобы сортировать строки в результате запроса
// используется секция УПОРЯДОЧИТЬ ПО.
// Требуется вывести продукты, упорядоченные
// сначала по возрастанию цвета, а затем
// по убыванию калорийности.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Цвет,
| Калорийность
|ИЗ
| Справочник.Номенклатура
|УПОРЯДОЧИТЬ ПО
| Цвет ВОЗР,
| Калорийность УБЫВ"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как упорядочить результат запроса по
/// выражению в 1с 8.3, 8.2
&НаСервере
Процедура КакУпорядочитьРезультатЗапросаПоВыражениюНаСервере()
// В секции УПОРЯДОЧИТЬ ПО можно использовать
// выражения.
// Например, упорядочим продукты по
// максимальному содержанию белков и углеводов
// вместе.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Белки,
| Углеводы,
| Жиры,
| Вода
|ИЗ
| Справочник.Номенклатура
|УПОРЯДОЧИТЬ ПО
| (Белки + Углеводы) УБЫВ"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как упорядочить результат запроса по
/// иерархии в 1с 8.3, 8.2
&НаСервере
Процедура КакУпорядочитьРезультатЗапросаПоИерархииНаСервере()
// Для таблиц, для которых задано свойство иерархичности
// возможно упорядочивание в соответствии с иерархией.
// К примеру, сделаем вывод элементов из
// справочника "Номенклатура" в порядке
// их следования в иерархии справочника.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Вкусы КАК Вкусы
|УПОРЯДОЧИТЬ ПО
| Наименование Иерархия"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как упорядочить результат запроса по
/// агрегатной функции группировки в 1с 8.3, 8.2
&НаСервере
Процедура КакУпорядочитьРезультатЗапросаПоАгрегатнойФункцииНаСервере()
// В секции УПОРЯДОЧИТЬ ПО также возможно использование
// агрегатных функций, которые были использованы для
// группировки результата запроса.
// Для каждого цвета - выберем минимальную калорийность
// продукта, имеющиего такой цвет. А затем отсортируем
// результат по возрастанию этой минимальной калорийности.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Цвет,
| МИНИМУМ(Калорийность)
|ИЗ
| Справочник.Номенклатура
|СГРУППИРОВАТЬ ПО
| Цвет
|УПОРЯДОЧИТЬ ПО
| МИНИМУМ(Калорийность) ВОЗР");
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как работает автоупорядочивание результата
/// в 1с 8.3, 8.2
&НаСервере
Процедура КакРаботаетАвтоупорядочиваниеНаСервере()
// Предложение АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим
// автоматического формирования полей для упорядочивания
// результата запроса.
// Автоупорядочивание работает по следующим принципам:
// Если в запросе было указано предложение УПОРЯДОЧИТЬ ПО,
// то каждая ссылка на таблицу, находящаяся в этом предложении,
// будет заменена полями, по которым по умолчанию сортируется таблица
// (для справочников это код или наименование, для документов - дата
// документа). Если поле для упорядочивания ссылается на иерархический справочник,
// то будет применена иерархическая сортировка по этому справочнику.
// Если в запросе отсутствует предложение УПОРЯДОЧИТЬ ПО,
// но есть предложение ИТОГИ, тогда результат запроса будет
// упорядочен по полям, присутствующим в предложении
// ИТОГИ после ключевого слова ПО, в той же последовательности и,
// в случае если итоги рассчитывались по полям - ссылкам,
// то по полям сортировки по умолчанию таблиц, на которые были ссылки.
// Если в запросе отсутствуют предложения УПОРЯДОЧИТЬ ПО и ИТОГИ,
// но есть предложение СГРУППИРОВАТЬ ПО, тогда результат запроса
// будет упорядочен по полям, присутствующим в предложении,
// в той же последовательности и, в случае если группировка велась
// по полям - ссылкам, то по полям сортировки по умолчанию таблиц,
// на которые были ссылки.
// В случае же, если в запросе отсутствуют предложения и
// УПОРЯДОЧИТЬ ПО, ИТОГИ и СГРУППИРОВАТЬ ПО, результат будет
// упорядочен по полям сортировки по умолчанию для таблиц,
// из которых выбираются данные, в порядке их появления в запросе.
// В случае, если запрос содержит предложение ИТОГИ, каждый уровень
// итогов упорядочивается отдельно.
// В примере ниже мы сортируем по полю Ссылка и используем
// ключевое слово АВТОУПОРЯДОЧИВАНИЕ. Система при этом
// заменит поле Ссылка в секции УПОРЯДОЧИТЬ ПО на дату документа.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Ссылка
|ИЗ
| Документ.ПродажаЕды
|УПОРЯДОЧИТЬ ПО
| Ссылка ВОЗР
|АВТОУПОРЯДОЧИВАНИЕ"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
Смотрите также:
Электронный учебник по программированию в 1С Рекомендации по изучению программирования 1С с нуля Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки