Основные приемы работы
Основные приемы работы с запросами во встроенном языке 1С:Предприятия удобнее всего рассматривать на примерах. Приведем типичный пример использования запроса:
// Создадим Запрос
Запрос = Новый Запрос("ВЫБРАТЬ Товар.Наименование Наименование,
| Товар.Родитель.Наименование НаименованиеРодителя
| ИЗ Справочник.Товары Товар");
// Выполним запрос и запишем результат в переменную РезультатЗапроса.
РезультатЗапроса = 3апрос.Выполнить();
// Получим выборку из результата запроса.
Выборка = РезультатЗапроса.Выбрать();
// Пока в выборке есть записи ...
Пока Выборка.Следующий() Цикл
// ... выведем в окно сообщений поля из результата.
Товар = Выборка.Наименование;
Родитель = Выборка.НаименованиеРодителя;
Сообщить("Товар: " + Товар + " Родитель: " + Родитель);
КонецЦикла ;
Как видно из этого примера, работа с запросом ведется при помощи трех основных объектов:
• Запрос - объект, выполняющий сам запрос. Представлен в примере переменной с именем Запрос.
• РезультатЗапроса - объект, содержащий полученные при выполнении запроса данные. Представлен в примере переменной с именем РезультатЗапроса.
• ВыборкаИзРезультатаЗапроса - объект, позволяющий обходить (т.е. перебрать) записи из результата. Представлен в примере переменной с именем Выборка.
Рассмотрим
подробнее объект ВыборкаИзРезультатаЗапроса. Для этого нам понадобится следующий запрос:
Выбрать
Товар, Количество
Из
Документ.РасхНакл.Состав
Упорядочить по
Товар
Итоги
Сумма(Количество) По Товар,
Товар Иерархия
Его результат представлен в таблице:
№ | Товар | Количество |
1 | Сантехника | 104 |
2 | Кран | 84 |
3 | Кран | 10 |
4 | Кран | 8 |
5 | Кран | 44 |
6 | Кран | 22 |
7 | Смеситель | 20 |
8 | Смеситель | 5 |
9 | Смеситель | 1 |
10 | Смеситель | 14 |
11 | Мебель | 134 |
12 | Стол | 26 |
13 | Стол | 1 |
14 | Стол | 15 |
15 | Стол | 10 |
16 | Стул | 108 |
17 | Стул | 55 |
18 | Стул | 5 |
19 | Стул | 32 |
20 | Стул | 16 |
В этой таблице мы добавили столбец №, которого нет в результате запроса, но который будет использоваться нами в дальнейшем для идентификации записи в результате. Итоговые записи в таблице выделены курсивом, итоговые записи для иерархических уровней справочника выделены жирным шрифтом.