В начало

Вложенный запрос

 

            Есть справочники «Контрагенты» и документы «ПриходДенег» и «РасходДенег». Необходимо организовать запрос по движению денежных средств для всех контрагентов с использованием вложенного запроса.

            Запускаем «1С: Предприятие 8.3» в режиме приложения, находим консоль запросов, вызываем конструктор запросов. В области «Таблицы» конструктора запроса создаем вложенный запрос, нажимая на пиктограмму. Появляется окно вложенного запроса.

            Во вложенном запросе выбираем документ «ПриходДенег», а затем поля: Контрагент и Сумма. Переходим на закладку «Объединения/Псевдонимы» и создаем еще один запрос. В котором выбираем документ «РасходДенег», а в нем точно такие же поля. И снова переходим на закладку «Объединения/Псевдонимы». На этой закладке надо разделить суммы на приход и расход, чтобы не было как с мухами и котлетами.

Рис. 1. Закладка «Объединения/Псевдонимы» вложенного запроса

 

            Создав, таким образом, вложенный запрос возвращаемся в конструктор запросов, где выбираем справочник «Контрагенты». Далее выбираем поля, из вложенного запроса: СуммаПриход, СуммаРасход, а из справочника «Контрагенты» выбираем: Код и Наименование. После чего переходим на закладку связи. Дале переходим на закладку «Группировки».

Рис. 2. Закладка «Связи» конструктора запросов

 

            На закладке «Группировки» в групповое поле помещаем поля «Код» и «Наименование». А  в суммируемое поле: СуммаПриход, СуммаРасход. После чего возвращаемся в консоль запросов. Получился не хилый такой запрос.

ВЫБРАТЬ

      Контрагентыод,

      Контрагентыаименование,

      СУММА(ВложенныйЗапросуммаПриход) КАК СуммаПриход,

      СУММА(ВложенныйЗапросуммаРасход) КАК СуммаРасход

ИЗ

      Справочниконтрагенты КАК Контрагенты

            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

                  ПриходДенегонтрагент КАК Контрагент,

                  ПриходДенегумма КАК СуммаПриход,

                  NULL КАК СуммаРасход

            ИЗ

                  ДокументриходДенег КАК ПриходДенег

           

            ОБЪЕДИНИТЬ ВСЕ

           

            ВЫБРАТЬ

                  РасходДенегонтрагент,

                  NULL,

                  РасходДенегумма

            ИЗ

                  ДокументасходДенег КАК РасходДенег) КАК ВложенныйЗапрос

            ПО Контрагентысылка = ВложенныйЗапрос.Контрагент

 

СГРУППИРОВАТЬ ПО

      Контрагентыод,

      Контрагентыаименование

 

            Результат выполнения данного запроса продемонстрирован ниже.

Рис. 3. Результат вложенного запроса

Рис. 3. Результат вложенного запроса