Распределение расходов / Модуль менеджера

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

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

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

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

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

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

				
				ЗафиксироватьТранзакцию();
				
			Исключение
				
				ОтменитьТранзакцию();
				БылиОшибки = Истина;

				ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Не удалось обработать документ ""%1"" из-за ошибки:
						|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
					ВыборкаРегистраторов.Регистратор,
					ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
				
				ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
					ПараметрыОбработчика,
					ТекстОшибки,
					ВыборкаРегистраторов.Организация,
					,
					,
					ВыборкаРегистраторов.Регистратор);
					
			КонецПопытки;
			
		КонецЦикла;
		
		Если Не БылиОшибки Тогда
			РассчитанныеОрганизации.Добавить(ВыборкаПоОрганизациям.Организация);
		КонецЕсли;
		
	КонецЦикла;

	
	Обработки.ОперацииЗакрытияМесяца.ЗарегистрироватьПроблемыРасчетаЭтапа(ПараметрыОбработчика);
	
	Возврат РассчитанныеОрганизации;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

#Область Описание_СтатьиКРаспределению

// Заполнение данных рабочего места распределения расходов:
// Основная функция, запускающая получения списка: см. СтатьиКРаспределению.
// Выходные данные формируются в ВТ СостояниеРаспределенияРасходов. см. ТекстЗапросаДанныеДляРаспределения.
// 
// Порядок выполнения:
// 1. Подготовка данных:
// 1.1 Инициализация запроса: см. ИнициализироватьЗапросПолученияДанныхДляРаспределения.
// 
// 1.2. Формирование служебных таблиц: см. ПодготовитьСлужебныеТаблицы.
//	- ДолиТранспортныхРасходов - см. НалоговыйУчет.ДоляТранспортныхРасходовТекущегоМесяца
//	Будет пустая, если ИсключитьТранспортныеРасходы = Истина (последний параметр процедуры).
//	
//	- ВтДолиСписанияКосвенныхРасходов - см. НалоговыйУчет.СоздатьВременнуюТаблицуДолиСписанияКосвенныхРасходов.
//	Доли списания косвенных расходов в разрезе статей расходов.
//	
//	- ВтОВЗ - см. РасчетСебестоимостиПостатейныеЗатраты.ТекстВТпоОВЗ
//	Таблица с настройками ОВЗ (варианты и правила распределения).
//	
//	- ЗначенияПоказателейОВЗ - см. РасчетСебестоимостиПостатейныеЗатраты.ТекстЗначенияПоказателейРаспределенияНаОВЗ.
//	На базе данных РС РегистрСведений.ЗначенияПоказателейДляРаспределенияРасходовНаОВЗ и правил распределения собирает показатели распределения на ОВЗ.
//	
//	- Регистраторы - см. ПодготовитьТаблицыКРасчету
//	Проведенные документы распределения прочих затрат с отборами по настройкам распределения.
//	
//	- РаспределитьПоПодразделениям - см. ПодготовитьТаблицыКРасчету.
//	На этом этапе пустая таблица.
//	
//	- РаспределитьПоЭтапам - см. ПодготовитьТаблицыКРасчету
//	Выборка регистраторов из ВТ Регистраторы с отбором по БазаРаспределенияПоПартиям.
//	
//	
// 2. Формирование текста запроса расходов к распределению: см. ТекстЗапросаДанныеДляРаспределения.
//	
// 2.1 Сначала формируется текст запроса по поступившим расходам: см. ТекстЗапросаПоступилоПрочихРасходов.
//	Формируются таблицы отборов:
//	- СтатьиРасходовКРаспределению (по видам учета и общая).
// Список статей расходов, у которых вариант распределения в одном из видов учета входит в &ВариантыРаспределенияРасходов.
// 
//	- ОВЗКРаспределению (по видам учета и общая).
// Список ОВЗ, у которых вариант распределения в одном из видов учета входит в &ВариантыРаспределенияРасходов.
// 
//	
// 2.2 Формируется текст запроса по источникам поступивших расходов
//	Данные источников разбиты на области:
//	- ТекстОписаниеДанных
//	
//	- ТекстОстаткиПрочихРасходов (Упр, Регл, НУ)
//	Остатки по РН ПрочиеРасходы.
//	
//	- ТекстДвиженияПрочихРасходов (Упр, Регл, НУ)
//	Движения по РН ПрочиеРасходы.
//	
//	- ТекстДвиженияПартийПрочихРасходов (Упр, Регл, НУ)
//	Приходные движения по РН ПарииПрочихРасходов по документам НачислениеРеверсивногоНДС.
//	
//	- ТекстДвиженияПрочихРасходовВторичногоКонтура (Упр, Регл, НУ)
//	Приходные движения вторичного контура по РН ПарииПрочихРасходов.
//	
//	- ТекстДвиженияНаСебестоимостьПроизводства (Упр, Регл, НУ)
//	Расходные движения по РН ПрочиеРасходы по документам выпуска продукции.
//	
//	- ТекстСписаниеРаспределениеТМЦ
//	Движения по РН СебестоимостьТоваров по списанию ТМЦ в производство.
//	
//	- ТекстСписаниеРаспределениеТМЦвДругуюОрганизацию
//	Движения по РН СебестоимостьТоваров по списанию ТМЦ в производство с заполненным полем КорОрганизация.
//	
//	- ТекстРаспределениеМатериалыИРаботы
//	Движения по РН МатериалыИРаботыВПроизводстве по документам РаспределениеПроизводственныхЗатрат.
//	
//	- ТекстОстаткиПрочихРасходовОВЗ (Упр, Регл, НУ, НДД)
//	Остатки по РН ПрочиеРасходы с отбором по ОВЗ.
//	
//	- ТекстДвиженияПрочихРасходовИзОВЗ (Упр, Регл, НУ, НДД)
//	Расходные движения по РН ПрочиеРасходы с отбором по ОВЗ.
//	
//	- ТекстСписаниеРаспределениеТМЦНаОВЗ
//	Движения по РН СебестоимостьТоваров по списанию ТМЦ в производство с отбором по ОВЗ.
//	
//	- ТекстРаспределениеМатериалыИРаботыНаОВЗ
//	Движения по РН МатериалыИРаботыВПроизводстве по документам РаспределениеПроизводственныхЗатрат с отбором по ОВЗ.
//	
//	- ТекстДвиженияПрочихРасходовМеждуОВЗРасход
//	Расходные движения по РН ПрочиеРасходы по документам РаспределениеПрочихЗатрат с отбором по ОВЗ и операции ТранзитРасходовМеждуОВЗ.
//	
//	- ТекстПрочихДвиженияРасходовМеждуОВЗПриход
//	Приходные движения по РН ПрочиеРасходы по документам РаспределениеПрочихЗатрат с отбором по ОВЗ и операции ТранзитРасходовМеждуОВЗ.
//	
//	- ТекстТранзитРасходовМеждуОВЗпоГрафу (общий, НДД)
//	Выборка из ВТ ВтТранзитРасходовМеждуОВЗ с отбором по ОВЗ.
//	
//	Разделение на виды учета для Упр, Регл и НУ идет через отдельные функции: см. ШаблонЗамен и см. ЗаменитьПоШаблону. 
//	Для НДД подбираются отдельными запросами.
//	
//	
// 2.3 По источникам формируются таблицы РасходыКРаспределению и РасходыКРаспределениюСводно.
//	По данным РасходыКРаспределению, формируются настройки распределения по НДД.
//	
// 2.4 Дальнейшее формирование таблиц:
//	- ПравилаРаспределенияПоНастройкам
//	Правила распределения по аналитикам прочих расходов.
//	
//	- ПравилаРаспределенияСРучнымВводом
//	Правила распределения с ручным вводом.
//	
//	- СтатьиРасходовБезСтатьиКалькуляции
//	Статьи расходов, у которых не указаны статьи калькуляции и вариант распределения НаПроизводственныеЗатраты или НаСебестоимостьПроизводства в одном из видов учета.
//	
//	- ДвиженияСтатейРасходов
//	Таблица с признаками наличия движений по аналитикам прочих расходов по видам учета:
//	1) ЕстьДвиженияМеждуОВЗ (Упр, Регл, НУ, НДД).
//	2) ЕстьДвиженияНаФинансовыйРезультат (Упр, Регл, НУ, НДД).
//	3) ЕстьДвиженияНаПроизводство (Упр, Регл, НУ, НДД).
//	4) ЕстьДвиженияНаДругиеСтатьи (Упр, Регл, НУ, НДД).
//	5) ЕстьСписаниеНУ (только НУ).
//	
//	- ДокументыРаспределения
//	Проведенные документы РаспределениеПрочихЗатрат в выбранном периоде.
//	
//	- НормированиеНаСчетахУчетах
//	Движения по РН ПрочиеРасходы по операции РаспределениеНормируемыхРасходовПоНУ.
//	
// 2.5 Собираются данные по нераспределенным расходам через вызов отдельной функции: см. ТекстЗапросаРасходыПослеРаспределенияИсточники.
//	- АктуальныеОстаткиРасходовНаКонецМесяца
//	Остатки по РН ПрочиеРасходы по аналитикам из ВТ РасходыКРаспределениюСводно.
//	Флаги ЕстьПогрешностьРасчета = Ложь
//	
//	- КорректировкаПриЗакрытииГода
//	Движения по РН ПрочиеРасходы по аналитикам из ВТ РасходыКРаспределению по документам РегламентнаяОперация и операции СписаниеКосвенныхРасходов.
//	Из сумм заполняются только СуммаНУОстаток и ПостояннаяРазницаОстаток
//	Флаги ЕстьПогрешностьРасчета = Ложь
//	
//	- КорректировкаНаФиксируемыеОстаткиНЗП
//	Выборка из ВТ РасходыКРаспределениюСводно с отбором по наличию документов распределения
//	Флаги ЕстьПогрешностьРасчета = Истина, когда существует документ распределения
//	
//	- КорректировкаНаНормированиеРасходов
//	Выборка из ВТ РасходыКРаспределению с отбором по аналитикам (статья расходов, организация) из ВтДолиСписанияКосвенныхРасходов
//	Флаги ЕстьПогрешностьРасчета = Ложь, когда сумма или доля списания = 0 или когда нет совпадающих аналитик по ВТ ДвиженияСтатейРасходов. 
//	ЕстьПогрешностьРасчета = Истина, когда есть совпадающие аналитики по ВТ ДвиженияСтатейРасходов.
//	
//	- АктуальныеОстаткиРасходовНаКонецМесяцаПоОВЗ
//	Остатки по РН ПрочиеРасходы по аналитикам из ВТ РасходыКРаспределениюСводно. АналитикаРасходов = ОВЗ. СтатьяРасходов пустая.
//	Флаги ЕстьПогрешностьРасчета = Ложь
//	
// 2.6 Дальнейшее формирование таблиц:
//	- РасходыПослеРаспределения
//	Данные по нераспределенным расходам из прошлого пункта, дополненные флагом РаспределеноВ.. по видам учета.
//	РаспределеноВ.. = Истина, когда вариант распределение входит в список, нет погрешности и сумма = 0 и когда сумма в пределах &ЗначениеПогрешностиРегл.
//	
//	- Задания
//	Задания из РС ЗаданияКРасчетуСебестоимости. По организациям подбирается минимальный месяц, в котором есть задания к расчету.
//	
//	- НераспределяемыеРасходыНаСебестоимостьТоваров
//	Выборка из РасходыКРаспределениюСводно по варианту распределения НаСебестоимостьТоваров.
//	Устанавливается флаг НеРаспределяетсяВ.. по видам учета, если по виду учета вариант = НаСебестоимостьТоваров.
//	
//	2.7 Формирование таблицы ВТДанныеДляРаспределения
//	Основная таблица с данными по распределению расходов.
//	Заполняются состояния по видам учета. 
//	Делится на 2 части в объединении - основной и по ОВЗ.
//	
//	Принцип определения состояния распределения расходов для 1-й части запроса следующий:
//	- НеТребуется, если вариант распределения не входит в &ВариантыРаспределенияРасходов.
//	- НеТребуется, если аналитика попадает в ВТ НераспределяемыеРасходыНаСебестоимостьТоваров.
//	Скорее всего некорректная аналитика расходов или расходы относятся к будущим периодам.
//	
//	- НеТребуется, если статья расходов заполнена и вариант распределения - на ОВЗ.
//	Статьи с вариантом распределения ""На ОВЗ"" обрабатываются сводно, документ не требуется.
//	
//	- НеПоступилиРасходы, если месяц закрыт, остатков и движений нет.
//	- Распределено, если месяц закрыт и расходов нет.
//	- ТребуетсяРучнойВводДокумента, если не настроено распределение долей, есть остаток к распределению и правило с ручным заполнением, 
//	то требуется настройка вручную. Состояние - ТребуетсяРучнойВводДокумента.
//	
//	- НеРаспределено, если не настроено распределение долей, но месяц закрыт.
//	- ТребуетсяСформироватьДокумент, если не настроено распределение долей, и есть остаток к распределению.
//	- ОшибкаРаспределения, если распределение долей есть, документ распределения сделал движения на производство, но есть остаток к распределению, то есть ошибка.
//	- ОшибкаРаспределения, если распределение между ОВЗ есть, документ распределения сделал движения, но есть остаток к распределению.
//	- ОшибкаРаспределения, если распределение долей есть, документ распределения сделал движения на фин. рез., но есть остаток к распределению.
//	- Распределено, если распределение долей есть, документ распределения сделал движения и статья полностью распределена.
//	- НеТребуется, если месяц не закрыт, нет остатка к распределению и сумма не расчетная.
//	- ГотовоКРаспределениюПоБазе, если ни одно из условий не выполнилось.
//	
//	По второй части (ОВЗ) принцип следующий:
//	- НеТребуется, если вариант распределения не входит в &ВариантыРаспределенияРасходов.
//	- НеПоступилиРасходы, если месяц закрыт и вариант распределения в списке: 
//		НаПроизводственныеЗатраты, 
//		НаСебестоимостьПроизводства, 
//		НаНаправленияДеятельности, 
//		НаОбъектыВозникновенияЗатрат.
//	- ТребуетсяРучнойВводДокумента, если документ распределения не создан, вариант распределения ОВЗ = НаПроизводственныеЗатраты и подобрано правило по виду учета.
//	- ТребуетсяСформироватьДокумент, если документ распределения не создан и не выполнилось предыдущее условие.
//	- ГотовоКРаспределениюПоБазе, если ни одно из условий не выполнилось.
//	
// 2.8 Формирование таблицы СостояниеРаспределенияРасходов.
//	Выборка данных из ВТДанныеДляРаспределения с дополнительными отборами:
//	- отсеиваются строки, у которых во всех видах учета состояние = НеТребуется.
//	- для всех видов учета накладывается фильтр &ФильтрПоСостоянию на состояния и дополнительная проверка вхождения варианта распределения в &ВариантыРаспределенияРасходов.
//	

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

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

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

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

	//++ Локализация
	ПараметрыВидовУчета.Вставить("НалоговыйУчет", 
		Новый Структура("Состояние, Документ, ОписаниеОшибки", "СостояниеНал", "ДокументНал", "ОписаниеОшибкиНал"));
	//-- Локализация

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

			//++ Локализация
			Док.НалоговыйУчет = Ложь;
			//-- Локализация

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

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

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

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

		//-- НЕ УТ

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

		//++ Локализация
		|	ЕСТЬNULL(ДокументыНал.Документ, ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка)) КАК ДокументНал,
		//-- Локализация

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

		// статьи с вариантом распределения ""На ОВЗ"" обрабатываются сводно, документ не требуется
		|		КОГДА НЕ Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
		|				И Источник.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
		//-- НЕ УТ

		// если месяц закрыт, остатков и движений нет
		|		КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
		|			И ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
		|			И НЕ (
		|				ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатУпр, ЛОЖЬ) 
		|				ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоУпр, ЛОЖЬ)
		|				ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиУпр, ЛОЖЬ)
		//++ НЕ УТ
		|				ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗУпр, ЛОЖЬ)
		//-- НЕ УТ
		|			)
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
		// если месяц закрыт и расходов нет, то состояние Распределено
		|		КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL) 
		|			И ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
		//++ НЕ УТ

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

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

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

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

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

		//-- НЕ УТ

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

		//++ Локализация
		|		ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыНал
		|		ПО	Источник.СтатьяРасходов				= ДокументыНал.СтатьяРасходов
		|			И Источник.АналитикаРасходов 		= ДокументыНал.АналитикаРасходов
		|			И Источник.Подразделение			= ДокументыНал.Подразделение
		|			И Источник.НаправлениеДеятельности	= ДокументыНал.НаправлениеДеятельности
		|			И Источник.Организация				= ДокументыНал.Организация
		|			И ДокументыНал.НалоговыйУчет
		//-- Локализация

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

		//++ Локализация
		|	ВТДанныеДляЗагрузки.ДокументНал КАК ДокументНал,
		//-- Локализация

		//-- НЕ УТ
		|	ВТДанныеДляЗагрузки.ДокументНДД КАК ДокументНДД,
		|	ВТДанныеДляЗагрузки.СостояниеУУ КАК СостояниеУпр,
		|	ВТДанныеДляЗагрузки.СостояниеБУ КАК СостояниеРегл
		//++ НЕ УТ

		//++ Локализация
		|	,
		|	ВТДанныеДляЗагрузки.СостояниеНУ КАК СостояниеНал
		//-- Локализация

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

		//++ Локализация
		|			ИЛИ
		|			(ВТДанныеДляЗагрузки.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
		|				 И ВТДанныеДляЗагрузки.СостояниеНУ = &ФильтрПоСостоянию)
		//-- Локализация

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

		//++ Локализация
		|		И ВТДанныеДляЗагрузки.СостояниеНУ В (
		|			ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется), 
		|			ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы))
		//-- Локализация

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

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

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

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

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

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

		//++ Локализация
		|	ДанныеПоРасходам.ДокументНал КАК ДокументНал,
		//-- Локализация

		//-- НЕ УТ
		|	ДанныеПоРасходам.ДокументРегл КАК ДокументРегл,
		|	ДанныеПоРасходам.ДокументНДД КАК ДокументНДД,
		|	ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
		|	ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
		|	ДанныеПоРасходам.Организация КАК Организация,
		|	ДанныеПоРасходам.Подразделение КАК Подразделение,
		|	ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
		|	ДанныеПоРасходам.СостояниеУпр КАК СостояниеУпр,
		//++ НЕ УТ

		//++ Локализация
		|	ДанныеПоРасходам.СостояниеНал КАК СостояниеНал,
		//-- Локализация

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

		//++ Локализация
		|	ДанныеПоРасходам.ДокументНал КАК ДокументНал,
		//-- Локализация

		//-- НЕ УТ
		|	ДанныеПоРасходам.ДокументРегл КАК ДокументРегл,
		|	ДанныеПоРасходам.ДокументНДД КАК ДокументНДД,
		|	ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
		|	ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
		|	ДанныеПоРасходам.СостояниеУпр КАК СостояниеУпр,
		//++ НЕ УТ

		//++ Локализация
		|	ДанныеПоРасходам.СостояниеНал КАК СостояниеНал,
		//-- Локализация

		//-- НЕ УТ
		|	ДанныеПоРасходам.СостояниеРегл КАК СостояниеРегл,
		|	ДанныеПоРасходам.СостояниеНДД КАК СостояниеНДД,
		|	РеквизитыСтатьи.СтатьяКалькуляции КАК СтатьяКалькуляции,
		|	РеквизитыСтатьи.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРегл,
		//++ НЕ УТ

		//++ Локализация
		|	РеквизитыСтатьи.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияНал,
		//-- Локализация

		//-- НЕ УТ
		|	РеквизитыСтатьи.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияУпр,
		|	ДанныеПоРасходам.Организация КАК Организация,
		|	ДанныеПоРасходам.Подразделение КАК Подразделение,
		|	ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
		//++ НЕ УТ
		|	ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаРегл, 
		|		ЕСТЬNULL(НастройкиПоОрганизации.НастройкаРегл, 
		|			ЕСТЬNULL(НастройкиПоПодразделению.НастройкаРегл, 
		//-- НЕ УТ
		|					РеквизитыСтатьи.ПравилоРаспределенияРасходовРегл
		//++ НЕ УТ
		|	)))
		//-- НЕ УТ
		|		КАК ПравилоРаспределенияРегл,
		//++ НЕ УТ

		//++ Локализация
		|	ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаНУ, 
		|		ЕСТЬNULL(НастройкиПоОрганизации.НастройкаНУ, 
		|			ЕСТЬNULL(НастройкиПоПодразделению.НастройкаНУ, 
		|					РеквизитыСтатьи.ПравилоРаспределенияРасходовНУ
		|	)))
		|		КАК ПравилоРаспределенияНал,
		//-- Локализация

		//-- НЕ УТ

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

		//++ Локализация
		|	Настройки.ДокументНал КАК ДокументНал,
		//-- Локализация

		//-- НЕ УТ
		|	Настройки.ДокументРегл КАК ДокументРегл,
		|	Настройки.ДокументНДД КАК ДокументНДД,
		|	Настройки.СтатьяРасходов КАК СтатьяРасходов,
		|	Настройки.АналитикаРасходов КАК АналитикаРасходов,
		|	Настройки.СостояниеУпр КАК СостояниеУпр,
		//++ НЕ УТ

		//++ Локализация
		|	Настройки.СостояниеНал КАК СостояниеНал,
		//-- Локализация

		//-- НЕ УТ
		|	Настройки.СостояниеРегл КАК СостояниеРегл,
		|	Настройки.СостояниеНДД КАК СостояниеНДД,
		|	Настройки.СтатьяКалькуляции КАК СтатьяКалькуляции,
		|	Настройки.ВариантРаспределенияРегл,
		//++ НЕ УТ

		//++ Локализация
		|	Настройки.ВариантРаспределенияНал КАК ВариантРаспределенияНал,
		//-- Локализация

		//-- НЕ УТ
		|	Настройки.ВариантРаспределенияУпр,
		|	ЕСТЬNULL(НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД, 
		|		ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, 
		|			ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)))  КАК ВариантРаспределенияНДД,
		|	Настройки.Организация КАК Организация,
		|	Настройки.Подразделение КАК Подразделение,
		|	Настройки.НаправлениеДеятельности КАК НаправлениеДеятельности,
		|	Настройки.ПравилоРаспределенияРегл,
		//++ НЕ УТ

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

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

