Принятие к учету НМА / Модуль менеджера

файл

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

#Область ПрограммныйИнтерфейс

#Область Проведение

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

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

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

// Формирует таблицы движений при расчете стоимости.
//
// Параметры:
//  МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - Содержит необходимые временные таблицы.
//
// Возвращаемое значение:
//  см. ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения
//
Функция ТаблицыДвиженийРасчетаСтоимости(МенеджерВременныхТаблиц) Экспорт
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

	ПолучитьДанныеДокумента(Запрос);

	РасчетСебестоимостиПрикладныеАлгоритмы.ЗаполнитьПараметрыИнициализацииПоПериодам(Запрос, Запрос.Параметры,, "ВтСписокДокументов");

	ЗначенияПараметровПроведения = ЗначенияПараметровПроведения();
	Для каждого КлючИЗначение Из ЗначенияПараметровПроведения Цикл
		Запрос.УстановитьПараметр(КлючИЗначение.Ключ, КлючИЗначение.Значение);
	КонецЦикла; 

	ТекстыЗапроса = Новый СписокЗначений;

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

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

#Область Команды

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

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

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

// Определяет список команд отчетов.
//
// Параметры:
//   КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//   Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
КонецПроцедуры

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)";

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

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

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

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

#Область СлужебныйПрограммныйИнтерфейс

// 
// Параметры:
//  Объект - ДокументОбъект.ПринятиеКУчетуНМА2_4 - 
Процедура ЗаполнитьСтоимость(Объект) Экспорт

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

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

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

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

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

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

#Область Проведение

Функция ДополнительныеИсточникиДанныхДляДвижений(ИмяРегистра) Экспорт
	
	ИсточникиДанных = Новый Соответствие;
	
	Возврат ИсточникиДанных;
	
КонецФункции

Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт

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

	Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
	Результат.ЗначенияПараметров = ЗначенияПараметров;
	Результат.ТекстЗапроса = ТекстЗапроса;
	
	Возврат Результат;
	
КонецФункции

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

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

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

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

Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)
	
	ЗначенияПараметровПроведения = Новый Структура;
	ВнеоборотныеАктивыСлужебный.ЗначенияПараметровПроведенияПринятияКУчетуНМА(ЗначенияПараметровПроведения);
	ПринятиеКУчетуНМАЛокализация.ЗначенияПараметровПроведения(ЗначенияПараметровПроведения);

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

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

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

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

Процедура ТекстЗапросаТаблицаПорядокУчетаНМА(ТекстыЗапроса, Регистры)

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

Процедура ТекстЗапросаТаблицаПорядокУчетаНМАБУ(Запрос, ТекстыЗапроса, Регистры)

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

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

Процедура ТекстЗапросаТаблицаПорядокУчетаНМАУУ(ТекстыЗапроса, Регистры)

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

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

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

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

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

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

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

Процедура ТекстЗапросаТаблицаСтоимостьНМА(Запрос, ТекстыЗапроса, Регистры)

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

Процедура ТекстЗапросаТаблицаПрочиеРасходы(Запрос, ТекстыЗапроса, Регистры)

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

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

Процедура ТекстЗапросаТаблицаДвиженияДоходыРасходыПрочиеАктивыПассивы(Запрос, ТекстыЗапроса, Регистры)

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

Процедура ТекстЗапросаТаблицаСоставЕГДС(Запрос, ТекстыЗапроса, Регистры)

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

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

Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса, ДопПоля)

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

	ТекстЗапроса = ПринятиеКУчетуНМАЛокализация.ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса, ДопПоля);

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

	ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);

	Возврат ТекстЗапроса;
	
КонецФункции

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

#Область ПроведениеПоРеглУчету

Функция ТекстОтраженияВРеглУчете() Экспорт

	Возврат ПринятиеКУчетуНМАЛокализация.ТекстОтраженияВРеглУчете();

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

Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт

	Возврат ПринятиеКУчетуНМАЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();

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

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

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

// Заполняет список команд печати.
//
// Параметры:
//   КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	ПринятиеКУчетуНМАЛокализация.ДобавитьКомандыПечати(КомандыПечати);

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

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

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

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

#Область РабочееМесто

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

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

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

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

// Формирует описание реквизитов объекта, заполняемых по статистике их использования.
//
// Параметры:
//  ОписаниеРеквизитов - см. ЗаполнениеОбъектовПоСтатистике.ДобавитьОписаниеЗаполняемыхРеквизитов
//
Процедура ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов) Экспорт

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

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

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

#Область ОбновлениеИнформационнойБазы

// Добавляет в список процедуры-обработчики обновления данных ИБ
// для всех поддерживаемых версий библиотеки или конфигурации.
// Вызывается перед началом обновления данных ИБ для построения плана обновления.
//
//  Обработчики - ТаблицаЗначений - описание полей, см. в процедуре
//                ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления.
//
// Пример добавления процедуры-обработчика в список:
//  Обработчик = Обработчики.Добавить();
//  Обработчик.Версия              = "1.1.0.0";
//  Обработчик.Процедура           = "ОбновлениеИБ.ПерейтиНаВерсию_1_1_0_0";
//  Обработчик.МонопольныйРежим    = Ложь;
//
// Параметры:
// 	Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления
//
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт

	Обработчик = Обработчики.Добавить();
	Обработчик.Процедура = "Документы.ПринятиеКУчетуНМА2_4.ОбработатьДанныеДляПереходаНаНовуюВерсию";
	Обработчик.Версия = "2.5.25.92";
	Обработчик.РежимВыполнения = "Отложенно";
	Обработчик.Идентификатор = Новый УникальныйИдентификатор("300f41e6-6029-451d-8f0e-b5a1f807c520");
	Обработчик.Многопоточный = Истина;
	Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ПринятиеКУчетуНМА2_4.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
	Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
	Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Обычный;
	Обработчик.Комментарий = НСтр("ru = 'Обновляет документы ""Принятие к учету НМА""'");
	//++ Локализация
	Обработчик.Комментарий = НСтр("ru = 'Обновляет документы ""Принятие к учету НМА"":
								  |- Заполняет реквизит ""Инвестиционный налоговый вычет""'");
	//-- Локализация
	
	Читаемые = Новый Массив;
	Читаемые.Добавить(Метаданные.Документы.ПринятиеКУчетуНМА2_4.ПолноеИмя());
	Обработчик.ЧитаемыеОбъекты = СтрСоединить(Читаемые, ",");
	
	Изменяемые = Новый Массив;
	Изменяемые.Добавить(Метаданные.Документы.ПринятиеКУчетуНМА2_4.ПолноеИмя());
	Обработчик.ИзменяемыеОбъекты = СтрСоединить(Изменяемые, ",");
	
	Блокируемые = Новый Массив;
	Блокируемые.Добавить(Метаданные.Документы.ПринятиеКУчетуНМА2_4.ПолноеИмя());
	Обработчик.БлокируемыеОбъекты = СтрСоединить(Блокируемые, ",");

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

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

	ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
	//-- Локализация
	
КонецПроцедуры

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

	ПолноеИмяОбъекта = "Документ.ПринятиеКУчетуНМА2_4";
	
	ОбновляемыеДанные = ОбновлениеИнформационнойБазы.ДанныеДляОбновленияВМногопоточномОбработчике(Параметры);
	
	ПроблемныхОбъектов = 0;
	ОбъектовОбработано = 0;

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

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

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

#КонецЕсли

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