Настройка оборудования и программного обеспечения

Конструктор запросов схемы компоновки данных. Конструкторы запросов Конструктор запросов 1с 8.2

Платформа предлагает разработчику собственно Конструктор запроса и Конструктор запроса с обработкой результата. В первом случае, конструктор позволяет чисто визуальными средствами определить выборку данных из таблиц системы:

Во втором случае с результатом выборки могут быть сделаны определенные манипуляции:

Конструктор запросов работает как в режиме Предприятие (как обработка Консоль запросов), так и в Конфигураторе. Использование в режиме Предприятие позволяет квалифицированным пользователям самостоятельно получать выборки данных, для которых нет типовых отчетов.

Из Конфигуратора, конструктор может быть вызван правой кнопкой прямо из текста модуля:

либо стоя в модуле, из главного меню Текст:

Вопрос 04.41 экзамена 1С:Профессионал по платформе. Использование конструктора запросов позволяет:
  1. Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса и получение результата выполнения запроса
  2. Верны ответы 1 и 3
  3. Все вышеперечисленное
Правильный ответ четвертый - программный код обычный конструктор не создает, его создает Конструктор запроса с обработкой результата.

Вопрос 04.42 экзамена 1С:Профессионал по платформе. Использование конструктора запроса с обработкой результата позволяет:

  1. Сформировать текст нового запроса
  2. Сформировать программный код, содержащий создание объекта встроенного языка Запрос, текста запроса, получение и обработку результата выполнения запроса
  3. Отредактировать текст имеющегося запроса
  4. Все вышеперечисленное
  5. Верны ответы 1 и 3
Правильный ответ четвертый, см. выше.
Вопрос 04.43 экзамена 1С:Профессионал по платформе. При сохранении текста запроса, открытого повторно с помощью конструктора запроса, без внесения в этот текст изменений:
  1. Весь первоначальный текст остается без изменений
  2. Из первоначального текста будут удалены только комментарии
  3. В первоначальном тексте комментарии останутся, а будут удалены только конструкции языка запросов построителя отчетов
  4. Из первоначального текста будут удалены и комментарии, и конструкции языка запросов построителя отчетов
Правильный ответ второй. Добавим в текст запроса комментарий вручную:

Откроем данный запрос через Конструктор и закроем конструктор по Ок. Комментарий затрется:

Вопрос 04.44 экзамена 1С:Профессионал по платформе. Конструктор запросов может быть вызван:
  1. С помощью пункта главного меню "Текст - Конструктор запроса…"
  2. С помощью кнопки "Конструкторы - Конструктор запросов" на закладке "Макеты" из окна редактирования объекта
  3. С помощью пункта всплывающего контекстного меню "Конструктор запроса…", появляющегося при нажатии в тексте модуля правой клавиши мыши
  4. Верно все вышеперечисленное
  5. Верны ответы 1 и 3
Правильный ответ пятый, на закладке Макеты конструктора запроса нет, только :
Вопрос 04.45 экзамена 1С:Профессионал по платформе. Кем может использоваться конструктор запросов?
  1. Разработчиками, так как необходимо знание языка запросов
  2. Квалифицированными пользователями без использования конфигуратора
  3. Верно все вышеперечисленное
  4. Нет верного ответа
Правильный ответ третий.

Вопрос 04.46 экзамена 1С:Профессионал по платформе. На закладке "Таблицы и поля" конструктора запросов задают:

  1. Источники данных запросов, в качестве которых могут выступать реальные и виртуальные таблицы
  2. Набор полей из таблиц - источников данных запроса
  3. Поля в виде произвольного выражения
  4. Верны ответы 1 и 2
  5. Верно все вышеперечисленное
Правильный ответ пятый - можно задавать таблицы реальные, виртуальные (типа Среза последних), и произвольно вычисляемые поля:
Вопрос 04.47 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вложенного запроса необходимо:
  1. Открыть закладку "Таблицы и поля". В командной панели над деревом "База данных" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  2. Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  3. Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  4. В конструкторе запросов создать вложенный запрос нельзя
Правильный ответ второй. Добавляем запрос:

Результат:

