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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	СтруктураПараметров.ЭтоПродажаЗакупка                = Истина;
	СтруктураПараметров.ТипРасчетов                      = Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком;
	
	СтруктураПараметров.ВалютаВзаиморасчетов             = "";
	СтруктураПараметров.СуммаВзаиморасчетов              = "";
	СтруктураПараметров.СуммаВзаиморасчетовПоТаре        = ""; 

	СтруктураПараметров.КурсЧислитель                    = "";
	СтруктураПараметров.КурсЗнаменатель                  = "";
	
	СтруктураПараметров.ПутьКДаннымТЧ                    = "Объект.Товары";
	СтруктураПараметров.ПутьКДаннымТЧРасшифровкаПлатежа  = "Объект.РасшифровкаПлатежа";
	СтруктураПараметров.ДатаПлатежа                      = "Объект.ДатаПлатежа";
	СтруктураПараметров.НадписьЭтапыОплаты               = "Форма.НадписьЭтапыОплаты";
	
	СтруктураПараметров.Касса                            = "";
	СтруктураПараметров.БанковскийСчетОрганизации        = "";
	СтруктураПараметров.БанковскийСчетКонтрагента        = "";
	СтруктураПараметров.Менеджер                         = "Объект.Менеджер";
	СтруктураПараметров.НакладнаяПоЗаказам               = "";
	СтруктураПараметров.ЗаказОснование                   = "";
	
	СтруктураПараметров.ЭлементыФормы.НадписьВалюты      = "ДекорацияВалюты";
	СтруктураПараметров.ЭлементыФормы.НадписьЭтапы       = "ДекорацияЭтапыОплаты";
	СтруктураПараметров.ЭлементыФормы.ЗачетОплаты        = "ЗачетОплаты";
	СтруктураПараметров.ЭлементыФормы.ГруппаФинансовогоУчета  = "ГруппаФинансовогоУчета";
	СтруктураПараметров.ЭлементыФормы.НаправлениеДеятельности = "НаправлениеДеятельности";
	
	СтруктураПараметров.ОбъектРасчетов                   = "Объект.ОбъектРасчетов";
	
	Возврат СтруктураПараметров;
	
КонецФункции

//++ НЕ УТ

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

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

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

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

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

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

//-- НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	РегистрыСведений.СуммыДокументовВВалютахУчета.СформироватьПоДаннымДокумента(
		Запрос, ТекстыЗапроса, Регистры, ТекстЗапросаДанных);
	
КонецПроцедуры

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

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

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

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

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

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

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

#Область ПартионныйУчет

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

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

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

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

	Возврат ОписаниеОпераций;
	
КонецФункции

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

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

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

	// Отчет комитенту о списании
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.МенеджерПечати = "Обработка.ПечатьОтчетовПоКомиссии";
	КомандаПечати.Идентификатор = "ОтчетКомиссионераСписание";
	КомандаПечати.Представление = НСтр("ru = 'Отчет комитенту о списании'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	КомандаПечати.ОсновнаяПечатнаяФорма = Истина;
	КомандаПечати.НаименованиеПечатнойФормы = НСтр("ru = 'Отчет комитенту о списании'");
	
	ОтчетКомитентуОСписанииЛокализация.ДобавитьКомандыПечати(КомандыПечати);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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