Имя: Пароль:
1C
1С v8
Установка отбора для СКД на форме отчета
0 Rollam
 
09.10.13
15:18
Имеется написанный на СКД отчет (управляемая форма).
Непосредственно на форме отчета размещены флаги, с помощью которых должен устанавливаться отбор (аналогичный отбор можно установить в настройках отчета, но на форму флаги выведены для более быстрого доступа).

Я создал реквизит отчета "СписокСостояний", который заполняется при изменении флагов и передаю его в настройки отчета, но отбор в некоторых случаях работает совершенно некорректно.

Код заполнения и передачи таблицы значений (выполняется на сервере):

    Отчет.СписокСостояний.Очистить();
    
    Если ЭтаФорма.СтатусПолученоОтЗаказчика = Истина Тогда
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ПолученоОтЗаказчика);
    КонецЕсли;
    Если ЭтаФорма.СтатусЗапланировано = Истина Тогда
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Запланировано);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтданоНаПроверку);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтправленНаУтверждениеРуководителю);
    КонецЕсли;
    Если ЭтаФорма.СтатусВыполнено = Истина Тогда
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Выполнено);
    КонецЕсли;
    Если ЭтаФорма.СтатусОтказано = Истина Тогда
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.БылСовершенОтказОтЗадачи);
    КонецЕсли;    
    
    Если ЭтаФорма.СтатусПолученоОтЗаказчика = Ложь И ЭтаФорма.СтатусЗапланировано = Ложь И ЭтаФорма.СтатусВыполнено = Ложь И ЭтаФорма.СтатусОтказано = Ложь Тогда
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ПолученоОтЗаказчика);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Запланировано);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтданоНаПроверку);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтправленНаУтверждениеРуководителю);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Выполнено);
        Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.БылСовершенОтказОтЗадачи);
    КонецЕсли;
    
    ПараметрСост = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("СписокСостояний");
    ПараметрСост.Использование = Истина;
    ПараметрСост.Значение  = Отчет.СписокСостояний;



Суть проблемы в том, что, например, при выборе статуса "ПолученоОтЗаказчика" выводятся, помимо записей с данным статусом, и записи со статусом "Выполнено". При этом список состояний в "КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы" содержит лишь одну строку "ПолученоОтЗаказчика".
Не могу понять в чем дело. Помогите пожалуйста.
1 Rollam
 
09.10.13
15:41
"СписокСостояний" задан как параметр отчета и является условием для запроса.
Изначально он заполнен всеми состояниями в самом СКД.
При изменении флагов на форме, через описанную выше процедуру, список заменяется на сформированный пользователем.
Ошибка? Это не ошибка, это системная функция.