Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Работа с запросами во встроенном языке




 

Сначала создадим подсистему «ОтчетыИОбработки». В будущем будем помещать туда созданные отчеты и обработки.

Для формирования запросов, выборки и обработки результатов запросов в языке предусмотрен специальный набор объектов. С помощью этих объектов выполняется формирование запроса, обход записей запроса и т.д.

Рассмотрим в качестве первого примера обработку «ЗнакомствоСЗапросом».

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

• ЗначениеСсылка тип ЛюбаяСсылка»;

• ЗначениеЧисло тип «Число»;

• ЗначениеДата1 тип «Дата» состав «Дата+Время»;

• ЗначениеДата2 тип «Дата» состав «Дата+Время»;

• ЗначениеСтрока тип «Строка» Длина 100;

Определим основную форму обработки включив все реквизиты.

При настройке формы необходимо создать группу «Страницы» и в ней 3 группы «Страница» с названиями как на рисунке (Рисунок 2.58).

Рисунок 2.58 Форма обработки «ЗнакомствоСЗапросом»

 

 

Далее необходимо создать реквизиты формы:

· ПолеТекста тип Текстовый документ, в свойстве «Сохраняемые данные» поставить галочку.

· РезультатЗапроса тип Табличный документ (Рисунок 2.59).

Рисунок 2.59 Реквизиты формы

 

Затем на первую вкладку реквизит формы ПолеТекста. Аналогично все остальные реквизиты размещаем в остальных вкладках (Рисунок 2.60).

Рисунок 2.60 Элементы формы

 

Создаем команду ВыполнитьЗапрос, перетаскиваем ее в командную панель формы и определяем для неё следующий код:

&НаКлиенте

Процедура ВыполнитьЗапрос(Команда)

ВыполнитьЗапросСервер(ПолеТекста.ПолучитьТекст());

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

&НаСервере

Процедура ВыполнитьЗапросСервер(Текст)

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

Запрос.Текст=Текст;

Запрос.УстановитьПараметр("ЗначениеСсылка",Объект.ЗначениеСсылка);

Запрос.УстановитьПараметр("ЗначениеЧисло",Объект.ЗначениеЧисло);

Макет = Обработки.ЗнакомствоСЗапросом.ПолучитьМакет("Макет");

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

Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

РезультатЗапроса.Очистить();

Область = Макет.ПолучитьОбласть("Значение");

ОблЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Вход=Истина;

Для Каждого Колонка Из Результат.Колонки Цикл

ОблЗаголовок.Параметры.Значение=Колонка.Имя;

Если Вход Тогда

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

Вход=Ложь;

Иначе

РезультатЗапроса.Присоединить(ОблЗаголовок);

КонецЕсли;

КонецЦикла;

РезультатЗапроса.НачатьАвтогруппировкуСтрок();

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

Вход=Истина;

Для Каждого Колонка Из Результат.Колонки Цикл

Область.Параметры.ВыводимоеЗначение=Выборка[Колонка.Имя];

Если Вход Тогда

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

Вход=Ложь;

Иначе

РезультатЗапроса.Присоединить(Область);

КонецЕсли;

КонецЦикла;

КонецЦикла;

РезультатЗапроса.ЗакончитьАвтогруппировкуСтрок();

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

Для получения результата обработки необходимо вручную создать макет. Создаем макет (типа «Табличный документ») на закладке «Макеты» (Рисунок 2.61).

Рисунок 2.61 Макет обработки

 

Вводим в макет два параметра «Значение» и «ВыводимоеЗначение». Для ячейки «Значение» назначаем имя секции «Заголовок» (рисунок. 2.62).

Рисунок 2.63 Свойства ячеек макета.

 

Аналогично для ячейки «ВыводимоеЗначение» определяем имя секции «Значение».

Для наглядности обведем границы сплошной линией в свойствах оформления и в ячейке «Значение» определим фон каким-либо цветом (Рисунок 2.64).

Рисунок 2.64 Свойства ячеек макета

 

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

Перейдем в 1С: Предприятие и проверим работу нашей обработки. На первой закладке вручную напишем запрос:

ВЫБРАТЬ

*

ИЗ

Справочник.Номенклатура

Итогом будет вывод всех данных из справочника «Номенклатура».

Замечание.

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

 


 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...