1С Как передать в несколько значений в один параметр в запросе с помощью массива
В 1С практические у любого запроса есть параметры (условия по которым делается отбор данных), как минимуму это даты, но чаще всего в запрос передают несколько параметров, для того чтобы выборка была более точной. Так же в большинстве случаев у каждого параметра всего одно значение, например, дата начала периода, дата окончания или название номенклатуры и т.д. Но в один параметр запроса можно передать несколько значений, сделать это можно с помощью массива и это должны быть ссылки, но давайте обо всем по порядку.
Передаем в запрос массив
И так возьмем для наглядности обычный запрос с тремя параметрами, дата начала, дата окончания и сотрудник.
В параметр «Сотрудник» можно передать несколько значений т.е не одного сотрудника а нескольких, для этого необходимо немного изменить запрос и добавить собственно сам массив. В запросе меняем следующею строчку, указываем что данный параметр это массив со ссылками на значения.
| ГрафикиСотрудников.Сотрудник.Ссылка В (&Сотрудник)
Ниже добавляем массив, значения массива должны быть ссылками, если элемент массива будет выглядеть вот так, то запрос не отработает так как не найдет данного сотрудника.
МассивСтр.Добавить("Иванов И.И.");
Для примера я добавляю в массив ссылку на сотрудника и просто укажу его.
МассивСтр = Новый Массив;
МассивСтр.Добавить("Иванов И.И.");
МассивСтр.Добавить(Справочники.Сотрудники.НайтиПоНаименованию("Петров П.П."));
Запрос.УстановитьПараметр("Сотрудник", МассивСтр);
Весь код будет выглядеть следующим образом.
Запускаем отладку и смотрим что у нас находиться в передаваемом массиве. Для этого кликаем ПКМ мыши передаваемом в параметре названии массива и выбираем пункт «Вычислить выражение».
В открывшемся окне выделяем массив и нажимаем «Показать значения в отдельном окне».
И видим значения массива, в данном случае в запросе обработается только значение переданное в качестве ссылки.
Вот таким образом в запрос с помощью одного параметра можно передать несколько значений. Остались вопросы или что-то не понятно обязательно пишите!