Движение прочих активов и пассивов / Модуль менеджера

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

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

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

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

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

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

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

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

		Возврат КомандаСоздатьНаОсновании;
	КонецЕсли;

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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