Изменение параметров ОС / Форма документа / Модуль формы

файл

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода");
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

	// СтандартныеПодсистемы.РаботаСФайлами
	РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
	// Конец СтандартныеПодсистемы.РаботаСФайлами

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	// Обработчик механизма "ДатыЗапретаИзменения"
	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	ПриЧтенииСозданииНаСервере();

	ПараметрыВыбораСтатейИАналитик = Документы.ИзменениеПараметровОС2_4.ПараметрыВыбораСтатейИАналитик();
	ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
	
	СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Оповестить("Запись_ИзменениеПараметровОС2_4", ПараметрыЗаписи, Объект.Ссылка);
	ОбщегоНазначенияУТКлиент.ОповеститьОЗаписиДокументаВЖурнал();
	ВнеоборотныеАктивыКлиент.ОповеститьОЗаписиДокументаВЖурналОС();

	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);

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

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

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

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

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

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

#Область СтраницаОсновное

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

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	
	ВнеоборотныеАктивыКлиент.УстановитьТекущееВремяДляПрошлойДаты(Объект.Дата);
	
	ДатаПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

#Область СтраницаУчет

&НаКлиенте
Процедура НачислятьАмортизациюБУФлагПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);		
КонецПроцедуры

&НаКлиенте
Процедура МетодНачисленияАмортизацииБУФлагПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);		
КонецПроцедуры

&НаКлиенте
Процедура МетодНачисленияАмортизацииБУПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);		
КонецПроцедуры

&НаКлиенте
Процедура СрокИспользованияБУФлагПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);		
КонецПроцедуры

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

&НаКлиенте
Процедура КоэффициентУскоренияБУФлагПриИзменении(Элемент)
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);		
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура МетодНачисленияАмортизацииФлагУУПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

&НаКлиенте
Процедура КоэффициентУскоренияФлагУУПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПоказательНаработкиФлагПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЛиквидационнаяСтоимостьФлагПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбъемНаработкиФлагПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

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

#Область СтраницаАмортизация

&НаКлиенте
Процедура ОтражениеАмортизационныхРасходовФлагПриИзменении(Элемент)
	
	Если Объект.ОтражениеАмортизационныхРасходовФлаг
		И Объект.Амортизация.Количество() <> 1 Тогда
			
		Объект.Амортизация.Очистить();
		НоваяСтрока = Объект.Амортизация.Добавить();
		НоваяСтрока.Коэффициент = 1;
		
		Элементы.Амортизация.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
		
	КонецЕсли;
	
	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура АмортизацияПередаватьРасходыВДругуюОрганизациюБезРазбиенияПриИзменении(Элемент)

	НастроитьЗависимыеЭлементыФормыНаКлиентеНаСервере(ЭтотОбъект, Элемент.Имя);
	
КонецПроцедуры

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

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

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

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

	РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент,
				ПараметрыПеретаскивания, СтандартнаяОбработка);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

&НаКлиенте
Процедура ОСОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	Если ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.ОС, "ОсновноеСредство", ВыбранноеЗначение).Количество() <> 0 Тогда
		ПриИзмененииОСНаСервере();
	КонецЕсли; 
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура АмортизацияАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура АмортизацияПередаватьРасходыВДругуюОрганизациюПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Амортизация.ТекущиеДанные;
	Если Не ТекущиеДанные.ПередаватьРасходыВДругуюОрганизацию Тогда
		ТекущиеДанные.ОрганизацияПолучательРасходов = Неопределено;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура АмортизационнаяПремияАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура ПоказатьТекущиеЗначения(Команда)
	
	ПоказатьТекущиеЗначенияНаСервере();
	
КонецПроцедуры

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

&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Записать(ЭтотОбъект);
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтотОбъект);
	
КонецПроцедуры

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

#Область ШтрихкодыИТорговоеОборудование

&НаКлиенте
Процедура ЗагрузитьДанныеИзТСД(Команда)
	
	ВыполнитьЗагрузкуДанныеИзТСД();
	
КонецПроцедуры

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

#Область ПодключаемыеКоманды

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

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

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

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

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

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

	РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);

КонецПроцедуры
// Конец СтандартныеПодсистемы.РаботаСФайлами

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

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

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

#Область ПриИзмененииРеквизитов

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

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

&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
	
	НастроитьЗависимыеЭлементыФормыНаСервере("Организация");
	
	ЗаполнитьТекущиеЗначенияПараметров();
	
КонецПроцедуры

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

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

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

#Область ШтрихкодыИТорговоеОборудование

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

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

&НаКлиенте
Процедура ЗагрузитьИзТСДЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	Если Результат.Результат Тогда
		ОбработатьШтрихкоды(Результат.ТаблицаТоваров);
	Иначе
		МенеджерОборудованияУТКлиент.СообщитьОбОшибке(Результат);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ИнициализацияФормыПриСозданииНаСервере();	

	ЗаполнитьТекущиеЗначенияПараметров();
	
	Элементы.ДокументОснование.Видимость = ЗначениеЗаполнено(Объект.ДокументОснование);

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

&НаСервере
Процедура ЗаполнитьРеквизитыПоДокументуОснованию()

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

КонецПроцедуры
 
&НаСервере
Процедура ИнициализацияФормыПриСозданииНаСервере()

	ИнициализироватьСлужебныеПараметрыФормы();

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

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

&НаСервере
Процедура ЗаполнитьИнформациюВПодвале()

	ЗаголовокНадписи = ВнеоборотныеАктивыСлужебный.ИнформацияОДокументеВДругомУчете(Объект, Ложь);

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьТекущихЗначений(Форма, ОбновитьВсе, СтруктураИзмененныхРеквизитов)

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

&НаСервере
Процедура ПоказатьТекущиеЗначенияНаСервере()

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

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

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

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

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

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

&НаСервере
Процедура ИнициализироватьСлужебныеПараметрыФормы()

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

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

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

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

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