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