Массив как параметр запроса 1с

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

1С 8.3 Параметры в запросе

&НаСервере
Процедура ПередачаПараметровПростыхТиповВЗапросе ()

// Создание отбора по поступлению материала за 2020 год
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Ссылка
|ИЗ
| Документ.ПоступлениеМатериалов
|ГДЕ
| Дата МЕЖДУ &НачДата И &КонДата
|УПОРЯДОЧИТЬ ПО
| Дата ВОЗР» );

&НаСервере
Процедура ПередачаПараметровСсылочныхТиповВЗапросе ()

// Создание отбора по материалам с единицей измерения «Куб.см.»
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| ЕдиницаИзмерения
|ИЗ
| Справочник.Материалы
|ГДЕ
| ЕдиницаИзмерения = &ЕдинИзмер» );

&НаСервере
Процедура ПередачаПараметровСписочногоТипаВЗапросе ()

// Создание отбора по материалам, единицы измерения входят в переданный список
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| ЕдиницаИзмерения
|ИЗ
| Справочник.Материалы
|ГДЕ
| ЕдиницаИзмерения В (&СписокЕдиницИзмерения)» );

&НаСервере
Процедура ПередачаПараметраВВидеТаблицыЗначенийВЗапросе ()

Запрос = Новый Запрос ( «ВЫБРАТЬ
| Наименование,
| СрокИспользования,
| Производитель
|ИЗ
| Справочник.Материалы
|ГДЕ
| (СрокИспользования, Производитель) В (&СписокСочетаний)» );

&НаСервере
Процедура ИспользованиеТаблицыЗначенийПереданнойВЗапросКакПараметр ()

// Сперва выбираем данные во временную таблицу, а потом работаем как с обычной таблицей
Запрос = Новый Запрос ( «ВЫБРАТЬ
| Название,
| РынЦена
|ПОМЕСТИТЬ
| ВременнаяТаблица
|ИЗ
| &ТаблицаДрагМеталлов КАК ДрагМеталлы
|;
|ВЫБРАТЬ
| Название,
| РынЦена
|ИЗ
| ВременнаяТаблица
|УПОРЯДОЧИТЬ ПО
| РынЦена УБЫВ» );

Источник

Параметры запроса массив

Как правильно указать параметры в запросе, понимаю что массив сравнивать со строкой и числом нельзя, но как правильно сравнить не пойму.

НСМс = Новый Массив;
НаимМс = Новый Массив;
НСМс.Добавить(«5»); НСМс.Добавить(«10»); НСМс.Добавить(«15»); НСМс.Добавить(«20»); НСМс.Добавить(«25»);
НСМс.Добавить(«30»); НСМс.Добавить(«35»); НСМс.Добавить(«40»);
НаимМс.Добавить(«Документация»); НаимМс.Добавить(«Комплексы»); НаимМс.Добавить(«Комплексы»);
НаимМс.Добавить(«Сборочные единицы»); НаимМс.Добавить(«Детали»); НаимМс.Добавить(«Стандартные изделия»);
НаимМс.Добавить(«Прочие изделия»); НаимМс.Добавить(«Материалы»); НаимМс.Добавить(«Комплекты»);

ЗапросВыгрузки = Новый Запрос;
Мен = Новый МенеджерВременныхТаблиц;
ЗапросВыгрузки.МенеджерВременныхТаблиц = Мен;

ЗапросВыгрузки.Текст =
«ВЫБРАТЬ
| *
| Поместить ТабЗнач
|ИЗ
| &ТС КАК ТС»;

ЗапросВыгрузки.УстановитьПараметр(«ТС», ТС);
ЗапросВыгрузки.Выполнить();

ЗапросВыгрузки.Текст = «Выбрать
| ТабЗнач.НомерСекции,
| ТабЗнач.Наименование
|ИЗ
| ТабЗнач КАК ТабЗнач
|ГДЕ
| (ТабЗнач.НомерСекции = &Параметр) И (ТабЗнач.Наименование <> &ПарамНаименования)»;
ЗапросВыгрузки.УстановитьПараметр(«ТС», ТС);
ЗапросВыгрузки.УстановитьПараметр(«Параметр», НСМс);
ЗапросВыгрузки.УстановитьПараметр(«ПарамНаименования», НаимМс);
ТЗВыгрузки = ЗапросВыгрузки.Выполнить().Выгрузить();

Источник

Обучение программированию на 1С

Параметры запроса и работа с ними. Типы равенствнеравенств равно, В, В ИЕРАРХИИ и др.

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1сДля построения грамотного и эффективного запроса, нужно разбираться в его параметрах. Запрос 1С к базе данных – это конструкция, позволяющая извлечь актуальную информацию из набора таблиц и предоставить её пользователю для принятия обоснованного управленческого решения в наиболее оптимальной форме. Поскольку Запрос 1С является объектом с набором параметров, то определённые приёмы языка запросов позволяют повысить его читабельность, увеличить быстродействие, получить только уникальные записи. Чтобы уметь пользоваться преимуществами встроенного языка, нужно следовать рекомендациям профессионалов.

Что такое параметры запроса 1С и как они используются?

Параметры запроса необходимы для того, чтобы можно было придать конструкции требуемую гибкость и быстродействие. Для объявления нужного параметра в языке запроса используется символ «&». Расшифровывается это следующим образом: &ТаблицаЦен (в данном случае именем параметра является значение «ТаблицаЦен»). Чтобы запрос «понял» присваиваемый ему параметр, необходима следующая конструкция:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

Рассмотрим на примере присвоения Запросу 1С параметра Текущая дата – выглядеть на языке запросов это будет следующим образом:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

Это примитивный тип конструкции, есть и более интересные.

Списочные параметры – работаем с операторами В/В ИЕРАРХИИ

Массив данных и список значений могут быть переданы в качестве параметров языка запроса 1С. К примеру, конструкция может выглядеть следующим образом:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

Рассмотрим подробнее значимые отличия операторов «В» и «В ИЕРАРХИИ» и другие функции языка запросов 1С v 8.

Функции языка запросов 1С v 8

Язык запросов программы 1С 8-ой версии предполагает, что к полям запроса будут применены специальные функции, которые усилят его эффективность и оптимизируют работу.

«ССЫЛКА»

Ссылочный тип логического оператора «ССЫЛКА» даёт возможность проверить поле составного вида на наличие в нём конкретного типа. Задаётся следующей конструкцией:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

«МЕЖДУ»

Функция, которая позволяет конструкции проверить поле по параметру «вхождение значения в указанный диапазон». Синтаксическое выражение:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

«В», «В ИЕРАРХИИ»

Конструкция служит для того, чтобы выявлять наличие определённых значений в передаваемых списках. Поиск производится также в подчинённых значениях после разворачивания иерархии элементов вниз. На практике это выглядит следующим образом:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

«ПОДРОБНО»

Функция языка запросов 1С даёт возможность провести сравнение выбранной строки с шаблонным вариантом. Параметр применяется в том случае, если строка, по которой производится поиск, чётко не закреплена. Шаблонное решение выстраивается по следующим правилам:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

«ЕСТЬ NULL »

Данный параметр работает следующим образом: в том случае, если значение поля не определено, то оно равно указанному выражению. С учётом синтаксиса языка запросов 1С получаем:

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

Все эти параметры – лишь краткий перечень эффективных функций языка Запросов 1С. Для грамотной работы в конфигураторе программы необходимо тщательно изучить все параметры языка запросов. Это не просто позволит получать нужные отчёты из базы данных 1С, но и увеличит быстродействие их обработки.

Источник

Передать в параметр список значений.

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

Как-то корявенько. Лучше было бы

Код
Показать полностью

а список складов уже заполнять ссылками найденными по наименованию, или ещё как-то.

Но лучше было бы создать реквизит «код в базе УТ» для справочника подразделений и связать по кодам. Ведь наименование штука непостоянная.

Надеюсь что-то из моего поста Вам пригодится

МассивПодразделений = ПолучитьПодразделения() получаю массив в ЗУПе.

//создаю и заполняю массив УТ
МассивСкладыУт = БазаУТ.NewObject(«Массив»);
для Каждого Элемент Из МассивПодразделений Цикл
МассивСкладыУт.Добавить(Элемент);
КонецЦикла;