// Формирует документы распределения расходов по переданным параметрам
// и помещает результат создания документов во временное хранилище.
// Параметры:
//	Параметры - Структура - параметры получения статей расходов:
//		* ПараметрыРасходов - ТаблицаЗначений - Таблица статей к распределению.
//	АдресХранилища - Строка - адрес во временном хранилище, куда следует поместить результат создания документов.
// Возвращаемое значение:
//	Соответствие - в качестве ключа документа, а в качестве значения структура.
Функция СформироватьДокументы(Параметры, АдресХранилища) Экспорт
	
	Перем ПараметрыРасходов, МассивОрганизаций, ПериодРегистрации;
	
	Замер = ОценкаПроизводительности.НачатьЗамерДлительнойОперации(
		"Документ.РаспределениеПрочихЗатрат.МодульМенеджера.СформироватьДокументы");
	
	Параметры.Свойство("ПараметрыРасходов", ПараметрыРасходов);
	Параметры.Свойство("МассивОрганизаций", МассивОрганизаций);
	Параметры.Свойство("ПериодРегистрации", ПериодРегистрации);
	
	РезультатыФормированияДокументов = Новый Соответствие();
	
	ШаблонСообщения = НСтр("ru = '%6 (%7): не удалось создать документ распределения по %1 учету для статьи %2 с аналитикой %3 по причине: %4 %5.'", ОбщегоНазначения.КодОсновногоЯзыка());
	
	НастройкиРаспределенияСтатьиРасходов = 
		ПолучитьНастройкиРаспределенияСтатейРасходов(ПараметрыРасходов, МассивОрганизаций, ПериодРегистрации);

	Для Каждого НастройкаРаспределения Из НастройкиРаспределенияСтатьиРасходов Цикл
		
		ДетализацияРезультатовФормирования = РезультатыФормированияДокументов.Получить(НастройкаРаспределения.Организация);
		Если ДетализацияРезультатовФормирования = Неопределено Тогда
			
			ДетализацияРезультатов = Новый Структура;
			ДетализацияРезультатов.Вставить("СформированоДокументов", 0);
			ДетализацияРезультатов.Вставить("ОбновленныеДанные", Новый Массив);
			ДетализацияРезультатов.Вставить("ОписаниеОшибок", Новый Массив);
			
			РезультатыФормированияДокументов.Вставить(НастройкаРаспределения.Организация,
				ДетализацияРезультатов);
				
		КонецЕсли;
		
		Результат = СформироватьДокумент(НастройкаРаспределения);
		
		МесяцНастройки = ТРег(Формат(НастройкаРаспределения.Дата, "ДФ='MMMM yyyy';"));
		
		Если Результат.Свойство("ОписаниеОшибкиРегл") Тогда
			
			ТекстСообщения = СтрШаблон(
				ШаблонСообщения,
				НСтр("ru = 'бухгалтерскому'", ОбщегоНазначения.КодОсновногоЯзыка()),
				НастройкаРаспределения.СтатьяРасходов,
				НастройкаРаспределения.АналитикаРасходов,
				Символы.ПС,
				Результат.ОписаниеОшибкиРегл,
				НастройкаРаспределения.Организация,
				МесяцНастройки);

			ОписаниеОшибки = Новый Структура;
			ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
			ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
			
			ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
			
		Иначе
			ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
		КонецЕсли;
		
		Если Результат.Свойство("ОписаниеОшибкиНал") Тогда
			
			ТекстСообщения = СтрШаблон(
				ШаблонСообщения,
				НСтр("ru = 'налоговому'", ОбщегоНазначения.КодОсновногоЯзыка()),
				НастройкаРаспределения.СтатьяРасходов,
				НастройкаРаспределения.АналитикаРасходов,
				Символы.ПС,
				Результат.ОписаниеОшибкиНал,
				НастройкаРаспределения.Организация,
				МесяцНастройки);

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

			ОписаниеОшибки = Новый Структура;
			ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
			ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
			
			ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
			
		Иначе
			ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
		КонецЕсли;
		
		Если Результат.Свойство("ОписаниеОшибкиНДД") Тогда
			
			ТекстСообщения = СтрШаблон(
				ШаблонСообщения,
				НСтр("ru = 'НДД'", ОбщегоНазначения.КодОсновногоЯзыка()),
				НастройкаРаспределения.СтатьяРасходов,
				НастройкаРаспределения.АналитикаРасходов,
				Символы.ПС,
				Результат.ОписаниеОшибкиНДД,
				НастройкаРаспределения.Организация,
				МесяцНастройки);

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

