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