#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
Элементы.СтраницыРеквизитовБанка.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
Элементы.СтраницыРеквизитовБанкаДляРасчетов.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
КонецЕсли;
ОсновнаяСтрана = Константы.ОсновнаяСтрана.Получить();
УстановитьВерсиюФормата();
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ПриЧтенииСозданииНаСервере();
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ)
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
ЗаполнитьЗначенияСвойств(Объект, ЭтотОбъект, ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина));
КонецЕсли;
Объект.НаименованиеБанкаМеждународное = НаименованиеБанкаМеждународное;
Если Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
ЗаполнитьЗначенияСвойств(Объект, ЭтотОбъект, ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина, Истина));
КонецЕсли;
Объект.НаименованиеБанкаДляРасчетовМеждународное = НаименованиеБанкаДляРасчетовМеждународное;
Если ИспользоватьТекстКорреспондента Тогда
Объект.ТекстКорреспондента = ТекстКорреспондента;
Иначе
Объект.ТекстКорреспондента = "";
КонецЕсли;
Если ПустаяСтрока(Объект.Наименование) Тогда
Объект.Наименование = СформироватьАвтоНаименование(ЭтотОбъект);
КонецЕсли;
Если Не ИспользуетсяБанкДляРасчетов Тогда
Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов = Ложь;
КонецЕсли;
Если Модифицированность Тогда
ДубльБанковскогоСчета = НайтиДубльБанковскогоСчета(Объект.Ссылка, Объект.НомерСчета, Объект.Владелец, Объект.ВалютаДенежныхСредств, Объект.Банк);
Если ДубльБанковскогоСчета <> Неопределено Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Найден банковский счет ""%1"", с аналогичным номером в указанном банке.
|Продолжить запись текущего элемента?'"),
ДубльБанковскогоСчета);
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаДублейЗавершение", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверкаДублейЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
Модифицированность = Ложь;
Записать();
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_БанковскиеСчетаОрганизаций", ПараметрыЗаписи, Объект.Ссылка);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДекорацияПодключениеBankFeedsНажатие(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияДобавитьПодключениеBankFeedsНажатие(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВладелецПриИзменении(Элемент)
ВладелецПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НомерСчетаПриИзменении(Элемент)
НомерСчетаПриИзмененииСервер();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЭтоIBANПриИзменении(Элемент)
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
ЭтоИностранныйБанк = Истина;
ЭтоИностранныйБанк = НЕ ЭтоБанкРФ();
Если Объект.ЭтоIBAN Тогда
ПроверитьIBAN(ЭтотОбъект)
КонецЕсли;
Если ЭтоИностранныйБанк <> Объект.ИностранныйБанк Тогда
Объект.ИностранныйБанк = ЭтоИностранныйБанк;
ИностранныйБанкПриИзменении();
КонецЕсли;
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы(ЭтотОбъект));
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
ЗаполнитьСписокВыбораТипаСчета(Элементы.ТипСчета.СписокВыбора);
ЗаполнитьСписокВыбораТипаСчетаЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура БанкПриИзменении(Элемент)
ПриИзмененииБанка();
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаПриИзменении(Элемент)
Объект.РучноеИзменениеРеквизитовБанка = СпособУказанияБанка = "РучноеЗаполнениеРеквизитов";
ПриИзмененииРучноеИзменениеРеквизитовБанка()
КонецПроцедуры
&НаКлиенте
Процедура БанкВГруппеПриИзменении(Элемент)
ПриИзмененииБанка();
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура КоррСчетБанкаПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура СчетВБанкеДляРасчетовПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
СформироватьАвтоНаименование(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаМеждународноеПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВалютаДенежныхСредствПриИзменении(Элемент)
ВалютаДенежныхСредствПриИзмененииКлиент();
ВалютаДенежныхСредствПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ИспользуетсяБанкДляРасчетовПриИзменении(Элемент)
Если ИспользуетсяБанкДляРасчетов Тогда
ЗаголовокСтраницаБанкДляРасчетов = НСтр("ru = 'Ввести реквизиты банка вручную...'");
Иначе
Объект.БанкДляРасчетов = Неопределено;
СписокРеквизитов = ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина, Истина);
ДенежныеСредстваКлиентСервер.ОчиститьБанковскиеРеквизитыНаФорме(ЭтотОбъект, СписокРеквизитов);
ЗаполнитьЗначенияСвойств(Объект, ЭтотОбъект, СписокРеквизитов);
СпособУказанияБанкаДляРасчетов = "РучноеЗаполнениеРеквизитов";
Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов = Истина;
КонецЕсли;
НастроитьЗависимыеЭлементыФормы();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура СпособУказанияБанкаДляРасчетовПриИзменении(Элемент)
Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов = СпособУказанияБанкаДляРасчетов = "РучноеЗаполнениеРеквизитов";
ПриИзмененииРучноеИзменениеРеквизитовБанкаДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура БанкДляРасчетовВГруппеПриИзменении(Элемент)
ПриИзмененииБанкаДляРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура БИКБанкаДляРасчетовПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура СВИФТБанкаДляРасчетовПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеБанкаДляРасчетовМеждународноеПриИзменении(Элемент)
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект)
КонецПроцедуры
&НаКлиенте
Процедура ТипСчетаПриИзменении(Элемент)
ЗаполнитьСписокВыбораФорматаОбмена(Объект.ТипСчета, Элементы.ФорматОбмена.СписокВыбора);
СформироватьАвтоНаименование(ЭтотОбъект);
УстановитьПараметрыОбменаСБанком(Объект);
НастроитьЗависимыеЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьТекстКорреспондентаПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ФайлЗагрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ВыборФайла(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ФайлВыгрузкиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ВыборФайла(Элемент, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ФайлЗагрузкиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьФайлДляПросмотра(Элемент, НСтр("ru='Файл загрузки'"));
КонецПроцедуры
&НаКлиенте
Процедура ФайлВыгрузкиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьФайлДляПросмотра(Элемент, НСтр("ru='Файл выгрузки'"));
КонецПроцедуры
&НаКлиенте
Процедура РежимОбменаВключенПриИзменении(Элемент)
СтрокаВключенОбменСБанком = ?(Объект.ОбменСБанкомВключен, НСтр("ru = 'включен'"), НСтр("ru = 'не включен'"));
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ФорматОбменаПриИзменении(Элемент)
Если Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c")
ИЛИ Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.MT940") Тогда
Объект.Кодировка = "Windows"
Иначе
Объект.Кодировка = "UTF-8"
КонецЕсли;
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтотОбъект, "ФорматОбмена", РеквизитыФормы(ЭтотОбъект));
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияДобавитьСоглашениеЭДНажатие(Элемент)
НеДобавлять = Ложь;
Если Не ЗначениеЗаполнено(Объект.Владелец) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru='Не указана организация'"), , "Владелец", "Объект", НеДобавлять);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Банк) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru='Не выбран банк из справочника'"), , "Банк", "Объект", НеДобавлять);
КонецЕсли;
Если НеДобавлять Тогда
Возврат;
КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ПослеСозданияНастройкиОбмена", ЭтотОбъект);
ОбменСБанкамиКлиент.ОткрытьСоздатьНастройкуОбмена(
Объект.Владелец, Объект.Банк, Объект.НомерСчета, Обработчик);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияСоглашениеЭДНажатие(Элемент)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ключ", СоглашениеЭД);
ОткрытьФорму("Справочник.НастройкиОбменСБанками.Форма.ФормаЭлемента", ПараметрыФормы, ЭтотОбъект);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВвестиТранзитныйСчетНажатие(Элемент)
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ТекстСообщения = НСтр("ru = 'Счет будет записан перед вводом транзитного счета.'");
ИначеЕсли Модифицированность Тогда
ТекстСообщения = НСтр("ru = 'Счет изменен и будет записан перед вводом транзитного счета.'");
КонецЕсли;
Если Не ПустаяСтрока(ТекстСообщения) Тогда
ТекстВопроса = СтрШаблон(НСтр("ru = '%1
|Продолжить?'"), ТекстСообщения);
Иначе
ОткрытьФормуВводаТранзитногоСчета();
Возврат;
КонецЕсли;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПередВводомТранзитногоСчета", ЭтотОбъект);
Кнопки = РежимДиалогаВопрос.ДаНет;
ПоказатьВопрос(ОповещениеОЗавершении, ТекстВопроса, Кнопки);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РежимОбменаПрямойОбменПриИзменении(Элемент)
РежимОбменаПриИзменении("ИспользоватьПрямойОбменСБанком");
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РежимОбменаBankFeedsПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОтдельныйСчетГОЗПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ГосударственныйКонтрактПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТекстДиректБанкГоризонтальноОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ОбменСБанкамиКлиент.ОбработкаНавигационнойСсылкиРекламыДиректБанк(НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РежимОбменаКлиентБанкаПриИзменении(Элемент)
РежимОбменаПриИзменении("ИспользоватьОбменСБанком");
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СтранаБанкаПриИзменении(Элемент)
Объект.СтранаБанка = СтранаБанка;
УстановитьПризнакИностранныйБанк();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьКаталогВыгрузкиПриИзменении(Элемент)
Объект.ФайлВыгрузки = "";
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьКаталогЗагрузкиПриИзменении(Элемент)
Объект.ФайлЗагрузки = "";
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиКазначейскогоСчетаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СчетПоГосконтрактуПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиКазначейскогоСчетаПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НомерЛицевогоСчетаПриИзменении(Элемент)
Возврат;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
ОбщегоНазначенияУТКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(
ЭлементИлиКоманда,
НавигационнаяСсылка = Неопределено,
СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьВерсиюФормата()
Если Не ЗначениеЗаполнено(Объект.Ссылка) И НЕ ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Объект.ФорматОбмена = Перечисления.ФорматОбменаСБанком.ISO20022;
Объект.Кодировка = "UTF-8"
КонецЕсли;
ФорматыОбмена = Новый Массив;
КлиентБанкЛокализация.ПриЗаполненииФорматовОбмена(ФорматыОбмена);
Для Каждого Элемент Из ФорматыОбмена Цикл
Элементы.ФорматОбмена.СписокВыбора.Добавить(Элемент)
КонецЦикла
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТекстКорреспондента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьТекстКорреспондента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.FormBackColor);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.BorderColor);
КонецПроцедуры
#Область ПриИзмененииРеквизитов
&НаКлиенте
Процедура ВалютаДенежныхСредствПриИзмененииКлиент()
ВалютныйСчет = (ЗначениеЗаполнено(Объект.ВалютаДенежныхСредств) И Объект.ВалютаДенежныхСредств <> ВалютаРеглУчета);
КонецПроцедуры
&НаСервере
Процедура ВалютаДенежныхСредствПриИзмененииСервер()
СформироватьАвтоНаименование(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВладелецПриИзмененииНаСервере()
СформироватьАвтоНаименование(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИностранныйБанкПриИзменении()
ИностранныйБанкПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ИностранныйБанкПриИзмененииНаСервере()
Если Объект.ИностранныйБанк
И НЕ ЗначениеЗаполнено(Объект.Ссылка)
И Не ЗначениеЗаполнено(Объект.ОсновнойБанковскийСчет) Тогда
Объект.ТипСчета = Неопределено;
КонецЕсли;
ЗаполнитьСписокВыбораТипаСчета(Элементы.ТипСчета.СписокВыбора);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииБанка()
Элементы.Банк.ПодсказкаВвода = "";
Если ЗначениеЗаполнено(Объект.Банк) Тогда
ВывестиПредупреждениеОПрекращенииДеятельностиБанка();
Объект.РучноеИзменениеРеквизитовБанка = Ложь;
СпособУказанияБанка = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("Банк", Объект.Банк, Истина);
Иначе
Объект.РучноеИзменениеРеквизитовБанка = Истина;
СпособУказанияБанка = "РучноеЗаполнениеРеквизитов";
ЗаполнитьРеквизитыБанкаПоБанку("Банк", ПредопределенноеЗначение("Справочник.КлассификаторБанков.ПустаяСсылка"), Истина);
КонецЕсли;
УстановитьПризнакИностранныйБанк();
Если Объект.ЭтоIBAN Тогда
ПроверитьIBAN(ЭтотОбъект)
КонецЕсли;
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы(ЭтотОбъект));
Если ЗначениеЗаполнено(Объект.Банк) Тогда
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
Иначе
ЗаголовокСтраницаБанк = НСтр("ru = 'Ввести реквизиты банка вручную...'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииБанкаДляРасчетов()
Элементы.БанкДляРасчетов.ПодсказкаВвода = "";
Если ЗначениеЗаполнено(Объект.БанкДляРасчетов) Тогда
Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов = Ложь;
СпособУказанияБанкаДляРасчетов = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("БанкДляРасчетов", Объект.БанкДляРасчетов, Истина);
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект);
Иначе
ЗаголовокСтраницаБанкДляРасчетов = НСтр("ru = 'Ввести реквизиты банка вручную...'")
КонецЕсли;
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы(ЭтотОбъект));
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииРучноеИзменениеРеквизитовБанка()
РеквизитыФормы = РеквизитыФормы(ЭтотОбъект);
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
Элементы.Банк.ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
Объект.Банк = Неопределено;
Иначе
Элементы.Банк.ПодсказкаВвода = "";
КонецЕсли;
РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервере();
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииРучноеИзменениеРеквизитовБанкаДляРасчетов()
РеквизитыФормы = РеквизитыФормы(ЭтотОбъект);
Если Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
Элементы.БанкДляРасчетов.ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
Объект.БанкДляРасчетов = Неопределено;
Иначе
Элементы.БанкДляРасчетов.ПодсказкаВвода = "";
КонецЕсли;
РучноеИзменениеРеквизитовБанкаДляРасчетовПриИзмененииНаСервере();
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЭлементыФормы(Форма, ИзмененныйРеквизит = "", ДополнительныеРеквизиты = Неопределено)
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(Форма, ИзмененныйРеквизит, ДополнительныеРеквизиты);
Если Не ЗначениеЗаполнено(ИзмененныйРеквизит) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанкаМеждународный", "Видимость",
Не Форма.Элементы.ГруппаБанк.Видимость И Форма.Элементы.КоррСчетБанка.Видимость);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"КоррСчетБанкаМеждународныйПоСсылке", "Видимость",
Не Форма.Элементы.ГруппаБанкПоСсылке.Видимость И Форма.Элементы.КоррСчетБанкаПоСсылке.Видимость);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"СчетВБанкеДляРасчетовМеждународный", "Видимость",
Не Форма.Элементы.ГруппаБанк.Видимость И Форма.Элементы.СчетВБанкеДляРасчетов.Видимость);
КонецЕсли;
Если Форма.Объект.РучноеИзменениеРеквизитовБанка Тогда
Форма.Элементы.СтраницыРеквизитовБанка.ТекущаяСтраница = Форма.Элементы.РучныеРеквизитыБанка;
Иначе
Форма.Элементы.СтраницыРеквизитовБанка.ТекущаяСтраница = Форма.Элементы.РеквизитыБанкаПоСсылке;
КонецЕсли;
Если Форма.Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
Форма.Элементы.СтраницыРеквизитовБанкаДляРасчетов.ТекущаяСтраница = Форма.Элементы.РучныеРеквизитыБанкаДляРасчетов;
Иначе
Форма.Элементы.СтраницыРеквизитовБанкаДляРасчетов.ТекущаяСтраница = Форма.Элементы.РеквизитыБанкаДляРасчетовПоСсылке;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервере()
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
ЗаполнитьРеквизитыБанкаПоБанку("Банк", Справочники.КлассификаторБанков.ПустаяСсылка(), Истина);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере();
Если НЕ Объект.РучноеИзменениеРеквизитовБанка Тогда
ЗаполнитьРеквизитыБанкаПоБИК("Банк", БИКБанка, Истина)
КонецЕсли;
РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервереЛокализация();
БанкПриИзмененииНаСервере();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РучноеИзменениеРеквизитовБанкаДляРасчетовПриИзмененииНаСервере()
Если НЕ Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
ЗаполнитьРеквизитыБанкаПоБИК("БанкДляРасчетов", БИКБанкаДляРасчетов, Истина)
КонецЕсли;
Если Не Объект.БанкДляРасчетов.Пустая() Тогда
ЗаполнитьРеквизитыБанкаПоБанку("БанкДляРасчетов", Объект.БанкДляРасчетов);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура НомерСчетаПриИзмененииСервер()
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
НомерСчета = ВРег(СтрЗаменить(СтрЗаменить(СокрЛП(НомерСчета), " ", ""), ".", ""));
Объект.НомерСчета = НомерСчета;
ИзмененИностранныйБанк = Ложь;
Если МеждународныеРеквизитыБанковскихСчетов Тогда
ИзмененИностранныйБанк = Объект.ИностранныйБанк = Ложь;
Объект.ИностранныйБанк = Истина;
Если Сред(НомерСчета, 1, 4) = "IBAN" Тогда
НомерСчета = Сред(НомерСчета, 5);
Объект.НомерСчета = НомерСчета;
КонецЕсли;
Если ДенежныеСредстваКлиентСервер.ПравильнаяДлинаIBAN(Объект.НомерСчета) Тогда
Объект.ЭтоIBAN = Истина;
ОпределитьСтрануИБанкПоIBAN();
КонецЕсли;
Если Объект.ЭтоIBAN Тогда
ПроверитьIBAN(ЭтотОбъект)
КонецЕсли;
КонецЕсли;
Если ИзмененИностранныйБанк Тогда
ИностранныйБанкПриИзмененииНаСервере();
КонецЕсли;
СформироватьАвтоНаименование(ЭтотОбъект);
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы(ЭтотОбъект));
ЗаполнитьСписокВыбораТипаСчета(Элементы.ТипСчета.СписокВыбора);
КонецПроцедуры
&НаСервере
Процедура ОпределитьСтрануИБанкПоIBAN()
БуквенныйКодСтраны = ДенежныеСредстваКлиентСервер.КодСтраныIBAN(Объект.НомерСчета);
Страна = ДенежныеСредстваСервер.Страна(БуквенныйКодСтраны);
Если ЗначениеЗаполнено(Страна) Тогда
СтранаБанка = Страна;
Объект.СтранаБанка = Страна;
НациональныйКодБанка = ДенежныеСредстваСервер.НациональныйКодБанка(Объект.НомерСчета);
НайденныйБанк = ДенежныеСредстваСервер.Банк(Страна, НациональныйКодБанка);
Если ЗначениеЗаполнено(НайденныйБанк) Тогда
Объект.Банк = НайденныйБанк;
Объект.РучноеИзменениеРеквизитовБанка = Ложь;
СпособУказанияБанка = "ВыборИзСправочника";
ЗаполнитьРеквизитыБанкаПоБанку("Банк", Объект.Банк);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлДляПросмотра(Элемент, Заголовок)
Если ЗначениеЗаполнено(Элемент.ТекстРедактирования) Тогда
ФайлНаДиске = Новый Файл;
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОткрытьФайлДляПросмотраНачатьИнициализацию",
ЭтотОбъект,
Новый Структура("Элемент, Заголовок", Элемент, Заголовок));
ФайлНаДиске.НачатьИнициализацию(ОписаниеОповещения, Элемент.ТекстРедактирования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлДляПросмотраНачатьИнициализацию(Файл, ДополнительныеПараметры) Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОткрытьФайлДляПросмотраФайлСуществует",
ЭтотОбъект,
ДополнительныеПараметры);
Файл.НачатьПроверкуСуществования(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлДляПросмотраФайлСуществует(Существует, ДополнительныеПараметры) Экспорт
Если Не Существует Тогда
ПоказатьПредупреждение(Неопределено, НСтр("ru='Не найден файл!'"));
Возврат;
КонецЕсли;
ПомещаемыеФайлы = Новый Массив;
ПомещаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(ДополнительныеПараметры["Элемент"].ТекстРедактирования));
ПомещениеФайловЗавершение = Новый ОписаниеОповещения("ОткрытьФайлДляПросмотраЗавершениеПомещения", ЭтотОбъект, ДополнительныеПараметры);
НачатьПомещениеФайлов(ПомещениеФайловЗавершение, ПомещаемыеФайлы,, Ложь, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФайлДляПросмотраЗавершениеПомещения(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
Если ПомещенныеФайлы <> Неопределено
И ПомещенныеФайлы.Количество() > 0 Тогда
ОписаниеФайлов = ПомещенныеФайлы.Получить(0);
АдресФайла = ОписаниеФайлов.Хранение;
Если АдресФайла = Неопределено Тогда
Возврат;
КонецЕсли;
Текст = ПолучитьТекстовыйДокументИзВременногоХранилищаФайла(АдресФайла, Объект.Кодировка);
Текст.Показать(ДополнительныеПараметры["Заголовок"], ДополнительныеПараметры["Элемент"].ВыделенныйТекст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьТекстовыйДокументИзВременногоХранилищаФайла(АдресФайла, Кодировка)
#Если ВебКлиент ИЛИ МобильныйКлиент Тогда
Возврат "";
#Иначе
Если Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ISO20022") Тогда
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
ИначеЕсли Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c") Тогда
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Иначе
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
КонецЕсли;
ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
Текст = Новый ТекстовыйДокумент();
Если Кодировка = "DOS" Тогда
Кодир = "cp866";
ИначеЕсли Кодировка = "Windows" Тогда
Кодир = "windows-1251";
Иначе
Кодир = "UTF-8";
КонецЕсли;
Текст.Прочитать(ИмяВременногоФайла, Кодир);
НачатьУдалениеФайлов(Новый ОписаниеОповещения("ПослеУдаленияФайлов", ЭтотОбъект), ИмяВременногоФайла);
Возврат Текст;
#КонецЕсли
КонецФункции
&НаКлиенте
Процедура ПослеУдаленияФайлов(ДополнительныеПараметры) Экспорт
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВыборФайла(Элемент, Загрузка = Истина);
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("Элемент", Элемент);
ДопПараметры.Вставить("Загрузка", Загрузка);
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(
Новый ОписаниеОповещения("ВыборФайлаПродолжение", ЭтотОбъект, ДопПараметры),, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ВыборФайлаПродолжение(РасширениеПодключено, ДополнительныеПараметры) Экспорт
Если РасширениеПодключено Тогда
Элемент = ДополнительныеПараметры["Элемент"];
Загрузка = ДополнительныеПараметры.Загрузка;
ИспользоватьКаталог = ?(Загрузка, Объект.ИспользоватьКаталогЗагрузки, Объект.ИспользоватьКаталогВыгрузки);
РежимДиалога = ?(ИспользоватьКаталог, РежимДиалогаВыбораФайла.ВыборКаталога, РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалога);
Если Не ИспользоватьКаталог Тогда
Если Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ISO20022") Тогда
ДиалогВыбораФайла.Фильтр = НСтр("ru='XML файл (*.xml)|*.xml'");
ДиалогВыбораФайла.Расширение = "xml";
ИмяФайлаЗагрузки = "camt.xml"
ИначеЕсли Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c") Тогда
ДиалогВыбораФайла.Фильтр = НСтр("ru='Текстовый файл (*.txt)|*.txt'");
ДиалогВыбораФайла.Расширение = "txt";
ИмяФайлаЗагрузки = "kl_to_1c.txt"
Иначе
ДиалогВыбораФайла.Фильтр = НСтр("ru='Любой файл (*.*)|*.*'");
КонецЕсли;
ДиалогВыбораФайла.ПредварительныйПросмотр = Ложь;
ДиалогВыбораФайла.ИндексФильтра = 0;
ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Ложь;
КонецЕсли;
Если Загрузка Тогда
ДиалогВыбораФайла.Заголовок = СтрШаблон(НСтр("ru='Выберите %1 для загрузки данных из программы банка'"),
?(ИспользоватьКаталог, НСтр("ru = 'каталог'"), НСтр("ru = 'файл'")));
Если Не ИспользоватьКаталог Тогда
ДиалогВыбораФайла.ПолноеИмяФайла =
?(ПустаяСтрока(Элемент.ТекстРедактирования), ИмяФайлаЗагрузки, Элемент.ТекстРедактирования);
КонецЕсли;
Иначе
ДиалогВыбораФайла.Заголовок = СтрШаблон(НСтр("ru='Выберите %1 для выгрузки данных в программу банка'"),
?(ИспользоватьКаталог, НСтр("ru = 'каталог'"), НСтр("ru = 'файл'")));
Если Не ИспользоватьКаталог Тогда
НазваниеФайла = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "");
ДиалогВыбораФайла.ПолноеИмяФайла = ?(ПустаяСтрока(Элемент.ТекстРедактирования), НазваниеФайла
+ ?(ЗначениеЗаполнено(ДиалогВыбораФайла.Расширение), "." + ДиалогВыбораФайла.Расширение, ""),
Элемент.ТекстРедактирования);
КонецЕсли;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения(
"ВыборФайлаЗавершение",
ЭтотОбъект,
Новый Структура("Загрузка", Загрузка));
ДиалогВыбораФайла.Показать(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыборФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
Модифицированность = Истина;
Если ДополнительныеПараметры.Загрузка Тогда
Объект.ФайлЗагрузки = ВыбранныеФайлы[0];
Иначе
Объект.ФайлВыгрузки = ВыбранныеФайлы[0];
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗаполнитьРеквизитыБанкаПоБИК(ТипБанка, Знач БИК = "", ПеренестиЗначенияРеквизитов = Ложь)
НашлиПоБИК = Ложь;
ЗаписьОБанке = Неопределено;
ИменаРеквизитов = ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина, ТипБанка <> "Банк");
ДенежныеСредстваКлиентСервер.ОчиститьБанковскиеРеквизитыНаФорме(ЭтотОбъект, ИменаРеквизитов);
Если ЗначениеЗаполнено(БИК) Тогда
РаботаСБанками.ПолучитьДанныеКлассификатора(БИК,, ЗаписьОБанке);
Если ЗначениеЗаполнено(ЗаписьОБанке) Тогда
ЗаполнитьРеквизитыБанкаПоБанку(ТипБанка, ЗаписьОБанке, ПеренестиЗначенияРеквизитов);
Объект[ТипБанка] = ЗаписьОБанке;
НашлиПоБИК = Истина;
КонецЕсли;
КонецЕсли;
Возврат НашлиПоБИК;
КонецФункции
&НаСервере
Процедура ЗаполнитьРеквизитыБанкаПоБанку(ТипБанка, Банк = "", ПеренестиЗначенияРеквизитов = Ложь)
СоответствиеРеквизитовБанка = ДенежныеСредстваСервер.РеквизитыСчетаПоКлассификаторуБанков();
Если ТипБанка = "Банк" Тогда
СтруктураРеквизитов = Новый Структура;
ИменаРеквизитов = СтрРазделить(ДенежныеСредстваКлиентСервер.РеквизитыБанка(), ",", Ложь);
Для каждого ИмяРеквизита Из ИменаРеквизитов Цикл
СтруктураРеквизитов.Вставить(ИмяРеквизита, СоответствиеРеквизитовБанка[СокрЛП(ИмяРеквизита)]);
КонецЦикла;
СтруктураРеквизитов.Вставить("БИКБанка", "Код");
СтруктураРеквизитов.Вставить("СВИФТБанка", "СВИФТБИК");
СтруктураРеквизитов.Вставить("НаименованиеБанкаМеждународное", "МеждународноеНаименование");
РеквизитыБанка = ДенежныеСредстваСервер.БанковскиеРеквизиты(Банк, СтруктураРеквизитов);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыБанка);
СтранаБанка = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
Если ПеренестиЗначенияРеквизитов Тогда
ЗаполнитьЗначенияСвойств(Объект, РеквизитыБанка);
Объект.СтранаБанка = СтранаБанка;
Объект.Банк = Неопределено;
КонецЕсли;
Объект.СчетВБанкеДляРасчетов = РеквизитыБанка.КоррСчетБанка;
ИначеЕсли ТипБанка = "БанкДляРасчетов" Тогда
СтруктураРеквизитов = Новый Структура;
ИменаРеквизитов = СтрРазделить(ДенежныеСредстваКлиентСервер.РеквизитыБанка(, Истина), ",", Ложь);
Для каждого ИмяРеквизита Из ИменаРеквизитов Цикл
СтруктураРеквизитов.Вставить(ИмяРеквизита, СоответствиеРеквизитовБанка[СокрЛП(ИмяРеквизита)]);
КонецЦикла;
СтруктураРеквизитов.Вставить("БИКБанкаДляРасчетов", "Код");
СтруктураРеквизитов.Вставить("СВИФТБанкаДляРасчетов", "СВИФТБИК");
СтруктураРеквизитов.Вставить("НаименованиеБанкаДляРасчетовМеждународное", "МеждународноеНаименование");
РеквизитыБанка = ДенежныеСредстваСервер.БанковскиеРеквизиты(Банк, СтруктураРеквизитов);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыБанка);
СтранаБанкаДляРасчетов = ДенежныеСредстваСервер.СтранаБанкаПоКоду(РеквизитыБанка.КодСтраны);
Если ПеренестиЗначенияРеквизитов Тогда
ЗаполнитьЗначенияСвойств(Объект, РеквизитыБанка);
Объект.СтранаБанкаДляРасчетов = СтранаБанкаДляРасчетов;
Объект.БанкДляРасчетов = Неопределено;
КонецЕсли;
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект);
КонецЕсли;
СформироватьАвтоНаименование(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ПроверитьIBAN(Форма)
Если ПустаяСтрока(Форма.Объект.НомерСчета) Тогда
Возврат;
КонецЕсли;
Если ДенежныеСредстваКлиентСервер.ПравильнаяДлинаIBAN(Форма.Объект.НомерСчета) Тогда
Если ДенежныеСредстваКлиентСервер.ВерныйКонтрольныйКлючIBAN(Форма.Объект.НомерСчета) Тогда
Если Форма.Объект.РучноеИзменениеРеквизитовБанка Тогда
SWIFT = Форма.Объект.СВИФТБанка;
ИначеЕсли ЗначениеЗаполнено(Форма.Объект.Банк) Тогда
SWIFT = ДенежныеСредстваВызовСервера.SWIFT(Форма.Объект.Банк);
КонецЕсли;
Если ЗначениеЗаполнено(SWIFT) Тогда
Если ДенежныеСредстваКлиентСервер.НомерСчетаСоответствуетБанку(Форма.Объект.НомерСчета, SWIFT) Тогда
Форма.Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
Иначе
Форма.Элементы.ОшибкаВНомереСчета.Заголовок = НСтр("ru = 'IBAN не соответствует банку'");
Форма.Элементы.ГруппаОшибкаВНомереСчета.Видимость = Истина;
КонецЕсли;
КонецЕсли;
Иначе
Форма.Элементы.ОшибкаВНомереСчета.Заголовок = НСтр("ru = 'Номер счета введен некорректно'");
Форма.Элементы.ГруппаОшибкаВНомереСчета.Видимость = Истина;
КонецЕсли
Иначе
Форма.Элементы.ОшибкаВНомереСчета.Заголовок = НСтр("ru = 'Номер счета не соответствует формату IBAN'");
Форма.Элементы.ГруппаОшибкаВНомереСчета.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
НастройкиПолейФормы = Справочники.БанковскиеСчетаОрганизаций.НастройкиПолейФормы();
ЗначениеВРеквизитФормы(НастройкиПолейФормы, "НастройкиПолей");
ЗависимостиПолейФормы = ДенежныеСредстваСервер.ЗависимостиПолейФормы(НастройкиПолейФормы);
ЗначениеВРеквизитФормы(ЗависимостиПолейФормы, "ЗависимостиПолей");
ИспользоватьНесколькоОрганизаций = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций");
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
МеждународныеРеквизитыБанковскихСчетов = ПолучитьФункциональнуюОпцию("МеждународныеРеквизитыБанковскихСчетов");
НациональныеРеквизитыБанковскихСчетов = ПолучитьФункциональнуюОпцию("НациональныеРеквизитыБанковскихСчетов");
ИспользоватьОбменСБанкамиBankFeeds = ПолучитьФункциональнуюОпцию("ИспользоватьОбменBankFeeds");
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Владелец);
ВалютныйСчет = (ЗначениеЗаполнено(Объект.ВалютаДенежныхСредств) И Объект.ВалютаДенежныхСредств <> ВалютаРеглУчета);
НомерСчета = Объект.НомерСчета;
Если ЗначениеЗаполнено(Объект.Ссылка) ИЛИ ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Если МеждународныеРеквизитыБанковскихСчетов И Объект.ЭтоIBAN Тогда
ПроверитьIBAN(ЭтотОбъект);
КонецЕсли;
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
Элементы.Банк.ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
КонецЕсли;
Если Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
Элементы.БанкДляРасчетов.ПодсказкаВвода = НСтр("ru = '<реквизиты банка введены вручную>'");
КонецЕсли;
Иначе
Если МеждународныеРеквизитыБанковскихСчетов Тогда
Объект.ИностранныйБанк = Истина;
Иначе
Объект.СтранаБанка = ОсновнаяСтрана;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Банк) Тогда
Объект.РучноеИзменениеРеквизитовБанка = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.АдресБанкаДляРасчетов) Тогда
Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов = Истина;
КонецЕсли;
КонецЕсли;
Если Объект.ИспользоватьПрямойОбменСБанком Тогда
РежимОбмена = 1;
ИначеЕсли Объект.ИспользоватьОбменСБанком Тогда
РежимОбмена = 2;
ИначеЕсли Объект.ИспользоватьОбменСБанкомBankFeeds Тогда
РежимОбмена = 3;
Иначе
РежимОбмена = 0;
КонецЕсли;
СтрокаВключенОбменСБанком = ?(Объект.ОбменСБанкомВключен, НСтр("ru = 'включен'"), НСтр("ru = 'не включен'"));
СпособУказанияБанка = ?(Объект.РучноеИзменениеРеквизитовБанка, "РучноеЗаполнениеРеквизитов", "ВыборИзСправочника");
СпособУказанияБанкаДляРасчетов = ?(Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов, "РучноеЗаполнениеРеквизитов",
"ВыборИзСправочника");
ЗаполнитьРеквизитыБанка();
УправлениеЭлементамиФормы();
НастроитьЗависимыеЭлементыФормыНаСервере();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанкаДляРасчетов(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСписокВыбораТипаСчета(СписокВыбораТипаСчета)
СписокВыбораТипаСчета.Очистить();
СписокВыбораТипаСчета.Добавить(ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Расчетный"));
СписокВыбораТипаСчета.Добавить(ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Депозитный"));
СписокВыбораТипаСчета.Добавить(ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Прочий"));
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыБанка()
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Объект, ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина));
Иначе
Если Не Объект.Банк.Пустая() Тогда
ЗаполнитьРеквизитыБанкаПоБанку("Банк", Объект.Банк, Ложь);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если ЗначениеЗаполнено(Объект.БанкДляРасчетов)
Или ЗначениеЗаполнено(Объект.БИКБанкаДляРасчетов)
Или ЗначениеЗаполнено(Объект.СВИФТБанкаДляРасчетов) Тогда
ИспользуетсяБанкДляРасчетов = Истина;
Иначе
ИспользуетсяБанкДляРасчетов = Ложь;
КонецЕсли;
КонецЕсли;
Если Объект.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Объект, ДенежныеСредстваКлиентСервер.РеквизитыБанка(Истина, Истина));
Иначе
Если Не Объект.БанкДляРасчетов.Пустая() Тогда
ЗаполнитьРеквизитыБанкаПоБанку("БанкДляРасчетов", Объект.БанкДляРасчетов, Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция СформироватьАвтоНаименование(Форма)
Форма.Элементы.Наименование.СписокВыбора.Очистить();
Если Форма.Объект.РучноеИзменениеРеквизитовБанка Тогда
Если ЗначениеЗаполнено(Форма.НаименованиеБанка) Тогда
ШаблонНаименования = НСтр("ru = '%1 в %2, %3'");
СтрокаНаименования = СтрШаблон(ШаблонНаименования, Прав(СокрЛП(Форма.Объект.НомерСчета), 4),
Строка(Форма.НаименованиеБанка), СокрЛП(Форма.Объект.Владелец));
Иначе
ШаблонНаименования = НСтр("ru = '%1, %2'");
СтрокаНаименования = СтрШаблон(
ШаблонНаименования, Прав(СокрЛП(Форма.Объект.НомерСчета), 4), СокрЛП(Форма.Объект.Владелец));
КонецЕсли;
СтрокаНаименования = Лев(СтрокаНаименования, 150);
Если Форма.Объект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Транзитный") Тогда
СтрокаНаименования = НСтр("ru = 'Транзитный'") + " " + СтрокаНаименования;
КонецЕсли;
Форма.Элементы.Наименование.СписокВыбора.Добавить(СтрокаНаименования);
СтрокаНаименования = ?(ЗначениеЗаполнено(Форма.НаименованиеБанка), Строка(Форма.НаименованиеБанка), "")
+ ", " + СокрЛП(Форма.Объект.Владелец) + " (" + Строка(Форма.Объект.ВалютаДенежныхСредств) + ")";
СтрокаНаименования = Лев(СтрокаНаименования, 150);
Если Форма.Объект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Транзитный") Тогда
СтрокаНаименования = НСтр("ru = 'Транзитный'") + " " + СтрокаНаименования;
КонецЕсли;
Форма.Элементы.Наименование.СписокВыбора.Добавить(СтрокаНаименования);
Иначе
Если ЗначениеЗаполнено(Форма.Объект.Банк) Тогда
ШаблонНаименования = НСтр("ru = '%1 в %2, %3'");
СтрокаНаименования = СтрШаблон(ШаблонНаименования, Прав(СокрЛП(Форма.Объект.НомерСчета), 4),
Строка(Форма.Объект.Банк), СокрЛП(Форма.Объект.Владелец));
Иначе
ШаблонНаименования = НСтр("ru = '%1, %2'");
СтрокаНаименования = СтрШаблон(
ШаблонНаименования, Прав(СокрЛП(Форма.Объект.НомерСчета), 4), СокрЛП(Форма.Объект.Владелец));
КонецЕсли;
СтрокаНаименования = Лев(СтрокаНаименования, 150);
Если Форма.Объект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Транзитный") Тогда
СтрокаНаименования = НСтр("ru = 'Транзитный'") + " " + СтрокаНаименования;
КонецЕсли;
Форма.Элементы.Наименование.СписокВыбора.Добавить(СтрокаНаименования);
СтрокаНаименования = ?(ЗначениеЗаполнено(Форма.Объект.Банк), Строка(Форма.Объект.Банк), "")
+ ", " + СокрЛП(Форма.Объект.Владелец) + " (" + Строка(Форма.Объект.ВалютаДенежныхСредств) + ")";
СтрокаНаименования = Лев(СтрокаНаименования, 150);
Если Форма.Объект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Транзитный") Тогда
СтрокаНаименования = НСтр("ru = 'Транзитный'") + " " + СтрокаНаименования;
КонецЕсли;
Форма.Элементы.Наименование.СписокВыбора.Добавить(СтрокаНаименования);
КонецЕсли;
Возврат СтрокаНаименования;
КонецФункции
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервереБезКонтекста
Функция НайтиДубльБанковскогоСчета(Ссылка, НомерСчета, Организация, Валюта, Банк)
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос("
|ВЫБРАТЬ ПЕРВЫЕ 1
| БанковскиеСчета.Ссылка КАК Ссылка
|ИЗ
| Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчета
|ГДЕ
| НЕ БанковскиеСчета.ПометкаУдаления
| И БанковскиеСчета.Ссылка <> &Ссылка
| И БанковскиеСчета.НомерСчета = &НомерСчета
| И БанковскиеСчета.Владелец = &Организация
| И БанковскиеСчета.ВалютаДенежныхСредств = &Валюта
| И БанковскиеСчета.Банк = &Банк
|");
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("НомерСчета", НомерСчета);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Валюта", Валюта);
Запрос.УстановитьПараметр("Банк", Банк);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат Неопределено;
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка.Ссылка;
КонецЕсли;
КонецФункции
&НаСервере
Процедура БанкПриИзмененииНаСервере()
Объект.ФайлВыгрузки = Справочники.БанковскиеСчетаОрганизаций.ФайлВыгрузкиПоУмолчанию(Объект.Банк);
Объект.ФайлЗагрузки = Справочники.БанковскиеСчетаОрганизаций.ФайлЗагрузкиПоУмолчанию(Объект.Банк);
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныйРеквизит = "")
НастроитьЭлементыФормы(ЭтотОбъект, ИзмененныйРеквизит, РеквизитыФормы(ЭтотОбъект));
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
НастроитьЭлементыФормы(ЭтотОбъект, ИзмененныйРеквизит, РеквизитыФормы(ЭтотОбъект));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыФормы(Форма)
РеквизитыФормы = Новый Структура;
РеквизитыФормы.Вставить("ПоддержкаПлатежей275ФЗ");
РеквизитыФормы.Вставить("ИспользоватьОбменСБанками");
РеквизитыФормы.Вставить("ИспользоватьОбменСБанкамиBankFeeds");
РеквизитыФормы.Вставить("ИспользоватьВалютныеПлатежи");
РеквизитыФормы.Вставить("ИспользоватьНесколькоВалют");
РеквизитыФормы.Вставить("ИспользоватьНесколькоОрганизаций");
РеквизитыФормы.Вставить("ИспользоватьТекстКорреспондента");
РеквизитыФормы.Вставить("ИспользуетсяБанкДляРасчетов");
РеквизитыФормы.Вставить("ДиректБанкНастроен");
РеквизитыФормы.Вставить("ВалютныйСчет");
РеквизитыФормы.Вставить("ТранзитныйСчетЗадан");
РеквизитыФормы.Вставить("МеждународныеРеквизитыБанковскихСчетов");
РеквизитыФормы.Вставить("НациональныеРеквизитыБанковскихСчетов");
РеквизитыФормы.Вставить("РазделениеВключено");
ЗаполнитьЗначенияСвойств(РеквизитыФормы, Форма);
Возврат РеквизитыФормы;
КонецФункции
&НаКлиенте
Процедура ВывестиПредупреждениеОПрекращенииДеятельностиБанка()
ТекстИнформации = СведенияОбОстановкеДеятельностиБанка(Объект.Банк);
Если ТекстИнформации <> "" Тогда
ПоказатьПредупреждение(, ТекстИнформации);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СведенияОбОстановкеДеятельностиБанка(Банк)
СтрокаСведений = "";
ДействующийБанк = Не ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Банк, "ДеятельностьПрекращена");
Если Не ДействующийБанк Тогда
СтрокаСведений = РаботаСБанками.ПояснениеНедействительногоБанка(Банк);
КонецЕсли;
Возврат СтрокаСведений;
КонецФункции
&НаСервере
Процедура УправлениеЭлементамиФормы()
СформироватьАвтоНаименование(ЭтотОбъект);
ЗаполнитьСписокВыбораТипаСчета(Элементы.ТипСчета.СписокВыбора);
ЗаполнитьСписокВыбораФорматаОбмена(Объект.ТипСчета, Элементы.ФорматОбмена.СписокВыбора);
Элементы.СпособУказанияБанка.ТолькоПросмотр = ТолькоПросмотр;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСписокВыбораФорматаОбмена(ТипСчета, СписокВыбора)
СписокВыбора.Очистить();
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c"));
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ISO20022"));
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.MT940"));
Если ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Казначейский") Тогда
СписокВыбора.Добавить(ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ФедеральноеКазначействоРФ"));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Локализация
#Область Локализация_ПодключаемыеОбработчикиСобытийФормы
&НаСервере
Процедура Подключаемый_ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка)
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если НЕ ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Объект.ФорматОбмена = Перечисления.ФорматОбменаСБанком.ClientBankExchange1c;
Объект.Кодировка = "Windows";
КонецЕсли;
ПриЧтенииСозданииНаСервереЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
ПриЧтенииНаСервере(ТекущийОбъект);
ПриЧтенииСозданииНаСервереЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
ОбработкаОповещения(ИмяСобытия, Параметр, Источник);
Если ТипЗнч(Параметр) = Тип("СправочникСсылка.НастройкиОбменСБанками") Тогда
ОбновитьЭлементыФормыИСоглашениеЭД();
КонецЕсли;
ОбменСБанкамиКлиент.ОбновитьРекламуДиректБанк(
ИмяСобытия, Элементы.ГруппаРекламаДиректБанк, Элементы.ТекстДиректБанкГоризонтально);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ОбработкаПроверкиЗаполненияНаСервереЛокализация(Отказ, ПроверяемыеРеквизиты)
Если Отказ Тогда
Возврат;
КонецЕсли;
ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередЗаписьюЛокализация(Отказ)
ПередЗаписью(Отказ);
Если Модифицированность Тогда
ТекстОшибки = "";
Если Не Объект.ИностранныйБанк
И Не ДенежныеСредстваКлиентСерверЛокализация.ПроверитьКорректностьНомераСчета(НомерСчета, , ТекстОшибки) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , "НомерСчета", , Отказ);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура Подключаемый_НомерСчетаПриИзмененииЛокализация(Элемент)
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
НомерСчетаПриИзмененииСерверЛокализация();
ДенежныеСредстваКлиентСервер.ЗаполнитьОсновныеРеквизитыБанка(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанкПриИзмененииЛокализация(Элемент)
БанкПриИзмененииЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанкВГруппеПриИзмененииЛокализация(Элемент)
БанкПриИзмененииЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура БанкПриИзмененииЛокализация()
Элементы.ГруппаОшибкаВНомереСчета.Видимость = Ложь;
ПриИзмененииБанка();
БанкПриИзмененииСерверЛокализация();
НастроитьЗависимыеЭлементыФормы();
КонецПроцедуры
&НаСервере
Процедура НомерСчетаПриИзмененииСерверЛокализация()
НомерСчета = ВРег(СтрЗаменить(СтрЗаменить(СокрЛП(НомерСчета), " ", ""), ".", ""));
Объект.НомерСчета = НомерСчета;
ЭтоКазначейскийСчет = Ложь;
Если ((ДенежныеСредстваКлиентСерверЛокализация.СтрокаСоответствуетФорматуБанковскогоСчетаРФ(Объект.НомерСчета)
ИЛИ ЭтоКазначейскийСчет)
И Не ЗначениеЗаполнено(СтранаБанка))
ИЛИ СтранаБанка = Справочники.СтраныМира.Россия Тогда
СтранаБанка = Справочники.СтраныМира.Россия;
ИзмененИностранныйБанк = Объект.ИностранныйБанк = Истина;
Объект.ИностранныйБанк = Ложь;
Объект.ЭтоIBAN = Ложь;
Если ИзмененИностранныйБанк Тогда
ИностранныйБанкПриИзмененииНаСервере();
КонецЕсли;
УстановитьТипКазначейскогоСчета();
СформироватьАвтоНаименование(ЭтотОбъект);
ПроверитьНомерСчета();
НастроитьЭлементыФормы(ЭтотОбъект, , РеквизитыФормы(ЭтотОбъект));
Иначе
НомерСчетаПриИзмененииСервер();
КонецЕсли;
Валюта = ДенежныеСредстваСерверЛокализация.ПолучитьВалютуПоНомеруСчета(Объект.НомерСчета);
Если ЗначениеЗаполнено(Валюта) Тогда
Объект.ВалютаДенежныхСредств = Валюта;
КонецЕсли;
ВалютныйСчет = (ЗначениеЗаполнено(Объект.ВалютаДенежныхСредств) И Объект.ВалютаДенежныхСредств <> ВалютаРеглУчета);
ЗаполнитьСписокВыбораТипаСчетаЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НомерСчетаОкончаниеВводаТекстаЛокализация(
Элемент,
Текст,
ДанныеВыбора,
Параметры,
СтандартнаяОбработка)
ТекстОшибки = "";
ОчиститьСообщения();
Валютный = (Объект.ВалютаДенежныхСредств <> ВалютаРеглУчета);
Текст = ВРег(СтрЗаменить(СтрЗаменить(СокрЛП(Текст), " ", ""), ".", ""));
Если Не ПустаяСтрока(Текст) И Не Объект.ИностранныйБанк Тогда
Если Не МеждународныеРеквизитыБанковскихСчетов Тогда
ДенежныеСредстваКлиентСерверЛокализация.ПроверитьКорректностьНомераСчета(Текст, Валютный, ТекстОшибки);
КонецЕсли;
Если Объект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Казначейский")
И Не ДенежныеСредстваКлиентСерверЛокализация.ЭтоКазначейскийСчет(Текст) Тогда
ТекстОшибки = ?(ТекстОшибки <> "", ТекстОшибки + Символы.ПС, "")
+ НСтр("ru = 'Номер счета не соответствует формату казначейского счета'");
КонецЕсли;
Если ТекстОшибки <> "" Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , "НомерСчета");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВладелецПриИзмененииЛокализация(Элемент)
ВладелецПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ВладелецПриИзмененииСерверЛокализация()
ВладелецПриИзмененииНаСервере();
Если Не ИспользоватьТекстКорреспондента Тогда
ЗаполнитьТекстКорреспондента();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РучноеИзменениеРеквизитовБанкаПриИзмененииНаСервереЛокализация()
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
РежимОбмена = 2;
Объект.ИспользоватьПрямойОбменСБанком = Ложь;
Объект.ИспользоватьОбменСБанком = Истина;
Объект.ИспользоватьОбменСБанкомBankFeeds = Ложь;
КонецЕсли;
ОбновитьЭлементыФормыИСоглашениеЭД();
НастроитьЗависимыеЭлементыФормыНаСервере("ИспользоватьОбменСБанком");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВалютаДенежныхСредствПриИзмененииЛокализация(Элемент)
ВалютаДенежныхСредствПриИзмененииКлиент();
ВалютаДенежныхСредствПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ВалютаДенежныхСредствПриИзмененииСерверЛокализация()
ВалютаДенежныхСредствПриИзмененииСервер();
Если Объект.ВалютаДенежныхСредств = ВалютаРеглУчета
И Объект.ТипСчета = Перечисления.ТипыБанковскихСчетов.Транзитный Тогда
Объект.ТипСчета = Неопределено;
Объект.ОсновнойБанковскийСчет = Неопределено;
КонецЕсли;
ЗаполнитьСписокВыбораТипаСчетаЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ТипСчетаПриИзмененииЛокализация(Элемент)
ТипСчетаПриИзменении(Элемент);
ПроверитьНомерСчета();
КонецПроцедуры
&НаСервере
Процедура БанкПриИзмененииСерверЛокализация()
УстановитьТипКазначейскогоСчета();
ОбновитьЭлементыФормыИСоглашениеЭД();
ПроверитьНомерСчета();
КонецПроцедуры
#КонецОбласти
#Область Локализация_ОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура ПередВводомТранзитногоСчета(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ПараметрыЗаписи = Новый Структура;
Результат = ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыЗаписи);
Если Результат Тогда
ОткрытьФормуВводаТранзитногоСчета();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаТранзитногоСчета(Результат, ДополнительныеПараметры) Экспорт
ОбновитьНадписьТранзитныйСчет();
КонецПроцедуры
&НаКлиенте
Процедура РежимОбменаПриИзменении(ИмяЭлемента)
Объект.ИспользоватьПрямойОбменСБанком = (РежимОбмена = 1);
Объект.ИспользоватьОбменСБанком = (РежимОбмена = 2);
Если Не ЗначениеЗаполнено(Объект.Кодировка) Тогда
Если Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c")
ИЛИ Объект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.MT940") Тогда
Объект.Кодировка = "Windows";
Иначе
Объект.Кодировка = "UTF-8";
КонецЕсли;
КонецЕсли;
РежимОбменаПриИзмененииНаСервере(ИмяЭлемента);
КонецПроцедуры
&НаСервере
Процедура РежимОбменаПриИзмененииНаСервере(ИмяЭлемента)
НастроитьЗависимыеЭлементыФормыНаСервере(ИмяЭлемента);
УстановитьСтраницуСоглашенийЭД();
КонецПроцедуры
&НаКлиенте
Процедура ПослеСозданияНастройкиОбмена(НастройкаЭДО, Параметры) Экспорт
Элементы.ДекорацияДобавитьСоглашениеЭД.Заголовок =
ОбменСБанкамиКлиентСервер.ЗаголовокНастройкиОбменаСБанком(Объект.Владелец, Объект.Банк);
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияСлужебные
&НаСервере
Процедура ПриЧтенииСозданииНаСервереЛокализация()
Если Не ЗначениеЗаполнено(Объект.Ссылка) И НЕ ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Объект.ИностранныйБанк = Ложь;
КонецЕсли;
НастройкиПолейФормыЛокализация = ДенежныеСредстваСервер.ИнициализироватьНастройкиПолейФормы();
БанковскиеСчетаОрганизацийЛокализация.НастройкиПолейФормы(НастройкиПолейФормыЛокализация);
НастройкиПолейФормы = РеквизитФормыВЗначение("НастройкиПолей");
ОбщегоНазначенияУТ.ДобавитьСтрокиВТаблицу(НастройкиПолейФормы, НастройкиПолейФормыЛокализация);
ЗначениеВРеквизитФормы(НастройкиПолейФормы, "НастройкиПолей");
ЗависимостиПолейФормы = ДенежныеСредстваСервер.ЗависимостиПолейФормы(НастройкиПолейФормы);
ЗначениеВРеквизитФормы(ЗависимостиПолейФормы, "ЗависимостиПолей");
ИспользоватьВалютныеПлатежи = ПолучитьФункциональнуюОпцию("ИспользоватьВалютныеПлатежи");
ИспользоватьОбменСБанками = ПолучитьФункциональнуюОпцию("ИспользоватьОбменСБанками");
ЗаполнитьСписокВыбораТипаСчетаЛокализация();
ОбновитьЭлементыФормыИСоглашениеЭД();
ОбновитьНадписьТранзитныйСчет();
ИспользоватьТекстКорреспондента = ЗначениеЗаполнено(Объект.ТекстКорреспондента);
Если ИспользоватьТекстКорреспондента Тогда
ТекстКорреспондента = Объект.ТекстКорреспондента;
Иначе
ЗаполнитьТекстКорреспондента();
КонецЕсли;
УстановитьСтраницуСоглашенийЭД();
Элементы.Банк.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкВГруппе.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетов.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
Элементы.БанкДляРасчетовВГруппе.ПодсказкаВвода = НСтр("ru = 'БИК или наименование'");
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокВыбораТипаСчетаЛокализация()
СписокВыбораТипаСчета = Элементы.ТипСчета.СписокВыбора;
СписокВыбораТипаСчета.Очистить();
СписокВыбораТипаСчета.Добавить(Перечисления.ТипыБанковскихСчетов.Расчетный);
СписокВыбораТипаСчета.Добавить(Перечисления.ТипыБанковскихСчетов.Депозитный);
ДанныеОсновногоСчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Объект.ОсновнойБанковскийСчет,
"СтранаБанка, БанкДляРасчетов, БИКБанкаДляРасчетов, СВИФТБанкаДляРасчетов, СтранаБанкаДляРасчетов");
СтранаБанкаОсновногоСчета = ДанныеОсновногоСчета.СтранаБанка;
Если ЗначениеЗаполнено(ДанныеОсновногоСчета.БанкДляРасчетов)
Или ЗначениеЗаполнено(ДанныеОсновногоСчета.БИКБанкаДляРасчетов)
Или ЗначениеЗаполнено(ДанныеОсновногоСчета.СВИФТБанкаДляРасчетов) Тогда
СтранаБанкаОсновногоСчета = ДанныеОсновногоСчета.СтранаБанкаДляРасчетов;
КонецЕсли;
Если ИспользоватьВалютныеПлатежи
И ВалютныйСчет
И (Не Объект.ИностранныйБанк
Или (ЗначениеЗаполнено(Объект.ОсновнойБанковскийСчет)
И СтранаБанка = СтранаБанкаОсновногоСчета)) Тогда
СписокВыбораТипаСчета.Добавить(Перечисления.ТипыБанковскихСчетов.Транзитный);
КонецЕсли;
СписокВыбораТипаСчета.Добавить(Перечисления.ТипыБанковскихСчетов.Казначейский);
СписокВыбораТипаСчета.Добавить(Перечисления.ТипыБанковскихСчетов.Прочий);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьТекстКорреспондента()
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| НаименованиеСокращенное КАК Наименование
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| Организации.Ссылка = &Ссылка
|";
Запрос.УстановитьПараметр("Ссылка", Объект.Владелец);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
ТекстКорреспондента = СокрЛП(Выборка.Наименование);
Иначе
ТекстКорреспондента = "";
КонецЕсли;
Если ЗначениеЗаполнено(Объект.БанкДляРасчетов) Или ЗначениеЗаполнено(Объект.БИКБанкаДляРасчетов) Тогда
Если Объект.РучноеИзменениеРеквизитовБанка Тогда
ТекстКорреспондента = ТекстКорреспондента
+ " р/с " + СокрЛП(Объект.НомерСчета)
+ " в " + Строка(Объект.НаименованиеБанка)
+ " " + Объект.ГородБанка;
Иначе
ТекстКорреспондента = ТекстКорреспондента
+ " р/с " + СокрЛП(Объект.НомерСчета)
+ " в " + Строка(Объект.Банк);
Если ЗначениеЗаполнено(Объект.Банк) Тогда
ТекстКорреспондента = ТекстКорреспондента
+ " " + ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Банк, "Город");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыФормыИСоглашениеЭД()
ЗаполнитьСоглашениеЭД();
УстановитьСтраницуСоглашенийЭД();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСоглашениеЭД()
СоглашениеЭД = Неопределено;
Если ЗначениеЗаполнено(Объект.Владелец) И ЗначениеЗаполнено(Объект.Банк)
И ПравоДоступа("Чтение", Метаданные.Справочники.НастройкиОбменСБанками) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Соглашения.Ссылка КАК СоглашениеЭД,
| Соглашения.Недействительна КАК Статус
|ИЗ
| Справочник.НастройкиОбменСБанками КАК Соглашения
|ГДЕ
| Соглашения.Организация = &Организация
| И Соглашения.Банк = &Банк";
Запрос.УстановитьПараметр("Организация", Объект.Владелец);
Запрос.УстановитьПараметр("Банк", Объект.Банк);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
СоглашениеЭД = Выборка.СоглашениеЭД;
Если Выборка.Статус Тогда
СтатусСоглашенияЭД = НСтр("ru='Не действует'");
Иначе
СтатусСоглашенияЭД = НСтр("ru='Действует'");
КонецЕсли;
КонецЕсли;
КонецЕсли;
ДиректБанкНастроен = ЗначениеЗаполнено(СоглашениеЭД);
КонецПроцедуры
&НаСервере
Процедура УстановитьСтраницуСоглашенийЭД()
Если Не Объект.ИспользоватьПрямойОбменСБанком Тогда
Элементы.ГруппаСоглашениеЭД.ТекущаяСтраница = Элементы.СтраницаЕстьСоглашениеЭД;
Элементы.ДекорацияСоглашениеЭД.Заголовок = "";
Элементы.ДекорацияСоглашениеЭД.Гиперссылка = Ложь;
ИначеЕсли ЗначениеЗаполнено(СоглашениеЭД) Тогда
Элементы.ГруппаСоглашениеЭД.ТекущаяСтраница = Элементы.СтраницаЕстьСоглашениеЭД;
Элементы.ДекорацияСоглашениеЭД.Заголовок = СтрШаблон(НСтр("ru='%1, (%2)'"), СоглашениеЭД, СтатусСоглашенияЭД);
Элементы.ДекорацияСоглашениеЭД.Гиперссылка = Истина;
ИначеЕсли ПравоДоступа("Добавление", Метаданные.Справочники.НастройкиОбменСБанками) Тогда
Элементы.ГруппаСоглашениеЭД.ТекущаяСтраница = Элементы.СтраницаНетСоглашенияЭДДобавление;
Иначе
Элементы.ГруппаСоглашениеЭД.ТекущаяСтраница = Элементы.СтраницаНетСоглашенияЭДНетПрав;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНадписьТранзитныйСчет()
ТранзитныйСчет = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| ДанныеСправочника.Ссылка КАК Ссылка
|ИЗ
| Справочник.БанковскиеСчетаОрганизаций КАК ДанныеСправочника
|ГДЕ
| ДанныеСправочника.ОсновнойБанковскийСчет = &Ссылка
| И ДанныеСправочника.ТипСчета = ЗНАЧЕНИЕ(Перечисление.ТипыБанковскихСчетов.Транзитный)
|";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ТранзитныйСчет = Выборка.Ссылка;
КонецЕсли;
ТранзитныйСчетЗадан = ЗначениеЗаполнено(ТранзитныйСчет);
НастроитьЗависимыеЭлементыФормыНаСервере("ТранзитныйСчетЗадан");
КонецПроцедуры
&НаКлиенте
Функция ЭтоБанкРФ()
Если ((ДенежныеСредстваКлиентСерверЛокализация.СтрокаСоответствуетФорматуБанковскогоСчетаРФ(Объект.НомерСчета)
И НЕ ЗначениеЗаполнено(СтранаБанка)
И НЕ МеждународныеРеквизитыБанковскихСчетов)
ИЛИ СтранаБанка = ПредопределенноеЗначение("Справочник.СтраныМира.Россия")) Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаКлиенте
Процедура УстановитьПризнакИностранныйБанк()
Объект.ЭтоIBAN = Объект.ЭтоIBAN
И Не СтранаБанка = ПредопределенноеЗначение("Справочник.СтраныМира.Россия");
Если МеждународныеРеквизитыБанковскихСчетов Тогда
Объект.ИностранныйБанк = СтранаБанка <> ПредопределенноеЗначение("Справочник.СтраныМира.Россия") И ЗначениеЗаполнено(СтранаБанка);
ИзмененИностранныйБанк = Объект.ИностранныйБанк = Истина;
Если ИзмененИностранныйБанк Тогда
ИностранныйБанкПриИзменении();
ЗаполнитьСписокВыбораТипаСчетаЛокализация();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьТипКазначейскогоСчета()
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
Возврат;
КонецЕсли;
Если ДенежныеСредстваКлиентСерверЛокализация.ЭтоКазначейскийСчет(Объект.НомерСчета)
И Не Объект.ИностранныйБанк Тогда
Объект.ТипСчета = Перечисления.ТипыБанковскихСчетов.Казначейский;
Объект.СчетПоГосконтракту = Истина;
УстановитьПараметрыОбменаСБанком(Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПараметрыОбменаСБанком(ТекущийОбъект)
Если ТекущийОбъект.ТипСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Казначейский") Тогда
Если ТекущийОбъект.ОбменСБанкомВключен Тогда
ТекущийОбъект.ИспользоватьПрямойОбменСБанком = Ложь;
ТекущийОбъект.ИспользоватьОбменСБанком = Истина;
ТекущийОбъект.ИспользоватьОбменСБанкомBankFeeds = Ложь;
КонецЕсли;
ТекущийОбъект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ФедеральноеКазначействоРФ");
ТекущийОбъект.Кодировка = "UTF-8";
Иначе
ТекущийОбъект.ФорматОбмена = ПредопределенноеЗначение("Перечисление.ФорматОбменаСБанком.ClientBankExchange1c");
ТекущийОбъект.Кодировка = "Windows";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьНомерСчета()
Если Объект.ТипСчета = Перечисления.ТипыБанковскихСчетов.Казначейский Тогда
ДенежныеСредстваСерверЛокализация.ПроверитьЛицевойСчетКазначейскогоСопровождения(Объект);
ИначеЕсли Объект.ТипСчета <> Перечисления.ТипыБанковскихСчетов.Прочий Тогда
ДенежныеСредстваКлиентСерверЛокализация.ПроверитьФорматСчетаРФ(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВводаТранзитногоСчета()
ПараметрыФормы = Новый Структура;
Основание = Новый Структура;
Основание.Вставить("ТипСчета", ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Транзитный"));
Основание.Вставить("Владелец", Объект.Владелец);
Основание.Вставить("ВалютаДенежныхСредств", Объект.ВалютаДенежныхСредств);
Основание.Вставить("Банк", Объект.Банк);
Основание.Вставить("ОсновнойБанковскийСчет", Объект.Ссылка);
Основание.Вставить("РазрешитьПлатежиБезУказанияЗаявок", Объект.РазрешитьПлатежиБезУказанияЗаявок);
ПараметрыФормы.Вставить("Основание", Основание);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВводаТранзитногоСчета", ЭтотОбъект);
ОткрытьФорму("Справочник.БанковскиеСчетаОрганизаций.ФормаОбъекта", ПараметрыФормы, ЭтотОбъект,,,, ОписаниеОповещения);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Инициализация
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаПроверкиЗаполненияНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписью");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЗаписиНаСервере");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
КонецЦикла;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("НомерСчета", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Владелец", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ВалютаДенежныхСредств", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ТипСчета", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Банк", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанкВГруппе", "ПриИзменении");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Элементы[Обработчик.Ключ].УстановитьДействие(
Обработчик.Значение, "Подключаемый_" + Обработчик.Ключ + Обработчик.Значение + "Локализация");
КонецЦикла;
Элементы.НомерСчета.УстановитьДействие(
"ОкончаниеВводаТекста", "Подключаемый_НомерСчетаОкончаниеВводаТекстаЛокализация");
КонецЕсли;
#КонецЕсли
#КонецОбласти