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