Подготовка к передаче НМА (2.2) / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ИсточникиДанных = Новый Соответствие;

	Возврат ИсточникиДанных; 

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

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

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

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

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

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

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

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

Функция ЗначенияПараметровПроведения(Реквизиты = Неопределено)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	
КонецПроцедуры

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

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

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

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

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

#КонецЕсли

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