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