Принятие к учету ОС / Форма документа / Модуль формы

файл

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

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

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

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

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

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

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

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

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

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

	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
	ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
	ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
	ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
	ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
	ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
	ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура МестонахождениеПриИзменении(Элемент)

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

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("Договор");

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

&НаКлиенте
Процедура ЧастичныйВводВЭксплуатациюПриИзменении(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("ЧастичныйВводВЭксплуатацию");
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура АдресМестонахожденияПриИзменении(Элемент)
	
	ПриИзмененииПредставленияАдреса(Элемент);
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ДоначислитьАмортизациюЗаПрошлыйПериодПриИзменении(Элемент)
	
	Объект.ДоначислитьАмортизациюЗаПрошлыйПериод = (ДоначислитьАмортизациюЗаПрошлыйПериод = 1);
	
	НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура АналитикаРасходовУУПриИзменении(Элемент)

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

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

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

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

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

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

&НаКлиенте
Процедура СпособОтраженияРасходовУУПриИзменении(Элемент)

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

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

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовБУ,НаправлениеДеятельностиБУ");

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

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

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

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

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

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

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

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

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

	НастроитьЗависимыеЭлементыФормы("СпособОтраженияРасходовУУ,ПодразделениеИНаправлениеДеятельностиСовпадаютСДаннымиУчетаУУ");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ОСПослеУдаления(Элемент)
	
	НастроитьЗависимыеЭлементыФормы("ОсновноеСредство");
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

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

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

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

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

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

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

#Область ЗаполнениеОС

&НаСервере
Процедура ПодборНаСервере(ВыбранноеЗначение)

	ДобавленныеСтроки = ВнеоборотныеАктивыКлиентСервер.ОбработкаВыбораЭлемента(Объект.ОС, "ОсновноеСредство", ВыбранноеЗначение);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура ПриИзмененииСрокаИспользования(ИмяРеквизита, ОбновитьЕслиСовпадают)

	СписокРеквизитов = ВнеоборотныеАктивыКлиент.ПриИзмененииСрокаИспользования(
						Объект, ИмяРеквизита, СрокиИспользованияСовпадают И ОбновитьЕслиСовпадают);
	
	УстановитьСрокиИспользованияСовпадают(ЭтотОбъект);
	
	НастроитьЗависимыеЭлементыФормы(СписокРеквизитов);		

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

&НаСервере
Процедура ВариантОтраженияВУчетеПриИзмененииНаСервере()

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

	ЗаполнитьИнформациюВПодвале();
	
КонецПроцедуры

&НаСервере
Процедура ОССтоимостьБУПриИзмененииНаСервере()

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

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

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

	ВнеоборотныеАктивыКлиент.ПриИзмененииПредставленияАдреса(
		Элемент,
		Объект.АдресМестонахождения,
		Объект.АдресМестонахожденияЗначение);

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

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

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

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

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

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

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

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

&НаСервере
Процедура ПриВыполненииКомандыЗавершениеНаСервере(Знач ИмяКоманды, Знач ДополнительныеПараметры)

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

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

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Функция ТребуетсяВызовСервераДляНастройкиЭлементовФормы(СтруктураИзмененныхРеквизитов)

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

КонецФункции

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

	Объект = Форма.Объект;

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСрокиИспользованияСовпадают(Форма)

	Форма.СрокиИспользованияСовпадают = 
		(НЕ Форма.Объект.ОтражатьВРеглУчете 
					ИЛИ НЕ Форма.СлужебныеПараметрыФормы.РеглУчетВНАВедетсяНезависимо
					ИЛИ (Форма.Объект.СрокИспользованияБУ = Форма.Объект.СрокИспользованияНУ))
			И (НЕ Форма.Объект.ОтражатьВУпрУчете 
					ИЛИ (Форма.Объект.СрокИспользованияБУ = Форма.Объект.СрокИспользованияУУ));

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

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

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

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

&НаСервере
Функция ПредварительнаяСтоимостьОтличаетсяОтФактической()

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

КонецФункции

&НаКлиенте
Процедура ЗаполнитьЗначенияРеквизитовОСДоИзменения()

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

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

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

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

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

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

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

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

&НаСервере
Процедура ПорядокУчетаБУПриИзмененииНаСервере()

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

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

&НаСервереБезКонтекста
Функция НадписьКорректировкаАмортизации(Знач Ссылка, Знач ЕстьПравоДобавления)
	
	ТекстЗапроса = 
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ДанныеДокумента.Ссылка КАК Ссылка,
	|	ДанныеДокумента.Номер КАК Номер,
	|	ДанныеДокумента.Дата КАК Дата,
	|	ДанныеДокумента.Проведен КАК Проведен,
	|	ДанныеДокумента.Приоритет КАК Приоритет
	|ИЗ
	|	(ВЫБРАТЬ
	|		ДанныеДокумента.Ссылка КАК Ссылка,
	|		ДанныеДокумента.Номер КАК Номер,
	|		ДанныеДокумента.Дата КАК Дата,
	|		ДанныеДокумента.Проведен КАК Проведен,
	|		1 КАК Приоритет
	|	ИЗ
	|		Документ.КорректировкаСтоимостиИАмортизацииОС КАК ДанныеДокумента
	|	ГДЕ
	|		ДанныеДокумента.ДокументОснование = &Ссылка
	|		И ДанныеДокумента.Проведен
	|
	|	ОБЪЕДИНИТЬ ВСЕ
	|
	|	ВЫБРАТЬ
	|		ДанныеДокумента.Ссылка КАК Ссылка,
	|		ДанныеДокумента.Номер КАК Номер,
	|		ДанныеДокумента.Дата КАК Дата,
	|		ДанныеДокумента.Проведен КАК Проведен,
	|		2 КАК Приоритет
	|	ИЗ
	|		Документ.КорректировкаСтоимостиИАмортизацииОС КАК ДанныеДокумента
	|	ГДЕ
	|		ДанныеДокумента.ДокументОснование = &Ссылка
	|		И НЕ ДанныеДокумента.Проведен
	|		И НЕ ДанныеДокумента.ПометкаУдаления
	|
	|	) КАК ДанныеДокумента
	|
	|УПОРЯДОЧИТЬ ПО
	|	Приоритет
	|";
	
	Запрос = Новый Запрос(ТекстЗапроса);
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	
	СписокСтрок = Новый Массив;
	
	Если Выборка.Следующий() Тогда
		
		Если Выборка.Проведен Тогда
			Текст = НСтр("ru = 'Оформлена корректировка %1 от %2'");
		Иначе	
			Текст = НСтр("ru = 'Создана корректировка %1 от %2 (не проведен)'");
		КонецЕсли;
		Текст = СтрШаблон(Текст, Выборка.Номер, Формат(Выборка.Дата, "ДЛФ=D;"));		
		Текст = Новый ФорматированнаяСтрока(Текст,,,, ПолучитьНавигационнуюСсылку(Выборка.Ссылка));
		СписокСтрок.Добавить(Текст);
		
	Иначе
		
		СписокСтрок.Добавить(НСтр("ru = 'Корректировка амортизации не создана'"));

		Если ЕстьПравоДобавления Тогда
			СписокСтрок.Добавить(" ");
			СписокСтрок.Добавить("(");
			СписокСтрок.Добавить(Новый ФорматированнаяСтрока(НСтр("ru = 'создать'"),,,, "#Создать"));
			СписокСтрок.Добавить(")");
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Новый ФорматированнаяСтрока(СписокСтрок);
	
КонецФункции

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

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

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

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