Вопрос 04.48 экзамена 1С:Профессионал по платформе. Для создания в конструкторе запросов вычисляемого поля необходимо:
  1. Открыть закладку "Таблицы и поля". В командной панели над деревом "Таблицы" нажать кнопку "Изменить текущий элемент". В открывшемся окне добавить новое поле
  2. Открыть закладку "Таблицы и поля". В командной панели над деревом "Поля" нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  3. Открыть закладку "Объединения/Псевдонимы". В командной панели над списком полей нажать кнопку "Добавить" или выбрать одноименный пункт контекстного меню
  4. Создать вычисляемое поле, можно только изменив текст запроса "вручную"
Правильный ответ второй:
Вопрос 04.49 экзамена 1С:Профессионал по платформе. Для создания в запросе строк, сгруппированных с помощью агрегатных функций, на закладке "Группировка" конструктора запросов обязательно должны быть заполнены:
  1. Только список групповых полей. Указание суммируемых полей не обязательно
  2. Только список суммируемых полей, при этом остальные поля автоматически попадут в секцию СГРУППИРОВАТЬ ПО в тексте запроса
  3. Обязательным является указание как групповых, так и суммируемых полей
Правильный ответ второй. Укажем в конструкторе одно суммироемое поле:

По остальным полям будет произведена группировка в тексте запроса:

Вопрос 04.50 экзамена 1С:Профессионал по платформе. В конструкторе запросов условия на значения агрегатных функций можно накладывать:
  1. На закладке "Группировка", в списке суммируемых полей при выборе агрегатной функции
  2. На закладке "Условия"
  3. На закладке "Итоги", в списке итоговых полей при выборе агрегатной функции
  4. В конструкторе запросов задать условия на значения агрегатных функций нельзя
Правильный ответ второй - на закладке Условия можно прописать функцию языка запросов Имеющие, которая и сделает отбор по агрегатам:

Программирование 1С состоит не только из написания программы. 1С это слиток действий пользователя и данных с которыми он работает.

Данные хранятся в базе данных. Запросы 1С – это способ доставать данные из базы данных для того, чтобы показать пользователю в форме или чтобы обработать их.

Основополагающая часть отчета – это запрос 1С. В случае отчета СКД – это большая часть отчета.

Сядьте. Вздохните. Успокойтесь. Сейчас я скажу Вам новость.

Чтобы программировать в 1С недостаточно знать язык программирования 1С. Нужно еще знать язык запросов 1С.

Язык запросов 1С – это совершенно отдельный язык, который позволяет указать какие данные нам нужно достать из базы данных.

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

Как используются Запросы 1С

Когда пользователь запускает 1С в режиме Предприятие – в запущенном клиенте нет ни грамма данных. Поэтому когда нужно открыть справочник – 1С запрашивает данные из базы данных, то есть делает запрос 1С.

Запросы 1С бывают:

  • Автоматические запросы 1С
    Формируются автоматически системой. Вы создали форму списка документов. Добавили колонку. Это значит, что при открытии этой формы в режиме Предприятие будет запрос и будут запрошены данные по этой колонке.
  • Полуавтоматические запросы 1С
    Есть множество методов (функций) в языке 1С, при обращении к которым происходит запрос к базе данных. Например.ПолучитьОбъект()
  • Ручные запросы 1С (написанные программистом специально как запрос)
    Вы можете написать запрос 1С самостоятельно в коде и выполнить его.

Создание и выполнение запросов 1С

Запрос 1С – это собственно текст запроса на языке запросов 1С.
Текст можно написать ручками. То есть взять и написать (если знаешь этот язык).

Так как 1С продвигает концепцию визуального программирования, где многое или почти все можно сделать без написания кода ручками – есть специальный объект Конструктор запроса, который позволяет без знания языка запросов нарисовать текст запроса. Однако чудес не бывает – для этого нужно знать как работать с конструктором.

После того как готов текст запроса 1С – его нужно выполнить. Для этого есть объект в коде 1С Запрос(). Вот пример:

Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Услуга";
Выборка = Запрос.Выполнить().Выбрать();

Сообщить(Выборка.Ссылка);
КонецЦикла;

Как Вы видите в примере – после выполнения запроса 1С к нам приходит результат и мы должны его обработать. Результат – это одна или несколько строчек таблицы (в специальном виде).

Результат можно выгрузить в обычную таблицу:
Выборка = Запрос.Выполнить().Выгрузить(); //Результат – таблица значений

Или просто обойти по строчкам.
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
//Что-то делаем с результатами запроса
КонецЦикла;

Работа с запросами 1С

Основные принципы запросов 1С

Основные принципы построения запроса 1С –
ВЫБРАТЬ СписокПолей ИЗ НазваниеТаблицы ГДЕ Условия

Пример построения такого запроса 1С:

ВЫБРАТЬ
//список полей, которые надо выбрать
Ссылка,
Наименование,
Код
ИЗ
//наименование таблицы, откуда выбираем данные
//список таблиц – это список объектов в окне конфигуратора
Справочник.Номенклатура
ГДЕ
//указываем отбор
ВидТовара = &Услуга //отбор по внешнему значению
Или Услуга // «Услуга» реквизит типа Булево, отбор по значению Истина
УПОРЯДОЧИТЬ ПО
//Сортировка
Наименование

Список таблиц 1С

Названия таблиц Вы смотрите в окне конфигуратора. Только необходимо вместо «Справочники» писать «Справочник», например «Справочник.Номенклатура» или «Документ.РеализацияТоваровУслуг» или «РегистрНакопления.Продажи».

Для регистров есть дополнительные таблицы (виртуальные), которые позволяют получить итоговые цифры.

РегистрСведений.ИмяРегистра.СрезПоследних(&Дата) – запрос 1С из регистра сведений, если он является периодическим, на определенную дату

РегистрНакопления.ИмяРегистра.Остатки(&Дата) – запрос 1С из регистра остатков на определенную дату

РегистрНакопления.ИмяРегистра.Обороты(&ДатаНачала, &ДатаОкончания) – запрос 1С из регистра оборотов за период с даты начала по дату окончания.

Дополнительные принципы

Когда мы запрашиваем список каких то данных – работают основные принципы. Но мы можем запросить также цифры и запрос может нам их посчитать (сложить например).

ВЫБРАТЬ
//Количество(ИмяПоля) – считает количество
//Поле КАК ДругоеИмя – переименовывает поле
Количество(Ссылка) КАК КоличествоПроведенныхДокументов
ИЗ

ГДЕ
Проведен

Этот запрос 1С вернет нам общее количество документов. Однако в каждом документе есть поле Организация. Допустим мы хотим посчитать с помощью запроса 1С количество документов по каждой организации.

ВЫБРАТЬ
//просто поле документа
Организация,
//считаем количество
Количество(Ссылка) КАК КоличествоПоОрганизациям
ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Проведен
СГРУППИРОВАТЬ ПО

Организация

Этот запрос 1С вернет нам количество документов по каждой организации (также говорят «в разрезе организаций»).

Посчитаем дополнительно с помощью запроса 1С сумму этих документов:

ВЫБРАТЬ
//просто поле документа
Организация,
//считаем количество

//считаем сумму

ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Проведен
СГРУППИРОВАТЬ ПО
//необходимо использовать, если в списке полей есть функция подсчета() и одновременно одно или несколько полей – тогда нужно группировать по этим полям
Организация

Этот запрос 1С вернет нам также сумму документов.

ВЫБРАТЬ
//просто поле документа
Организация,
//считаем количество
Количество(Ссылка) КАК КоличествоПоОрганизациям,
//считаем сумму
Сумма(СуммаДокумента) КАК Сумма
ИЗ
Документ.РеализацияТоваровУслуг
ГДЕ
Проведен
СГРУППИРОВАТЬ ПО
//необходимо использовать, если в списке полей есть функция подсчета() и одновременно одно или несколько полей – тогда нужно группировать по этим полям
Организация
ИТОГИ ПО Общие

Язык запросов 1С обширен и сложен и мы не будем рассматривать в одном уроке все его возможности – читайте наши следующие уроки.