Запрос.УстановитьПараметр(«Вид»,БазаУТ.Перечисления.ВидыОперацийЧекККМ.НачалоДня);
Запрос.УстановитьПараметр(«СписокМагазинов», МассивСкладыУт);
Запрос.УстановитьПараметр(«ДатаНач», НачалоДня(ДатаНач));
Запрос.УстановитьПараметр(«ДатаКон», КонецДня(ДатаКон));
Массив МассивСкладыУт заполненный. Результат почему-то пустой

(7) Массив МассивСкладыУт заполненный. Вопрос только чем он заполнен 🙂 Ссылками из ЗУПа судя по коду и откуда же эти ссылки возьмутся в УТ?

МассивПодразделений = ПолучитьПодразделения() получаю массив в ЗУПе.

//создаю и заполняю массив УТ
МассивСкладыУт = БазаУТ.NewObject(«Массив»);
для Каждого Элемент Из МассивПодразделений Цикл
МассивСкладыУт.Добавить(Справочник.Склады.НайтиПоНаименованию(Элемент.Наименование) ну или с чем там массив, по тому и ищем ссылку на Склад в УТ);
КонецЦикла;

Источник

1С параметр запроса массив

Запросы в какой то степени абстрагированы от основного кода 1С, для того чтобы придать им гибкость существуют параметры. Параметр в запросе объявляется через аперсанд &, следующая за ним последовательность символов до пробела считается именем параметра. Передача параметра в запрос происходит путем конструкции
УстановитьПараметр(» «, ):

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

Операторы В/В ИЕРАРХИИ и параметры

На самом деле в запрос можно передать и списочные параметры, как массив, так и список значений подходят для этих целей идеально:

Чем отличается оператор В от В ИЕРАРХИИ рассматривалось в разделе Функции языка запросов 1С 8.

Передача таблицы в запрос

В запрос можно передать таблицу значений для двух целей:

Второй вариант предполагает под собой знание механизмов пакетных запросов и временных таблиц, но как правило сводиться к реализации определенного шаблону, который можно просто скопировать и использовать, немного откорректировав:

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

← Объединение запросов | Работа с запросами 1С 8 из встроенного языка →

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Параметры в запросах в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Массив как параметр запроса 1с. Смотреть фото Массив как параметр запроса 1с. Смотреть картинку Массив как параметр запроса 1с. Картинка про Массив как параметр запроса 1с. Фото Массив как параметр запроса 1с

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Параметры в запросах 1С служат для передачи в запрос данных, которые могут изменяться в зависимости от условий выполнения запроса и поэтому не могут быть жестко зафиксированы в самом запросе.

Параметры выделяются в тексте запроса символом &.

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

Использование в качестве источника передаваемой в запрос таблицы значений мы рассмотрим в отдельной статье. В остальных случаях синтаксис использования параметров в запросе 1С выглядит так:

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

Задавая условия в запросах 1С, мы сравниваем одно значение с другим(и). В платформе 1С:Предприятие предусмотрены следующие виды сравнений:

Если в шаблон необходимо включить один из символов, перечисленных выше, то перед ним должен идти спецсимвол. Этим спецсимволом может быть любой символ, главное чтобы он не применяется в шаблоне по прямому назначению и не был одним из символов, перечисленных выше. При этом после условия пишется слово СПЕЦСИМВОЛ и в кавычках приводится сам спецсимвол.

Такой запрос показал бы курсы валют, названия которых заканчивается на знак подчеркивания.

В и В ИЕРАРХИИ — проверяет наличие элемента в некотором списке. Если используется оператор В, то проверяется только сам список, а если В ИЕРАРХИИ, то еще и элементы, подчиненные элементам списка.
В качестве списка может использоваться массив, список значений, таблица значений. Оператор В дополнительно может работать с результатом вложенного запроса при условии, что в нем выбирается только одно поле.
Синтаксис для сравнения с массивом, списком значений или таблицей значений, которые передаются в запрос в виде параметра:

Синтаксис для сравнения с результатом вложенного запроса:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *