Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.03.2019

Просмотров: 50446

Скачиваний: 8600

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Рис. 2.18. Окно конструктора запроса

Затем перейдем на закладку Итоги и укажем, какие итоги нужно рассчитать для
результата объединения запросов. В окно Группировочное поле перенесем поле выборки
запроса Клиент, а окно Итоговое поле можно оставить пустым, так как список итоговых
полей будет автоматически формироваться из агрегатных полей списка выборки (с
псевдонимами Заказано и Продано). А также установим флажок Общие итоги (рис.
2.19).

Рис. 2.19. Окно конструктора запроса

Тем самым мы указали, что для каждого клиента из документа ЗаказТовара и для
каждого покупателя из документа РасходнаяНакладная, а также для всего результата
запроса в целом нужно подсчитать суммарное количество полей Заказано и Продано.

Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.20).


background image

Рис. 2.20. Текст запроса, созданный конструктором

Итак, в результате наших действий на закладках Объединения/Псевдонимы,
Группировка и Итоги конструктор запроса добавил к тексту запроса предложения
ОБЪЕДИНИТЬ ВСЕСГРУППИРОВАТЬ ПО и ИТОГИ ПО. В итоге мы получили текст
запроса, аналогичный тому, который мы писали вручную (см. листинг 2.7).

Создание пакетного запроса, использующего временную таблицу

В этом разделе мы покажем, как с помощью конструктора запроса создать временную
таблицу и затем использовать ее в пакетном запросе. Этот пример мы рассматривали в
разделе «

Временные таблицы и пакетные запросы

» (листинг 2.8).

Листинг 2.8. Вывод всех товаров в порядке иерархии справочника «Товары» с данными об их поступлении за ноябрь


background image

Для того чтобы получить такой запрос с помощью конструктора запроса, нужно сначала
сформировать первый запрос для заполнения данными временной таблицы. Затем на
закладке Пакет запросов добавить в пакет запросов запрос, который будет
использовать данные этой таблицы, после этого на закладке Таблицы и поля создать
описание этой временной таблицы и использовать ее как источник второго запроса.

Итак, создадим запрос для получения временной таблицы, содержащей информацию о
поступлении товаров за ноябрь. На закладке Таблицы и поля перенесем табличную часть
Состав документа ПриходнаяНакладная в список источников запроса и выберем из этой
таблицы поле Товар. Для того чтобы выбрать поля основной таблицы документа Дата и
Поставщик, раскроем поле Ссылка табличной части Состав, выберем эти поля и
получим обращение через точку от ссылки – ПриходнаяНакладнаяСостав.Ссылка.Дата,
ПриходнаяНакладнаяСостав.Поставщик (рис. 2.21).

Рис. 2.21. Окно конструктора запроса

На закладке Условия зададим произвольное условие отбора записей из приходных
накладных так, чтобы во временную таблицу попадали только данные о поступлении
товаров за ноябрь (рис. 2.22).


background image

Рис. 2.22. Окно конструктора запроса

На закладке Дополнительно включим опцию Создание временной таблицы и укажем,
что результат запроса нужно поместить во временную таблицу с именем
ПоступлениеТоваров (рис. 2.23).

Рис. 2.23. Окно конструктора запроса

Обратите внимание, что при создании временной таблицы в конструкторе запроса
исчезают закладки Порядок и Итоги и появляется закладка Индекс, на которой можно
задать сортировку записей временной таблицы.

Кроме того, на закладке Дополнительно можно задать дополнительные критерии отбора
записей в результат запроса (флажки ПервыеБез повторяющихсяРазрешенные) и
задать необходимость блокировки таблиц – источников запроса.

Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.24).


background image

Рис. 2.24. Текст запроса, созданный конструктором

Мы видим, что в тексте запроса появилась конструкция ПОМЕСТИТЬ, с помощью
которой данные помещаются во временную таблицу. Итак, мы сформировали первый
запрос из пакетного запроса (см. листинг 2.8).

Теперь перейдем на закладку Пакет запросов. Мы видим, что в пакете запросов уже
присутствует один запрос ПоступлениеТоваров для получения данных временной
таблицы. Нажмем кнопку Добавить и добавим в пакет запросов еще один запрос. После
этого на закладке Таблицы и поля, а также на закладках ГруппировкаУсловия,
ДополнительноОбъединения/Псевдонимы станут доступны отдельные вкладки для
каждого запроса из пакета (рис. 2.25).

Рис. 2.25. Окно конструктора запроса

На закладке Таблицы и поля нажмем кнопку Создать описание временной таблицы и
зададим имя временной таблицы и поля, указанные в первом запросе (рис. 2.26).