<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>1C-Book &#187; Запросы</title>
	<atom:link href="http://1c-book.ru/category/razrabotka-v-sisteme-1spredpriyatie-8-0-s-a-mitichkin-ooo-1s-pablishing-2003g/zaprosy/feed/" rel="self" type="application/rss+xml" />
	<link>http://1c-book.ru</link>
	<description>1С Предприятие 8.0. Справочно-Информационная Система</description>
	<lastBuildDate>Wed, 04 Nov 2009 12:01:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Запросы</title>
		<link>http://1c-book.ru/zaprosy/</link>
		<comments>http://1c-book.ru/zaprosy/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:10:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Запросы]]></category>

		<guid isPermaLink="false">http://1c-book.ru/?p=229</guid>
		<description><![CDATA[
Запросы в системе 1С:Предприятие 8.0 предназначены для выборки   информации из базы данных. По сути, запрос &#8211; это обращение к системе с просьбой   выбрать определенную информацию из базы данных, а часто не только выбрать, но и   произвести некоторую обработку: сгруппировать, отсортировать, вычислить итоги.
Например, с помощью запроса можно легко выбрать всех [...]]]></description>
			<content:encoded><![CDATA[<p align="left">
<p align="left"><strong>Запросы </strong>в системе 1С:Предприятие 8.0 предназначены для выборки   информации из базы данных. По сути, запрос &#8211; это обращение к системе с просьбой   выбрать определенную информацию из базы данных, а часто не только выбрать, но и   произвести некоторую обработку: сгруппировать, отсортировать, вычислить итоги.</p>
<p align="left">Например, с помощью <strong>запроса </strong>можно легко выбрать всех   сотрудников, занимающих определенную должность, или можно узнать объем продаж   каждого товара в течение года с детализацией до месяца.</p>
<p align="left">Стоит отметить, что в других системах с помощью запросов можно   не только <em>выбирать </em>информацию из базы данных, но и <em>изменять </em>ее:   добавлять, удалять и изменять записи в таблицах, управлять правами   пользователей, создавать и модифицировать таблицы, поля, индексы и другие   объекты базы данных. В системе 1С:Предприятие 8.0 запросы предназначены только   для чтения данных. Изменять данные с помощью запросов нельзя, и тем более   нельзя изменять структуру базы данных, что возможно только в режиме   «Конфигуратор». Запись данных в 1С:Предприятии 8.0 производится только через   объекты встроенного языка, что обеспечивает высокий уровень логической   целостности базы данных.</p>
<p align="left">Основная цель обычного языка программирования заключается в том,   чтобы задать пошаговую программу для системы, то есть точно определить, <em>как </em>решать задачу. Цель же языка запросов состоит в том, чтобы сказать системе,  <em>что </em>нужно получить, то есть потребовать результат. При этом нас не   интересует, как именно система будет выполнять задание, т.е. план (алгоритм)   выполнения запроса строится системой автоматически.</p>
<p align="left">Приведем пример решения задачи обоими методами: с помощью языка   программирования и с помощью запроса. Допустим, необходимо вывести сотрудников   с окладом больше 10000 руб.</p>
<p align="left">1-й способ. Используется язык программирования:</p>
<p align="left">
<div>
<pre><span style="color: #008000;">Выборка = Справочники.Сотрудники.Выбрать();</span></pre>
</div>
<div>
<pre><span style="color: #008000;">Пока Выборка.Следующий() Цикл</span></pre>
</div>
<div>
<pre><span style="color: #008000;">	Если Выборка.Оклад &gt; 10000 Тогда</span></pre>
</div>
<div>
<pre><span style="color: #008000;">		Сообщить(Выборка.Наименование + " имеет оклад " + Выборка.Оклад);</span></pre>
</div>
<div>
<pre><span style="color: #008000;">	КонецЕсли;</span></pre>
</div>
<div>
<pre><span style="color: #008000;">КонецЦикла;
</span></pre>
</div>
<p align="left">2-й способ. Используется механизм запросов:</p>
<p align="left">
<div>
<pre><span style="color: #008000;">Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Сотрудники ГДЕ Оклад &gt; 10000");</span></pre>
</div>
<div>
<pre><span style="color: #008000;">    Выборка = Запрос.Выполнить().Выбрать();</span></pre>
</div>
<div>
<pre><span style="color: #008000;">    Пока Выборка.Следующий() Цикл</span></pre>
</div>
<div>
<pre><span style="color: #008000;">        Сообщить(Выборка.Наименование + " имеет оклад " + Выборка.Оклад);</span></pre>
</div>
<div>
<pre><span style="color: #008000;">    КонецЦикла;</span></pre>
</div>
<p align="left">
<p align="left">Обратите внимание на особенности второго варианта с   использованием <strong>запроса</strong>:</p>
<ul>
<li>
<p align="left">внутри цикла не нужно фильтровать записи, поскольку запрос     выполнил всю работу за нас;</p>
</li>
<li>
<p align="left">вариант с запросом обычно выполняется быстрее, так как в     клиент-серверном варианте работы запрос выполняется на сервере и не требуется     передавать по сети весь справочник, который может быть очень большим.</p>
</li>
</ul>
<p align="left">В клиент-серверном варианте работы 1С:Предприятия 8.0 запросы   будут транслироваться в SQL для выполнения в среде MS SQL Server. Сервер баз   данных предпримет необходимые действия для оптимизации запроса.</p>
<p align="left">Даже если вы работает в файловом варианте, то вариант с запросом   обычно эффективнее обычного цикла для обработки больших справочников, списков   документов и извлечения данных из регистров.</p>
<p align="left">Но необходимо иметь в виду, что при использовании запроса,   результат целиком помещается в память, тогда как выборка, сформированная   средствами встроенного языка, загружает информацию порциями и позволяет   перебрать большие списки объектов, не требуя значительного объема памяти.</p>
<p align="left">Написание <strong>запроса </strong>требует не алгоритмического, а  декларативного типа мышления, когда разработчик говорит не как  сделать задачу, а что нужно получить в результате. При этом производится   обработка не одной переменной или одной текущей строки, а всей таблицы или   столбца. Разработчик должен мыслить множествам, чтобы решить поставленную   задачу с помощью одного или нескольких <strong>запросов</strong>.</p>
<p>Заметим, что в приведенном выше примере мы рассмотрели самое   простое применение механизма запросов. С помощью запросов можно не только   отбирать нужные записи по любому условию, но также группировать, сортировать,   подсчитывать итоги. И сейчас мы научимся все это делать!</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-book.ru/zaprosy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