//++ НЕ УТ

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

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

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

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

	//++ Локализация
	Элементы.НалоговыйУчет.Доступность = Истина;
	Элементы.НДД.Доступность = УчетПоНДД;
	
	//-- Локализация

	//-- НЕ УТ
	НастройкиРаспределения = ПолучитьНастройкиРаспределенияПоДокументу(Объект);
	
	Если Объект.УправленческийУчет Тогда
		Элементы.РегламентированныйУчет.Доступность = Объект.РегламентированныйУчет
			ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовРегл;
		//++ НЕ УТ

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

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

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

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

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

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

	Возврат Неопределено;
	
КонецФункции

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

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

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

	РаспределениеПрочихЗатратЛокализация.ДобавитьКомандыПечати(КомандыПечати);

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

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

//++ НЕ УТ
#Область РегламентированныйУчет

// Функция возвращает текст запроса для отражения документа в регламентированном учете.
//
// Возвращаемое значение:
//   Строка - Текст запроса
//
Функция ТекстОтраженияВРеглУчете() Экспорт

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

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

// Функция возвращает текст запроса дополнительных временных таблиц,
// необходимых для отражения в регламентированном учете.
//
// Возвращаемое значение:
//   Строка - Текст запроса временной таблицы.
//
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт

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

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

#КонецОбласти
//-- НЕ УТ

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

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

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

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

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

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

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

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

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

#КонецЕсли

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

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

		//++ Локализация
		Если Параметры.Основание.НалоговыйУчет Тогда
			ВыбраннаяФорма = ФормыПоНазначению.Получить(НазначенияПоВарианту.Получить(Параметры.Основание.ВариантРаспределенияНал));
		КонецЕсли;
		//-- Локализация

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

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

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

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

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

#Область ОбработчикиЭтаповЗакрытияМесяца

#Область ОформлениеДокументовРаспределенияРасходов

// Добавляет этап в таблицу этапов закрытия месяца.
// Элементы данной таблицы являются элементами второго уровня в дереве этапов в форме закрытия месяца.
//
// Параметры:
//	ТаблицаЭтапов - см. Обработки.ОперацииЗакрытияМесяца.ЗаполнитьОписаниеЭтаповЗакрытияМесяца
//	ТекущийРодитель - Строка - идентификатор группы.
Процедура ДобавитьЭтап_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ТаблицаЭтапов, ТекущийРодитель) Экспорт
	
	НоваяСтрока = ЗакрытиеМесяцаСервер.ДобавитьЭтапВТаблицу(ТаблицаЭтапов, ТекущийРодитель,
		Справочники.ОперацииЗакрытияМесяца.ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности);
	
	НоваяСтрока.МультиязычноеНаименование = "ru = 'Оформление документов распределения расходов'"; // @НСтр-1
	НоваяСтрока.ТекстВыполнить = НСтр("ru = 'Оформить'");
	НоваяСтрока.ДействиеИспользование = ЗакрытиеМесяцаСервер.ОписаниеДействия_СервернаяПроцедура(
		"Документы.РаспределениеПрочихЗатрат.Использование_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности");
	НоваяСтрока.ДействиеВыполнить  = ЗакрытиеМесяцаСервер.ОписаниеДействия_ВыполнитьРасчет(
		"Документы.РаспределениеПрочихЗатрат.Выполнить_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности");
	НоваяСтрока.ДействиеПодробнее = ЗакрытиеМесяцаСервер.ОписаниеДействия_ОткрытьФорму(
		Метаданные.Документы.РаспределениеПрочихЗатрат.Формы.ФормаРабочееМесто.ПолноеИмя());
	НоваяСтрока.ДействиеПодробнее.ПараметрыФормы.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
	НоваяСтрока.ДействиеПодробнее.ПараметрыФормы.Вставить("Состояние", Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент);
		
