Единицы, генерирующие денежные средства / Форма списка / Модуль формы

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// При открытии из справочника организации заполним из параметров открытия формы.
	Параметры.Отбор.Свойство("Владелец", Организация);
	
	Если ЗначениеЗаполнено(Организация) Тогда
		Элементы.Организация.ТолькоПросмотр = Истина;
	Иначе
		// Открыто из панели справочников ВНА
		ПриЧтенииСозданииНаСервере();
	КонецЕсли;

	УправлениеВидимостью();
	УстановитьУсловноеОформление();
	
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	УстановитьОтборВСписке();
	УстановитьОтборПоАрхиву();

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

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

#Область ОбработчикиКомандФормы
// Создать группу.
// Открывает форму создания новой группы ЕГДС, и устанавливает в ней владельца - головную организацию.
// 
// Параметры:
//  Команда - КомандаФормы - Команда
&НаКлиенте
Процедура СоздатьГруппу(Команда)
	СоздатьЭлементГруппу("Справочник.ЕдиницыГенерирующиеДенежныеСредства.Форма.ФормаГруппы", Истина);
КонецПроцедуры

// Создать новую ЕГДС.
// Открывает форму создания новой ЕГДС, и устанавливает в ней владельца - головную организацию.
// 
// Параметры:
//  Команда - КомандаФормы - Команда
&НаКлиенте
Процедура Создать(Команда)
	СоздатьЭлементГруппу("Справочник.ЕдиницыГенерирующиеДенежныеСредства.Форма.ФормаЭлемента", Ложь);
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	УстановитьОтборВСписке();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказыватьАрхивныеЗаписиПриИзменении(Элемент)
	
	УстановитьОтборПоАрхиву();
	
КонецПроцедуры

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

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ИспользоватьНесколькоОрганизаций       = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций");
	
	Если Не ИспользоватьНесколькоОрганизаций Тогда
		Если Не ЗначениеЗаполнено(Организация) Тогда
			Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию();
		КонецЕсли;
	Иначе
		Организация = ПолучитьПервуюОрганизацию();
	КонецЕсли;
	
КонецПроцедуры

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

&НаСервере
Процедура УстановитьУсловноеОформление()
	
		ОформлениеСписка = Список.КомпоновщикНастроек.Настройки.УсловноеОформление;
		ОформлениеСписка.Элементы.Очистить();
		
		ОформлениеСтрокАрхива = ОформлениеСписка.Элементы.Добавить();
		
		ОтборСтрокАрхива = ОформлениеСтрокАрхива.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборСтрокАрхива.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Архив");
		ОтборСтрокАрхива.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ОтборСтрокАрхива.ПравоеЗначение = Истина;
		
		ОформлениеСтрокАрхива.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.LightGray);
	
КонецПроцедуры

// Получить первую организацию.
//
// Возвращаемое значение:
// СправочникСсылка.Организации - Первая не помеченная на удаление организация
//
&НаСервере
Функция ПолучитьПервуюОрганизацию()

	// Получим первую не удаленную организацию
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 РАЗРЕШЕННЫЕ
	|	Организации.Ссылка КАК Организация
	|ИЗ
	|	Справочник.Организации КАК Организации
	|ГДЕ
	|	Организации.ПометкаУдаления = ЛОЖЬ
	|	И Организации.Предопределенный = ЛОЖЬ
	|	И Организации.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОрганизацийПодразделений.Действует)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Организации.Наименование";

	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();

	Пока Выборка.Следующий() Цикл
		Возврат Выборка.Организация;
	КонецЦикла;

	Возврат Справочники.Организации.ПустаяСсылка();
	
КонецФункции

&НаСервере
Функция ПолучитьГоловнуюОрганизацию()
	
	Возврат ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Организация, "ГоловнаяОрганизация");
	
КонецФункции

&НаКлиенте
Процедура СоздатьЭлементГруппу(ИмяФормы, СоздатьГруппу)
	
	ПараметрыНовогоЭлемента = Новый Структура;
	ПараметрыНовогоЭлемента.Вставить("Владелец", Организация);
	ПараметрыНовогоЭлемента.Вставить("ТекущаяОрганизация", Организация);
		
	ЗначенияЗаполнения = Новый Структура();
	ЗначенияЗаполнения.Вставить("ЗначенияЗаполнения", ПараметрыНовогоЭлемента);
	ЗначенияЗаполнения.Вставить("ЭтоГруппа", СоздатьГруппу);
	
	ОткрытьФорму(ИмяФормы, ЗначенияЗаполнения, ЭтотОбъект);
						
КонецПроцедуры

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

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

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

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

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

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