v8: Хитрое написание текстов запросов с необязательными условиями Ключевые слова: запрос,условие
В типовых конфигурациях обычно пишут так:
Если ВыбТовары.Количество()=0 Тогда
Условие="";
Иначе
Условие=" ГДЕ Товар в (&Товары)";
КонецЕсли;
Запрос.Текст="ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура "+Условие;
Я предлагаю писать более изящно:
Запрос.Текст="ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ &Условие";
Если ВыбТовары.Количество()=0 Тогда
Запрос.Текст=СтрЗаменить(Запрос.Текст, "&Условие", "ИСТИНА");
Иначе
Запрос.Текст=СтрЗаменить(Запрос.Текст, "&Условие", "(Товар в (&Товары))");
КонецЕсли;
Преимущество в том, что текст запроса разбирается конструктором, в отличие от типового подхода. |