Зарплатные проекты / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	
	Если ИспользоватьЭлектронныйДокументооборотСБанком Тогда
		
		Если ОбменСБанкамиПоЗарплатнымПроектам.ИспользоватьТиповойЭОИСБанком(Ссылка) Тогда
			МаксимальнаяДлинаНомераДоговора = 
				ОбменСБанкамиПоЗарплатнымПроектамКлиентСервер.МаксимальнаяДлинаНомераДоговора(ФорматФайла);
			Если СтрДлина(СокрЛП(НомерДоговора)) > МаксимальнаяДлинаНомераДоговора Тогда
				ТекстОшибки = 
					СтрШаблон(
						НСтр("ru = 'При использовании типового обмена длина номера договора поддерживается до %1 символов.'"),
						МаксимальнаяДлинаНомераДоговора);
				ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, "Объект.НомерДоговора",, Отказ);
			КонецЕсли; 
			
			Для Каждого СтрокаВидаЗачисленияПоСпособуВыплат Из ВидыЗачисленийПоСпособамВыплат Цикл
				Отбор = Новый Структура;
				Отбор.Вставить("СпособВыплат", СтрокаВидаЗачисленияПоСпособуВыплат.СпособВыплат);
				Если ВидыЗачисленийПоСпособамВыплат.НайтиСтроки(Отбор).Количество() > 1 Тогда
					ОбщегоНазначения.СообщитьПользователю(
						СтрШаблон(НСтр("ru = 'Способ выплат %1 дублируется'"), СтрокаВидаЗачисленияПоСпособуВыплат.СпособВыплат),
							ЭтотОбъект, "ВидыЗачисленийПоСпособамВыплат[" + (СтрокаВидаЗачисленияПоСпособуВыплат.НомерСтроки -1) + "].СпособВыплат",, Отказ);
				КонецЕсли;
			КонецЦикла;
			
		КонецЕсли;
		
	Иначе	
		
		ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Банк");
		ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "НомерДоговора");
		ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "СистемыРасчетовПоБанковскимКартам");
		ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "СистемыРасчетовПоБанковскимКартам.СистемаРасчетовПоБанковскимКартам");
		ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "КодировкаФайла");
		
	КонецЕсли;
	
КонецПроцедуры

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

	Если ВАрхиве Тогда
		ПредупредитьЗарплатныйПроектИспользуется(Ссылка);
	КонецЕсли;
	
КонецПроцедуры

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

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

Процедура ПредупредитьЗарплатныйПроектИспользуется(ЗарплатныйПроект)

	ОбменСБанкамиПоЗарплатнымПроектам.ПредупредитьЗарплатныйПроектИспользуется(ЗарплатныйПроект);

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

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

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

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