Работа с запросами
Запросы
Заголовок раздела «Запросы»
Запросы - основной способ “достать” данные из базы данных, для дальнейшего использования. В случае формирования печатной формы, это основополагающая часть работы. Поэтому работа с ними закладывает “фундамент” данных, с которыми вы потом сможете оперировать. Стоит уделять особое внимание запрашиваемым данным, ведь как правило, ошибки в запросах могут привести к тому, что формирование печатной формы будет неэффективным.
Виды запросов
Заголовок раздела «Виды запросов»С точки зрения конструктора, запросы бывают двух видов:
- запрос на получение данных, с целью дальнейшего вывода данных на экран
- запрос на получение данных, с целью использования данных в других таблицах
1-й вид запросов позволяет сформировать Наборы (об этом мы поговорим позже). 2-й вид запросов позволяет более эффективно получать данные из базы.
Работа с запросами 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С.