Принятие к учету ОС / Модуль объекта

файл

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ЗаполнитьДокументПоОтбору(Основание)

	Если Основание.Свойство("Дата") Тогда
		Дата = Основание.Дата;
	КонецЕсли;
	
	Если Основание.Свойство("Организация")
		И ЗначениеЗаполнено(Основание.Организация) Тогда
		Организация = Основание.Организация;
	КонецЕсли;

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

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

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

Процедура ЗаполнитьНаОснованииОбъектаСтроительства(ОбъектСтроительстваОснование)

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

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

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

Процедура ЗаполнитьНаОснованииВводаОстатков(Основание, ОсновноеСредство)

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

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

Процедура ЗаполнитьНаОснованииЗаключенияДоговораАренды(Основание)
	
	Если Не ЗначениеЗаполнено(Основание) Тогда
		Возврат;
	КонецЕсли;

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

Процедура ЗаполнитьНаОснованииИзмененияУсловийДоговораАренды(Основание)
	
	Если Не ЗначениеЗаполнено(Основание) Тогда
		Возврат;
	КонецЕсли;

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

Процедура ЗаполнитьНаОснованииГрупповогоОС()
	
	СписокОС = Новый Массив;
	Для каждого ДанныеСтроки Из ОС Цикл
		Если ЗначениеЗаполнено(ДанныеСтроки.ОсновноеСредство) Тогда
			СписокОС.Добавить(ДанныеСтроки.ОсновноеСредство);
		КонецЕсли; 
	КонецЦикла; 
	
	Если СписокОС.Количество() = 0 Тогда
		Возврат;
	КонецЕсли; 

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

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

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

#Область ПроверкаЗаполнения

Процедура ПроверитьРеквизитыШапки(Отказ)

	ПроверитьДатуПринятияКУчету(Отказ);
	ПроверитьПорядокНеПриниматьКУчетуВключитьВРасходы(Отказ);

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

Процедура ПроверитьОсновныеСредства(МассивНепроверяемыхРеквизитов, Отказ)

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

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

Процедура ПроверитьРеквизитыОтражениеРасходов(ПараметрыРеквизитовОбъекта, ПроверяемыеРеквизиты, Отказ)

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

Процедура ПроверитьПринятиеКУчетуПоДоговоруАренды(Отказ)

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

	ПринятиеКУчетуОСЛокализация.ПроверитьПринятиеКУчетуПоДоговоруАрендыПередЗаписью(ЭтотОбъект, Отказ);
		
КонецПроцедуры

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

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

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

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

Процедура ЗаблокироватьДанные()

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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