Печатная форма

1. user_NP 06.06.24 14:40 Сейчас в теме
Доброго вам.

Подскажите пожалуйста, почему не выводит в ВПФ Номенклатуру?
КА 2.5 типовая., переделываю счет на оплату. В Консоле выводит, запрос (переделанный), работает....

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

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

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

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

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

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

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

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

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


Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. anton13m 2 06.06.24 15:03 Сейчас в теме
  Товар = ПрефиксИПостфикс.Префикс
                        //+ НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                        //                                    СтрокаТовары.НаименованиеПолное,
                        //                                    СтрокаТовары.Характеристика,
                        //                                    ,
                        //                                    , // Серия
                        //                                    ДополнительныеПараметрыПолученияНаименованияДляПечати)
                        + ПрефиксИПостфикс.Постфикс;

Так формирование названия закомментировано.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 06.06.24 15:01 Сейчас в теме
так в результирующей таблице запроса у вас нет поля Номенклатура!

попробуйте ее добавить в запросе

|Товары.НоменклатураНабора КАК НоменклатураНабора,
|Товары.Номенклатура КАК Номенклатура, //добавлено
3. anton13m 2 06.06.24 15:03 Сейчас в теме
  Товар = ПрефиксИПостфикс.Префикс
                        //+ НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
                        //                                    СтрокаТовары.НаименованиеПолное,
                        //                                    СтрокаТовары.Характеристика,
                        //                                    ,
                        //                                    , // Серия
                        //                                    ДополнительныеПараметрыПолученияНаименованияДляПечати)
                        + ПрефиксИПостфикс.Постфикс;

Так формирование названия закомментировано.
5. user_NP 07.06.24 06:47 Сейчас в теме
(3) Да, спасибо, проблема была в этом, закомментировала, пока искала решение как вывести))
4. soft_wind 06.06.24 15:12 Сейчас в теме
да и макет ПФ покажите какой там Параметр в области ОбластьСтрокаТаблицы
6. user_NP 07.06.24 06:52 Сейчас в теме
А еще не подскажете, при замене номенклатуры на НоменклатуруКонтрагентов пропадают кг и можно ли оставить и как то КОД от обычной номенклатуры (без замены на НоменклатуруКонтрагентов)?
Прикрепленные файлы:
Оставьте свое сообщение

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