Банковские счета / Форма выбора / Модуль формы

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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

	// ИнтеграцияС1СДокументооборотом
	ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма);
	// Конец ИнтеграцияС1СДокументооборотом
	
	ДенежныеСредстваСерверЛокализация.ДобавитьКомандыСозданияБанковскихСчетов(ЭтотОбъект);
	
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Элементы.Список);
	
КонецПроцедуры
// Конец ИнтеграцияС1СДокументооборотом

&НаКлиенте
Процедура Подключаемый_СоздатьБанковскийСчет(Команда)
	ДенежныеСредстваКлиентЛокализация.ОткрытьСозданиеБанковскогоСчета(Список, Команда, Ложь);
КонецПроцедуры

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

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

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

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

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

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