Кратко о дополнительных возможностях языка запросов 1С:

  • Соединение данных из нескольких таблиц
  • Вложенные запросы
  • Пакетный запрос
  • Создание собственных виртуальных таблиц
  • Запрос из таблицы значений
  • Использование встроенных функций получения значения и манипулирования значениями.

Конструктор запросов 1С

Чтобы не писать текст запроса руками – существует конструктор запросов 1С. Просто нажмите правой кнопкой мыши в любом месте модуля и выберите Конструктор запроса 1С.

Выберите в конструкторе запросов 1С нужную таблицу слева и перетащите правее.

Выберите в конструкторе запросов 1С из таблицы нужные поля и перетащите правее. Если Вы хотели бы не просто выбрать поле, а применить к нему какую либо функцию суммирования – после перетаскивания щелкните по полю два раза мышкой. На закладке Группировка после этого нужно будет выбрать (перетащить) для группировки нужные поля.

На закладке Условия в конструкторе запросов 1С Вы можете выбрать нужные отборы таким же способом (перетащив поля, по которым Вы будете делать отбор). Не забудьте выбрать верное условие.

На закладке Порядок – указывается сортировка. На закладке Итоги – суммирование итогов.

С помощью конструктора запросов 1С Вы можете изучить любой существующий запрос. Для этого нажмите правой кнопкой на текст существующего запроса и выберите также конструктор запросов 1С – и запрос будет открыт в конструкторе запросов 1С.

Конструктор запроса имеет достаточно простой, интуитивно понятный интерфейс. Тем не менее рассмотрим применение конструктора запроса подробнее.

Запуск конструктора текста запроса производится контекстным меню (правой кнопкой мыши) в нужном месте программного кода.

Рассмотрим каждую вкладку конструктора подробнее. Исключение — вкладка Построитель, это тема для отдельного разговора.

Вкладка Таблицы и поля

На этой вкладке указывается источник данных и поля, которые необходимо выводить в отчет. По сути, тут описываются конструкции ВЫБРАТЬ … ИЗ.

В качестве источника может служить физическая таблица базы данных, виртуальная таблица регистров, временные таблицы, и т.д.

В контекстном меню виртуальных таблиц можно задать параметры этих таблиц:

Вкладка Связи

Вкладка служит для описания соединений нескольких таблиц, создает конструкции со словом СОЕДИНЕНИЕ.

Вкладка Группировка

На данной вкладке система позволяет группировать и суммировать нужные поля результата таблицы. Описывается использование конструкций СГРУППИРОВАТЬ ПО, СУММА, МИНИМУМ, СРЕДНЕЕ, МАКСИМУМ, КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗЛИЧНЫХ.

Получите 267 видеоуроков по 1С бесплатно:

Вкладка Условия

Отвечает за всё, что идёт в тексте запроса после конструкции ГДЕ, т.е. за все условия, накладываемые на получаемые данные.

Вкладка Дополнительно

Вкладка Дополнительно изобилует всевозможными параметрами, которые являются очень важными. Рассмотрим каждое из свойств.

Группировка Выборка записей :

  • Первые N — параметр, возвращающий в запрос только N записей (оператор ПЕРВЫЕ)
  • Без повторяющихся — обеспечивает уникальность полученных записей (оператор РАЗЛИЧНЫЕ )
  • Разрешенные — позволяет выбирать только те записи, которые позволяет выбрать система с учетом (конструкция РАЗРЕШЕННЫЕ )

Группировка Тип запроса определяет, каким будет тип запроса: выборка данных, создание временных таблицы или же уничтожение временной таблицы.

Ниже существует флаг Блокировать полученные данные для последующего изменения . Он позволяет включить возможность установки блокировки данных, которая обеспечивает сохранность данных от момента их чтения до изменения (актуально только для Автоматического режима блокировок, конструкция ).

Вкладка Объединения/Псевдонимы

На этой вкладке конструктора запросов устанавливается возможность объединения разных таблиц и псевдонимы (конструкция КАК). В левой части указываются таблицы, если установить флаги напротив таблицы, будут использоваться конструкции ОБЪЕДИНИТЬ, иначе — ОБЪЕДИНИТЬ ВСЕ (отличия двух способов ). В правой части указываются соответствия полей в разных таблицах, если соответствие не указано, запрос будет возвращать NULL.