КонецПроцедуры

// Обработчики этапа.

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

Процедура Выполнить_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ПараметрыОбработчика) Экспорт
	
	ПараметрыРасчета = ПараметрыОбработчика.ПараметрыРасчета;
	
	СтатьиКРаспределению = СтатьиКРаспределению(
		ПараметрыРасчета.ПериодРегистрации,
		ПараметрыРасчета.МассивОрганизаций,
		Новый Массив,
		Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент,
		Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
		
	КоличествоСтрок = СтатьиКРаспределению.Количество();
	Если КоличествоСтрок = 0 Тогда // нет данных для распределения
		Возврат;
	КонецЕсли;
	
	СтатьиКРаспределению.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
	СтатьиКРаспределению.Колонки.Добавить("ИДСтроки", Новый ОписаниеТипов("Число"));
	СтатьиКРаспределению.ЗаполнитьЗначения(КонецМесяца(ПараметрыРасчета.ПериодРегистрации), "Дата");
	
	КоличествоФЗ = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров(Справочники.ОперацииЗакрытияМесяца.ПустаяСсылка()).МаксимальноеКоличествоФЗФормированияДокументов;
	СтрокВФЗ = Цел(КоличествоСтрок / ?(КоличествоФЗ = 0, 1, КоличествоФЗ));
	
	Если КоличествоФЗ < 2 ИЛИ СтрокВФЗ < 1 Тогда
		
		// Однопоточное формирование документов, без фоновых заданий.
		РаспределениеПрочихЗатратЛокализация.ФормированиеДокументовРаспределениеПрочихЗатрат(ПараметрыОбработчика, СтатьиКРаспределению);
		
		Возврат;
		
	КонецЕсли;
	
	ОбработаноСтрок = 0;
	МассивЗаданий   = Новый Массив;
	ТаблицаСтатей   = Неопределено;
	
	// Многопоточное формирование документов.
	Пока ОбработаноСтрок <= КоличествоСтрок Цикл
		
		Если ОбработаноСтрок = 0 ИЛИ ОбработаноСтрок = КоличествоСтрок
		 // Задание запускается при наполнении ТаблицаСтатей количеством строк, равным СтрокВФЗ.
		 // В последнее задание помещаются все оставшиеся строки, даже если их больше, чем СтрокВФЗ.
		 ИЛИ (Цел(ОбработаноСтрок/СтрокВФЗ) = ОбработаноСтрок/СтрокВФЗ И МассивЗаданий.Количество() < КоличествоФЗ-1) Тогда
			
			Если ОбработаноСтрок > 0 Тогда
				
				// Запускаем новое ФЗ
				МассивПараметров = Новый Массив;                                                                      
				МассивПараметров.Добавить(ПараметрыОбработчика);
				МассивПараметров.Добавить(ТаблицаСтатей);
				
				КлючЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'ФЗ №%1 - %2 (%3)'", ОбщегоНазначения.КодОсновногоЯзыка()),
					СокрЛП(МассивЗаданий.Количество() + 1),
					СокрЛП(ПараметрыОбработчика.ДанныеЭтапа.Код),
					СокрЛП(ПараметрыОбработчика.ИдентификаторРасчета));
				
				Задание = ЗакрытиеМесяцаСервер.ЗапуститьПодчиненноеФоновоеЗаданиеЭтапаРасчета(
					ПараметрыОбработчика.ИдентификаторРасчета,
					"РаспределениеПрочихЗатратЛокализация.ФормированиеДокументовРаспределениеПрочихЗатрат",
					МассивПараметров,
					КлючЗадания,
					НСтр("ru='Пакетное формирование документов'"));
					
		        МассивЗаданий.Добавить(Задание);
				
			КонецЕсли;
			
			Если ОбработаноСтрок = КоличествоСтрок Тогда
				// Все задания запущены
				Прервать;
			КонецЕсли;
			
			ТаблицаСтатей = СтатьиКРаспределению.СкопироватьКолонки();
			
		КонецЕсли;
		
		ЗаполнитьЗначенияСвойств(ТаблицаСтатей.Добавить(), СтатьиКРаспределению[ОбработаноСтрок]);
		
		ОбработаноСтрок = ОбработаноСтрок + 1;
		
	КонецЦикла;
	
	ЗаданияЗавершены = Ложь;;
	
	Пока НЕ ЗаданияЗавершены Цикл
		
		ВыполненныеЗадания = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(МассивЗаданий);
		
		МассивЗаданий = Новый Массив;
		
		Для Каждого Задание Из ВыполненныеЗадания Цикл
			
			Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
				
				МассивЗаданий.Добавить(Задание);
				
			ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Завершено Тогда

				ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Фоновое задание формирования документов %1
					|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
					?(Задание.Состояние = СостояниеФоновогоЗадания.Отменено,
						НСтр("ru = 'отменено'", ОбщегоНазначения.КодОсновногоЯзыка()),
						НСтр("ru = 'завершено аварийно'", ОбщегоНазначения.КодОсновногоЯзыка())),
					?(Задание.ИнформацияОбОшибке = Неопределено,
						НСтр("ru = '<Нет описания ошибки>'", ОбщегоНазначения.КодОсновногоЯзыка()),
						ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке)));
						
				ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
					ПараметрыОбработчика,
					ТекстОшибки);
				
			КонецЕсли;
			
		КонецЦикла;
		
		ЗаданияЗавершены = (МассивЗаданий.Количество() = 0);
		
	КонецЦикла;
	
КонецПроцедуры

// Проверки состояния системы, относящиеся к этапу.

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

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

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

#Область РаспределениеРасходовПоНаправлениямДеятельности

// Добавляет этап в таблицу этапов закрытия месяца.
// Элементы данной таблицы являются элементами второго уровня в дереве этапов в форме закрытия месяца.
//
// Параметры:
// 	ТаблицаЭтапов - см. Обработки.ОперацииЗакрытияМесяца.ЗаполнитьОписаниеЭтаповЗакрытияМесяца
// 	ТекущийРодитель - Строка - идентификатор группы.
Процедура ДобавитьЭтап_РаспределениеРасходовПоНаправлениямДеятельности(ТаблицаЭтапов,ТекущийРодитель) Экспорт
	
	НоваяСтрока = ЗакрытиеМесяцаСервер.ДобавитьЭтапВТаблицу(ТаблицаЭтапов, ТекущийРодитель,
		Справочники.ОперацииЗакрытияМесяца.РаспределениеРасходовПоНаправлениямДеятельности);
		
	НоваяСтрока.МультиязычноеНаименование = "ru = 'Распределение расходов по направлениям деятельности'"; // @НСтр-1
	НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.РасчетПартийИСебестоимости);
	НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.РаспределениеНДС);
	НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности);
	НоваяСтрока.ТекстВыполнить = НСтр("ru = 'Распределить'");
	НоваяСтрока.ДействиеИспользование = ЗакрытиеМесяцаСервер.ОписаниеДействия_СервернаяПроцедура(
		"Документы.РаспределениеПрочихЗатрат.Использование_РаспределениеРасходовПоНаправлениямДеятельности");
	НоваяСтрока.ДействиеВыполнить  = ЗакрытиеМесяцаСервер.ОписаниеДействия_ВыполнитьРасчет(
		"Документы.РаспределениеПрочихЗатрат.Выполнить_РаспределениеРасходовПоНаправлениямДеятельности");
	НоваяСтрока.ДействиеПодробнее = ЗакрытиеМесяцаСервер.ОписаниеДействия_ОткрытьФорму(
		Метаданные.Документы.РаспределениеПрочихЗатрат.Формы.ФормаРабочееМесто.ПолноеИмя());
		
КонецПроцедуры

// Обработчики этапа.

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

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

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

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

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

			ЗафиксироватьТранзакцию();
			
		Исключение
			
			ОтменитьТранзакцию();
			
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru='При выполнении расчета за период %1 произошла ошибка:
					|%2'"),
				РасчетСебестоимостиПротоколРасчета.ПредставлениеПериодаРасчета(ПараметрыРасчета.ПериодРегистрации),
					ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
			
			ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
				ПараметрыОбработчика,
				ТекстОшибки,
				ДанныеПоСписаниюНУ.ВыгрузитьКолонку("Организация"),
				ПараметрыРасчета.ПериодРегистрации);
			
		КонецПопытки;
		
	КонецЕсли;
	//-- Локализация
	
	//-- НЕ УТ
	
	
КонецПроцедуры

// Проверки состояния системы, относящиеся к этапу.

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

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

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

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

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

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

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

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

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

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

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

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

#Область ФормированиеГиперссылкиВЖурналеПроизводства
//++ НЕ УТ

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

Процедура СформироватьГиперссылкуКОформлениюФоновоеЗадание(Параметры, АдресХранилища) Экспорт
	
	КОформлению = ОбщегоНазначенияУТ.СформироватьГиперссылкуКОформлению(Параметры[0], Параметры[1]);
	ПоместитьВоВременноеХранилище(КОформлению, АдресХранилища);
	
