Реализация услуг и прочих активов / Модуль менеджера

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

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

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

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

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

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

//++ НЕ УТ

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

	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

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

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

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

	ЗакрытиеРасходовОтВыбытияОС.УстановитьПараметрыЗапроса(Запрос);

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

//-- НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ

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

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

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

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

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

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

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

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

//-- НЕ УТ

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

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

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

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

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

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

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

#Область УчетНДС

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУпр",           Коэффициенты.КоэффициентПересчетаВВалютуУпр);
	Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРегл",          Коэффициенты.КоэффициентПересчетаВВалютуРегл);
	Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуВзаиморасчетов",Коэффициенты.КоэффициентПересчетаВВалютуВзаиморасчетов);
	
	Коэффициенты = РаботаСКурсамивалютУТ.ПолучитьКоэффициентыПересчетаВалюты(Запрос.Параметры.Валюта,
																				Запрос.Параметры.ВалютаВзаиморасчетов,
																				Запрос.Параметры.Период,
																				Запрос.Параметры.Организация);
	
	Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуУПРПереноса",  Коэффициенты.КоэффициентПересчетаВВалютуУПР);
	Запрос.УстановитьПараметр("КоэффициентПересчетаВВалютуРеглПереноса", Коэффициенты.КоэффициентПересчетаВВалютуРегл);
	
КонецПроцедуры

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

Процедура ОтразитьПрочуюВыручку(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)

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

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

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

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

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

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

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

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

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

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

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

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

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

	МассивЗапросов.Добавить(ТекстЗапроса);
	
	КонецЕсли;

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

	МассивЗапросов.Добавить(ТекстЗапроса);
	
	КонецЕсли;

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

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

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

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

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

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

Функция ТекстЗапросаТаблицаВтИсходныеПрочиеРасходы(Запрос, ТекстыЗапроса, ДокументОбъект)
	
	ИмяРегистра = "ВтИсходныеПрочиеРасходы";

	МассивЗапросов = Новый Массив;

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

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

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

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

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

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

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

Процедура ДобавитьТекстыОтраженияВзаиморасчетов(Запрос, ТекстыЗапроса, Регистры, ДокументОбъект)
	
	#Область КурсыВалютДокумента
	
	ИмяРегистра = "ВременнаяТаблицаКурсыВалютДокумента";

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

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

//++ НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура ТекстЗапросаТаблицаВтОстаточнаяСтоимость(ТекстыЗапроса)

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

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

//-- НЕ УТ

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

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

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

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

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

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

	НалогообложениеБезНДС = Новый Массив();
	НалогообложениеБезНДС.Добавить(Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС);
	НалогообложениеБезНДС.Добавить(Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД);
	Запрос.УстановитьПараметр("НалогообложениеБезНДС", НалогообложениеБезНДС);
	Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов);
	
	РезультатыЗапроса = Запрос.ВыполнитьПакет();
	Возврат Новый Структура("РезультатПоШапке, РезультатПоТабличнойЧасти", РезультатыЗапроса[0], РезультатыЗапроса[1]);
КонецФункции

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

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

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

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

#Область ШаблоныСообщений

// Вызывается при подготовке шаблонов сообщений и позволяет переопределить список реквизитов и вложений.
//
// Параметры:
//  Реквизиты               - ДеревоЗначений - список реквизитов шаблона:
//         * Имя            - Строка - Уникальное имя общего реквизита.
//         * Представление  - Строка - Представление общего реквизита.
//         * Тип            - Тип    - Тип реквизита. По умолчанию строка.
//         * Формат         - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
//  Вложения                - ТаблицаЗначений - печатные формы и вложения:
//         * Имя            - Строка - Уникальное имя вложения.
//         * Представление  - Строка - Представление варианта.
//         * ТипФайла       - Строка - Тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl"
//                                      и др.
//  ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщений.
//
Процедура ПриПодготовкеШаблонаСообщения(Реквизиты, Вложения, ДополнительныеПараметры) Экспорт
	
КонецПроцедуры

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

// Заполняет список получателей SMS при отправке сообщения сформированного по шаблону.
//
// Параметры:
//   ПолучателиSMS - ТаблицаЗначений - список получается SMS:
//     * НомерТелефона - Строка - номер телефона, куда будет отправлено сообщение SMS.
//     * Представление - Строка - представление получателя сообщения SMS.
//     * Контакт       - СправочникСсылка - контакт, которому принадлежит номер телефона.
//  ПредметСообщения - ЛюбаяСсылка - ссылка на объект являющийся источником данных.
//
Процедура ПриЗаполненииТелефоновПолучателейВСообщении(ПолучателиSMS, ПредметСообщения) Экспорт
	
КонецПроцедуры

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

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

#Область ИнициализацияИЗаполнение

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

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

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

		Если ЗначениеЗаполнено(Объект.Договор) Тогда
			Объект.ОплатаВВалюте = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Договор,"ОплатаВВалюте");
		КонецЕсли;
		
	КонецЕсли;

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

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

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

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

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

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

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

#КонецЕсли

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