Здравствуйте. Пришёл с других языков и сегодня удивился следующему: не требующий выполнения код запроса всё равно выполняется. Пример:
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ (ВЫБОР КОГДА &ИспользоватьМойПараметр = ЛОЖЬ ТОГДА ДАТАВРЕМЯ(2012,1,1) ИНАЧЕ НАЧАЛОПЕРИОДА(&МойПараметр, ДЕНЬ) КОНЕЦ)";
Запрос.УстановитьПараметр("ИспользоватьМойПараметр", ЛОЖЬ);
Запрос.УстановитьПараметр("МойПараметр", Неопределено);
Выборка = Запрос.Выполнить().Выбрать(); //ОШИБКА неверные параметры выполнения НАЧАЛОПЕРИОДА
Идея была в следующем: параметр функции по умолчанию Неопределено, а иногда - Дата, и вот его (не меняя) запихивать в запрос. И тут БАЦ правая часть выражения запроса зачем-то выполняется, даже если не нужна.
Прошу знатоков объяснить, как же так?)