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