Регистрации в налоговом органе / Форма представителя / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ВыполняетсяЗакрытие;

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
		ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры.ЗначенияЗаполнения);
	КонецЕсли;
	
	Инициализация();
	
	УправлениеФормой(ЭтотОбъект);
	УправлениеФормойПриСоздании();
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ВыполняетсяЗакрытие = Ложь;
КонецПроцедуры

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

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

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ПредставительЮридическоеЛицоПриИзменении(Элемент)
	
	Если ПредставительЮридическоеЛицо = 1 Тогда
		ФизическоеЛицо = Неопределено;
	Иначе
		ЮридическоеЛицо = Неопределено;
		УполномоченноеЛицоПредставителя = "";
	КонецЕсли;
	
	УправлениеФормой(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ЮридическоеЛицоПриИзменении(Элемент)
	
	Если ПредставительЮридическоеЛицо = 1 Тогда
		Представитель = ЮридическоеЛицо;
	КонецЕсли;
	
	УправлениеФормой(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ФизическоеЛицоПриИзменении(Элемент)
	
	Если ПредставительЮридическоеЛицо = 0 Тогда
		Представитель = ФизическоеЛицо;
	КонецЕсли;
	
	УправлениеФормой(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ДоверенностьПриИзменении(Элемент)
	
	//++ НЕ УТ

	ИнтерфейсыВзаимодействияБРОКлиент.ДоверенностьПриИзменении(Элемент, ЭтотОбъект);

	//-- НЕ УТ
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ПользовательПриИзменении(Элемент)
	
	//++ НЕ УТ
	
	Если НЕ ЗначениеЗаполнено(Представитель) И ЗначениеЗаполнено(Пользователь) Тогда
		
		ФизическоеЛицо = МультирежимВызовСервера.ФизЛицоПоПользователюИзСправочникаПользователи(Пользователь);
		ФизическоеЛицоПриИзменении(Неопределено);
		
	КонецЕсли;
	
	//-- НЕ УТ
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ДоверенностьОткрытие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ПоказатьЗначение(, Доверенность);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Записать(Команда)
	
	Если ПроверитьЗаполнение() Тогда
		ЗаписатьДанные();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	Если ПроверитьЗаполнение() Тогда
		Модифицированность = Ложь;
		ЗаписатьДанные();
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура Инициализация()
	
	Если ЗначениеЗаполнено(Представитель)
		И ТипЗнч(Представитель) = Тип("СправочникСсылка.Контрагенты") Тогда
		
		ПредставительЮридическоеЛицо = 1;
		ЮридическоеЛицо	= Представитель;
		
	Иначе
		
		ПредставительЮридическоеЛицо = 0;
		ФизическоеЛицо	= Представитель;
		
	КонецЕсли;
	
	//++ НЕ УТ
	
	Руководитель = ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервераПереопределяемый.Руководитель(Владелец);
	
	ИнтерфейсыВзаимодействияБРОВызовСервера.ИнициализацияВыбораДоверенности(ЭтотОбъект);
	
	//-- НЕ УТ
	
	ЗакрыватьПриВыборе	= Ложь;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УправлениеФормой(Форма)
	
	Элементы = Форма.Элементы;
	
	ПредставительЮрЛицо	= Форма.ПредставительЮридическоеЛицо = 1;
	
	Элементы.ФизическоеЛицо.Доступность = НЕ ПредставительЮрЛицо;
	Элементы.ЮридическоеЛицо.Доступность = ПредставительЮрЛицо;
	Элементы.УполномоченноеЛицоПредставителя.Доступность = ПредставительЮрЛицо;
	
КонецПроцедуры

&НаСервере
Процедура УправлениеФормойПриСоздании()
	
	Элементы.ГруппаПользователь.Видимость = НесколькоПодписантов;
	
	КлючСохраненияПоложенияОкна = Строка(НесколькоПодписантов);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьДанные()
	
	СписокСвойств = "Представитель,УполномоченноеЛицоПредставителя,ДокументПредставителя,Доверенность,
		|Код,Пользователь,НесколькоПодписантов,ВыбраннаяСтрока,ЭтоДобавление";
	ЗначениеВыбора = Новый Структура(СписокСвойств);
	ЗаполнитьЗначенияСвойств(ЗначениеВыбора, ЭтотОбъект);
	
	Модифицированность = Ложь;
	
	ОповеститьОВыборе(ЗначениеВыбора);
	
КонецПроцедуры

&НаКлиенте
Процедура ВопросСохранитьИзмененияЗавершение(Результат, ДополнительныеПараметры) Экспорт

	Если Результат = КодВозвратаДиалога.Да Тогда
		Если ПроверитьЗаполнение() Тогда
			ЗаписатьДанные();
			Закрыть();
		КонецЕсли;
	ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда
		ВыполняетсяЗакрытие = Истина;
		Модифицированность = Ложь;
		Закрыть();
	КонецЕсли;

КонецПроцедуры

#КонецОбласти

Связанные материалы