Начисления по кредитам и депозитам / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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