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

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

#Область ПрограммныйИнтерфейс

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

КонецФункции

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

	РеквизитыСчета.Вставить("ЭтоГруппа", Ложь);
	//++ Локализация
	РеквизитыСчета.Вставить("РазделЛицевогоСчета", "");
	РеквизитыСчета.Вставить("НомерЛицевогоСчета", "");
	//-- Локализация
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ЗаполнитьЗначенияСвойств(РеквизитыСчета, Выборка);
	КонецЕсли;
	
	Возврат РеквизитыСчета;
	
КонецФункции

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

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

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

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

// Возвращает список банковских счетов организации из выбранного каталога.
// 
// Параметры:
//  Каталог - СправочникСсылка.БанковскиеСчетаОрганизаций - группа в справочнике.
// 
// Возвращаемое значение:
//  Массив из СправочникСсылка.БанковскиеСчетаОрганизаций - список банковских счетов.
//
Функция БанковскиеСчетаКаталога(Каталог) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	БанковскиеСчетаОрганизаций.Ссылка КАК БанковскийСчет
		|ИЗ
		|	Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчетаОрганизаций
		|ГДЕ
		|	БанковскиеСчетаОрганизаций.Ссылка В ИЕРАРХИИ(&Ссылка)
		|	И НЕ БанковскиеСчетаОрганизаций.ЭтоГруппа
		|	И БанковскиеСчетаОрганизаций.Ссылка <> &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", Каталог);
	
	Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("БанковскийСчет");

КонецФункции

#Область ДляВызоваИзДругихПодсистем

//++ Локализация


//-- Локализация

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Владелец)";

КонецПроцедуры
// Конец СтандартныеПодсистемы.УправлениеДоступом

// СтандартныеПодсистемы.Печать

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	НовКоманда = КомандыПечати.Добавить();
	НовКоманда.Идентификатор = "РеквизитыБанковскогоСчета";
	НовКоманда.Представление = Нстр("ru = 'Реквизиты'");
	НовКоманда.ЗаголовокФормы = Нстр("ru = 'Печать реквизитов банковского счета'");
	
	БанковскиеСчетаОрганизацийЛокализация.ДобавитьКомандыПечати(КомандыПечати);
	
КонецПроцедуры

// Формирует печатные формы.
//
// Параметры:
//  МассивОбъектов - см. УправлениеПечатьюПереопределяемый.ПриПечати.МассивОбъектов
//  ПараметрыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыПечати
//  КоллекцияПечатныхФорм - см. УправлениеПечатьюПереопределяемый.ПриПечати.КоллекцияПечатныхФорм
//  ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати
//  ПараметрыВывода - см. УправлениеПечатьюПереопределяемый.ПриПечати.ПараметрыВывода
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

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

// Конец СтандартныеПодсистемы.Печать

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

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

#КонецЕсли

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

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	Если Параметры.Свойство("ВыборСчетовГоловнойОрганизации") Тогда
		
		Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс") Тогда
			Возврат;
		КонецЕсли;
		
		Организация = Неопределено;
		Параметры.Отбор.Свойство("Владелец", Организация);
		
		Если Не ЗначениеЗаполнено(Организация)
			Или Не ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Организация, "ОбособленноеПодразделение") Тогда
			Возврат;
		КонецЕсли;
		
		ХозяйственнаяОперация = Неопределено;
		Если Параметры.Свойство("ХозяйственнаяОперация", ХозяйственнаяОперация) Тогда
			
			Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
				Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
				ЕстьРасчетыСКлиентами = Истина;
			Иначе
				ЕстьРасчетыСКлиентами = Ложь;
			КонецЕсли;
			
			ЕстьРасчетыСПоставщиками = Не ЕстьРасчетыСКлиентами;
			
		Иначе
		
			ЕстьРасчетыСКлиентами = Параметры.Свойство("ЕстьРасчетыСКлиентами");
			ЕстьРасчетыСПоставщиками = Параметры.Свойство("ЕстьРасчетыСПоставщиками");
			
		КонецЕсли;
		
		СтандартнаяОбработка = Ложь;
		Запрос = Новый Запрос("ВЫБРАТЬ
		|	&Организация
		|ПОМЕСТИТЬ ДоступныеОрганизации
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	Организации.ГоловнаяОрганизация
		|ИЗ
		|	Справочник.Организации КАК Организации
		|ГДЕ
		|	Организации.Ссылка = &Организация
		|	И Организации.ДопускаютсяВзаиморасчетыЧерезГоловнуюОрганизацию
		|	И (&ЕстьРасчетыСКлиентами ИЛИ &ЕстьРасчетыСПоставщиками)
		|	И Организации.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОрганизацийПодразделений.Действует)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ
		|	БанковскиеСчетаОрганизаций.Ссылка,
		|	БанковскиеСчетаОрганизаций.Наименование,
		|	БанковскиеСчетаОрганизаций.Владелец
		|ПОМЕСТИТЬ Данные
		|ИЗ
		|	ДоступныеОрганизации КАК ДоступныеОрганизации
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчетаОрганизаций
		|		ПО ДоступныеОрганизации.Организация = БанковскиеСчетаОрганизаций.Владелец
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	Данные.Ссылка
		|ИЗ
		|	Данные КАК Данные
		|ГДЕ
		|	&УсловиеПоискаПоСтроке И &ПрочиеУсловия
		|
		|УПОРЯДОЧИТЬ ПО
		|	Данные.Владелец,
		|	Данные.Наименование
		|АВТОУПОРЯДОЧИВАНИЕ");
		Запрос.УстановитьПараметр("Организация", Организация);
		Запрос.УстановитьПараметр("ЕстьРасчетыСКлиентами", ЕстьРасчетыСКлиентами);
		Запрос.УстановитьПараметр("ЕстьРасчетыСПоставщиками", ЕстьРасчетыСПоставщиками);
		
	ИначеЕсли Параметры.Свойство("ВключатьСчетаФилиалов") 
				И Параметры.ВключатьСчетаФилиалов
				И Параметры.Отбор.Свойство("Владелец")
				И (ЗначениеЗаполнено(Параметры.Отбор.Владелец)
					Или Параметры.Свойство("ТолькоОрганизацииСФилиалами") 
						И Параметры.ТолькоОрганизацииСФилиалами) Тогда
		
		МассивОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Параметры.Отбор.Владелец);
		МассивОрганизаций.Добавить(Параметры.Отбор.Владелец);
		
		СтандартнаяОбработка = Ложь;
		Запрос = Новый Запрос("
			|ВЫБРАТЬ РАЗРЕШЕННЫЕ
			|	Данные.Ссылка
			|ИЗ
			|	Справочник.БанковскиеСчетаОрганизаций КАК Данные
			|ГДЕ
			|	Данные.Владелец В (&МассивОрганизаций)
			|	И &УсловиеПоискаПоСтроке
			|	И &ПрочиеУсловия
			|
			|УПОРЯДОЧИТЬ ПО
			|	Данные.Владелец,
			|	Данные.Наименование
			|АВТОУПОРЯДОЧИВАНИЕ");
		Запрос.УстановитьПараметр("МассивОрганизаций", МассивОрганизаций);
		
	КонецЕсли;
	
	Если Не СтандартнаяОбработка Тогда
		
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоискаПоСтроке", "Данные.Наименование ПОДОБНО &СтрокаПоиска");
		Запрос.УстановитьПараметр("СтрокаПоиска", ?(Параметры.СтрокаПоиска = Неопределено, "", Параметры.СтрокаПоиска) + "%");
		
		ПрочиеУсловия = "";
		Для Каждого Элемент Из Параметры.Отбор Цикл
			
			Если Элемент.Ключ = "Владелец" Тогда
				Продолжить;
			Иначе
				
				ПрочиеУсловия = ПрочиеУсловия + "Данные.Ссылка." + Элемент.Ключ 
					+ ?(ТипЗнч(Элемент.Значение) = Тип("ФиксированныйМассив"), " В (&", " = (&") 
					+ Элемент.Ключ + ") И ";
				Запрос.УстановитьПараметр(Элемент.Ключ, Элемент.Значение);
				
			КонецЕсли;
			
		КонецЦикла;
		
		Если ПрочиеУсловия = "" Тогда
			ПрочиеУсловия = "Истина";
		Иначе
			ПрочиеУсловия = Лев(ПрочиеУсловия, СтрДлина(ПрочиеУсловия) - 3);
		КонецЕсли;
			
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ПрочиеУсловия", ПрочиеУсловия);
		
		ДанныеВыбора = Новый СписокЗначений;
		ДанныеВыбора.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

		Если Выборка.ЭтоIBAN Тогда
			ВывестиРеквизитыIBAN(Выборка, Макет, ТабличныйДокумент);
		Иначе
			ВывестиРеквизиты(Выборка, Макет, ТабличныйДокумент);
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат ТабличныйДокумент;
	
КонецФункции

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

	Если НациональныеРеквизитыБанковскихСчетов Тогда
		ЗаполнитьНациональныеРеквизиты(ИспользуетсяБанкДляРасчетов, Макет, Выборка, ТабличныйДокумент);
	КонецЕсли;
	
	Если МеждународныеРеквизитыБанковскихСчетов Тогда
		ЗаполнитьМеждународныеРеквизиты(ИспользуетсяБанкДляРасчетов, Макет, Выборка, ТабличныйДокумент);
	КонецЕсли;
	
КонецПроцедуры

Процедура ЗаполнитьМеждународныеРеквизиты(ИспользуетсяБанкДляРасчетов, Макет, Выборка, ТабличныйДокумент)
	
	Если ИспользуетсяБанкДляРасчетов Тогда
		Область = Макет.ПолучитьОбласть("МеждународныеРеквизитыНепрямыеРасчеты");
	Иначе
		Если Выборка.СчетЦифровогоРубля Тогда
			Область = Макет.ПолучитьОбласть("МеждународныеРеквизиты_СчетЦифровогоРубля");
		Иначе
			Область = Макет.ПолучитьОбласть("МеждународныеРеквизиты");
		КонецЕсли;
	КонецЕсли;
	
	ЗаполнитьЗначенияСвойств(Область.Параметры, Выборка);
	
	ЧастиАдреса = Новый Массив;
	Если Выборка.РучноеИзменениеРеквизитовБанка Тогда
		Банк = Выборка.НаименованиеБанкаМеждународное;
		SWIFT = Выборка.СВИФТБанка;
		Если ЗначениеЗаполнено(Выборка.СтранаБанкаМеждународноеНаименование) Тогда
			ЧастиАдреса.Добавить(Выборка.СтранаБанкаМеждународноеНаименование);
		КонецЕсли;
		Если ЗначениеЗаполнено(Выборка.ГородБанкаМеждународный) Тогда
			ЧастиАдреса.Добавить(Выборка.ГородБанкаМеждународный);
		КонецЕсли;
		Если ЗначениеЗаполнено(Выборка.АдресБанкаМеждународный) Тогда
			ЧастиАдреса.Добавить(Выборка.АдресБанкаМеждународный);
		КонецЕсли;
	Иначе
		Банк = Выборка.БанкМеждународноеНаименование;
		SWIFT = Выборка.БанкСВИФТБИК;
		Если ЗначениеЗаполнено(Выборка.БанкСтранаМеждународноеНаименование) Тогда
			ЧастиАдреса.Добавить(Выборка.БанкСтранаМеждународноеНаименование);
		КонецЕсли;
		Если ЗначениеЗаполнено(Выборка.БанкГородМеждународный) Тогда
			ЧастиАдреса.Добавить(Выборка.БанкГородМеждународный);
		КонецЕсли;
		Если ЗначениеЗаполнено(Выборка.БанкАдресМеждународный) Тогда
			ЧастиАдреса.Добавить(Выборка.БанкАдресМеждународный);
		КонецЕсли;
	КонецЕсли;
	Область.Параметры.МеждународноеНаименованиеБанка = Банк;
	Область.Параметры.SWIFT = SWIFT;
	Область.Параметры.АдресБанкаМеждународный = СтрСоединить(ЧастиАдреса, " ,");
	
	Если ИспользуетсяБанкДляРасчетов Тогда
		ЧастиАдреса = Новый Массив;
		Если Выборка.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
			БанкДляРасчетов = Выборка.НаименованиеБанкаДляРасчетовМеждународное;
			SWIFTБанкаДляРасчетов = Выборка.СВИФТБанкаДляРасчетов;
			Если ЗначениеЗаполнено(Выборка.СтранаБанкаДляРасчетовМеждународноеНаименование) Тогда
				ЧастиАдреса.Добавить(Выборка.СтранаБанкаДляРасчетовМеждународноеНаименование);
			КонецЕсли;
			Если ЗначениеЗаполнено(Выборка.ГородБанкаДляРасчетовМеждународный) Тогда
				ЧастиАдреса.Добавить(Выборка.ГородБанкаДляРасчетовМеждународный);
			КонецЕсли;
			Если ЗначениеЗаполнено(Выборка.АдресБанкаДляРасчетовМеждународный) Тогда
				ЧастиАдреса.Добавить(Выборка.АдресБанкаДляРасчетовМеждународный);
			КонецЕсли;
		Иначе
			БанкДляРасчетов = Выборка.БанкДляРасчетовМеждународноеНаименование;
			SWIFTБанкаДляРасчетов = Выборка.БанкДляРасчетовСВИФТБИК;
			Если ЗначениеЗаполнено(Выборка.БанкДляРасчетовСтранаМеждународноеНаименование) Тогда
				ЧастиАдреса.Добавить(Выборка.БанкДляРасчетовСтранаМеждународноеНаименование);
			КонецЕсли;
			Если ЗначениеЗаполнено(Выборка.БанкДляРасчетовГородМеждународный) Тогда
				ЧастиАдреса.Добавить(Выборка.БанкДляРасчетовГородМеждународный);
			КонецЕсли;
			Если ЗначениеЗаполнено(Выборка.БанкДляРасчетовАдресМеждународный) Тогда
				ЧастиАдреса.Добавить(Выборка.БанкДляРасчетовАдресМеждународный);
			КонецЕсли;
		КонецЕсли;
		Область.Параметры.БанкДляРасчетовМеждународный = БанкДляРасчетов;
		Область.Параметры.SWIFTБанкаДляРасчетов = SWIFTБанкаДляРасчетов;
		Область.Параметры.АдресБанкаДляРасчетовМеждународный = СтрСоединить(ЧастиАдреса, " ,");
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(Область);

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

Процедура ЗаполнитьНациональныеРеквизиты(ИспользуетсяБанкДляРасчетов, Макет, Выборка, ТабличныйДокумент)

	Если ИспользуетсяБанкДляРасчетов Тогда
		Область = Макет.ПолучитьОбласть("НациональныеРеквизитыНепрямыеРасчеты");
	Иначе
		Если Выборка.СчетЦифровогоРубля Тогда
			Область = Макет.ПолучитьОбласть("НациональныеРеквизиты_СчетЦифровогоРубля");
		Иначе
			Область = Макет.ПолучитьОбласть("НациональныеРеквизиты");
		КонецЕсли;
	КонецЕсли;
	
	ЗаполнитьЗначенияСвойств(Область.Параметры, Выборка);
	
	Если ЗначениеЗаполнено(Выборка.ТекстКорреспондента) Тогда
		Получатель = Выборка.ТекстКорреспондента
	Иначе
		Получатель = Выборка.ВладелецНаименованиеПолное;
	КонецЕсли;
	Область.Параметры.Получатель = Получатель;
	
	Если Выборка.РучноеИзменениеРеквизитовБанка Тогда
		Банк = Выборка.НаименованиеБанка;
		БИК = Выборка.БИКБанка
	Иначе
		Банк = Выборка.БанкНаименование;
		БИК = Выборка.БанкКод
	КонецЕсли;
	Область.Параметры.Банк = Банк;
	Область.Параметры.БИК = БИК;
	
	Если ИспользуетсяБанкДляРасчетов Тогда
		Если Выборка.РучноеИзменениеРеквизитовБанкаДляРасчетов Тогда
			БанкДляРасчетов = Выборка.НаименованиеБанкаДляРасчетов;
			БИКБанкаДляРасчетов = Выборка.БИКБанкаДляРасчетов
		Иначе
			БанкДляРасчетов = Выборка.БанкДляРасчетовНаименование;
			БИКБанкаДляРасчетов = Выборка.БанкДляРасчетовКод
		КонецЕсли;
		Область.Параметры.БанкКорреспондент = БанкДляРасчетов;
		Область.Параметры.БИКБанкаКорреспондента = БИКБанкаДляРасчетов;
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(Область);
	
КонецПроцедуры

Процедура ВывестиРеквизитыIBAN(Выборка, Макет, ТабличныйДокумент)
	
	CAC = Сред(Выборка.НомерСчета, 5);
	IBANPaper = "IBAN";
	НомерСчета = Выборка.НомерСчета;
	Пока СтрДлина(НомерСчета) > 0 Цикл
		IBANPaper = IBANPaper + " " + Сред(НомерСчета, 1, 4);
		НомерСчета = Сред(НомерСчета, 5);
	КонецЦикла;
	
	Если Выборка.РучноеИзменениеРеквизитовБанка Тогда
		SWIFT = Выборка.СВИФТБанка
	Иначе
		SWIFT = Выборка.БанкСВИФТБИК
	КонецЕсли;
		
	Область = Макет.ПолучитьОбласть("IBAN");
	
	Область.Параметры.CAC = CAC;
	Область.Параметры.IBAN = Выборка.НомерСчета;
	Область.Параметры.IBANPaper = IBANPaper;
	Область.Параметры.SWIFT = SWIFT;
	
	ТабличныйДокумент.Вывести(Область);
	
КонецПроцедуры

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

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

КонецФункции

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

#КонецЕсли

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