Объекты эксплуатации / Форма элемента / Модуль формы

файл

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

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПриЧтенииСозданииНаСервере();
	
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

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

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

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

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

&НаКлиенте
Процедура ЕстьОшибкиВПодчиненныхНажатие(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура СведенияПринятКУчетуОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	Если СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, "#Создать") <> 0 Тогда
		СтандартнаяОбработка = Ложь;
		ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка);
		ОткрытьФорму("Документ.ПринятиеКУчетуОС2_4.ФормаОбъекта", ПараметрыФормы);
	КонецЕсли; 
	
КонецПроцедуры

&НаКлиенте
Процедура СведенияМестонахождениеАдресОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	УправлениеКонтактнойИнформациейКлиент.ПоказатьАдресНаКарте(НавигационнаяСсылкаФорматированнойСтроки, "Яндекс.Карты");
	
КонецПроцедуры

#Область Локализация

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент)

	ОбъектыЭксплуатацииКлиентЛокализация.ПриИзмененииРеквизита(Элемент.Имя, ЭтаФорма);

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

&НаКлиенте
Процедура Подключаемый_НачалоВыбораРеквизита(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ОбъектыЭксплуатацииКлиентЛокализация.НачалоВыбораРеквизита(ЭтаФорма, Элемент, ДанныеВыбора, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыПараметрыУчетаНаработок

&НаКлиенте
Процедура ПараметрыУчетаНаработокПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
	
	
	Возврат; // В КА пустой обработчик

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокУзловКомпонентовАмортизации

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

	ТекущиеДанные = Элементы.СписокУзловКомпонентовАмортизации.ТекущиеДанные;
	Если ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ПоказатьЗначение(, ТекущиеДанные.УзелКомпонент);

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

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

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
	 РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
	 РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

&НаКлиенте
Процедура Подключаемый_ПриВыполненииКоманды(Команда)

	ОбъектыЭксплуатацииКлиентЛокализация.ПриВыполненииКоманды(Команда, ЭтаФорма);

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

&НаКлиенте
Процедура ВыполнитьПроверкуЗаполнения(Команда)
	
	
	Возврат; // Пустой обработчик для УТ и КА
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьСтатусВЭксплуатации(Команда)
	
	ПроверитьЗаполнениеПриЗаписи = Истина;
	УстановитьНовыйСтатусИЗаписать(СтатусВЭксплуатации);
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьСтатусЛиквидирован(Команда)
	
	ПроверитьЗаполнениеПриЗаписи = Истина;
	УстановитьНовыйСтатусИЗаписать(СтатусЛиквидирован);
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьСтатусРедактируется(Команда)
	
	УстановитьНовыйСтатусИЗаписать(СтатусРедактируется);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьИнвентарныйНомер(Команда)
	
	Объект.ИнвентарныйНомер = Объект.Код;
	
КонецПроцедуры

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

#Область СтандартныеПодсистемы

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

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

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

// ИнтеграцияС1СДокументооборотом
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
	
	ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
	
КонецПроцедуры
// Конец ИнтеграцияС1СДокументооборотом

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

// СтандартныеПодсистемы.Свойства

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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

#Область Прочее

&НаКлиенте
Процедура ПриОкончанииИзмененияРеквизитаЛокализации(ИмяЭлемента, ПараметрыОповещения) Экспорт

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

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

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

	ИспользоватьОбесценениеВНА = ПолучитьФункциональнуюОпцию("ИспользоватьОбесценениеВНА");
	
	Элементы.ГруппаОбесценение.Видимость = ИспользоватьОбесценениеВНА;
	Элементы.СписокУзловКомпонентовАмортизацииГруппаОбесценение.Видимость = ИспользоватьОбесценениеВНА;
	
	КлассификацияДМ4 = Число(Объект.ОбъектБытовогоНазначения);
	
	СтатусВЭксплуатации = Перечисления.СтатусыОбъектовЭксплуатации.ВЭксплуатации;
	СтатусЛиквидирован = Перечисления.СтатусыОбъектовЭксплуатации.Ликвидирован;
	СтатусРедактируется = Перечисления.СтатусыОбъектовЭксплуатации.Редактируется;
	ПроверитьЗаполнениеПриЗаписи = Ложь;
	ЕстьОшибкиВПодчиненных = Ложь;
	
	Элементы.НаименованиеПолное.СписокВыбора.Очистить();
	Элементы.НаименованиеПолное.СписокВыбора.Добавить(Объект.Наименование);
	
	ЗаполнитьПараметрыОтображения(Объект);
	
	
	
	ЗаполнитьСведенияОбУчете();
	
	ПрочитатьПериодическиеРеквизиты();
	
	ОбъектыЭксплуатацииЛокализация.ПриЧтенииСозданииНаСервере(ЭтаФорма);
	
	НастроитьЗависимыеЭлементыФормы(ЭтаФорма);
	
КонецПроцедуры

&НаСервере
Процедура ПриИзмененииДокументовОС()

	ОбъектЭксплуатацииПринятКУчету = ВнеоборотныеАктивы.ОбъектЭксплуатацииПринятКУчету(Объект.Ссылка);

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

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

		Если ПравоДоступа("Добавление", Метаданные.Документы.ПрекращениеДоговораАренды) Тогда
			ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
				Элементы, "ПрекращениеДоговораАренды", ТаблицаКоманд, ПринятКУчету И ДоступнаАренда);
		КонецЕсли; 

		Если ПравоДоступа("Добавление", Метаданные.Документы.ИзменениеУсловийДоговораАренды) Тогда
			ВнеоборотныеАктивыСлужебный.УстановитьВидимостьКомандыВводаНаОсновании(
				Элементы, "ИзменениеУсловийДоговораАренды", ТаблицаКоманд, ПринятКУчету И ДоступнаАренда);
		КонецЕсли;
		 
	КонецЕсли; 
	
	ОбъектыЭксплуатацииЛокализация.УстановитьВидимостьКомандВводаНаОсновании(ЭтаФорма, ТаблицаКоманд);
	
КонецПроцедуры

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

&НаСервере
Процедура ЗаполнитьПараметрыОтображения(ОбъектЗаполнения)
	
	УстановитьПривилегированныйРежим(Истина);
	
	СтатусЗаписанногоОбъекта = ОбъектЗаполнения.Статус;
	
	Редактируется = (Не ИспользоватьУправлениеРемонтами) Или (Не ЗначениеЗаполнено(ОбъектЗаполнения.Статус) Или ОбъектЗаполнения.Статус = СтатусРедактируется);
	ИспользуютсяПодклассы = Ложь;
	
	УстановитьПривилегированныйРежим(Ложь);
	
	ДоступноИзменениеСтатуса = ПравоДоступа("Изменение", Метаданные.Справочники.ОбъектыЭксплуатации);
	
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ОбновитьФорму()
	
	Если ЭтаФорма.ВводДоступен() Тогда
		
		ОтключитьОбработчикОжидания("Подключаемый_ОбновитьФорму");
		
		ЭтаФорма.Прочитать();
		
	КонецЕсли;
	
КонецПроцедуры

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

&НаСервере
Процедура ЗаполнитьСведенияОбУчете()

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЗависимыеЭлементыФормы(Форма, Знач ИзмененныеРеквизиты = "")

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

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

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

		//
		ЗначениеСвойства = 
			(Объект.ТипОС = ПредопределенноеЗначение("Перечисление.ТипыОС.ОбъектЭксплуатации")
				Или Объект.ТипОС = ПредопределенноеЗначение("Перечисление.ТипыОС.Узел"))
			И Форма.ДоступноИзменениеСтатуса
			И Форма.ИспользоватьУправлениеРемонтами;
		
		Элементы.УстановитьСтатусРедактируется.Видимость = ЗначениеСвойства;
		Элементы.УстановитьСтатусВЭксплуатации.Видимость = ЗначениеСвойства;
		Элементы.УстановитьСтатусЛиквидирован.Видимость = ЗначениеСвойства;
		Элементы.ПроверитьЗаполнение.Видимость = ЗначениеСвойства;
				
	КонецЕсли;
	
	Если СтруктураИзмененныхРеквизитов.Свойство("ТипОС")
		ИЛИ СтруктураИзмененныхРеквизитов.Свойство("ЕстьОшибкиВПодчиненных")
		ИЛИ ОбновитьВсе Тогда

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

&НаСервере
Процедура ПрочитатьПериодическиеРеквизиты()

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

	ОбъектыЭксплуатацииЛокализация.ПрочитатьПериодическиеРеквизиты(ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьЗаголовокФормы()

	Если Объект.ТипОС = Перечисления.ТипыОС.ГрупповоеОС Тогда
		
		Заголовок = 
			?(ЗначениеЗаполнено(Объект.Ссылка),
				СтрШаблон(НСтр("ru = '%1 (Групповое ОС)'"), Объект.Наименование),
				НСтр("ru = 'Групповое ОС (создание)'"));
				
	ИначеЕсли Объект.ТипОС = Перечисления.ТипыОС.Узел Тогда
		
		Заголовок = 
			?(ЗначениеЗаполнено(Объект.Ссылка),
				СтрШаблон(НСтр("ru = '%1 (Узел)'"), Объект.Наименование),
				НСтр("ru = 'Узел (создание)'"));
				
	ИначеЕсли Объект.ТипОС = Перечисления.ТипыОС.КомпонентАмортизации Тогда
		
		Заголовок = 
			?(ЗначениеЗаполнено(Объект.Ссылка),
				СтрШаблон(НСтр("ru = '%1 (Компонент амортизации)'"), Объект.Наименование),
				НСтр("ru = 'Компонент амортизации (создание)'"));
				
	ИначеЕсли Объект.ТипОС = Перечисления.ТипыОС.КапитальноеВложение Тогда
		
		Заголовок = 
			?(ЗначениеЗаполнено(Объект.Ссылка),
				СтрШаблон(НСтр("ru = '%1 (Кап. вложения в арендованное имущество)'"), Объект.Наименование),
				НСтр("ru = 'Кап. вложения в арендованное имущество (создание)'"));
				
	Иначе
		
		Заголовок = 
			?(ЗначениеЗаполнено(Объект.Ссылка),
				СтрШаблон(НСтр("ru = '%1 (Объект эксплуатации)'"), Объект.Наименование),
				НСтр("ru = 'Объект эксплуатации (создание)'"));
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура КлассПриИзмененииНаСервере()
	
	ОбновитьЭлементыДополнительныхРеквизитов();
	ИспользуютсяПодклассы = Ложь;
	
	
	
	НастроитьЗависимыеЭлементыФормы(ЭтотОбъект, "Класс");
	
КонецПроцедуры
 
#КонецОбласти

#Область СтандартныеПодсистемы

// СтандартныеПодсистемы.Свойства

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

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

// Конец СтандартныеПодсистемы.Свойства

// Процедура обновления элементов дополнительных реквизитов объекта в форме
//
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
	
	УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
	
КонецПроцедуры

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

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

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