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