Запросы в 1с

Запросы в 1с

Запросы в 1с– это один из базовых механизмов «1С:Предприятия» . Язык запросов вместе со встроенным языком платформы позволяет читать и обрабатывать данные, хранящиеся в базе. Для составления запросов «1С:Предприятие» использует собственный язык, основанный на SQL.

Запросы в 1с
Схема выполнения запроса

Важно понимать, что прямого доступа к физическим таблицам, в которых хранится информация в базе данных, из «1С:Предприятия» получить нельзя. Поэтому с помощью запросов мы обращаемся к данным не напрямую, а через специальную «прослойку» в виде таблиц языка запросов. Этот процесс можно представить на следующей схеме

Запросы в 1с
Доступ к данным в «1С:Предприятии»

Таблицы в запросе 1с

Из представленной схемы видно, что запросы работают с двумя видами таблиц:
1.Реальные таблицы
2.Виртуальные таблицы
Реальные таблицы подразделяются на объектные (ссылочные) и необъектные(нессылочные). В объектных (ссылочных) таблицах представлена информация ссылочных типов данных (справочники, документы, планы видов характеристик). А в необъектных (нессылочных) – всех остальных типов данных (константы, регистры и т. д.).

Язык запросов «1С:Предприятия»

Механизм запросов позволяет получить доступ к разнообразной информации, хранящейся в базе данных «1С:Предприятия». Путем выполнения запроса к информационной базе из всей совокупности информации можно получить различные выборки данных из одной или нескольких взаимосвязанных таблиц, отобранных по определенному условию, отсортированных определенным образом и пр. Далее полученные данные могут быть проанализированы для решения различных прикладных задач, построения отчетов и т. п.
Однако следует иметь в виду, что с помощью запросов можно только прочитать нужную информацию из базы данных, но изменить ее и записать обратно при помощи запроса нельзя – для этого нужно использовать средства встроенного языка.

Запросы в 1с. Общая схема выполнения запроса в 1с

Запрос формируется и выполняется разработчиком из встроенного языка. Для этого предназначены следующие программные объекты:
1. Запрос,
2. РезультатЗапроса,
3. ВыборкаИзРезультатаЗапроса.

Запросы в 1с
Схема выполнения запроса

Во-первых создается Запрос.

Запрос = Новый Запрос;

Далее печатаем текст запроса на языке запросов. Для этого используем свойство Запроса Текст:

Запрос.Текст="Выбрать *
из РегистраНакопления.ОстаткиНоменклатуры";

Во-вторых Выполняем запрос:

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

или

Выборка=Запрос.Выполнить().Выбрать();

В-третьих выборка обходится с помощью цикла Пока Выборка.Следующий() Цикл, а в теле цикла производятся какие-то действия над данными, полученными с помощью запроса.

Пока Выборка.Следующий() Цикл

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = Выборка.Номенклатура +" в количестве равным "+Выборка.Количество;

Сообщение.Сообщить();

КонецЦикла;

Предварительно создадим по 3 документа каждого вида.

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

Запросы в 1с. Консоль запросов.

Консоль запросов предназначена для проверки созданных вами запросов. Она поставляется в виде отдельной обработка и ее можно скачать на сайте 1с (Ссылка на скачивание).

Открываем файл как внешний отчет или обработка(Файл->Открыть).

Запросы в 1с
Открытие консоли запросов

Выбираем файл(файл приложенный к уроку необходимо предварительно распаковать). Соглашаемся на сообщение выданное системой. Результатом будет такое окно:

запросы в 1с
Окно консоли запросов

Теперь разберем несколько запросов.

  1. Создадим запрос выводящий все информацию из РегистраНакопления. Это самый простой запрос:
Запросы выбрать все
Выбор всех полей в запросе

Результат выполнения запроса будет следующий:

результат выполнения запроса
Результат выполнения запроса

2. Создадим запрос выводящий только Номенклатуру, Количество и сумму из этого же регистра.

запросы в 1с
Текст запроса выполняющий выборку Номенклатуры, Количества и Суммы

Результат запроса

Запросы в 1с. Результат запроса
Результат запроса 1с

3. Изменим второй запрос применив псевдонимы.

Ключевое слово КАК в 1с

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

Запросы в 1с. Псевдонимы в запросе
Применение псевдонимов в запросе 1с

Результат запроса будет совпадать с результатом запроса 2.

Ключевое слово СГРУППИРОВАТЬ в 1с

4. Изменим наш запрос таким образом, чтобы каждый товар отображался 1 раз. Данная операция применяется с использованием Группировки.

Запросы в 1с. Группировка
Группировка в запросе 1с

Результат запроса

Запросы в 1с Результат группировки

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

5. Создадим запрос, который выводит информацию об изделиях и сортирует их по популярности. Из Регистра Сведений ИзделияСведения мы выберем 1 Измерение->Изделие и 2 Ресурса->Количество и Сумма. Сгруппируем по Изделию и сделаем УПОРЯДОЧИТЬ ПО Количеству причем убывание(Убыв)

Запросы в 1с. Упорядочить по

Результат

Упорядочить по результат

6. Создадим запрос отвечающий: “Сколько заказов у нас Произведено и сколько Заказано. Для этих целей будем использовать Параметр Статус Заказа. Применим условие в запросе 1с.

Группировка

Заполняем Окно Параметр следующим образом

Система компоновки данных

Результат запроса

Система компоновки данных. Параметры

Для получения информации о выполненных заказах нам не надо переписывать весь запрос. Достаточно поменять значение в Параметре.

Параметры запроса

Результат

Запросы в 1с Результат

7. Создадим запрос о деятельности сотрудников по работе с Материалами. Информацию мы планируем получить из РегистраНакопления ОстаткиНоменклатуры. Будем использовать Параметр Сотрудник.

Запросы в 1с. Код запроса.

Окно Параметр заполнено так:

Запросы в 1с Параметры

Результат запроса

Запросы в 1с результат

Мы рассмотрели запросы в 1с и примеры их использования