|
Установка отбора для СКД на форме отчета | ☑ | ||
---|---|---|---|---|
0
Rollam
09.10.13
✎
15:18
|
Имеется написанный на СКД отчет (управляемая форма).
Непосредственно на форме отчета размещены флаги, с помощью которых должен устанавливаться отбор (аналогичный отбор можно установить в настройках отчета, но на форму флаги выведены для более быстрого доступа). Я создал реквизит отчета "СписокСостояний", который заполняется при изменении флагов и передаю его в настройки отчета, но отбор в некоторых случаях работает совершенно некорректно. Код заполнения и передачи таблицы значений (выполняется на сервере): Отчет.СписокСостояний.Очистить(); Если ЭтаФорма.СтатусПолученоОтЗаказчика = Истина Тогда Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ПолученоОтЗаказчика); КонецЕсли; Если ЭтаФорма.СтатусЗапланировано = Истина Тогда Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Запланировано); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтданоНаПроверку); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтправленНаУтверждениеРуководителю); КонецЕсли; Если ЭтаФорма.СтатусВыполнено = Истина Тогда Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Выполнено); КонецЕсли; Если ЭтаФорма.СтатусОтказано = Истина Тогда Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.БылСовершенОтказОтЗадачи); КонецЕсли; Если ЭтаФорма.СтатусПолученоОтЗаказчика = Ложь И ЭтаФорма.СтатусЗапланировано = Ложь И ЭтаФорма.СтатусВыполнено = Ложь И ЭтаФорма.СтатусОтказано = Ложь Тогда Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ПолученоОтЗаказчика); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Запланировано); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтданоНаПроверку); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.ОтправленНаУтверждениеРуководителю); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.Выполнено); Отчет.СписокСостояний.Добавить(Перечисления.СостояниеЗаданий.БылСовершенОтказОтЗадачи); КонецЕсли; ПараметрСост = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("СписокСостояний"); ПараметрСост.Использование = Истина; ПараметрСост.Значение = Отчет.СписокСостояний; Суть проблемы в том, что, например, при выборе статуса "ПолученоОтЗаказчика" выводятся, помимо записей с данным статусом, и записи со статусом "Выполнено". При этом список состояний в "КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы" содержит лишь одну строку "ПолученоОтЗаказчика". Не могу понять в чем дело. Помогите пожалуйста. |
|||
1
Rollam
09.10.13
✎
15:41
|
"СписокСостояний" задан как параметр отчета и является условием для запроса.
Изначально он заполнен всеми состояниями в самом СКД. При изменении флагов на форме, через описанную выше процедуру, список заменяется на сформированный пользователем. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |