Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 7.pdf
Скачиваний:
12
Добавлен:
09.05.2015
Размер:
2.39 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

рис. 7.1.

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

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

Готово.

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

Строка.

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

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

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

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

Введите текст запроса " и " Результат выполнения запроса ", рис. 7.3.

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

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

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

Процедура КнопкаВыполнитьНажатие(Кнопка)

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

КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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