/// Как передать в запрос параметры простых типов в 1с 8.3, 8.2
&НаСервере
Процедура КакПередатьВЗапросПараметрыПростыхТиповНаСервере()
// Сделаем отбор продаж за 1 квартал 2014 года.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Ссылка
|ИЗ
| Документ.ПродажаЕды
|ГДЕ
| Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
|УПОРЯДОЧИТЬ ПО
| Дата ВОЗР"
);
Запрос.УстановитьПараметр("НачалоПериода", '20140101000000');
Запрос.УстановитьПараметр("ОкончаниеПериода", '20140331235959');
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как передать в запрос параметры ссылочных типов в 1с 8.3, 8.2
&НаСервере
Процедура КакПередатьВЗапросПараметрыСсылочныхТиповНаСервере()
// Сделаем отбор продуктов со сладким вкусом.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Вкус
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Вкус = &ВыбВкус"
);
Запрос.УстановитьПараметр("ВыбВкус",
Справочники.Вкусы.НайтиПоНаименованию("Сладкий")
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как передать в запрос параметр списочного типа в 1с 8.3, 8.2
&НаСервере
Процедура КакПередатьВЗапросПараметрСписокНаСервере()
// Сделаем отбор продуктов, вкусы которых входят в переданный
// нами список.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Вкус
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Вкус В (&СписокВкусов)"
);
Список = Новый Массив;
Список.Добавить(
Справочники.Вкусы.НайтиПоНаименованию("Сладкий")
);
Список.Добавить(
Справочники.Вкусы.НайтиПоНаименованию("Солёный")
);
Запрос.УстановитьПараметр("СписокВкусов",
Список
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как передать в запрос таблицу значений в качестве
/// параметра в 1с 8.3, 8.2
&НаСервере
Процедура КакПередатьТаблицуЗначенийВКачествеПараметраНаСервере()
// Сделаем отбор продуктов в соответствии с переданной
// в запрос таблицей сочетания цвета и вкуса.
СочетанияЦветаИВкуса = новый ТаблицаЗначений;
СочетанияЦветаИВкуса.Колонки.Добавить("Цвет",
Новый ОписаниеТипов("СправочникСсылка.Цвета"));
СочетанияЦветаИВкуса.Колонки.Добавить("Вкус",
Новый ОписаниеТипов("СправочникСсылка.Вкусы"));
// красный + сладкий
Стр = СочетанияЦветаИВкуса.Добавить();
Стр.Цвет =
Справочники.Цвета.НайтиПоНаименованию("Красный");
Стр.Вкус =
Справочники.Вкусы.НайтиПоНаименованию("Сладкий");
// жёлтый + солёный
Стр = СочетанияЦветаИВкуса.Добавить();
Стр.Цвет =
Справочники.Цвета.НайтиПоНаименованию("Жёлтый");
Стр.Вкус =
Справочники.Вкусы.НайтиПоНаименованию("Солёный");
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Цвет,
| Вкус
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| (Цвет, Вкус) В (&СписокСочетаний)"
);
Запрос.УстановитьПараметр("СписокСочетаний", СочетанияЦветаИВкуса);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Как использовать таблицу переданную в запрос в качестве
/// источника в 1с 8.3, 8.2
&НаСервере
Процедура КакИспользоватьТаблицуПараметрВКачествеИсточникаНаСервере()
// Создадим и заполним таблицу значений в коде, а затем
// передадим её в запрос.
Страны = новый ТаблицаЗначений;
Страны.Колонки.Добавить("Название", Новый ОписаниеТипов("Строка"));
Страны.Колонки.Добавить("Численность", Новый ОписаниеТипов("Число"));
НоваяСтрока = Страны.Добавить();
НоваяСтрока.Название = "Россия";
НоваяСтрока.Численность = 144000000;
НоваяСтрока = Страны.Добавить();
НоваяСтрока.Название = "Австралия";
НоваяСтрока.Численность = 23000000;
НоваяСтрока = Страны.Добавить();
НоваяСтрока.Название = "Новая зеландия";
НоваяСтрока.Численность = 4400000;
// Сначала выбираем переданные значения во временную
// таблицу, а уже затем работаем с временной таблицей
// как с обычной.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Название,
| Численность
|ПОМЕСТИТЬ
| ВременнаяТаблица
|ИЗ
| &ТаблицаСтран КАК Страны
|;
|ВЫБРАТЬ
| Название,
| Численность
|ИЗ
| ВременнаяТаблица
|УПОРЯДОЧИТЬ ПО
| Численность УБЫВ"
);
Запрос.УстановитьПараметр("ТаблицаСтран", Страны);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
Смотрите также:
Электронный учебник по программированию в 1С Рекомендации по изучению программирования 1С с нуля Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки