Имя: Пароль:
1C
1С v8
ПостроительОтчета вызов формы с отбором
,
0 Pchelinka
 
03.04.18
17:48
Всем весеннего!) Помогите справиться с задачей, пж. Есть обработка экспорта справочника номенклатуры, попросили добавить отбор по Сезонам. Сезоны учитываются в справочнике ЗначенияСвойствОбъектов. Нужно чтобы в форме отбора Построителя отчета, открывался справочник ЗначенияСвойствОбъектов с фильтром значений по сезонам. Сделала отдельно функцию получения списка используемых в Характеристике номенклатуры значений сезонов для передачи его в фильтр отбора при открытии формы выбора конкретного сезона.Не пойму как передать значение в форму выбора и затем передать несколько выбранных значений в отбор сезона построителя отчета((
Вот часть кода в Процедуре ИнициализацияОтчета():
ПостроительОтчета.Отбор.Добавить("Сезон",,"Сезон");
НужныйСезон = ПоискСезоновИспользованныхВХарактеристике();//получение списка сезонов
ПостроительОтчета.Отбор.Сезон.Значение = Справочники.ЗначенияСвойствОбъектов.ПустаяСсылка();//задаю тип
ПостроительОтчета.Отбор.Сезон.ВидСравнения = ВидСравнения.ВСписке;
а далее нужно получить форму справочника для выбора отфильтрованного по сезонам...((
Как вариант добавила процедуру ОтборЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка) и в ней задала параметры при открытии формы
///тут в начале надо как-то обратиться что это касается только Поля, где значение Сезон..ПостроительОтчета.Отбор.Сезон, чтобы его форма справочника открывалась..у остальных значений поля свои.

СтандартнаяОбработка=Ложь;
НужныйСезон = ПоискСезоновИспользованныхВХарактеристике();        
//мФорма = Справочники.ЗначенияСвойствОбъектов.ПолучитьФормуВыбора("ФормаВыбора");
мФорма = Справочники.ЗначенияСвойствОбъектов.ПолучитьФормуВыбора();
мФорма.РежимВыбора=Истина;
мФорма.МножественныйВыбор = Истина;
мФорма.отбор.Наименование.ВидСравнения = ВидСравнения.ВСписке;
мФорма.отбор.Наименование.Значение = НужныйСезон;
мФорма.отбор.Наименование.Использование = Истина;        
ВыбранноеЗначение = мФорма.ОткрытьМодально();
Элемент.Значение = ВыбранноеЗначение;// так выбранные значения не переносятся в посторитель
//ПостроительОтчета.Отбор.Сезон.Значение = ВыбранноеЗначение;// так тоже не переносит значение ругается на тип
1 Darych
 
03.04.18
18:00
передаешь параметром, затем ловишь их.. и это..модальность? версиию
2 Pchelinka
 
05.04.18
16:32
Спасибо, получилось))

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