- •8.1. Назначение. Основные объекты , предназначенные для организации запросов
- •Выполнение запроса
- •8.2. Язык запросов
- •Поля из вложенных таблиц
- •Псевдонимы источников как/as
- •Запросы к табличным частям
- •Вложенные запросы в списке источников
- •Конструкция соединение...По/join...On
- •Левое внешнее соединение
- •Правое внешнее соединение
- •Полное внешнее соединение
- •Логические операторы и, или, не
- •Параметры в языке запросов
- •Проверка вхождения значения в список (в/in)
- •Проверка ссылочного значения (ссылка/ref)
- •Проверка пустых значений (есть null / is null)
- •Сравнение строк (подобно / like)
- •Упорядочивание по иерархии
- •Упорядочивание во вложенных таблицах
- •Автоупорядочивание /autoorder
- •Агрегатные функции в запросе
- •Общие итоги
- •Итоги по группировкам
- •Итоги по иерархии
- •Несколько итогов в запросе
- •Встроенные функции языка запросов
- •Операции выбора в языке запросов (выбор / case)
- •Приведение типов в языке запросов
- •Литералы и параметры в языке запросов
- •8.4. Обработка результата запроса
- •8.5. Выборка из результата запроса
- •Линейный обход
- •Иерархический обход
- •Обход по группировкам
- •Другие полезные методы
- •8.6. Выгрузка результата запроса
- •8.7. Запросы к регистрам сведений
- •Основная таблица регистра сведений
- •8.8. Запросы к регистрам накопления
- •Основная таблица регистра накопления
- •Сводные таблицы
Поля из вложенных таблиц
Поле в списке выборки может ссылаться на вложенную таблицу источника данных, например, на табличную часть справочника. В этом случае поле результата запроса будет иметь тип РезультатЗапроса, то есть содержать вложенный результат запроса, сформированный на основе вложенной таблицы-источника.
По умолчанию во вложенный результат запроса включаются все поля вложенной таблицы-источника данных. Имеется возможность явно определить группу полей, которые должны содержаться во вложенном результате запроса.
Список полей, выбираемых из вложенной таблицы, описывается по следующему образцу:
//требуются все поля из вложенной таблицы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.*
//требуется только одно поле из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.Сумма
//требуется несколько полей из табличной части
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество,Сумма)
//для полей вложенной таблицы можно указать псевдонимы
ВЫБРАТЬ Документ.РасходнаяНакладная.Состав.(Количество КАК Кол, Сумма КАК Сум)
Предложение ИЗ / FROM
Предложение ИЗ позволяет указать таблицы-источники для запроса и задать порядок их соединения, если таблиц несколько. Вот простые примеры запросов с предложением ИЗ:
ВЫБРАТЬ * ИЗ Справочник.Товары
ВЫБРАТЬ * ИЗ Документ.РасходнаяНакладная
Напомним, что конструкция ИЗ необязательна, если в списке выбираемых полей указаны полные имена таблиц, например,
ВЫБРАТЬ Справочник.Товары.*
ВЫБРАТЬ Документ.РасходнаяНакладная.Дата,
Документ.РасходнаяНакладная.Номер
Таблицы-источники данных
Каждая таблица-источник предоставляет свой набор полей. С полным их перечнем вы можете ознакомиться в документации или Синтакс-помощнике.
В 1С:Предприятии 8 существуют следующие таблицы-источники данных для запросов:
• Таблица констант,
• Таблица справочника,
• Таблица документов,
• Таблица журнала документов,
• Таблицы последовательностей,
• Таблица плана видов характеристик,
• Таблица критерия отбора,
• Таблица плана видов расчета,
• Таблицы регистров расчета,
• Таблицы регистров сведений,
• Таблицы регистров накопления,
• Таблицы регистров бухгалтерии.
Таблица справочника. Таблица справочника позволяет организовать запрос к любому справочнику и предоставляет следующие поля:
Ссылка. Ссылка на элемент справочника. Через ссылку можно будет обратиться к любому полю справочника, даже если оно не включено в запрос.
ПометкаУдаления. Признак пометки на удаление элемента справочника. Если равно значению Истина, то элемент помечен на удаление.
Родитель. Указывает на элемента-родителя (или группу), в которой содержится данный элемент. Это поле будет включено в результат запроса только для иерархических справочников.
ЭтоГруппа. Признак того, что элемент справочника является группой. Это поле включается в результат запроса только для иерархических справочников.
Владелец. Ссылка на элемент справочника-владельца, которому принадлежит данный элемент, т.е. которому он подчинен. Это поле будет включено в результат запроса только для подчиненных справочников.
Представление. Виртуальное поле. Содержит представление элемента справочника, например, его наименование или код.
Код. Код элемента. Встроенное поле для всех справочников.
Наименование. Наименование элемента. Встроенное поле для всех справочников.
<имя реквизита>. Далее идут реквизиты справочника, как они определены в Конфигураторе, например, Цена, ЕдИзм и т.д.
<имя табличной части>. Если у справочника есть табличные части, то к ним можно обращаться по имени. При этом в результате запроса появляется вложенная таблица.
Приведем примеры простых запросов к справочнику:
ВЫБРАТЬ Код, Наименование, Цена, Родитель
ИЗ Справочник.Номенклатура
ВЫБРАТЬ *,Представление
ИЗ Справочник.Номенклатура
ВЫБРАТЬ Наименование, ЭтоГруппа , ПометкаУдаления
ИЗ Справочник.Номенклатура
ГДЕ ЭтоГруппа = ИСТИНА И ПометкаУдаления = ЛОЖЬ
Примечание. Виртуальные поля. Некоторые поля в таблицах-источниках виртуальные, например, поле «Представление» для таблицы справочника и документа, или поле «МоментВремени» для документа. Это значит, что они не хранятся в базе данных, а генерируются «на лету». Виртуальные поля не включаются в результат запроса, когда вместо списка полей указана звездочка («*»), их нужно указывать явно, например
ВЫБРАТЬ *, Представление ИЗ Справочник.Товары
Такое решение было принято для ускорения выполнения классического запроса «ВЫБРАТЬ * ИЗ...». В этом случае не требуется генерировать представления для элементов справочников и документов, следовательно, запросы будут выполняться быстрее.
Таблица документа
Таблица документа предназначена для выборки данных из документов. Она предоставляет следующие поля:
Ссылка. Через ссылку на документ можно будет обратиться к любому полю документа, даже если оно не включено в запрос.
ПометкаУдаления. Признак пометки на удаление документа.
Номер. Номер документа. Встроенное поле для всех документов.
Дата. Дата и время документа. Встроенное поле для всех документов.
Проведен. Содержит признак проведенности документа. Данное поле всегда включается в результат, даже если для документа запрещено проведение.
<имя реквизита>. Далее идут реквизиты шапки документа, как они определены в Конфигураторе, например, Контрагент, Склад и т.д.
<имя табличной части>. Если у документа есть табличные части, то к ним можно обращаться по имени. При этом в результате запроса появляется вложенная таблица.
МоментВремени. Виртуальное поле. Содержит момент времени документа, который включает дату и ссылку на документ. Напомним, что тип «дата» включает также и время с точностью до секунды.
Представление. Виртуальное поле. Содержит строку-представление документа, например, «Расходная накладная 0035 от 25.07.2003 12:05:01».
Итак, мы рассмотрели две основные таблицы-источники данных для справочников и документов. Состав прочих таблиц - самостоятельно.