Вкладка Порядок

Здесь указывается порядок сортировки значений (УПОРЯДОЧИТЬ ПО) — по убыванию (УБЫВ) или возрастанию(ВОЗР).

Также есть интересный флаг — Автоупорядочивание (в запросе — АВТОУПОРЯДОЧИВАНИЕ). По умолчанию, система 1С 8.3 выводит данные в «хаотичном» порядке. Если установить этот флаг, система будет сортировать данные по внутренним данным.

Вкладка Пакет запросов

На вкладке конструктора запросов можно , а также использовать её в роли навигации. В тексте запроса пакеты разделяются символом «;»(точка с запятой).

Кнопка «Запрос» в конструкторе запросов

В левом нижнем углу конструктора запроса есть кнопка Запрос, с помощью которого можно в любой момент просмотреть текст запроса:

В данном окне можно внести коррективы в запрос и выполнить его.

Консолью запросов очень удобно пользоваться, когда необходимо отладить какой-либо сложный , либо оперативно получить выборку определенных данных.

В интернете вы можете найти много различных консолей. Для обычных и управляемых форм обычно это совершенно разные консоли. По данной вы можете скачать универсальную консоль запросов 1С 8.3 и 8.2, которая будет работать в обоих случаях. Только учтите, что консоль на управляемом интерфейсе у вас откроется только в толстом клиенте.

Работа с консолью запросов

В программе 1С консоль запросов открывается точно так же, как и любая внешняя обработка: меню «Файл» — «Открыть», либо при помощи комбинации горячих клавиш «Ctrl + O». При частом использовании ее можно добавить во внешние обработки самой информационной базы.

В левой части консоли запроса представлен сам список ваших запросов. Это позволяет вам хранить не один запрос, а сразу несколько. Дерево запросов имеет иерархическую структуру, что очень удобно для их группировки.

Нажав на кнопку «Добавить» вы можете добавить новый запрос, самостоятельно задав ему имя. Так же встроенный функционал позволяет создавать запросы с копированием, перемещать вверх или вниз по списку и многое другое.

Сам текст запроса отображается в правой части формы обработки. Его можно написать вручную, либо при помощи конструктора запросов. Конструктор запросов работает только в толстом клиенте.

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

Правее расположены очень полезные кнопки, которые помогут, если данный запрос вы используете при разработке решений на 1С.

Кнопка позволяет преобразовать написанный вами запрос в текст. В нашем случае это будет выглядеть так, как показано на рисунке ниже.

Сами запросы вы можете сохранять в файл либо подгружать из него. Это очень удобно для возможности дальнейшего использования.

Перед непосредственным выполнением запроса необходимо установить его входные параметры (при их наличии), далее нажать на кнопку «Выполнить запрос». Так же здесь есть возможность выполнять запросы не целиком, а отдельно какой-либо пакет.

Режим просмотра определяет то, как будет выведен результат запроса: списком, иерархическим списком, либо деревом.

Результат выполнения будет отображен в самом низу консоли запроса. Так же там отображается количество полученных строк и время выполнения. При необходимости вы можете перемещать строки результата запроса.

Очень часто пользователи просят сделать выборку каких-либо данных и сохранить их в Excel. Это может понадобиться и вам. Для выполнения задачи вам всего-навсего достаточно в меню «Еще» выбрать пункт «Вывести список». Программа предложит отметить необходимые колонки.

Кроме задания перечня колонок для вывода тут так же можно и указать конкретные строки. Это реализуется путем выделения строк в самом запросе. Далее в форме выбора колонок достаточно установить флаг в настройке «Только выделенные».

В нашем примере мы вывели все данные результата запроса. Сохранить их во внешний файл, можно скопировав из открывшегося табличного документа, либо при помощи комбинации горячих клавиш «Ctrl+O». Вариантов форматов для сохранения много, мы выбрали «*. xlsx».

Как видите, работа в консоли запросов очень удобна и полезна, поэтому настоятельно рекомендуем ее скачать и применять на практике.

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!