Выбор когда &АнализНаименования Тогда
ИмяТаблицы.Наименование
Иначе
ИмяТаблицы.Код
Конец
2) Можно, через построитель запроса. Всё писать не буду, примерно так реализуется:
ПостроительЗапроса = Новый ПостроительЗапроса;
ПрстроительЗапроса.текст =
Выбрать * из ИмяТаблицы
{где
имятаблицы.код как код,
Имятаблицы.Наименование как наименование}
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.Текст = "ВЫБРАТЬ
| *
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|{ГДЕ
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Контрагент.* КАК Контрагент";
Если ЕстьУсловиеПоНомеру Тогда
// Здесь в текст запроса добавится строка "ГДЕ ЗаказКлиента.Номер = &Номер
ЭлОтбора = ПостроительЗапроса.Отбор.Добавить("Номер");
ЭлОтбора.Использование = Истина;
ЭлОтбора.Значение = КлючИЗначение.Значение;
КонецЕсли;
Если ЕстьУсловиеПоКонтрагенту Тогда
// Здесь в текст запроса добавится строка "ГДЕ ЗаказКлиента.Контрагент В &СписокКонтрагентов"
ЭлОтбора = ПостроительЗапроса.Отбор.Добавить("Контрагент");
ЭлОтбора.Использование = Истина;
ЭлОтбора.ВидСравнения = ВидСравнения.ВСписке;
ЭлОтбора.Значение = СписокКонтрагентов;
КонецЕсли;
// В "Запрос.Текст" система сама добавит нужные условия, если ты их добавлял в "отбор" выше
Запрос = ПостроительЗапроса.ПолучитьЗапрос();
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс