Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Реализация);
КонецЦикла;
При выполнении в отладчике код почему-то завершается на строке
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
возвращается на форму обработки, не заходя внутрь условного оператора, причем Запрос.Выполнить(ТекстЗапроса) в табло отладчика возвращает 1. Эка ни на что не ругается, так вот собственно вопрос почему может не выполнятся код
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
Сообщить(Запрос.Реализация);
КонецЦикла;
?
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Контрагенты = Справочник.Контрагенты.ТекущийЭлемент;
|Группировка Контрагенты без групп;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Контрагенты
Таб.ВывестиСекцию("Контрагенты");
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший