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