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