#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ИнициализацияФормыПриСозданииНаСервере();
НастроитьЗависимыеЭлементыФормыНаСервере();
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект,
Элементы.Список.КоманднаяПанель);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура РежимОтображенияСведенийПриИзменении(Элемент)
ПриИзмененииРежимаОтображения();
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияОбОтбореНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СлужебныеПараметрыФормы", СлужебныеПараметрыФормы);
ПараметрыФормы.Вставить("РежимОтображенияСведений", РежимОтображенияСведений);
ОписаниеОповещения = Новый ОписаниеОповещения("ИнформацияОбОтбореНажатиеЗавершение", ЭтотОбъект);
ОткрытьФорму("Справочник.ОбъектыЭксплуатации.Форма.НастройкаОтборовФормыВыбора", ПараметрыФормы,,,,, ОписаниеОповещения);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбработатьВыборСтрокСписка();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ВыбратьЭлементы(Команда)
ОбработатьВыборСтрокСписка();
КонецПроцедуры
&НаКлиенте
Процедура СоздатьГрупповоеОС(Команда)
ВнеоборотныеАктивыКлиент.СоздатьОбъектЭксплуатацииПоТипу(ПредопределенноеЗначение("Перечисление.ТипыОС.ГрупповоеОС"));
КонецПроцедуры
&НаКлиенте
Процедура СоздатьОСУзел(Команда)
ВнеоборотныеАктивыКлиент.СоздатьОбъектЭксплуатацииПоТипу(ПредопределенноеЗначение("Перечисление.ТипыОС.Узел"));
КонецПроцедуры
&НаКлиенте
Процедура СоздатьКомпонентАмортизации(Команда)
ВнеоборотныеАктивыКлиент.СоздатьОбъектЭксплуатацииПоТипу(ПредопределенноеЗначение("Перечисление.ТипыОС.КомпонентАмортизации"));
КонецПроцедуры
&НаКлиенте
Процедура СоздатьКапитальноеВложение(Команда)
ВнеоборотныеАктивыКлиент.СоздатьОбъектЭксплуатацииПоТипу(ПредопределенноеЗначение("Перечисление.ТипыОС.КапитальноеВложение"));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
Команда,
ЭтотОбъект,
Элементы.Список);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ИнициализацияФормыПриСозданииНаСервере()
ИнициализироватьСлужебныеПараметрыФормы();
ВосстановитьНастройкиФормы();
УстановитьСвойстваДинамическогоСписка();
УстановитьОтборыСписка();
ЗаполнитьИнформациюОбОтборе(ЭтотОбъект);
УстановитьЗаголовок();
КонецПроцедуры
&НаСервере
Процедура ВосстановитьНастройкиФормы()
НастройкиФормы = ОбщегоНазначения.ХранилищеНастроекДанныхФормЗагрузить(
Метаданные.Справочники.ОбъектыЭксплуатации.Формы.ФормаВыбора2_4.ПолноеИмя(), "НастройкиФормы");
РежимОтображенияСведений = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(НастройкиФормы, "РежимОтображенияСведений", "НаДату");
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьСлужебныеПараметрыФормы()
НовыеСлужебныеПараметрыФормы = Новый Структура;
НовыеСлужебныеПараметрыФормы.Вставить("РеглУчетВНАВедетсяНезависимо", НастройкиНалоговУчетныхПолитикПовтИсп.РеглУчетВНАВедетсяНезависимо());
НовыеСлужебныеПараметрыФормы.Вставить("НастройкиПрав", Новый Структура);
НовыеСлужебныеПараметрыФормы.Вставить("ТекущиеЗначенияРеквизитов", Неопределено);
НовыеСлужебныеПараметрыФормы.Вставить(
"ИспользоватьНесколькоОрганизаций",
ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций"));
НовыеСлужебныеПараметрыФормы.Вставить(
"ИспользоватьПодразделения",
ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения"));
НовыеСлужебныеПараметрыФормы.Вставить(
"ИспользоватьУправлениеРемонтами",
ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеРемонтами"));
НовыеСлужебныеПараметрыФормы.Вставить(
"РегламентированныйУчетВНА",
ПолучитьФункциональнуюОпцию("РегламентированныйУчетВНА"));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_МестонахождениеОС",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.МестонахождениеОС));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПорядокУчетаОСУУ",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПорядокУчетаОСУУ));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПорядокУчетаОСБУ",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПорядокУчетаОСБУ));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПорядокУчетаОС",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПорядокУчетаОС));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПараметрыАмортизацииОСУУ",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПараметрыАмортизацииОСУУ));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПараметрыАмортизацииОСБУ",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПараметрыАмортизацииОСБУ));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_ПервоначальныеСведенияОС",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ПервоначальныеСведенияОС));
НовыеСлужебныеПараметрыФормы.НастройкиПрав.Вставить(
"ЕстьПравоЧтение_АрендованныеОС",
ПравоДоступа("Чтение", Метаданные.РегистрыСведений.АрендованныеОС));
ПолучитьПараметрыВыбора(НовыеСлужебныеПараметрыФормы);
СлужебныеПараметрыФормы = Новый ФиксированнаяСтруктура(НовыеСлужебныеПараметрыФормы);
КонецПроцедуры
&НаСервере
Процедура ПолучитьПараметрыВыбора(НовыеСлужебныеПараметрыФормы)
ПараметрыВыбора = Справочники.ОбъектыЭксплуатации.ПолучитьПараметрыВыбора(Параметры, НовыеСлужебныеПараметрыФормы.НастройкиПрав);
НовыеСлужебныеПараметрыФормы.Вставить("ПараметрыВыбора", ПараметрыВыбора);
ОтборСписка = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Отбор", Новый Структура);
ЭлементыДляУдаления = Новый Массив;
Для Каждого ОписаниеОтбора Из ОтборСписка Цикл
ИмяОтбора = ВРег(ОписаниеОтбора.Ключ);
Если ЭтоНастраиваемыйОтбор(ИмяОтбора) Тогда
ЭлементыДляУдаления.Добавить(ИмяОтбора);
КонецЕсли;
КонецЦикла;
Для Каждого ИмяЭлемента Из ЭлементыДляУдаления Цикл
Параметры.Отбор.Удалить(ИмяЭлемента);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРежимаОтображения()
НастройкиФормы = Новый Структура;
НастройкиФормы.Вставить("РежимОтображенияСведений", РежимОтображенияСведений);
ОбщегоНазначения.ХранилищеНастроекДанныхФормСохранить(
Метаданные.Справочники.ОбъектыЭксплуатации.Формы.ФормаВыбора2_4.ПолноеИмя(), "НастройкиФормы", НастройкиФормы);
УстановитьСвойстваДинамическогоСписка();
УстановитьОтборыСписка();
ЗаполнитьИнформациюОбОтборе(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("РежимОтображенияСведений");
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваДинамическогоСписка()
ТекстЗапроса =
"ВЫБРАТЬ
| ДанныеСправочникаПереопределяемый.Ссылка КАК Ссылка,
| ДанныеСправочникаПереопределяемый.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеСправочникаПереопределяемый.Родитель КАК Родитель,
| ДанныеСправочникаПереопределяемый.ЭтоГруппа КАК ЭтоГруппа,
| ДанныеСправочникаПереопределяемый.Код КАК Код,
| ДанныеСправочникаПереопределяемый.Наименование КАК Наименование,
| ДанныеСправочникаПереопределяемый.ТипОС КАК ТипОС,
| ДанныеСправочникаПереопределяемый.ИнвентарныйНомер КАК ИнвентарныйНомер,
| ДанныеСправочникаПереопределяемый.ГруппаОС КАК ГруппаОС,
| ДанныеСправочникаПереопределяемый.ГруппаОСМеждународныйУчет КАК ГруппаОСМеждународныйУчет,
| ДанныеСправочникаПереопределяемый.КодПоОКОФ КАК КодПоОКОФ,
| ДанныеСправочникаПереопределяемый.ШифрПоЕНАОФ КАК ШифрПоЕНАОФ,
| ДанныеСправочникаПереопределяемый.ДатаВыпуска КАК ДатаВыпуска,
| ДанныеСправочникаПереопределяемый.ДатаСведений КАК ДатаСведений,
| ДанныеСправочникаПереопределяемый.ЗаводскойНомер КАК ЗаводскойНомер,
| ДанныеСправочникаПереопределяемый.Изготовитель КАК Изготовитель,
| ДанныеСправочникаПереопределяемый.Класс КАК Класс,
| ДанныеСправочникаПереопределяемый.Модель КАК Модель,
| ДанныеСправочникаПереопределяемый.НаименованиеПолное КАК НаименованиеПолное,
| ДанныеСправочникаПереопределяемый.НомерПаспорта КАК НомерПаспорта,
| ДанныеСправочникаПереопределяемый.ОбъектБытовогоНазначения КАК ОбъектБытовогоНазначения,
| ДанныеСправочникаПереопределяемый.Подкласс КАК Подкласс,
| ДанныеСправочникаПереопределяемый.Расположение КАК Расположение,
| ДанныеСправочникаПереопределяемый.РемонтирующееПодразделение КАК РемонтирующееПодразделение,
| ДанныеСправочникаПереопределяемый.СерийныйНомер КАК СерийныйНомер,
| ДанныеСправочникаПереопределяемый.Статус КАК Статус,
| ДанныеСправочникаПереопределяемый.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеСправочникаПереопределяемый.ЭксплуатирующееПодразделение КАК ЭксплуатирующееПодразделение,
| ДанныеСправочникаПереопределяемый.СпособОтраженияЗарплаты КАК СпособОтраженияЗарплаты,
| ДанныеСправочникаПереопределяемый.Комментарий КАК Комментарий,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &АмортизационнаяГруппа КАК АмортизационнаяГруппа,
| &СостояниеБУ КАК СостояниеБУ,
| &СостояниеУУ КАК СостояниеУУ,
| &Организация КАК Организация,
| &МатериальноОтветственноеЛицо КАК МОЛ,
| &Подразделение КАК Подразделение,
| &АдресМестонахождения КАК АдресМестонахождения,
| &ГруппаФинансовогоУчета КАК ГруппаФинансовогоУчета,
| &СрокИспользованияУУ КАК СрокИспользованияУУ,
| &СрокИспользованияБУ КАК СрокИспользованияБУ,
| &СрокИспользованияНУ КАК СрокИспользованияНУ,
| &ОстаточныйСрокИспользованияУУ КАК ОстаточныйСрокИспользованияУУ,
| &ОстаточныйСрокИспользованияБУ КАК ОстаточныйСрокИспользованияБУ,
| &ОстаточныйСрокИспользованияНУ КАК ОстаточныйСрокИспользованияНУ,
| &НалогообложениеНДС КАК НалогообложениеНДС,
| &ДатаПринятияКУчетуРегл КАК ДатаПринятияКУчетуРегл,
| &ДатаПринятияКУчетуУпр КАК ДатаПринятияКУчетуУпр,
| &Арендодатель КАК Арендодатель,
| &Арендатор КАК Арендатор,
| &Договор КАК Договор
|
|ИЗ
| Справочник.ОбъектыЭксплуатации КАК ДанныеСправочникаПереопределяемый
|";
ОписаниеЗапросаДляВыбора = СформироватьСвойстваСписка();
Для Каждого ОписаниеПоля Из ОписаниеЗапросаДляВыбора.ПоляЗапроса Цикл
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&" + ОписаниеПоля.Ключ, ОписаниеПоля.Значение);
КонецЦикла;
Если ЗначениеЗаполнено(ОписаниеЗапросаДляВыбора.ТекстСоединения) Тогда
ТекстЗапроса = ТекстЗапроса + Символы.ПС + ОписаниеЗапросаДляВыбора.ТекстСоединения;
КонецЕсли;
Если ЗначениеЗаполнено(ОписаниеЗапросаДляВыбора.ТекстОтборы) Тогда
ТекстЗапроса = ТекстЗапроса + Символы.ПС + ОписаниеЗапросаДляВыбора.ТекстОтборы;
КонецЕсли;
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
СвойстваСписка.ТекстЗапроса = ТекстЗапроса;
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.Список, СвойстваСписка);
Для каждого ОписаниеПараметра Из ОписаниеЗапросаДляВыбора.ПараметрыЗапроса Цикл
Список.Параметры.УстановитьЗначениеПараметра(ОписаниеПараметра.Ключ, ОписаниеПараметра.Значение);
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция СформироватьСвойстваСписка()
СвойстваСписка = Новый Структура;
СвойстваСписка.Вставить("ТекстСоединения", "");
СвойстваСписка.Вставить("ТекстОтборы", "");
СвойстваСписка.Вставить("ПараметрыЗапроса", Новый Структура);
СвойстваСписка.Вставить("ПоляЗапроса", Новый Структура);
ПараметрыВыбора = СлужебныеПараметрыФормы.ПараметрыВыбора;
ПолучитьСведения =
РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние";
ОписаниеЗапросаДляВыбора = Справочники.ОбъектыЭксплуатации.ОписаниеЗапросаВыбораЭлементов(
ПараметрыВыбора, СлужебныеПараметрыФормы.НастройкиПрав, ПолучитьСведения);
ВнеоборотныеАктивыКлиентСервер.КопироватьСвойствоСтруктуры(ОписаниеЗапросаДляВыбора, СвойстваСписка, "ПоляЗапроса");
ВнеоборотныеАктивыКлиентСервер.КопироватьСвойствоСтруктуры(ОписаниеЗапросаДляВыбора, СвойстваСписка, "ПараметрыЗапроса");
Если НЕ ПустаяСтрока(ОписаниеЗапросаДляВыбора.ТекстОтборы) Тогда
СвойстваСписка.ТекстОтборы = "
|ГДЕ
|" + ОписаниеЗапросаДляВыбора.ТекстОтборы;
КонецЕсли;
Если РежимОтображенияСведений = "НеПоказывать" Тогда
Возврат СвойстваСписка;
КонецЕсли;
Если ПараметрыВыбора.Свойство("ДатаСведений") Тогда
ДатаСведений = КонецДня(ПараметрыВыбора.ДатаСведений);
Иначе
ДатаСведений = КонецДня(ТекущаяДатаСеанса());
КонецЕсли;
ОтборСписка = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыВыбора.Отбор);
#Область Соединения
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("МестонахождениеОС") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестонахождениеОС.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК МестонахождениеОС
| ПО МестонахождениеОС.ОсновноеСредство = ДанныеСправочникаПереопределяемый.Ссылка";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПервоначальныеСведенияОС") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОС.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПервоначальныеСведенияОС
| ПО ПервоначальныеСведенияОС.Организация = МестонахождениеОС.Организация
| И ПервоначальныеСведенияОС.ОсновноеСредство = МестонахождениеОС.ОсновноеСредство";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПорядокУчетаОСУУ") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПорядокУчетаОСУУ.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПорядокУчетаОСУУ
| ПО ПорядокУчетаОСУУ.Организация = МестонахождениеОС.Организация
| И ПорядокУчетаОСУУ.ОсновноеСредство = МестонахождениеОС.ОсновноеСредство";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПараметрыАмортизацииОСУУ") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСУУ.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПараметрыАмортизацииОСУУ
| ПО ПараметрыАмортизацииОСУУ.Организация = МестонахождениеОС.Организация
| И ПараметрыАмортизацииОСУУ.ОсновноеСредство = МестонахождениеОС.ОсновноеСредство";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПараметрыАмортизацииОСБУ") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСБУ.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПараметрыАмортизацииОСБУ
| ПО ПараметрыАмортизацииОСБУ.Организация = МестонахождениеОС.Организация
| И ПараметрыАмортизацииОСБУ.ОсновноеСредство = МестонахождениеОС.ОсновноеСредство";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("АрендованныеОС") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АрендованныеОС.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период) КАК АрендованныеОС
| ПО АрендованныеОС.ОсновноеСредство = ДанныеСправочникаПереопределяемый.Ссылка";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПорядокУчетаОСБУ") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПорядокУчетаОСБУ.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПорядокУчетаОСБУ
| ПО ПорядокУчетаОСБУ.Организация = МестонахождениеОС.Организация
| И ПорядокУчетаОСБУ.ОсновноеСредство = МестонахождениеОС.ОсновноеСредство";
КонецЕсли;
Если ОписаниеЗапросаДляВыбора.НеобходимыеТаблицы.Свойство("ПорядокУчетаОС") Тогда
СвойстваСписка.ТекстСоединения = СвойстваСписка.ТекстСоединения + "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПорядокУчетаОС.СрезПоследних(
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период,
| &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления
| И &ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия) КАК ПорядокУчетаОС
| ПО ПорядокУчетаОС.ОсновноеСредство = ДанныеСправочникаПереопределяемый.Ссылка";
КонецЕсли;
ПараметрыСрезаПоследних_Период = "";
ПараметрыСрезаПоследних_ДатаИсправления = "ИСТИНА";
ПараметрыСрезаПоследних_Условия = "ИСТИНА";
ПараметрыСрезаПоследних_Регистрация = "ИСТИНА";
Если РежимОтображенияСведений = "НаДату" Тогда
ПараметрыСрезаПоследних_ДатаИсправления = "ДатаИсправления = ДАТАВРЕМЯ(1,1,1)";
Если ПараметрыВыбора.Свойство("ДатаСведений") Тогда
ПараметрыСрезаПоследних_Период = "&ДатаСведений";
СвойстваСписка.ПараметрыЗапроса.Вставить("ДатаСведений", ДатаСведений);
КонецЕсли;
Если ПараметрыВыбора.Свойство("ТекущийРегистратор") Тогда
ПараметрыСрезаПоследних_Условия = "Регистратор <> &ТекущийРегистратор";
СвойстваСписка.ПараметрыЗапроса.Вставить("ТекущийРегистратор", ПараметрыВыбора.ТекущийРегистратор);
КонецЕсли;
Если ПараметрыВыбора.Свойство("ЕстьПараметрыНачисленияТранспортногоНалога")
И ПараметрыВыбора.ЕстьПараметрыНачисленияТранспортногоНалога
ИЛИ ПараметрыВыбора.Свойство("ЕстьПараметрыНачисленияЗемельногоНалога")
И ПараметрыВыбора.ЕстьПараметрыНачисленияЗемельногоНалога Тогда
ПараметрыСрезаПоследних_Регистрация = ПараметрыСрезаПоследних_Условия;
Если ОтборСписка.Свойство("Организация")
И ЗначениеЗаполнено(ОтборСписка.Организация) Тогда
ПараметрыСрезаПоследних_Регистрация =
ПараметрыСрезаПоследних_Регистрация
+ ?(ПараметрыСрезаПоследних_Регистрация <> "", " И ", "")
+ "Организация = &Организация";
СвойстваСписка.ПараметрыЗапроса.Вставить("Организация", СлужебныеПараметрыФормы.Отбор.Организация);
КонецЕсли;
КонецЕсли;
КонецЕсли;
СвойстваСписка.ТекстСоединения = СтрЗаменить(СвойстваСписка.ТекстСоединения, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период", ПараметрыСрезаПоследних_Период);
СвойстваСписка.ТекстСоединения = СтрЗаменить(СвойстваСписка.ТекстСоединения, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления", ПараметрыСрезаПоследних_ДатаИсправления);
СвойстваСписка.ТекстСоединения = СтрЗаменить(СвойстваСписка.ТекстСоединения, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия", ПараметрыСрезаПоследних_Условия);
СвойстваСписка.ТекстСоединения = СтрЗаменить(СвойстваСписка.ТекстСоединения, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Регистрация", ПараметрыСрезаПоследних_Регистрация);
СвойстваСписка.ТекстОтборы = СтрЗаменить(СвойстваСписка.ТекстОтборы, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Период", ПараметрыСрезаПоследних_Период);
СвойстваСписка.ТекстОтборы = СтрЗаменить(СвойстваСписка.ТекстОтборы, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_ДатаИсправления", ПараметрыСрезаПоследних_ДатаИсправления);
СвойстваСписка.ТекстОтборы = СтрЗаменить(СвойстваСписка.ТекстОтборы, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Условия", ПараметрыСрезаПоследних_Условия);
СвойстваСписка.ТекстОтборы = СтрЗаменить(СвойстваСписка.ТекстОтборы, "&ПАРАМЕТРЫ_СРЕЗАПОСЛЕДНИХ_Регистрация", ПараметрыСрезаПоследних_Регистрация);
#КонецОбласти
Возврат СвойстваСписка;
КонецФункции
&НаКлиенте
Процедура ОбработатьВыборСтрокСписка()
Если Элементы.Список.ВыделенныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ВыбранныеЭлементы = Новый Массив;
Если СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("РеквизитыКоторыеДолжныСовпадать")
И ЗначениеЗаполнено(СлужебныеПараметрыФормы.ПараметрыВыбора.РеквизитыКоторыеДолжныСовпадать)
И (РежимОтображенияСведений = "НаДату" ИЛИ РежимОтображенияСведений = "Последние") Тогда
ПроверитьРеквизиты = СтрРазделить(СлужебныеПараметрыФормы.ПараметрыВыбора.РеквизитыКоторыеДолжныСовпадать, ",");
Иначе
ПроверитьРеквизиты = Новый Массив;
КонецЕсли;
Для каждого ИдентификаторСтроки Из Элементы.Список.ВыделенныеСтроки Цикл
ДанныеСтроки = Элементы.Список.ДанныеСтроки(ИдентификаторСтроки);
Если ДанныеСтроки = Неопределено Тогда
Продолжить;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДанныеСтроки.Ссылка)
ИЛИ ДанныеСтроки.ПометкаУдаления
ИЛИ ДанныеСтроки.ЭтоГруппа
И Элементы.Список.ВыборГруппИЭлементов <> ИспользованиеГруппИЭлементов.Группы
И Элементы.Список.ВыборГруппИЭлементов <> ИспользованиеГруппИЭлементов.ГруппыИЭлементы Тогда
Продолжить;
КонецЕсли;
Если ПроверитьРеквизиты.Количество() <> 0 Тогда
Если СлужебныеПараметрыФормы.ТекущиеЗначенияРеквизитов = Неопределено Тогда
ТекущиеЗначенияРеквизитов = Новый Структура(СлужебныеПараметрыФормы.ПараметрыВыбора.РеквизитыКоторыеДолжныСовпадать);
ЗаполнитьЗначенияСвойств(ТекущиеЗначенияРеквизитов, ДанныеСтроки);
ВнеоборотныеАктивыКлиентСервер.УстановитьСвойствоСтруктуры("ТекущиеЗначенияРеквизитов", ТекущиеЗначенияРеквизитов, СлужебныеПараметрыФормы);
КонецЕсли;
Если НЕ ПроверитьВыбор(ДанныеСтроки, ПроверитьРеквизиты, СлужебныеПараметрыФормы.ТекущиеЗначенияРеквизитов) Тогда
Если НЕ ЭлементыВыбраны Тогда
ВнеоборотныеАктивыКлиентСервер.УстановитьСвойствоСтруктуры("ТекущиеЗначенияРеквизитов", Неопределено, СлужебныеПараметрыФормы);
КонецЕсли;
Возврат;
КонецЕсли;
КонецЕсли;
ВыбранныеЭлементы.Добавить(ДанныеСтроки.Ссылка);
КонецЦикла;
Если ВыбранныеЭлементы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ЭлементыВыбраны = Истина;
Если Элементы.Список.МножественныйВыбор Тогда
ОповеститьОВыборе(ВыбранныеЭлементы);
Иначе
ОповеститьОВыборе(ВыбранныеЭлементы[0]);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПроверитьВыбор(ДанныеСтроки, ПроверитьРеквизиты, ТекущиеЗначенияРеквизитов)
ТекстПредупреждения = Неопределено;
МестонахождениеНеСовпадает = Ложь;
ПрочиеРеквизитыНеСовпадают = Ложь;
Для каждого ИмяРеквизита Из ПроверитьРеквизиты Цикл
Если ДанныеСтроки[ИмяРеквизита] <> СлужебныеПараметрыФормы.ТекущиеЗначенияРеквизитов[ИмяРеквизита]
И (ЗначениеЗаполнено(СлужебныеПараметрыФормы.ТекущиеЗначенияРеквизитов[ИмяРеквизита])
ИЛИ ЗначениеЗаполнено(ДанныеСтроки[ИмяРеквизита])) Тогда
Если ИмяРеквизита = "Организация"
ИЛИ ИмяРеквизита = "СписокПодразделение"
ИЛИ ИмяРеквизита = "МОЛ" Тогда
МестонахождениеНеСовпадает = Истина;
Иначе
ПрочиеРеквизитыНеСовпадают = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если МестонахождениеНеСовпадает Тогда
Если ПроверитьРеквизиты.Найти("МОЛ") <> Неопределено Тогда
ТекстПредупреждения = НСтр("ru = 'Необходимо выбрать основные средства, числящиеся в одной организации, подразделении и МОЛ'");
Иначе
ТекстПредупреждения = НСтр("ru = 'Необходимо выбрать основные средства, числящиеся в одной организации и подразделении'");
КонецЕсли;
ИначеЕсли ПрочиеРеквизитыНеСовпадают Тогда
ТекстПредупреждения = НСтр("ru = 'Необходимо выбрать однотипные основные средства'");
КонецЕсли;
Если ТекстПредупреждения <> Неопределено Тогда
ПоказатьПредупреждение(, ТекстПредупреждения);
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныеРеквизиты = "")
СтруктураИзмененныхРеквизитов = Новый Структура(ИзмененныеРеквизиты);
ОбновитьВсе = СтруктураИзмененныхРеквизитов.Количество() = 0;
Если ОбновитьВсе Тогда
Если НЕ СлужебныеПараметрыФормы.РегламентированныйУчетВНА Тогда
Элементы.СписокСостояниеУУ.Заголовок = НСтр("ru = 'Состояние'");
Элементы.СписокДатаПринятияКУчетуУпр.Заголовок = НСтр("ru = 'Принято к учету'");
КонецЕсли;
Если НЕ ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Справочники.ОбъектыЭксплуатации) Тогда
Элементы.СписокСоздатьГрупповуюЕдиницуОС.Видимость = Ложь;
Элементы.СписокСоздатьОСУзел.Видимость = Ложь;
Элементы.СписокСоздатьКомпонентАмортизации.Видимость = Ложь;
Элементы.СписокСоздатьКапитальноеВложение.Видимость = Ложь;
КонецЕсли;
Если НЕ СлужебныеПараметрыФормы.ПараметрыВыбора.Контекст.Свойство("УР") Тогда
Элементы.СписокРемонтирующееПодразделение.Видимость = Ложь;
КонецЕсли;
Если СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_МестонахождениеОС
И (СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСУУ
ИЛИ СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСБУ
ИЛИ СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОС
ИЛИ СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПараметрыАмортизацииОСУУ
ИЛИ СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПараметрыАмортизацииОСБУ
ИЛИ СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПервоначальныеСведенияОС) Тогда
ЭлементСписка = Элементы.РежимОтображенияСведений.СписокВыбора.НайтиПоЗначению("НаДату");
Если СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("ДатаСведений")
И ЗначениеЗаполнено(СлужебныеПараметрыФормы.ПараметрыВыбора.ДатаСведений) Тогда
ЭлементСписка.Представление =
СтрШаблон(НСтр("ru = 'На дату %1'"), Формат(СлужебныеПараметрыФормы.ПараметрыВыбора.ДатаСведений, "ДЛФ=D;"));
Иначе
Если РежимОтображенияСведений = "НаДату" Тогда
РежимОтображенияСведений = "Последние";
КонецЕсли;
Элементы.РежимОтображенияСведений.СписокВыбора.Удалить(ЭлементСписка);
КонецЕсли;
Иначе
РежимОтображенияСведений = "НеПоказывать";
Элементы.РежимОтображенияСведений.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
Если СтруктураИзмененныхРеквизитов.Свойство("РежимОтображенияСведений")
ИЛИ ОбновитьВсе Тогда
ЗначениеСвойства =
СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_МестонахождениеОС
И (РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние");
Элементы.СписокОрганизация.Видимость = ЗначениеСвойства;
Элементы.СписокПодразделение.Видимость = ЗначениеСвойства;
Элементы.СписокМОЛ.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
ВнеоборотныеАктивыСлужебный.ЕстьПраваНаЧтениеСостоянияОС()
И (РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние");
Элементы.СписокСостояниеУУ.Видимость = ЗначениеСвойства;
Элементы.СписокСостояниеБУ.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПервоначальныеСведенияОС
И (РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние");
Элементы.СписокДатаПринятияКУчетуУпр.Видимость = ЗначениеСвойства;
Элементы.СписокДатаПринятияКУчетуРегл.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСБУ
И СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСУУ
И (РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние");
Элементы.ОстаточныйСрокИспользованияБУ.Видимость = ЗначениеСвойства;
Элементы.ОстаточныйСрокИспользованияНУ.Видимость = ЗначениеСвойства И СлужебныеПараметрыФормы.РегламентированныйУчетВНА;
Элементы.ОстаточныйСрокИспользованияУУ.Видимость = ЗначениеСвойства;
ЗначениеСвойства =
СлужебныеПараметрыФормы.РегламентированныйУчетВНА
И (РежимОтображенияСведений = "НаДату"
ИЛИ РежимОтображенияСведений = "Последние");
Элементы.СписокАмортизационнаяГруппа.Видимость = ЗначениеСвойства;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияОбОтбореНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено
ИЛИ ТипЗнч(Результат) <> Тип("Структура") Тогда
Возврат;
КонецЕсли;
ПриИзмененииОтбораНаСервере(Результат);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииОтбораНаСервере(Знач РезультатНастройкиОтборов)
Для Каждого ЭлементОтбора Из РезультатНастройкиОтборов Цикл
ВнеоборотныеАктивыКлиентСервер.УстановитьСвойствоСтруктуры(
ЭлементОтбора.Ключ, ЭлементОтбора.Значение, СлужебныеПараметрыФормы.ПараметрыВыбора.Отбор);
КонецЦикла;
УстановитьОтборыСписка();
ЗаполнитьИнформациюОбОтборе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтборыСписка()
ОтборСписка = СлужебныеПараметрыФормы.ПараметрыВыбора.Отбор;
Для Каждого ЭлементОтбора Из ОтборСписка Цикл
ИмяОтбора = ВРег(ЭлементОтбора.Ключ);
Если НЕ ЭтоНастраиваемыйОтбор(ИмяОтбора) Тогда
Продолжить;
КонецЕсли;
ЗначениеОтбора = ЭлементОтбора.Значение;
Если ИмяОтбора = ВРег("АмортизационнаяГруппа") Тогда
ЗначениеОтбора = Новый Массив;
Если ЗначениеЗаполнено(ЭлементОтбора.Значение) Тогда
ЗначениеОтбора.Добавить(ЭлементОтбора.Значение);
ЗначениеОтбора.Добавить(Перечисления.АмортизационныеГруппы.ПустаяСсылка());
КонецЕсли;
ИначеЕсли ИмяОтбора = ВРег("ГруппаОС") Тогда
ЗначениеОтбора = Новый Массив;
Если ЗначениеЗаполнено(ЭлементОтбора.Значение) Тогда
ЗначениеОтбора.Добавить(ЭлементОтбора.Значение);
ЗначениеОтбора.Добавить(Перечисления.ГруппыОС.ПустаяСсылка());
КонецЕсли;
КонецЕсли;
Если ИмяОтбора = ВРег("ОстаточныйСрокИспользованияБУ")
ИЛИ ИмяОтбора = ВРег("ОстаточныйСрокИспользованияУУ") Тогда
ВидСравненияОтбора = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
ИначеЕсли ТипЗнч(ЗначениеОтбора) = Тип("Массив")
ИЛИ ТипЗнч(ЗначениеОтбора) = Тип("СписокЗначений") Тогда
ВидСравненияОтбора = ВидСравненияКомпоновкиДанных.ВСписке;
Иначе
ВидСравненияОтбора = ВидСравненияКомпоновкиДанных.Равно;
КонецЕсли;
ИспользоватьОтбор =
ЗначениеЗаполнено(ЗначениеОтбора)
И (РежимОтображенияСведений <> "НеПоказывать"
ИЛИ НЕ Справочники.ОбъектыЭксплуатации.ЭтоОтборПоСведениям(ИмяОтбора));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, ИмяОтбора, ЗначениеОтбора, ВидСравненияОтбора,, ИспользоватьОтбор);
КонецЦикла;
Если РежимОтображенияСведений <> "НеПоказывать"
И СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСУУ
И СлужебныеПараметрыФормы.НастройкиПрав.ЕстьПравоЧтение_ПорядокУчетаОСБУ Тогда
Если ОтборСписка.Свойство("Состояние") Тогда
ЗначениеОтбора = ОбщегоНазначения.СкопироватьРекурсивно(ОтборСписка.Состояние);
Список.Параметры.УстановитьЗначениеПараметра("Состояние", ЗначениеОтбора);
Список.Параметры.УстановитьЗначениеПараметра("НеИспользоватьОтборСостояние", НЕ ЗначениеЗаполнено(ЗначениеОтбора));
Иначе
ЗначениеОтбора = Новый Массив;
ЗначениеОтбора.Добавить(Перечисления.СостоянияОС.ПустаяСсылка());
Список.Параметры.УстановитьЗначениеПараметра("Состояние", ЗначениеОтбора);
Список.Параметры.УстановитьЗначениеПараметра("НеИспользоватьОтборСостояние", Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗаполнитьИнформациюОбОтборе(Форма)
ПредставлениеОтбора = Новый Массив;
СлужебныеПараметрыФормы = Форма.СлужебныеПараметрыФормы;
ОтборСписка = СлужебныеПараметрыФормы.ПараметрыВыбора.Отбор;
Если ОтборСписка.Свойство("Статус")
И ЗначениеЗаполнено(ОтборСписка.Статус) Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Статус:</b> %1'"), ОтборСписка.Статус);
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
КонецЕсли;
Если ОтборСписка.Свойство("Состояние")
И ЗначениеЗаполнено(ОтборСписка.Состояние)
И Форма.РежимОтображенияСведений <> "НеПоказывать" Тогда
Если ПредставлениеОтбора.Количество() <> 0 Тогда
ПредставлениеОтбора.Добавить("; ");
КонецЕсли;
Если ОтборСписка.Состояние.Количество() = 1 Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Состояние:</b> %1'"), ОтборСписка.Состояние[0]);
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
Иначе
ПринятоКУчету = Ложь;
НеПринятоКУчету = Ложь;
ПереданоВАренду = Ложь;
Прочее = Ложь;
Для Каждого Элемент Из ОтборСписка.Состояние Цикл
Если Элемент = Перечисления.СостоянияОС.ПринятоКУчету
ИЛИ Элемент = Перечисления.СостоянияОС.ПринятоКЗабалансовомуУчету Тогда
ПринятоКУчету = Истина;
ИначеЕсли Элемент = Перечисления.СостоянияОС.СнятоСУчета
ИЛИ Элемент = Перечисления.СостоянияОС.НеПринятоКУчету Тогда
НеПринятоКУчету = Истина;
ИначеЕсли Элемент = Перечисления.СостоянияОС.ПереданоВАренду Тогда
ПереданоВАренду = Истина;
Иначе
Прочее = Истина;
КонецЕсли;
КонецЦикла;
Если ПринятоКУчету
И НЕ НеПринятоКУчету
И НЕ ПереданоВАренду
И НЕ Прочее Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Состояние:</b> Принято к учету'"));
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
ИначеЕсли НеПринятоКУчету
И НЕ ПринятоКУчету
И НЕ ПереданоВАренду
И НЕ Прочее Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Состояние:</b> Не принято к учету'"));
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
ИначеЕсли ПереданоВАренду
И НЕ ПринятоКУчету
И НЕ НеПринятоКУчету
И НЕ Прочее Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Состояние:</b> Передано в аренду'"));
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
Иначе
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = '<b>Состояние:</b> В списке'"));
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Форма.РежимОтображенияСведений <> "НеПоказывать" Тогда
ДобавитьПредставлениеОтбора(ОтборСписка, "Организация", НСтр("ru = 'Организация'"), ПредставлениеОтбора);
ДобавитьПредставлениеОтбора(ОтборСписка, "Подразделение", НСтр("ru = 'Подразделение'"), ПредставлениеОтбора);
ДобавитьПредставлениеОтбора(ОтборСписка, "МОЛ", НСтр("ru = 'МОЛ'"), ПредставлениеОтбора);
КонецЕсли;
ДобавитьПредставлениеОтбора(ОтборСписка, "ГруппаОС", НСтр("ru = 'Группа ОС'"), ПредставлениеОтбора);
Если Форма.РежимОтображенияСведений <> "НеПоказывать" Тогда
ДобавитьПредставлениеОтбора(ОтборСписка, "АмортизационнаяГруппа", НСтр("ru = 'Амортизационная группа'"), ПредставлениеОтбора);
КонецЕсли;
ДобавитьПредставлениеОтбора(ОтборСписка, "ЭксплуатирующееПодразделение", НСтр("ru = 'Эксплуатирующее подразделение'"), ПредставлениеОтбора);
ДобавитьПредставлениеОтбора(ОтборСписка, "РемонтирующееПодразделение", НСтр("ru = 'Ремонтирующее подразделение'"), ПредставлениеОтбора);
Если ОтборСписка.Свойство("ОстаточныйСрокИспользованияБУ")
И ОтборСписка.ОстаточныйСрокИспользованияБУ <> 0
И Форма.РежимОтображенияСведений <> "НеПоказывать" Тогда
Если ПредставлениеОтбора.Количество() <> 0 Тогда
ПредставлениеОтбора.Добавить("; ");
КонецЕсли;
ЗначениеСвойства = СтрШаблон(НСтр("ru = 'Не превышает %1 мес'"), ОтборСписка.ОстаточныйСрокИспользованияБУ);
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока("<b>%1:</b> %2", НСтр("ru = 'Остаточный СПИ (БУ)'"), ЗначениеСвойства);
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
КонецЕсли;
Если ОтборСписка.Свойство("ОстаточныйСрокИспользованияУУ")
И ОтборСписка.ОстаточныйСрокИспользованияУУ <> 0
И Форма.РежимОтображенияСведений <> "НеПоказывать" Тогда
Если ПредставлениеОтбора.Количество() <> 0 Тогда
ПредставлениеОтбора.Добавить("; ");
КонецЕсли;
ЗначениеСвойства = СтрШаблон(НСтр("ru = 'Не превышает %1 мес'"), ОтборСписка.ОстаточныйСрокИспользованияУУ);
Если СлужебныеПараметрыФормы.РеглУчетВНАВедетсяНезависимо Тогда
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока("<b>%1:</b> %2", НСтр("ru = 'Остаточный СПИ (УУ)'"), ЗначениеСвойства);
Иначе
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока("<b>%1:</b> %2", НСтр("ru = 'Остаточный СПИ'"), ЗначениеСвойства);
КонецЕсли;
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
КонецЕсли;
Если ПредставлениеОтбора.Количество() <> 0 Тогда
Форма.ИнформацияОбОтборе = Новый ФорматированнаяСтрока(ПредставлениеОтбора);
Иначе
Форма.ИнформацияОбОтборе = Новый ФорматированнаяСтрока(НСтр("ru = 'Не установлен'"));
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ДобавитьПредставлениеОтбора(ОтборСписка, ИмяСвойства, ПредставлениеСвойства, ПредставлениеОтбора)
Если ОтборСписка.Свойство(ИмяСвойства)
И ЗначениеЗаполнено(ОтборСписка[ИмяСвойства]) Тогда
Если ПредставлениеОтбора.Количество() <> 0 Тогда
ПредставлениеОтбора.Добавить("; ");
КонецЕсли;
Если (ТипЗнч(ОтборСписка[ИмяСвойства]) = Тип("Массив")
ИЛИ ТипЗнч(ОтборСписка[ИмяСвойства]) = Тип("ФиксированныйМассив")) Тогда
Если ОтборСписка[ИмяСвойства].Количество() = 1 Тогда
ПредставлениеЗначения = Строка(ОтборСписка[ИмяСвойства][0]);
Иначе
ПредставлениеЗначения = НСтр("ru = 'В списке'");
КонецЕсли;
ИначеЕсли ТипЗнч(ОтборСписка[ИмяСвойства]) = Тип("СписокЗначений") Тогда
Если ОтборСписка[ИмяСвойства].Количество() = 1 Тогда
ПредставлениеЗначения = Строка(ОтборСписка[ИмяСвойства][0].Значение);
Иначе
ПредставлениеЗначения = НСтр("ru = 'В списке'");
КонецЕсли;
Иначе
ПредставлениеЗначения = Строка(ОтборСписка[ИмяСвойства]);
КонецЕсли;
ЗначениеОтбора = СтроковыеФункции.ФорматированнаяСтрока("<b>%1:</b> %2", ПредставлениеСвойства, ПредставлениеЗначения);
ПредставлениеОтбора.Добавить(ЗначениеОтбора);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ЭтоНастраиваемыйОтбор(ИмяОтбора)
Результат =
ИмяОтбора = ВРег("Организация")
ИЛИ ИмяОтбора = ВРег("Подразделение")
ИЛИ ИмяОтбора = ВРег("МОЛ")
ИЛИ ИмяОтбора = ВРег("Статус")
ИЛИ ИмяОтбора = ВРег("ГруппаОС")
ИЛИ ИмяОтбора = ВРег("АмортизационнаяГруппа")
ИЛИ ИмяОтбора = ВРег("ЭксплуатирующееПодразделение")
ИЛИ ИмяОтбора = ВРег("РемонтирующееПодразделение")
ИЛИ ИмяОтбора = ВРег("ОстаточныйСрокИспользованияБУ")
ИЛИ ИмяОтбора = ВРег("ОстаточныйСрокИспользованияУУ");
Возврат Результат;
КонецФункции
&НаСервере
Процедура УстановитьЗаголовок()
Если ЗначениеЗаполнено(Параметры.ЗаголовокФормы) Тогда
Заголовок = Параметры.ЗаголовокФормы;
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Контекст.Свойство("УР") Тогда
Заголовок = НСтр("ru = 'Объекты эксплуатации'");
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("УчитыватьВВидеГрупповогоОС")
И СлужебныеПараметрыФормы.ПараметрыВыбора.УчитыватьВВидеГрупповогоОС Тогда
Заголовок = НСтр("ru = 'Групповые основные средства'");
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("ЗарегистрированоВРеестреСистемыПлатон") Тогда
Заголовок = НСтр("ru = 'Транспортные средства, зарегистрированные в системе ""Платон""'");
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("ЕстьПараметрыНачисленияТранспортногоНалога") Тогда
Заголовок = НСтр("ru = 'Зарегистрированные транспортные средства'");
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("ЕстьПараметрыНачисленияЗемельногоНалога") Тогда
Заголовок = НСтр("ru = 'Зарегистрированные земельные участки'");
ИначеЕсли СлужебныеПараметрыФормы.ПараметрыВыбора.Свойство("ВидНалога") Тогда
ДатаСведений = ?(Параметры.Свойство("ДатаСведений"), СлужебныеПараметрыФормы.ПараметрыВыбора.ДатаСведений, ТекущаяДатаСеанса());
Заголовок = ОбъектыЭксплуатацииЛокализация.ЗаголовокФормыВыбораОСПоВидуНалога(СлужебныеПараметрыФормы.ПараметрыВыбора.ВидНалога, ДатаСведений);
КонецЕсли;
КонецПроцедуры
#КонецОбласти