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