Имя: Пароль:
1C
1С v8
Запрос, выбор договора
0 zzzLEXzzz
 
25.09.13
14:11
Приветствую, 1С 8.2 УТ, есть запрос, что я в нём сделал не так, нужно чтобы было условие, если Описание_ содержит "чек" тогда договор присваиваться с наименованием "договор КП" иначе договор присваиваться с наименованием "Основной договор", описание_ это параметр вот запрос

запрос = новый запрос;
                            запрос.Текст = "ВЫБРАТЬ
                                           |    ДоговорыКонтрагентов.Ссылка КАК Договор
                                           |ИЗ
                                           |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                                           |ГДЕ
                                           |    ДоговорыКонтрагентов.Организация = &Организация
                                           |    И ДоговорыКонтрагентов.Владелец = &Контрагент
                                           |    И ДоговорыКонтрагентов.Наименование <> ""Бонус""
                                           |    И ДоговорыКонтрагентов.Наименование <> ""Оборудование""
                                           |    И ДоговорыКонтрагентов.ТорговыйПредставитель = &Агент
                                           |    И ВЫБОР
                                           |            КОГДА &Описание_ = ""Чек""
                                           |                ТОГДА ДоговорыКонтрагентов.Наименование = ""Договор КП""
                                           |            ИНАЧЕ ДоговорыКонтрагентов.Наименование = ""Основной договор""
                                           |        КОНЕЦ";
                                          
                            запрос.УстановитьПараметр("Организация", Док_.Организация);
                            запрос.УстановитьПараметр("Контрагент", Док_.Контрагент);
                            запрос.УстановитьПараметр("Агент", Агент_.Ссылка);
                            Запрос.УстановитьПараметр("Описание_","Чек");
                            
                            выборка = запрос.Выполнить().Выбрать();
                            
                            Если выборка.Количество() <> 0 Тогда
                                //заполним реквизит найденным реквизитом
                                выборка.Следующий();
                                Док_.ДоговорКонтрагента = выборка.Договор;
                            Иначе
                                Сообщить("Не найден Договор по Организации "+Строка(Док_.Организация)+", ТП- "+Строка(Агент_.Ссылка));
                                Док_.ДоговорКонтрагента = Док_.Контрагент.ОсновнойДоговорКонтрагента;
                            КонецЕсли;
1 shuhard
 
25.09.13
14:13
(0) И ВЫБОР
                                           |            КОГДА &Описание_ = ""Чек""
                                           |                ТОГДА ДоговорыКонтрагентов.Наименование = ""Договор КП""
                                           |            ИНАЧЕ ДоговорыКонтрагентов.Наименование = ""Основной договор""
                                           |        КОНЕЦ";

не а

нужно использовать Подобно
2 Ненавижу 1С
 
гуру
25.09.13
14:14
И
ДоговорыКонтрагентов.Наименование = (ВЫБОР
                                           |            КОГДА &Описание_ = ""Чек""
                                           |                ТОГДА ""Договор КП""
                                           |            ИНАЧЕ ""Основной договор""
                                           |        КОНЕЦ)";
3 chelentano
 
25.09.13
14:14
(0) КОГДА &Описание_ = ""Чек"" и Запрос.УстановитьПараметр("Описание_","Чек");

у тебя параметр "Описание_" всегда равно "Чек"
4 zzzLEXzzz
 
25.09.13
14:16
(3) подскажи пожалуйста, как тогда правильно описать?
5 zzzLEXzzz
 
25.09.13
14:27
(2) Сделал так, он всё равно выбирает не тот договор
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн