Запрос
= СоздатьОбъект(Запрос);
ТекстЗапроса = текст запроса на особом языке запросов
Запрос.Выполнить(ТекстЗапроса);
//далее идет обработка результатов запроса
С помощью переменных запроса происходит обращение к требуемым данным. Переменные запроса чаще всего ссылаются на справочники и документы. Кроме того можно ссылаться на журналы расчетов, регистры, бухгалтерские счета.
|ФИО = Справочник.Сотрудники.Наименование;
|Долж = Справочник.Сотрудники.Должность;
|ДатаПриема = Справочник.Сотрудники.ДатаПриема;
|ДатаУвольнения = Справочник.Сотрудники.ДатаУвольнения;
|;
Практически в любом запросе есть ключевое слово Группировка. Оно означает, что нужно выбрать из таблицы только те записи, у которых значение определенного поля различается. Этот запрос выберет из справочника Сотрудники список используемых должностей и отсортирует этот список по алфавиту.
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Долж = Справочник.Сотрудники.Должность;
|Группировка Долж упорядочить по Долж.Наименование;
|";
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(Долж)=1 Цикл
............Сообщить(Запрос.Долж);
КонецЦикла;
Этот запрос совершает очень полезную работу: он группирует всех сотрудников по должностям. Заметьте, что сначала идет группировка по должности, а затем по сотруднику, это очень важно. Обратите внимание на переменную запроса Сотр. Она ссылается на строку справочника Сотрудники. Чтобы вывести ФИО сотрудника используется обращение к атрибуту объекта: Сотр.Наименование.
Запрос = СоздатьОбъект(Запрос);
ТекстЗапроса =
|Сотр = Справочник.Сотрудники.ТекущийЭлемент;
|Долж = Справочник.Сотрудники.Должность;
|Группировка Долж упорядочить по Долж.Наименование;
|Группировка Сотр упорядочить по Сотр.Наименование;
|;
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(Долж)=1 Цикл
............Сообщить(Запрос.Долж);
............Пока Запрос.Группировка(Сотр)=1 Цикл
................Сообщить(...... + Запрос.Сотр.Наименование);
............КонецЦикла;
КонецЦикла;
Этот запрос совершает очень полезную работу: он подсчитывает, сколько сотрудников работает по каждой должности. Другие возможные функции приведены в Синтакс-помощнике.
Запрос = СоздатьОбъект(Запрос);
ТекстЗапроса =
|Долж = Справочник.Сотрудники.Должность;
|Группировка Долж упорядочить по Долж.Наименование;
|Функция Колво = Счётчик();
|;
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(Долж)=1 Цикл
...Сообщить(По должности + Строка(Запрос.Долж) +
.............. работает + Строка(Запрос.Колво) + чел.);
КонецЦикла;
Запрос = СоздатьОбъект(Запрос);
ТекстЗапроса =
|Сотр = Справочник.Сотрудники.ТекущийЭлемент;
|КодДолж = Справочник.Сотрудники.Должность.Код;
|Группировка Сотр упорядочить по Сотр.Наименование;
|Условие (КодДолж = 7);
|;
Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка(Долж)=1
Цикл
............Сообщить(Запрос.Сотр);
КонецЦикла;