КонецПроцедуры

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

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

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

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

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

	//++ Локализация
	ТаблицаДанных.Колонки.Добавить("СостояниеНал", Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияРаспределенияРасходов"));
	//-- Локализация

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

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

Функция ФорматДанныхРаспределенияСтатьиРасходов()
	
	СтруктураЗаполнения = Новый Структура;
	СтруктураЗаполнения.Вставить("Дата");
	СтруктураЗаполнения.Вставить("ИДСтроки");
	СтруктураЗаполнения.Вставить("ДокументУпр");
	СтруктураЗаполнения.Вставить("ДокументРегл");
	//++ НЕ УТ

	//++ Локализация
	СтруктураЗаполнения.Вставить("ДокументНал");
	//-- Локализация

	//-- НЕ УТ
	СтруктураЗаполнения.Вставить("ДокументНДД");
	СтруктураЗаполнения.Вставить("СостояниеУпр");
	СтруктураЗаполнения.Вставить("СостояниеРегл");
	//++ НЕ УТ

	//++ Локализация
	СтруктураЗаполнения.Вставить("СостояниеНал");
	//-- Локализация

	//-- НЕ УТ
	СтруктураЗаполнения.Вставить("СостояниеНДД");
	СтруктураЗаполнения.Вставить("СтатьяРасходов");
	СтруктураЗаполнения.Вставить("АналитикаРасходов");
	СтруктураЗаполнения.Вставить("СтатьяКалькуляции");
	СтруктураЗаполнения.Вставить("ВариантРаспределенияРегл");
	//++ НЕ УТ

	//++ Локализация
	СтруктураЗаполнения.Вставить("ВариантРаспределенияНал");
	//-- Локализация

	//-- НЕ УТ
	СтруктураЗаполнения.Вставить("ВариантРаспределенияУпр");
	СтруктураЗаполнения.Вставить("ВариантРаспределенияНДД");
	СтруктураЗаполнения.Вставить("Организация");
	СтруктураЗаполнения.Вставить("Подразделение");
	СтруктураЗаполнения.Вставить("НаправлениеДеятельности");
	СтруктураЗаполнения.Вставить("ПравилоРаспределенияУпр");
	СтруктураЗаполнения.Вставить("ПравилоРаспределенияРегл");
	//++ НЕ УТ

	//++ Локализация
	СтруктураЗаполнения.Вставить("ПравилоРаспределенияНал");
	//-- Локализация

	//-- НЕ УТ
	СтруктураЗаполнения.Вставить("ПравилоРаспределенияНДД");
	
	Возврат СтруктураЗаполнения;
	
КонецФункции

Процедура УстановитьПризнакиБУиНУ(Объект, ВидУчета)
	
	//++ НЕ УТ

	//++ Локализация

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

	//-- Локализация

	//-- НЕ УТ
	
	Если ВидУчета = "РегламентированныйУчет" Тогда
		Объект.НалоговыйУчет = Объект.РегламентированныйУчет;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

#Область РаспределениеНаФинансовыйРезультат

Процедура ПодготовитьСлужебныеТаблицы(Период, Знач Организации, Знач Запрос, ИсключитьТранспортныеРасходы = Ложь) Экспорт
	
	//++ НЕ УТ

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

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

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

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

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

#Область КорректировкаУстаревшихДокументов

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

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

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

#Область ПоступилоПрочихРасходов

// Возвращает текст источника данных с заменой по шаблону.
//
// Возвращаемое значение:
//	Строка - Текст запроса.
//
Функция ЗаменитьПоШаблону(ТекстЗапроса, Шаблон, Настройка) Экспорт

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

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

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

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

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


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

	//++ НЕ УТ

	//++ Локализация

	//++ Устарело_Производство21

	|			ТИП(Документ.ВыпускПродукции),

	//-- Устарело_Производство21

	//-- Локализация

	|			ТИП(Документ.РаспределениеПроизводственныхЗатрат),
	|			ТИП(Документ.ПроизводствоБезЗаказа),
	//++ Устарело_Переработка24
	|			ТИП(Документ.ОтчетПереработчика),
	|			ТИП(Документ.ОтчетПереработчика2_5),
	//-- Устарело_Переработка24
	|			ТИП(Документ.СписаниеОтгруженныхТоваров),

	//-- НЕ УТ

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

	//++ Локализация

	//++ Устарело_Производство21

	|			ТИП(Документ.ВыпускПродукции),
	//-- Устарело_Производство21

	//-- Локализация

	|			ТИП(Документ.РаспределениеПроизводственныхЗатрат),
	|			ТИП(Документ.ПроизводствоБезЗаказа),
	//++ Устарело_Переработка24
	|			ТИП(Документ.ОтчетПереработчика),
	//-- Устарело_Переработка24
	|			ТИП(Документ.СписаниеОтгруженныхТоваров),
	//-- НЕ УТ

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

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

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

	ТекстыЗапроса = Новый Массив;
	ТекстыЗапроса.Добавить(ТекстОписаниеДанных);
	
	ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовУпр);
	ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовРегл);
	//++ НЕ УТ
	ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовНУ);
	//-- НЕ УТ
	ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовНДД);
	
	ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовУпр);
	ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовРегл);
	//++ НЕ УТ
	ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовНУ);
	//-- НЕ УТ
	ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовНДД);
	
	ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовУпр);
	ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовРегл);
	//++ НЕ УТ
	ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовНУ);
	//-- НЕ УТ
	ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовНДД);
	
	ТекстыЗапроса.Добавить(ТекстСписаниеРаспределениеТМЦ);
	ТекстыЗапроса.Добавить(ТекстСписаниеРаспределениеТМЦвДругуюОрганизацию);

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

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

#Область ФормированиеДокументов

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

			//++ Локализация
			ИначеЕсли ДокументРаспределения.НалоговыйУчет Тогда
				ДокументНайден = ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения);
			//-- Локализация

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

			//++ Локализация
			ИначеЕсли ДокументРаспределения.НалоговыйУчет Тогда
				ДокументНайден = ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения);
			//-- Локализация

			//-- НЕ УТ
			КонецЕсли;
		
		//++ Локализация
		
		//++ НЕ УТ
		ИначеЕсли ВидУчета = "НалоговыйУчет" Тогда
			Если ДокументРаспределения.РегламентированныйУчет Тогда
				ДокументНайден = ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения);
			ИначеЕсли ДокументРаспределения.УправленческийУчет Тогда
				ДокументНайден = ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения);
			КонецЕсли;
		//-- НЕ УТ

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

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

//++ Локализация

//++ НЕ УТ
Функция ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения)
	
	НастройкиСоответствуют = 
		Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ПараметрыЗаполнения.Дата)
		И ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияУпр
		И ПараметрыЗаполнения.ВариантРаспределенияНал = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
		ИЛИ ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияУпр
		И (ПараметрыЗаполнения.ПравилоРаспределенияНал = ПараметрыЗаполнения.ПравилоРаспределенияУпр
			ИЛИ НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределенияНУ(ПараметрыЗаполнения.ВариантРаспределенияНал)
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
		И ПараметрыЗаполнения.ДокументУпр = ПараметрыЗаполнения.ДокументНал;
		
	Возврат НастройкиСоответствуют;
	
КонецФункции
		
Функция ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения)
	
	НастройкиСоответствуют = 
		Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ПараметрыЗаполнения.Дата)
		И ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияРегл
		И ПараметрыЗаполнения.ВариантРаспределенияНал = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
		ИЛИ	ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияРегл
		И (ПараметрыЗаполнения.ПравилоРаспределенияНал = ПараметрыЗаполнения.ПравилоРаспределенияРегл
			ИЛИ НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределенияНУ(ПараметрыЗаполнения.ВариантРаспределенияНал)
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства
			ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
		И ПараметрыЗаполнения.ДокументРегл = ПараметрыЗаполнения.ДокументНал;
		
	Возврат НастройкиСоответствуют;
	
КонецФункции
//-- НЕ УТ

//-- Локализация

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

		//++ Локализация
		|,ВариантРаспределенияРасходовНУ,ПравилоРаспределенияРасходовНУ
		//-- Локализация

		//-- НЕ УТ
		|");	
		
	//++ НЕ УТ

	//++ Локализация
	Если НастройкиРаспределения.ВариантРаспределенияРасходовНУ = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты 
		И НастройкиРаспределения.ВариантРаспределенияРасходовНУ = НастройкиРаспределения.ВариантРаспределенияРасходовРегл
	Тогда
		НастройкиРаспределения.ПравилоРаспределенияРасходовНУ = НастройкиРаспределения.ПравилоРаспределенияРасходовРегл;
	КонецЕсли;
	//-- Локализация

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

#Область ТекстыЗапросов

#Область РаспределениеРасходовНаФинансовыйРезультат

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

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

	//			Регистратором является документ РаспределениеДоходовПоНаправлениямДеятельности
	|			ИЛИ ТекущиеДвижения.Регистратор ССЫЛКА Документ.РаспределениеДоходовПоНаправлениямДеятельности
	|				И ТекущиеДвижения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
	//++ НЕ УТ

	//++ Локализация
	
	//			Регистратором является документ РегламентнаяОперация
	|			ИЛИ ТекущиеДвижения.Регистратор ССЫЛКА Документ.РегламентнаяОперация
	|				И НЕ ТекущиеДвижения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеКосвенныхРасходов)
	//-- Локализация

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

//++ НЕ УТ

//++ Локализация

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

	// Постоянная разница к распределению:
	|	ВЫБОР
	// по НУ при (БУ = 0) 
	|		КОГДА ОстаткиРасходов.СуммаРегл = 0
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	// по НУ при (( ПР >= 0 И БУ > 0 ) или ( ПР <= 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	// по НУ при (( ПР < 0 И БУ > 0 ) или ( ПР > 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	|		ИНАЧЕ 0
	|	КОНЕЦ
	|	КАК ПостояннаяРазница,

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

	// Постоянная разница к распределению:
	|	ВЫРАЗИТЬ (
	|	ВЫБОР
	// по НУ при (БУ = 0) 
	|		КОГДА ОстаткиРасходов.СуммаРегл = 0
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	// по НУ при (( ПР >= 0 И БУ > 0 ) или ( ПР <= 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА 0
	// по НУ при (( ПР < 0 И БУ > 0 ) или ( ПР > 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	|		ИНАЧЕ 0
	|	КОНЕЦ
	// корректировка на коэффициент списания по доле транспортных расходов 
	|	* ВЫБОР
	|		КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
	|			ТОГДА ДолиСписания.ДоляСписания
	|		ИНАЧЕ 1
	|	КОНЕЦ КАК ЧИСЛО(31, 2))
	|	КАК ПостояннаяРазница,

	// Временная разница к распределению:
	|	ВЫРАЗИТЬ (
	|	ВЫБОР
	// по НУ при (БУ = 0) 
	|		КОГДА ОстаткиРасходов.СуммаРегл = 0
	|			ТОГДА ОстаткиРасходов.ВременнаяРазница
	// по НУ при (( ПР >= 0 И БУ > 0 ) или ( ПР <= 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
	// по НУ при (( ПР < 0 И БУ > 0 ) или ( ПР > 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
	|		ИНАЧЕ 0
	|	КОНЕЦ
	// корректировка на коэффициент списания по доле транспортных расходов 
	|	* ВЫБОР
	|		КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
	|			ТОГДА ДолиСписания.ДоляСписания
	|		ИНАЧЕ 1
	|	КОНЕЦ КАК ЧИСЛО(31, 2))
	|	КАК ВременнаяРазница,

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

	// Постоянная разница к распределению:
	|	ВЫРАЗИТЬ (
	|	ВЫБОР
	// по НУ при (БУ = 0) 
	|		КОГДА ОстаткиРасходов.СуммаРегл = 0
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	// по НУ при (( ПР >= 0 И БУ > 0 ) или ( ПР <= 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА 0
	// по НУ при (( ПР < 0 И БУ > 0 ) или ( ПР > 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница
	|		ИНАЧЕ 0
	|	КОНЕЦ
	// корректировка на коэффициент списания по доле транспортных расходов 
	|	* ВЫБОР
	|		КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
	|			ТОГДА ДолиСписания.ДоляСписания
	|		ИНАЧЕ 1
	|	КОНЕЦ КАК ЧИСЛО(31, 2))
	|	КАК ПостояннаяРазница,

	// Временная разница к распределению:
	|	ВЫРАЗИТЬ (
	|	ВЫБОР
	// по НУ при (БУ = 0) 
	|		КОГДА ОстаткиРасходов.СуммаРегл = 0
	|			ТОГДА ОстаткиРасходов.ВременнаяРазница
	// по НУ при (( ПР >= 0 И БУ > 0 ) или ( ПР <= 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
	// по НУ при (( ПР < 0 И БУ > 0 ) или ( ПР > 0 и БУ < 0 )) 
	|		КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
	|				ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
	|			ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
	|		ИНАЧЕ 0
	|	КОНЕЦ
	// корректировка на коэффициент списания по доле транспортных расходов 
	|	* ВЫБОР
	|		КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
	|			ТОГДА ДолиСписания.ДоляСписания
	|		ИНАЧЕ 1
	|	КОНЕЦ КАК ЧИСЛО(31, 2))
	|	КАК ВременнаяРазница,

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

//-- Локализация

//-- НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ


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

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

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

//-- НЕ УТ

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

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

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

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

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

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

#КонецЕсли

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