Разработка в 1С 8.0

       

Используется механизм запросов:


Запрос = Новый Запрос("

| ВЫБРАТЬ * ИЗ Справочник.Сотрудники  

| ГДЕ Оклад > 10000");  

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наименование + " имеет оклад " + Выборка.Оклад);  

КонецЦикла;

Обратите внимание на особенности второго варианта с использованием запроса:  

 

·внутри цикла не нужно фильтровать записи, поскольку запрос выполнил всю работу за нас;  

·вариант с запросом обычно выполняется быстрее, так как в клиент-серверном варианте работы запрос выполняется на сервере и не требуется передавать по сети весь справочник, который может быть очень большим.  

 

В клиент-серверном варианте работы 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">
Содержание раздела