<?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; Предложение ИЗ / FROM</title>
	<atom:link href="http://1c-book.ru/category/razrabotka-v-sisteme-1spredpriyatie-8-0-s-a-mitichkin-ooo-1s-pablishing-2003g/predlozhenie-iz-from/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>Предложение ИЗ / FROM</title>
		<link>http://1c-book.ru/predlozhenie-iz-from/</link>
		<comments>http://1c-book.ru/predlozhenie-iz-from/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 10:38:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Предложение ИЗ / FROM]]></category>

		<guid isPermaLink="false">http://1c-book.ru/?p=204</guid>
		<description><![CDATA[Предложение ИЗ позволяет указать таблицы-источники для запроса и   задать порядок их соединения, если таблиц несколько.
Вот простые примеры запросов с предложением ИЗ:


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


ВЫБРАТЬ * ИЗ Документ.РасходнаяНакладная


Напомним, что конструкция ИЗ необязательна, если в списке   выбираемых полей указаны полные имена таблиц, например,


ВЫБРАТЬ Справочник.Товары.*


ВЫБРАТЬ Документ.РасходнаяНакладная.Дата,


Документ.РасходнаяНакладная.Номер

 
 
Таблицы-источники данных
Каждая таблица-источник предоставляет свой набор полей. [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Предложение <strong>ИЗ </strong>позволяет указать таблицы-источники для запроса и   задать порядок их соединения, если таблиц несколько.</p>
<p align="left">Вот простые примеры запросов с предложением <strong>ИЗ</strong>:</p>
<p align="left">
<div>
<pre><span style="color: #008000;">ВЫБРАТЬ * ИЗ Справочник.Товары</span></pre>
</div>
<div>
<pre><span style="color: #008000;">ВЫБРАТЬ * ИЗ Документ.РасходнаяНакладная</span></pre>
</div>
<p align="left">
<p align="left">Напомним, что конструкция ИЗ необязательна, если в списке   выбираемых полей указаны полные имена таблиц, например,</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;">Документ.РасходнаяНакладная.Номер</span></pre>
</div>
<p><span style="color: #008000;"><em> </em></span></p>
<p align="left"><span style="color: #008000;"><em> </em></span></p>
<h3><em>Таблицы-источники данных</em></h3>
<p align="left">Каждая таблица-источник предоставляет свой набор полей. С полным их перечнем вы можете ознакомиться в документации или Синтакс-помощнике.</p>
<p align="left">В 1C:Предприятии 8.0 существуют следующие таблицыисточники   данных для запросов:</p>
<ul>
<li>
<p align="left">Таблица констант,</p>
</li>
<li>
<p align="left">Таблица справочника,</p>
</li>
<li>
<p align="left">Таблица документов,</p>
</li>
<li>
<p align="left">Таблица журнала документов,</p>
</li>
<li>
<p align="left">Таблицы последовательностей,</p>
</li>
<li>
<p align="left">Таблица плана видов характеристик,</p>
</li>
<li>
<p align="left">Таблица критерия отбора,</p>
</li>
<li>
<p align="left">Таблица плана видов расчета,</p>
</li>
<li>
<p align="left">Таблицы регистров расчета,</p>
</li>
<li>
<p align="left">Разработка в системе 1С:Предприятие 8.0</p>
</li>
<li>
<p align="left">Таблицы регистров сведений,</p>
</li>
<li>
<p align="left">Таблицы регистров накопления,</p>
</li>
<li>
<p align="left">Таблицы регистров бухгалтерии.</p>
</li>
</ul>
<p align="left">В данной главе подробно описаны только таблицы для обращения к справочникам и документам.</p>
<p align="left"><em><strong>Таблица справочника</strong></em></p>
<p align="left">Таблица справочника позволяет организовать запрос к любому справочнику и предоставляет следующие поля:</p>
<p align="left"><em><strong>Ссылка</strong></em></p>
<p align="left">Ссылка на элемент справочника. Через ссылку можно будет обратиться к любому полю справочника, даже если оно не включено в запрос.</p>
<p align="left"><em><strong>ПометкаУдаления</strong></em></p>
<p align="left">Признак пометки на удаление элемента справочника. Если равно значению Истина, то элемент помечен на удаление.</p>
<p align="left"><em><strong>Родитель</strong></em></p>
<p align="left">Указывает на элемента-родителя (или группу), в которой содержится данный элемент. Это поле будет включено в   результат запроса только для иерархических справочников.</p>
<p align="left"><em><strong>ЭтоГруппа</strong></em></p>
<p align="left">Признак того, что элемент справочника является группой.</p>
<p align="left">Это поле включается в результат запроса только для иерархических   справочников.</p>
<p align="left"><em><strong>Владелец</strong></em></p>
<p align="left">Ссылка на элемент справочника-владельца, которому принадлежит   данный элемент, т.е. которому он подчинен. Это поле   будет включено в результат запроса только для подчиненных справочников.</p>
<p align="left"><em><strong>Представление</strong></em></p>
<p align="left">Виртуальное поле* (<a href="http://ops.org.ua/P6/FromQ.php#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%87%D0%B0%D0%BD%D0%B8%D0%B5.%20%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D0%BE%D0%BB%D1%8F.">см.ниже</a>).   Содержит представление элемента справочника, например, его наименование или   код.</p>
<p align="left"><em><strong>Код</strong></em></p>
<p align="left">Код элемента. Встроенное поле для всех справочников.</p>
<p align="left"><em><strong>Наименование</strong></em></p>
<p align="left">Наименование элемента. Встроенное поле для всех справочников.</p>
<p align="left"><em><strong>&lt;имя реквизита&gt;</strong></em></p>
<p align="left">Далее идут реквизиты справочника, как они определены в Конфигураторе, например, Цена, ЕдИзм и т.д.</p>
<p align="left"><em><strong>&lt;имя табличной части&gt;</strong></em></p>
<p align="left">Если у справочника есть табличные части, то к ним можно обращаться по имени. При этом в результате запроса   появляется <em>вложенная таблица. </em></p>
<p align="left">Приведем примеры простых запросов к справочнику:</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;">ВЫБРАТЬ *.Представление</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><span style="color: #008000;"> </span>Таблица документа предназначена для выборки данных из   документов. Она предоставляет следующие поля:  Ссылка  Через ссылку на документ можно будет обратиться к любому полю   документа, даже если оно не включено в запрос. <em> ПометкаУдаления </em>Признак пометки на удаление документа.  Номер  Номер документа. Встроенное поле для всех документов.  Дата  Дата и время документа. Встроенное поле для всех документов.  Проведен  Содержит признак проведенности документа. Данное поле всегда   включается в результат, даже если для документа запрещено проведение.  &lt;имя реквизита&gt;  Далее идут реквизиты шапки документа, как они определены в   Конфигураторе, например, Контрагент, Склад и т.д.  &lt;имя табличной части&gt;  Если у документа есть табличные части, то к ним можно обращаться   по имени. При этом в результате запроса появляется <em>вложенная таблица.   МоментВремени  &#8211; </em>Виртуальное поле. Содержит момент времени документа, который   включает дату и ссылку на документ. Напомним, что тип «дата» включает также и   время с точностью до секунды. <em> Представление &#8211; </em>Виртуальное поле. Содержит строку-представление документа,   например, «Расходная накладная 0035 от 25.07.2003 12:05:01».  Итак, мы рассмотрели две основные таблицы-источники данных для   справочников и документов. Таблицы-источники для регистров будут представлены в   соответствующих главах. Таблицыисточники для других объектов (констант,   журналов документов и т.д.) имеют достаточно простую структуру и в данной книге   не рассматриваются.</p>
<h3>Псевдонимы источников КАК/AS</h3>
<p>В языке запросов есть возможность указать псевдоним для   таблицы-источника с помощью ключевого слова КАК. При этом можно обращаться к   источнику через псевдоним, например, в списке полей конструкции ВЫБРАТЬ или при   соединении таблиц, которое будет описано ниже.  Ниже приведен пример использования псевдонима таблицыисточника:</p>
<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>
<div>
<pre><img src="http://i046.radikal.ru/0910/dd/3975978ef80a.gif" border="0" alt="" width="481" height="174" /></pre>
</div>
<h3>Запросы к табличным частям</h3>
<p align="left">В качестве таблиц источников можно указывать табличные части   объектов, например, справочников и документов. Это не то же самое, что получать   табличную часть как поле запроса, содержащее вложенную таблицу, о чем было   рассказано выше.</p>
<p align="left">Например, в следующем запросе производится обращение к табличной   части Состав документа РасходнаяНакладная:</p>
<p align="left">
<div>
<pre><span style="color: #008000;">ВЫБРАТЬ Товар, Цена, Количество, Сумма</span></pre>
</div>
<div>
<pre><span style="color: #008000;">И3 Документ.РасходнаяНакладная.Состав</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><img src="http://s39.radikal.ru/i083/0910/a7/19ae0110aa9d.gif" border="0" alt="" width="481" height="146" /></pre>
</div>
<p align="left">Если запрос делается к табличной части справочника или   документа, то обращение к реквизитам шапки документа или обычным реквизитам   справочника производится через поле <em>Ссылка</em>, например:</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;">ИЗ Документ.РасходнаяНакладная.Состав</span></pre>
</div>
<h3><img src="http://s45.radikal.ru/i109/0910/f4/153415d7b1ef.gif" border="0" alt="" width="484" height="234" /></h3>
<h3>Вложенные запросы в списке  источников</h3>
<p align="left">В системе 1С:Предприятие 8.0 можно указать в качестве источника   другой запрос, т.е. запрос может выбирать данные из вложенного запроса. Для   вложенного запроса, как для обычной таблицы-источника, можно указать псевдоним,   что сделано в следующем примере:</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;">ИЗ (</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>
<div>
<pre><span style="color: #008000;">СГРУППИРОВАТЬ ПО Товары.Номенклатура</span></pre>
</div>
<div>
<pre><img src="http://i036.radikal.ru/0910/3d/e1cba86fa583.gif" border="0" alt="" width="483" height="201" /></pre>
</div>
<h3>Конструкция СОЕДИНЕНИЕ&#8230;ПО/JOIN&#8230;ON</h3>
<p align="left">Важной возможностью языка запросов системы 1С:Предприятие 8.0   является обращение сразу к нескольким таблицам. При этом их можно соединять   определенным образом. Например, необходимо выбрать все проданные товары и   вывести их в отчет с указанием группы, к которой они относятся. Это делает   представленный ниже запрос:</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;">Спр.Родитель КАК Группа</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>Результат этого запроса показан ниже:  <img src="http://s54.radikal.ru/i146/0910/8a/9c990dce0011.gif" border="0" alt="" width="482" height="172" /> В данном примере того же эффекта можно добиться, если просто   обращаться к имени поля через точку, что называется <em>разыменованием ссылочных   полей. </em>При этом соединение таблиц производится неявно. Следующий запрос   эквивалентен предыдущему и использует разыменование полей:</p>
<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>Возможность разыменования полей в 1С:Предприятии 8.0 допускает   обращение к свойствам объектов через несколько точек, например, «Номенклатура.Поставщик.Страна».   Это позволяет значительно упростить написание запросов.  Рассмотренное соединение относится к классу внутренних. В языке   запросов системы 1С:Предприятие 8.0 существует возможность <em>внешних </em> соединений, которые могут быть <em>левыми </em>(LEFT OUTER), <em>правыми </em>(RIGHT   OUTER) и <em>полными </em>(FULL OUTER).</p>
<h3>Левое внешнее соединение</h3>
<p>Конструкция ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в результат   запроса надо включить комбинации записей из обеих исходных таблиц, которые   соответствуют указанному условию. Но, в отличие от внутреннего соединения, в   результат запроса надо включить еще и записи из <em>первого </em>источника   (указанного слева от слова СОЕДИНЕНИЕ), для которых не найдено соответствующих   условию записей из второго источника.  Таким образом, в результат запроса будут включены <em>все записи   из первого источника, </em>они будут соединены с записями из второго источника   при выполнении указанного условия. Строки результата запроса, для которых не   найдено соответствующих условию записей из второго источника, будут содержать   значение NULL в полях, формируемых на основании записей из этого источника.  Обратите внимание, что NULL-значения не являются нулем или   пустой строкой. Это специальные маркеры, обозначающие неуказанные   (отсутствующие) значения или значения, не имеющие смысла.  Например, нужно показать курсы всех валют, которые хранятся в   регистре сведений КурсыВалют. Возможно, что для некоторой валюты не будет   найдено соответствующей записи в регистре сведений, но она также должна попасть   в отчет (запросы к регистрам сведений и таблица СрезПоследних описаны в главе   «Регистры сведений»):</p>
<div>
<pre><span style="color: #008000;">ВЫБРАТЬ Спр.Наименование, Peг.Курс</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;">РегистрСведений.КурсыВалют.СрезПоследних КАК Peг</span></pre>
</div>
<div>
<pre><span style="color: #008000;">ПО Спр.Ссылка = Peг.Валюта</span></pre>
</div>
<p>Результат запроса показан в следующей таблице:  <img src="http://i057.radikal.ru/0910/50/08f03d16cf28.gif" border="0" alt="" width="309" height="142" /></p>
<h3>Правое внешнее соединение</h3>
<p>Конструкция ПРАВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в   результат запроса надо включить комбинации записей из обеих исходных таблиц,   которые соответствуют указанному условию. Кроме того, в результат запроса надо   включить еще и записи из <em>второго </em>источника (указанного справа от слова   СОЕДИНЕНИЕ), для которых не найдено соответствующих условию записей из первого   источника.  Таким образом, в результат запроса будут включены <em>все записи   из второго источника </em>они будут соединены с записями из первого источника   при выполнении указанного условия. Строки результата запроса, для которых не   найдено соответствующих условию записей из первого источника, будут содержать   значение NULL в полях, формируемых на основании записей из этого источника.  Правое внешнее соединение полностью аналогично левому, за   исключением того, что таблицы поменялись местами. Например, представленный ниже   запрос эквивалентен предыдущему, но вместо левого, используется правое внешнее   соединение:</p>
<div>
<pre><span style="color: #008000;">ВЫБРАТЬ Спр.Наименование, Peг.Курс</span></pre>
</div>
<div>
<pre><span style="color: #008000;">ИЗ РегистрСведений.КурсыВалют.СрезПоследних() КАК Peг</span></pre>
</div>
<div>
<pre><span style="color: #008000;">ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ Справочник.Валюты КАК Спр</span></pre>
</div>
<div>
<pre><span style="color: #008000;">ПО Спр.Ссылка = Peг.Валюта</span></pre>
</div>
<h3>Полное внешнее соединение</h3>
<p align="left">Конструкция ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в   результат запроса надо включить комбинации записей <em>из обеих исходных таблиц, </em>которые соответствуют указанному условию. Кроме того, в результат запроса   надо включить также еще и те записи из обоих источников, для которых не найдено   соответствий.</p>
<p align="left">Таким образом, в результат запроса будут включены <em>все записи   из обоих источников; </em>они будут соединены друг с другом при выполнении   указанного условия. Строки результата запроса, для которых не найдено   соответствующих условию записей из какого-либо источника, будут содержать NULL   в полях, формируемых на основании записей из этого источника.</p>
<hr />
<p align="left">*<a name="Примечание. Виртуальные поля.">Примечание. Виртуальные   поля.</a></p>
<p>Некоторые поля в таблицах-источниках виртуальные, например, поле   «Представление» для таблицы справочника и документа, или поле «МоментВремени»   для документа. Это значит, что они не хранятся в базе данных, а генерируются   «на лету». Виртуальные поля не включаются в результат запроса, когда вместо   списка полей указана звездочка («*»), их нужно указывать явно, например   «ВЫБРАТЬ *, Представление ИЗ Справочник.Товары». Такое решение было принято для   ускорения выполнения классического запроса «ВЫБРАТЬ * ИЗ&#8230;». В этом случае не   требуется генерировать представления для элементов справочников и документов,   следовательно запросы будут выполняться быстрее.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-book.ru/predlozhenie-iz-from/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
