Как заполнить данные табличной части внешней печатной формы ОтчетКомитенту?

1. user1879509 09.12.23 01:21 Сейчас в теме
Добрый день коллеги. Кто может помочь разобрать данный вопрос. Уже всю голову сломал. В документе ОтчетКомитентуОПродажах есть печатная форма ОтчетКомитенту. Исходя из задач организации необходимо сделать печатную форму по представленному образцу. Все бы ничего но уже 3-й день мучаюсь не могу получить данные в обведенных колонках(те что на форме указаны в коде явно, для наглядности).В запросе вроде все данные есть, но выводится какая то белеберда.
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	ПараметрыРегистрации.Вид =  ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
	ПараметрыРегистрации.Назначение.Добавить("Документ.ОтчетКомитентуОПродажах");
	
	ПараметрыРегистрации.Наименование  = "Печать отчета комитенту";
	ПараметрыРегистрации.Версия =  "1.0";
	ПараметрыРегистрации.БезопасныйРежим = ЛОЖЬ;
	ПараметрыРегистрации.Информация = "Печатная форма отчет комитенту" + Символы.ПС + "Кирилл Плотников";
	
	
	ДобавитьКоманду(ПараметрыРегистрации.Команды,
	"Отчет комитента доработанный",
	"ОтчетКомитента",
	"ВызовСерверногоМетода",
	ИСТИНА,
	"ПечатьMXL");
	
	Возврат ПараметрыРегистрации;
	
	
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд,Представление,Идентификатор,Использование,ПоказыватьОповещение = ЛОЖЬ,Модификатор)
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование =Использование;
	НоваяКоманда.ПоказыватьОповещение =ПоказыватьОповещение;
	НоваяКоманда.Модификатор  = Модификатор;
КонецПроцедуры 

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

Функция ПечатьОтчета(МассивОбъектов,ОбъектыПечати,ПараметрыПечати)

УстановитьПривилегированныйРежим(Истина);

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

ПервыйОтчет = Истина;
Макет = ПолучитьМакет("ОтчетКомитента");

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

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

Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка");

Итого = 0;
НомерПП = 1;

ОтчетНапечатан = Ложь;
Пока Выборка.Следующий() Цикл
	Если НЕ ПервыйОтчет Тогда
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
	КонецЕсли;
	ПервыйОтчет = Ложь;
	ОтчетНапечатан = Истина;
	ПервыйОтчет = Ложь;
	
	НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;	 
	
	ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
	ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначенияБПВызовСервера.СформироватьЗаголовокДокумента(Выборка.Ссылка, НСтр("ru = 'Отчет комитенту'"));
	ТабличныйДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("Договор");
	ОбластьМакета.Параметры.ДоговорНомер = Выборка.ДоговорКонтрагента.Номер; 
	ОбластьМакета.Параметры.ДатаДоговора = Формат(Выборка.ДоговорКонтрагента.Дата,"ДФ=dd.MM.yyyy");
	ТабличныйДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("ПериодДоговора");
	Если Выборка.Дата >=НачалоМесяца(Выборка.Дата) И Выборка.Дата<=НачалоМесяца(Выборка.Дата)+13*86400 Тогда 
		ОбластьМакета.Параметры.НачалоМесяца =Формат(ДобавитьМесяц(НачалоМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy"); 
		ОбластьМакета.Параметры.КонецМесяца = Формат(ДобавитьМесяц(КонецМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy");
	ИНАЧЕ 
		ОбластьМакета.Параметры.НачалоМесяца = Формат(НачалоМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
		ОбластьМакета.Параметры.КонецМесяца = Формат(КонецМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ТабличныйДокумент.Вывести(ОбластьМакета);
	
	Итого = 0;
	НомерПП = 1;
	КоличествоТоваров = 0  ;
	
	ОбластьМакета = Макет.ПолучитьОбласть("Строка");
	
	ВыборкаПоВидуСобытия = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ВидСобытия");
	Пока ВыборкаПоВидуСобытия.Следующий() Цикл
		
		ВыборкаКонтрагентов = ВыборкаПоВидуСобытия.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		   ИтогоПоКонтрагенту =  0;
		Пока ВыборкаКонтрагентов.Следующий() Цикл
			
			ВыборкаПоСчетФактуре = ВыборкаКонтрагентов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СчетФактураПокупателю");
			
			Пока ВыборкаПоСчетФактуре.Следующий() Цикл
				ВыборкаТоваров = ВыборкаПоСчетФактуре.Выбрать();
				
				Пока ВыборкаТоваров.Следующий() Цикл
					
					КоличествоТоваров = КоличествоТоваров + 1;
					
					ОбластьМакета.Параметры.Заполнить(ВыборкаТоваров);
					ОбластьМакета.Параметры.НомерСтроки = НомерПП;
					
					Если НЕ ВыборкаТоваров.СуммаВключаетНДС Тогда
						СуммаПоСтроке = ВыборкаТоваров.Сумма + ВыборкаТоваров.СуммаНДС;
					Иначе
						СуммаПоСтроке = ВыборкаТоваров.Сумма;
					КонецЕсли;
					
					ОбластьМакета.Параметры.Цена = ?(ВыборкаТоваров.Количество <> 0, СуммаПоСтроке/ВыборкаТоваров.Количество, 0);
					ОбластьМакета.Параметры.СумаВознаграждения = 500;				
					ОбластьМакета.Параметры.НДССВознаграждения =100;
					ОбластьМакета.Параметры.КПеречислению =400;
					
					ТабличныйДокумент.Вывести(ОбластьМакета);
					
					Итого = Итого + СуммаПоСтроке;
					НомерПП = НомерПП + 1;	
					ИтогоПоКонтрагенту = ИтогоПоКонтрагенту + СуммаПоСтроке;		 
				КонецЦикла;
			КонецЦикла;
			
			ОбластьМакета = Макет.ПолучитьОбласть("Итого");
			ОбластьМакета.Параметры.Заполнить(ВыборкаТоваров);
			ОбластьМакета.Параметры.Цена = ИтогоПоКонтрагенту;
			ОбластьМакета.Параметры.ИтогСуммаВознаграждения = 1000;
			ОбластьМакета.Параметры.ИтогНДССВознаграждения = 200;
			ОбластьМакета.Параметры.ИтогКПеречислению = 800;

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

Возврат ТабличныйДокумент;

КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот