Имя: Пароль:
1C
1С v8
условие выбора в запросе
Ø (Волшебник 13.10.2017 14:51)
0 _barracuda_
 
13.10.17
14:24
Добрый день.Подскажите что не так делаю:

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


шибка при вызове метода контекста (Выполнить)
    выб=Запрос.Выполнить().Выгрузить();
по причине:
{(9, 6)}: Не задано значение параметра "Условие"
И <<?>>&Условие
1 Волшебник
 
модератор
13.10.17
14:26
задайте параметр "Условие"
2 lubitelxml
 
13.10.17
14:26
Запрос.УстановитьПараметр("Условие",ЗдесьТвоеУсловие);
3 Волшебник
 
модератор
13.10.17
14:26
и кстати, не путайте переменные ТекстЗапроса и Текст
4 Tateossian
 
13.10.17
14:26
(0) Текст
5 Tateossian
 
13.10.17
14:27
(4) Как сказали в (3)
6 Гипервизор
 
13.10.17
14:27
(0) В СПИСКЕ - что-то новенькое, да?
7 Волшебник
 
модератор
13.10.17
14:30
(6) Это тема следующей ветки :)
12 mxs089
 
13.10.17
14:38
(0) используйте конструктор запроса и будет вам счастье
14 _barracuda_
 
13.10.17
14:43
вроде получилось а как можно сделать чтобы и по второму условию работало?

работает только по первому

    ТекстЗапроса =  
    "ВЫБРАТЬ
    |    ЗначенияСвойствОбъектов.Объект КАК Объект,
    |    ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    |    ЗначенияСвойствОбъектов.Значение КАК Значение
    |ИЗ
    |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |    ГДЕ      
    |    ТИПЗНАЧЕНИЯ(ЗначенияСвойствОбъектов.Объект)=Тип(Справочник.Контрагенты)
    |   И &УсловиеСвойство
    |   И &УсловиеЗначение";
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&УсловиеСвойство",?(ЗначениеЗаполнено(Свойство),"ЗначенияСвойствОбъектов.Свойство в (&СписокСвойств)","ИСТИНА"));
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&УсловиеЗначение",?(ЗначениеЗаполнено(Значение),"ЗначенияСвойствОбъектов.Свойство в (&СписокЗначений)","ИСТИНА"));
    Запрос=Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("СписокСвойств",Свойство);
    Запрос.УстановитьПараметр("СписокЗначений",Значение);
15 _barracuda_
 
13.10.17
14:44
например если оба реквизита на форме заполнены или какой либо из двух
16 Numerus Mikhail
 
13.10.17
14:46
(15) заменить И на ИЛИ?
17 _barracuda_
 
13.10.17
14:50
закрыто невнимательный спасибо