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