Используется механизм запросов:
Запрос = Новый Запрос("
| | ВЫБРАТЬ * ИЗ Справочник.Сотрудники
| |
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
| Сообщить(Выборка.Наименование + " имеет оклад " + Выборка.Оклад);
| |
КонецЦикла;
| Обратите внимание на особенности второго варианта с использованием запроса:
| |
| · | внутри цикла не нужно фильтровать записи, поскольку запрос выполнил всю работу за нас;
| |
| · | вариант с запросом обычно выполняется быстрее, так как в клиент-серверном варианте работы запрос выполняется на сервере и не требуется передавать по сети весь справочник, который может быть очень большим.
| |
| В клиент-серверном варианте работы 1С: Предприятия 8.0 запросы будут транслироваться в SQL для выполнения в среде MS SQL Server. Сервер баз данных предпримет необходимые действия для оптимизации запроса.
| |
| Даже если вы работает в файловом варианте, то вариант с запросом обычно эффективнее обычного цикла для обработки больших справочников, списков документов и извлечения данных из регистров.
| |
| Но необходимо иметь в виду, что при использовании запроса, результат целиком помещается в память, тогда как выборка, сформированная средствами встроенного языка, загружает информацию порциями и позволяет перебрать большие списки объектов, не требуя значительного объема памяти.
| |
| Написание запроса требует не алгоритмического, а декларативного типа мышления, когда разработчик говорит не как сделать задачу, а что нужно получить в результате. При этом производится обработка не одной переменной или одной текущей строки, а всей таблицы или столбца. Разработчик должен мыслить множествам, чтобы решить поставленную задачу с помощью одного или нескольких запросов.
| |
| Заметим, что в приведенном выше примере мы рассмотрели самое простое применение механизма запросов. С помощью запросов можно не только отбирать нужные записи по любому условию, но также группировать, сортировать, подсчитывать итоги. И сейчас мы научимся все это делать!
| |
<
table width="100%" cellpadding="0" cellspacing="0">
| |
<
table width="100%" cellpadding="0" cellspacing="0">
|
|
<
table width="100%" cellpadding="0" cellspacing="0">
| |
Содержание раздела