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