Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51799
Скачиваний: 8725
Рис. 2.18. Окно конструктора запроса
Затем перейдем на закладку Итоги и укажем, какие итоги нужно рассчитать для
результата объединения запросов. В окно Группировочное поле перенесем поле выборки
запроса Клиент, а окно Итоговое поле можно оставить пустым, так как список итоговых
полей будет автоматически формироваться из агрегатных полей списка выборки (с
псевдонимами Заказано и Продано). А также установим флажок Общие итоги (рис.
2.19).
Рис. 2.19. Окно конструктора запроса
Тем самым мы указали, что для каждого клиента из документа ЗаказТовара и для
каждого покупателя из документа РасходнаяНакладная, а также для всего результата
запроса в целом нужно подсчитать суммарное количество полей Заказано и Продано.
Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.20).
Рис. 2.20. Текст запроса, созданный конструктором
Итак, в результате наших действий на закладках Объединения/Псевдонимы,
Группировка и Итоги конструктор запроса добавил к тексту запроса предложения
ОБЪЕДИНИТЬ ВСЕ, СГРУППИРОВАТЬ ПО и ИТОГИ ПО. В итоге мы получили текст
запроса, аналогичный тому, который мы писали вручную (см. листинг 2.7).
Создание пакетного запроса, использующего временную таблицу
В этом разделе мы покажем, как с помощью конструктора запроса создать временную
таблицу и затем использовать ее в пакетном запросе. Этот пример мы рассматривали в
разделе «
Временные таблицы и пакетные запросы
» (листинг 2.8).
Листинг 2.8. Вывод всех товаров в порядке иерархии справочника «Товары» с данными об их поступлении за ноябрь
Для того чтобы получить такой запрос с помощью конструктора запроса, нужно сначала
сформировать первый запрос для заполнения данными временной таблицы. Затем на
закладке Пакет запросов добавить в пакет запросов запрос, который будет
использовать данные этой таблицы, после этого на закладке Таблицы и поля создать
описание этой временной таблицы и использовать ее как источник второго запроса.
Итак, создадим запрос для получения временной таблицы, содержащей информацию о
поступлении товаров за ноябрь. На закладке Таблицы и поля перенесем табличную часть
Состав документа ПриходнаяНакладная в список источников запроса и выберем из этой
таблицы поле Товар. Для того чтобы выбрать поля основной таблицы документа Дата и
Поставщик, раскроем поле Ссылка табличной части Состав, выберем эти поля и
получим обращение через точку от ссылки – ПриходнаяНакладнаяСостав.Ссылка.Дата,
ПриходнаяНакладнаяСостав.Поставщик (рис. 2.21).
Рис. 2.21. Окно конструктора запроса
На закладке Условия зададим произвольное условие отбора записей из приходных
накладных так, чтобы во временную таблицу попадали только данные о поступлении
товаров за ноябрь (рис. 2.22).
Рис. 2.22. Окно конструктора запроса
На закладке Дополнительно включим опцию Создание временной таблицы и укажем,
что результат запроса нужно поместить во временную таблицу с именем
ПоступлениеТоваров (рис. 2.23).
Рис. 2.23. Окно конструктора запроса
Обратите внимание, что при создании временной таблицы в конструкторе запроса
исчезают закладки Порядок и Итоги и появляется закладка Индекс, на которой можно
задать сортировку записей временной таблицы.
Кроме того, на закладке Дополнительно можно задать дополнительные критерии отбора
записей в результат запроса (флажки Первые, Без повторяющихся, Разрешенные) и
задать необходимость блокировки таблиц – источников запроса.
Нажмем кнопку Запрос и посмотрим, как изменился текст запроса (рис. 2.24).
Рис. 2.24. Текст запроса, созданный конструктором
Мы видим, что в тексте запроса появилась конструкция ПОМЕСТИТЬ, с помощью
которой данные помещаются во временную таблицу. Итак, мы сформировали первый
запрос из пакетного запроса (см. листинг 2.8).
Теперь перейдем на закладку Пакет запросов. Мы видим, что в пакете запросов уже
присутствует один запрос ПоступлениеТоваров для получения данных временной
таблицы. Нажмем кнопку Добавить и добавим в пакет запросов еще один запрос. После
этого на закладке Таблицы и поля, а также на закладках Группировка, Условия,
Дополнительно, Объединения/Псевдонимы станут доступны отдельные вкладки для
каждого запроса из пакета (рис. 2.25).
Рис. 2.25. Окно конструктора запроса
На закладке Таблицы и поля нажмем кнопку Создать описание временной таблицы и
зададим имя временной таблицы и поля, указанные в первом запросе (рис. 2.26).