Вход | Регистрация

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

Метки:Встроенный язык

Не устанавливает "УстановитьПараметр" в запросе

Я
   ValA
 
14.11.04 - 08:42
Всем доброе утро. В форме настройки отчета устанавливаю отбор по ...
При выполнении запроса пишет что "Параметр..." не установлен. Смотрю на код и ничего не понимаю (в чем причина). Пример подобной реализации взял из УПП "Карточка счета", но делаю для рег.накопления. Может кто свежим глазом найдет ошибку.

Пока Отбор.Количество() > 0 Цикл
  Отбор.Удалить(0);
КонецЦикла;
    
ПоляОтбора = Отбор.ПолучитьДоступныеПоля();
ПоляОтбора.Очистить();
    
Для Каждого ИзмерениеРегистра Из Метаданные.РегистрыНакопления[ИмяРегистраНакопления].Измерения Цикл
  Поле = ПоляОтбора.Добавить(ИзмерениеРегистра.Имя,     ИзмерениеРегистра.Имя, ИзмерениеРегистра.Тип);
  Поле.Отбор = Истина;
КонецЦикла;
    
Отбор.УстановитьДоступныеПоля(ПоляОтбора);
  Для Каждого ИзмерениеРегистра Из Метаданные.РегистрыНакопления [ИмяРегистраНакопления].Измерения Цикл
  Отбор.Добавить(ИзмерениеРегистра.Имя);
КонецЦикла;

ФлагЕстьОтбор = Ложь;
    
    Если Отбор.Количество() > 0 Тогда
        Для Каждого СтрокаОтбора Из Отбор Цикл
            Если СтрокаОтбора.Использование Тогда
                ФлагЕстьОтбор = Истина;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    
    Если ФлагЕстьОтбор Тогда
        ТекстФильтры = "";
        
        Индекс = 0;
        
        Для Каждого СтрокаОтбора Из Отбор Цикл
            Индекс = Индекс + 1;
            
            Если Не СтрокаОтбора.Использование Тогда
                Продолжить;
            КонецЕсли;
            
            Запрос.УстановитьПараметр("Параметр" + Индекс, СтрокаОтбора.Значение);
            
            ТекстВложенногоФильтры = "&Парамет" + Индекс;
            СтрЗначениеФильтры = " " + СтрокаОтбора.Значение;
            
            Если Не ПустаяСтрока(ТекстВложенногоФильтры) Тогда
                Если СтрокаОтбора.ВидСравнения = ВидСравнения.Равно ИЛИ СтрокаОтбора.ВидСравнения = ВидСравнения.НеРавно Тогда
                    ОператорСравнения = " = ";
                    
                    ТекстФильтры = ТекстФильтры + "
                    |    И " + ?(СтрокаОтбора.ВидСравнения = ВидСравнения.НеРавно, " НЕ", "")
                    + СтрокаОтбора.ПутьКДанным + " = " + ТекстВложенногоФильтры;
                Иначе
                    ОператорСравнения = ВидСравненияСтрокой(СтрокаОтбора.ВидСравнения);
                    
                    ТекстФильтры = ТекстФильтры + "
                    |    И " + СтрокаОтбора.ПутьКДанным + ОператорСравнения + " (" + ТекстВложенногоФильтры + ") ";
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
 
 
   ValA
 
1 - 14.11.04 - 09:03
Вопрос снимаю, нашел ошибку. Писать оказывается не умею, буквы пропускаю, а может клаву менять пора.


Список тем форума
Рекламное место пустует   Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует