Имя: Пароль:
1C
1С v8
Обработка условия в запросе
,
0 Len1vec
 
11.07.18
11:39
Добрый день. Подскажите, пожалуйста, как правильно написать запрос.
Есть внешняя обработка. На форме обработки есть галочка "Отгрузка поставщику". Как в условиях запроса описать следующую ситуацию: если галочка установлена, то выбрать документы у которых есть конкретное значение, иначе выбрать все документы. Пример кода ниже.

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

Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоНаименованию("МояОрганизация"));
Запрос.УстановитьПараметр("ПериодНачало", ПериодНачало);
Запрос.УстановитьПараметр("ПериодКонец", КонецДня(ПериодКонец));
Запрос.УстановитьПараметр("ТипОтгрузки", ?(ЭтаФорма.ТипОтгрузки= Истина, Перечисления.ТипОтгрузки.Поставщику, ""));
1 Сти
 
11.07.18
11:44
Вместо последнего условия в запросе написать
    И ВЫБОР КОГДА &ГалочкаУстановлена ТОГДА ОтгрузкаТовара.ТипОтгрузки = Значение(Перечисление.ТипОтгрузки.Поставщику) ИНАЧЕ ИСТИНА КОНЕЦ


В установке параметров:

Запрос.УстановитьПараметр("ГалочкаУстановлена ", ТипОтгрузки);
2 Len1vec
 
11.07.18
13:08
(1) почему "ИСТИНА" в "ИНАЧЕ ИСТИНА КОНЕЦ"?
3 Cool_Profi
 
11.07.18
13:12
(2) Можешь написать ЛОЖЬ, тебе никто не запрещает )))
4 _Дайвер_
 
11.07.18
13:14
А можешь еще СтрЗаменить юзать
5 AlexToo
 
11.07.18
13:15
Можешь вместо последнего условия воткнуть:
|    И ОтгрузкаТовара.Организация = &Организация
|    "+?(?(ЭтаФорма.ТипОтгрузки= Истина, И ОтгрузкаТовара.ТипОтгрузки=Значение(Перечисление.ТипОтгрузки.Поставщику), ""))+";
6 AlexToo
 
11.07.18
13:15
ну ток условия в кавычках, а то я их пропустил
7 catena
 
11.07.18
13:27
(2)Потому что "иначе выбрать все документы". Т.е. иначе условие должно срабатывать всегда.
8 Len1vec
 
11.07.18
13:51
(7) мерси)