Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 23:58

Запрос и два параметра

Автор Alex56, 29 июн 2014, 16:22

0 Пользователей и 1 гость просматривают эту тему.

Alex56

Здравствуйте, как мне передать в запрос два значения. Сейчас только одно. То есть условие если наименование Бухгалтерия и менеджер. Как это реализовать?

   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ГруппыПользователей.Наименование
      |ИЗ
      |   Справочник.ГруппыПользователей КАК ГруппыПользователей
      |ГДЕ
      |   ГруппыПользователей.Наименование = &Наименование";

   Запрос.УстановитьПараметр("Наименование", ЭтаФорма.ПолеВвода1);
   

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

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

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Сообщить(ВыборкаДетальныеЗаписи.Наименование);
      // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;
Нужно постоянно трудиться.

ilyay

Поле должно быть типа СписокЗначений, а в запросе  "= &Наименование" заменить на "В (&Наименование)"

Alex56

Не могу понять с полем? Если в поле ввода тип значения будет только список значений? Или это будет составной тип?
Нужно постоянно трудиться.

mixqn

Начнем с того, что сравнивать по наименованию - не совсем правильно, а точнее совсем не правильно. У групп "бухгалтерия" и "менеджер" есть ссылки - вот по ссылкам и надо сравнивать. Это первое.
И второе: судя по
Цитата: Ildar Ziganshin от 29 июн 2014, 16:22ЭтаФорма.ПолеВвода1
группы "бухгалтерия" и "менеджер" выведены на форму, если это так, есть 2 пути:
1. вместо 2-ух полей ввода разместить в форме табличное поле и добавить туда 2 строки - "бухгалтерия" и "менеджер". затем методом ВыгрузитьКолонку получить массив и его уже передавать в запрос как параметр
2. оставить 2 поля ввода и сделать массив (или список значений) кодом.
ну а далее как вам выше написали, в запросе сравнение "=", а "В" и в качестве параметра массив или список значений.

Alex56

Здравствуйте, как передать в запрос два условия Бухгалтер и Менеджер?
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ГраницыЗапретаИзмененияДанных.Организация.Ссылка,
      |   ГраницыЗапретаИзмененияДанных.Пользователь.Ссылка,
      |   ГраницыЗапретаИзмененияДанных.ГраницаЗапретаИзменений
      |ИЗ
      |   РегистрСведений.ГраницыЗапретаИзмененияДанных КАК ГраницыЗапретаИзмененияДанных
      |ГДЕ
      |   ГраницыЗапретаИзмененияДанных.Пользователь.Наименование = &Наименование";

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

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

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

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;
Нужно постоянно трудиться.

mixqn

зачем еще 1 тему создавать?

Alex56

В той было Поле. А как без поля это сделать?
Нужно постоянно трудиться.

mixqn

не понятен ваш вопрос.
еще раз поясните, что конкретно у вас не получается?

Alex56

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

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

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

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

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;
Как мне написать в установитьпараметр (Бухгалтер, Менеджер)????Передать туда
Нужно постоянно трудиться.

freez1301

Наименование у вас должно быть в виде массива со значениями Бухгалтер и Менеджер

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск