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