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

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

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

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



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