Книга знаний

1С:Предприятие

Необязательные отборы в запросе

Порою хочется написать текст запроса, чтобы включить в него всевозможные отборы, но использовать эти отборы только тогда, когда нужно. Конечно, это легко делается с помощью построителя или динамического конструирования текста запроса, но есть еще один удобный вариант, когда лень возиться с построителем.Автор статьи: Гений 1С
Последняя редакция №1 от 05.10.07
URL: http://kb.mista.ru/article.php?id=596

Ключевые слова: запрос,текст


Суть в том, чтобы проверять, заполнен параметр или нет, через сравнение с НЕОПРЕДЕЛЕНО.

Пример:
//Возможные отборы: Номер, Контрагент, Рынок

Функция ПолучитьДоговорИзБазыДоговоров(П, Ключ)
   Прм=Новый Структура("Номер, Контрагент, Рынок");
   ЗаполнитьЗначенияСвойств(Прм, Ключ);
   Возврат обБыстрыйЗапрос(
   "ВЫБРАТЬ
   |    Т.Ссылка КАК Договор
   |ИЗ
   |    Документ.КарточкаДоговора КАК Т
   |ГДЕ
   |    ВЫБОР
   |            КОГДА &НомерДоговора <> НЕОПРЕДЕЛЕНО
   |                    И &НомерДоговора <> Т.НомерДоговораКонтрагента
   |                ТОГДА ЛОЖЬ
   |            ИНАЧЕ ИСТИНА
   |        КОНЕЦ
   |    И ВЫБОР
   |            КОГДА &Контрагент <> НЕОПРЕДЕЛЕНО
   |                    И Т.Контрагент <> &Контрагент
   |                ТОГДА ЛОЖЬ
   |            ИНАЧЕ ИСТИНА
   |        КОНЕЦ
   |    И ВЫБОР
   |            КОГДА &Рынок <> НЕОПРЕДЕЛЕНО
   |                    И Т.Рынок <> &Рынок
   |                ТОГДА ЛОЖЬ
   |            ИНАЧЕ ИСТИНА
   |        КОНЕЦ",
   Прм,
   "Договор",
   истина);    
КонецФункции


Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика