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