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

как правильно составить условие в запросе

Автор ppkmlite, 23 янв 2015, 21:38

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

ppkmlite

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

РезультатЗапроса = Запрос.Выполнить();
  ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    пока ВыборкаДетальныеЗаписи.Следующий() цикл
 
  если ВыборкаДетальныеЗаписи.должность = "генеральный директор" тогда   
 
    областьподвал.Параметры.дир =ВыборкаДетальныеЗаписи.Должность;
  иначе
      областьподвал.Параметры.директор = "директор"
  конецЕсли;
  КонецЦикла;

Игорь_M

возможно это и не имеет значения (не судите строго - знаниями по 1с обладаю небольшими), но "должность" не должно быть с большой буквы? Если так то должно по идее выдавать сообщение : поле не найдено

freez1301

| КонтактныеЛица.Должность В (&Должность)";
   Запрос.УстановитьПараметр("Должность", МассивДолжностей );

где МассивДолжностей должен содержать две строки директор и генеральный директор.
или использовать два параметра и ИЛИ между ними


LexaK

у вас невнятная постановка условия, соответственно корявый запрос, вот примерный вариант запроса для вас,
в результате по контрагенту можете получить несколько записей(строк) с контактными лицами которые являются директорами и ген.директорами (что с ними делать? на ваше усмотрение)

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

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

    //бред какой-то 
  если ВыборкаДетальныеЗаписи.должность = "генеральный директор" тогда   
    областьподвал.Параметры.дир =ВыборкаДетальныеЗаписи.Должность;
  иначе
      областьподвал.Параметры.директор = "директор"
  конецЕсли;
    //---
  КонецЦикла;
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск