В начало

Таблица значений как параметр

 

         Пример использования таблицы значений как параметра в запросе.

         Итак, создаем обработку, размещаем на ней кнопку «Выполнить» и табличное поле РЗ с двумя колонками: «Производитель» и «МаркаАвто» с типом «Строка».

Рис. Форма обработки в конфигураторе

 

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

Листинг. Код на кнопке «Выполнить»

 

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

         //========================================

         //Создаем таблицу с авто-производителями

         //========================================

         ТЗ = Новый ТаблицаЗначений;

         ТЗ.Колонки.Добавить("Наименование", Новый ОписаниеТипов("СправочникСсылка.Автопроизводители"));

        

         СтрТЗ = ТЗ.Добавить();

         СтрТЗ.Наименование = Справочники.АвтоПроизводители.НайтиПоНаименованию("Honda");

        

         СтрТЗ = ТЗ.Добавить();                                                 

         СтрТЗ.Наименование = Справочники.АвтоПроизводители.НайтиПоНаименованию("Hyundai");

        

        

         //=======================================================

         //Создаем запрос с использованием таблицы значений ТЗ как параметра

         //=======================================================

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

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

                   "ВЫБРАТЬ

                   |         ТЗ.Наименование КАК Наименование

                   |ПОМЕСТИТЬ втАвтоПроизводители

                   |ИЗ

                   |         &ТЗ КАК ТЗ

                   |;

                   |

                   |////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ

                   |         втАвтоПроизводители.Наименование КАК Производитель,

                   |         МаркиАвтомобилей.Наименование КАК Марка

                   |ИЗ

                   |         втАвтоПроизводители КАК втАвтоПроизводители

                   |                  ЛЕВОЕ СОЕДИНЕНИЕ Справочник.МаркиАвтомобилей КАК МаркиАвтомобилей

                   |                  ПО втАвтоПроизводители.Наименование = МаркиАвтомобилей.АвтоПроизводитель";

                  

         Запрос.УстановитьПараметр("ТЗ", ТЗ); 

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

         Выборка = Результат.Выбрать();

        

         //===============================================

         //Заполняем табличное поле РЗ на форме обработки

         //===============================================

         РЗ.Очистить();

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

                   Стр = РЗ.Добавить();

                   Стр.Производитель = Выборка.Производитель;

                   Стр.МаркаАвто = Выборка.Марка;

         КонецЦикла;

              

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

 

         Далее запускаем режим «1С:Предприятие», жмем кнопку «Выполнить» и смотрим результат.

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