Опубликован: 21.09.2010 | Уровень: для всех | Доступ: платный
Лекция 7:

Запросы, обработки

Аннотация: Лекция посвящена работе с запросами, созданию внешних обработок.

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

7.1. Основные сведения о запросах

Одна из функций учетной системы - предоставление пользователям различной информации. Как правило, делается это с помощью отчетов. Например, в нашем случае вполне логично было бы иметь отчет, который выводит информацию о поступивших и выбывших материалах по отдельным материально-ответственным лицам (а может быть и по всей организации в целом), а так же - об остатках материалов. Подобная функциональность - то есть - выборка данных, осуществляется в 1С:Предприятии с помощью запросов.

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

Запросы создают с некоторой целью. Например, она может звучать так: "Узнать количество и стоимость материалов, числящихся за Ивановым И.И.". После того, как цель запроса сформулирована, нужно выполнить определенные шаги, которые позволяют получить нужную информацию:

  1. Подобрать подходящие источники данных для запроса ;
  2. Составить текст запроса - либо вручную, либо пользуясь конструктором запросов ;
  3. Выполнить запрос ;
  4. Обработать результаты запроса.

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

Источники данных для запросов

При работе с запросами возникает такое понятие, как источник данных для запроса. То есть - те места, откуда запрос будет брать данные. Источники данных делятся на две группы. Первая - это так называемые реальные таблицы. Вторая - виртуальные.

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

В объектных таблицах хранятся данные объектов системы, то есть - ссылочных типов данных. Это - документы, справочники. Эти таблицы имеют поле Ссылка, которое содержит ссылку на объект, данные которого представлены в таблице.

В необъектных таблицах хранятся данные других типов - например - записи регистров.

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

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

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

Написание текста запроса

Во встроенном языке системы есть объект Запрос. Именно он используется для работы с запросами. Особенности получения данных определяет текст запроса. Этот текст можно либо написать вручную, используя конструкции языка, либо воспользоваться так называемым конструктором запросов. Конструктор запросов позволяет в наглядном виде настроить запрос, однако, его результатом является точно такой же текст, который пишут вручную. В запрос можно передавать параметры, делать это нужно до выполнения запроса.

Выполнение запроса и обработка результатов запроса

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

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

7.2. Создание внешней обработки КонсольЗапросов

Внешние отчеты и обработки удобно использовать для того, чтобы выполнять предусматриваемые ими действия в различных системах. Так же внешние отчеты и обработки обычно используют для того, чтобы добавить в существующую конфигурацию какие-то новые возможности, настроить ее под нужды клиента, но при этом не изменять основную конфигурацию.

Войдем в Конфигуратор и выполним команду Файл > Новый > Внешняя обработка, рис. 7.1.

Начало создания внешней обработки

Рис. 7.1. Начало создания внешней обработки

Введем в поле имя КонсольЗапросов, для начала редактирования формы обработки нажмем на кнопку Открыть в поле Основная форма внешней обработки. Появится окно Конструктор формы обработки, оставим в нем все по умолчанию и нажмем Готово.

Добавим в форму элемент управления Поле текстового документа, зададим ему имя ТекстЗапроса, установим в параметре Расширение значение Язык запросов. Добавим в список реквизитов формы новый реквизит, зададим ему имя ТекстЗапросов и тип Строка.

Это позволит использовать в данном поле, при работе в режиме 1С:Предприятие, конструктор запросов, синтаксические конструкции языка запросов будут автоматически выделяться, рис. 7.2.

Добавление в форму внешней обработки поля текстового документа

увеличить изображение
Рис. 7.2. Добавление в форму внешней обработки поля текстового документа

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

Теперь добавим в форму еще один элемент управления - табличное поле. Зададим ему имя - РезультатВыполненияЗапроса. Так же добавим в форму поясняющие надписи: " Введите текст запроса " и " Результат выполнения запроса ", рис. 7.3.

Добавление в форму внешней обработки табличного поля

увеличить изображение
Рис. 7.3. Добавление в форму внешней обработки табличного поля

В табличное поле мы будем помещать результат выполнения запроса.

Теперь зададим обработчик нажатия кнопки Выполнить. Для этого откроем окно свойств кнопки и нажмем на кнопку Открыть в поле Действие. Процедура обработчика события нажатия на кнопку будет выглядеть следующим образом:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	Запрос = Новый Запрос;
	Запрос.Текст=ЭлементыФормы.ТекстЗапроса.ПолучитьТекст();
	РезультатВыполненияЗапроса = Запрос.Выполнить().Выгрузить();
	ЭлементыФормы.РезультатВыполненияЗапроса.СоздатьКолонки();
КонецПроцедуры

Поясним ее команды. Они, в основном, связаны с новым для вас объектом Запрос.

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

Создаем новый объект типа Запрос, записываем ссылку на него в переменную Запрос.

Запрос.Текст=ЭлементыФормы.ТекстЗапроса.ПолучитьТекст();

Записываем в свойство запроса Текст данные, которые хранятся в поле текстового документа.

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

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

ЭлементыФормы.РезультатВыполненияЗапроса.СоздатьКолонки();

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

После того, как создание обработки завершено, сохраним ее командой главного меню программы Файл > Сохранить.

Файлы внешних обработок имеют расширение *.EPF, рис. 7.4.

Сохраняем внешнюю обработку

Рис. 7.4. Сохраняем внешнюю обработку

Запустим систему в режиме 1С:Предприятие. Для того, чтобы работать с внешней обработкой, нам сначала нужно открыть ее. Для этого воспользуемся командой главного меню программы Файл > Открыть и с помощью стандартного окна открытия файлов выберем интересующую нас обработку, рис. 7.5.

Внешняя обработка, открытая в режиме 1С:Предприятие

увеличить изображение
Рис. 7.5. Внешняя обработка, открытая в режиме 1С:Предприятие

Сейчас все готово для ваших первых экспериментов с запросами.

Ринат Гатауллин
Ринат Гатауллин

Здравствуйте. Интересует возможность получения диплома( https://intuit.ru/sites/default/files/diploma/examples/P/955/Nekommerch-2-1-PRF-example.jpg ). Курс пройден. Сертификат не подходит. В сертификате ошибка, указано по датам время прохождения около 14 дней, хотя написано 576 часов.

Вячеслав Кузнецов
Вячеслав Кузнецов

Здравствуйте.

Как оплатить курс?

Кирилл Трещев
Кирилл Трещев
Россия
Вячеслав Клюев
Вячеслав Клюев
Россия, Волчиха