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