Банковские счета организаций / Модуль объекта

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

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

Процедура ПриКопировании(ОбъектКопирования)
	
	НомерСчета = "";
	ИдентификаторСчетаЦифровогоРубля = "";
	Наименование = "";
	
	БанковскиеСчетаОрганизацийЛокализация.ПриКопировании(ЭтотОбъект, ОбъектКопирования);
	
КонецПроцедуры

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

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

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

Процедура ПриЗаписи(Отказ)
	
	Если Отказ ИЛИ ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	Если ЭтоГруппа Тогда
		Возврат;
	КонецЕсли;
	
	ОбщегоНазначенияУТ.СинхронизироватьКлючи(ЭтотОбъект);
	
	БанковскиеСчетаОрганизацийЛокализация.ПриЗаписи(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

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

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

#КонецЕсли

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