Модернизация ОС (2.2) / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ОС3";
	КомандаПечати.Представление = НСтр("ru = 'Акт о приеме-сдаче ОС (ОС-3)'");
	
КонецПроцедуры

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

Функция ПечатьОС3(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
	
	УстановитьПривилегированныйРежим(Истина);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Форма_ОС3";
	
	Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.МодернизацияОС.ПФ_MXL_ОС3");
	
	// Области
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка1");
	СтрокаТаблицы = Макет.ПолучитьОбласть("Строка1");
	ОбластьШапка2 = Макет.ПолучитьОбласть("Шапка2");
	СтрокаТаблицы2 = Макет.ПолучитьОбласть("Строка2");
	ПодвалДокумента = Макет.ПолучитьОбласть("Подвал");
	ОбластьПечати = Макет.ПолучитьОбласть("ОборотнаяСторона");

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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