ВПФ. Вывести массив документов в одну таблицу

1. avogadro57 19.07.17 08:27 Сейчас в теме
Здравствуйте, сейчас у меня выбирается список документов через форму и выводится на печать, но через разделительную линию печати каждый документ в своей таблице. Подскажите, как переделать запрос, чтобы все данные шли в одну таблицу и группировались по наименованию?

На всякий случай прикрепил код ниже:
Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

	ТабличныйДокумент  = Новый ТабличныйДокумент;

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

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

			ОбластьСтрока.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
			ОбластьСтрока.Параметры.Товар = ФормированиеПечатныхФормСервер.ПолучитьПредставлениеНоменклатурыДляПечати(ВыборкаПоСтрокамТЧ.НоменклатураПредставление,ВыборкаПоСтрокамТЧ.ХарактеристикаПредставление);
			//ОбластьСтрока.Параметры.Производитель = ВыборкаПоСтрокамТЧ.Номенклатура.Производитель; 
			//ОбластьСтрока.Параметры.НТД = ВыборкаПоСтрокамТЧ.Номенклатура.Артикул; 
		
			СтавкаНДСЧисло = ОбработкаТабличнойЧастиТоварыКлиентСерверПовтИсп.ПолучитьСтавкуНДСЧислом(ВыборкаПоСтрокамТЧ.СтавкаНДС) * 100;
			
			Если ВыборкаПоДокументам.ЦенаВключаетНДС Тогда 
				ЦенаБезНдс = окр(ВыборкаПоСтрокамТЧ.Цена *  100 / (100 + СтавкаНДСЧисло),2);
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма - ВыборкаПоСтрокамТЧ.СуммаНДС;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма;
			Иначе
				ЦенаБезНдс = ВыборкаПоСтрокамТЧ.Цена;
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма + ВыборкаПоСтрокамТЧ.СуммаНДС;
			КонецЕсли;
			
			ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СуммаБезНдс;
			ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНдс;
			ИтогоНДС = ИтогоНДС + ВыборкаПоСтрокамТЧ.СуммаНДС;
			
			ОбластьСтрока.Параметры.ЦенаБезНдс = ЦенаБезНдс;
			ОбластьСтрока.Параметры.СуммаБезНдс = СуммаБезНдс;
			ОбластьСтрока.Параметры.СуммаСНдс = СуммаСНдс;
			ТабличныйДокумент.Вывести(ОбластьСтрока);
Показать
По теме из базы знаний
Найденные решения
11. BackinSoda 19.07.17 13:04 Сейчас в теме
(10) Примерно так, особо не проверял, должно взлететь (плюс там момент один указал в коменте) :
Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

    ТабличныйДокумент  = Новый ТабличныйДокумент;

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

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

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

зы: по ошибке сумму(цены) написал, исправил на максимум
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. BackinSoda 19.07.17 08:29 Сейчас в теме
(1) Как минимум - убрать кусок
 Если НЕ ПервыйДокумент Тогда
            
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            
        КонецЕсли;

а группировать по наименованию что, строки внутри табличных частей ? так у вас идёт по ссылке, и номерам строк
3. avogadro57 19.07.17 08:50 Сейчас в теме
(2) Группировать надо строки внутри таблицы по номенклатуре, если цены не различаются
4. avogadro57 19.07.17 09:39 Сейчас в теме
Подскажите, куда копать..
Как я понял, надо этот цикл убрать
Пока ВыборкаПоДокументам.Следующий() Цикл
        
        Если НЕ ВыборкаПоТабличнымЧастям.НайтиСледующий(Новый Структура("Ссылка",ВыборкаПоДокументам.Ссылка)) Тогда
            
            Продолжить;
            
        КонецЕсли;


а этот закинуть в цикл?
Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
			Если НЕ ЗначениеЗаполнено(ВыборкаПоСтрокамТЧ.Номенклатура) Тогда
				Продолжить;
			КонецЕсли;

			ОбластьСтрока.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
			ОбластьСтрока.Параметры.Товар = ФормированиеПечатныхФормСервер.ПолучитьПредставлениеНоменклатурыДляПечати(ВыборкаПоСтрокамТЧ.НоменклатураПредставление,ВыборкаПоСтрокамТЧ.ХарактеристикаПредставление);
			//ОбластьСтрока.Параметры.Производитель = ВыборкаПоСтрокамТЧ.Номенклатура.Производитель; 
			//ОбластьСтрока.Параметры.НТД = ВыборкаПоСтрокамТЧ.Номенклатура.Артикул; 
		
			СтавкаНДСЧисло = ОбработкаТабличнойЧастиТоварыКлиентСерверПовтИсп.ПолучитьСтавкуНДСЧислом(ВыборкаПоСтрокамТЧ.СтавкаНДС) * 100;
			
			Если ВыборкаПоДокументам.ЦенаВключаетНДС Тогда 
				ЦенаБезНдс = окр(ВыборкаПоСтрокамТЧ.Цена *  100 / (100 + СтавкаНДСЧисло),2);
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма - ВыборкаПоСтрокамТЧ.СуммаНДС;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма;
			Иначе
				ЦенаБезНдс = ВыборкаПоСтрокамТЧ.Цена;
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма + ВыборкаПоСтрокамТЧ.СуммаНДС;
			КонецЕсли;
			
			ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СуммаБезНдс;
			ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНдс;
			ИтогоНДС = ИтогоНДС + ВыборкаПоСтрокамТЧ.СуммаНДС;
			
			ОбластьСтрока.Параметры.ЦенаБезНдс = ЦенаБезНдс;
			ОбластьСтрока.Параметры.СуммаБезНдс = СуммаБезНдс;
			ОбластьСтрока.Параметры.СуммаСНдс = СуммаСНдс;
			ТабличныйДокумент.Вывести(ОбластьСтрока);
		
		КонецЦикла;
Показать
5. avogadro57 19.07.17 10:48 Сейчас в теме
Очень надеюсь на помощь.. Мне хотя бы понять, как вывести все в одну таблицу, даже без группировок
6. BackinSoda 19.07.17 12:22 Сейчас в теме
(5) если убрать кусок кода из первого моего поста, то не будет разбивки между новыми документами. Правда вы не полностью скопировали код, там должно быть еще подвал выходит после вывода табличной части (и так для каждого документа). Как именно вы хотите " вывести все в одну таблицу" ? Шапка - строки1-строки2-стоки3 - подвал ?
7. avogadro57 19.07.17 12:24 Сейчас в теме
(6) Про линию то понятно, она толком ничего не делает все равно. Вывести нужно Шапка - строки1-строки2-строки3 - подвал. Ниже просто я не копировал, там еще немного параметров для подвала и его вывод
9. BackinSoda 19.07.17 12:32 Сейчас в теме
(7) Видно что шапка и подвал, как и строки, заполняются для каждого документа свои ? какие же тогда будут эти "общие" шапка и подвал? Браться из первого документа ?
Вообще надо убрать номера строк из запроса(из полей и из сортировки), добавить группировки, добавить сортировку по номенклатуре, убрать Итоги по, убрать обход по группировкам, убрать практически весь кусок с циклом по ВыборкаПоДокументам и обход делать уже по нему, а не по строкамТч. Вот ) Скопируйте весь текст процедуры лушче
10. avogadro57 19.07.17 12:37 Сейчас в теме
(9) Шапка и подвал потом можно сделать, чтобы заполнялся из формы печатной формы, самое главное для меня строки:)

Вот полный код:
Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

	ТабличныйДокумент  = Новый ТабличныйДокумент;

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

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

			ОбластьСтрока.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
			ОбластьСтрока.Параметры.Товар = ФормированиеПечатныхФормСервер.ПолучитьПредставлениеНоменклатурыДляПечати(ВыборкаПоСтрокамТЧ.НоменклатураПредставление,ВыборкаПоСтрокамТЧ.ХарактеристикаПредставление);
			//ОбластьСтрока.Параметры.Производитель = ВыборкаПоСтрокамТЧ.Номенклатура.Производитель; 
			//ОбластьСтрока.Параметры.НТД = ВыборкаПоСтрокамТЧ.Номенклатура.Артикул; 
		
			СтавкаНДСЧисло = ОбработкаТабличнойЧастиТоварыКлиентСерверПовтИсп.ПолучитьСтавкуНДСЧислом(ВыборкаПоСтрокамТЧ.СтавкаНДС) * 100;
			
			Если ВыборкаПоДокументам.ЦенаВключаетНДС Тогда 
				ЦенаБезНдс = окр(ВыборкаПоСтрокамТЧ.Цена *  100 / (100 + СтавкаНДСЧисло),2);
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма - ВыборкаПоСтрокамТЧ.СуммаНДС;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма;
			Иначе
				ЦенаБезНдс = ВыборкаПоСтрокамТЧ.Цена;
				СуммаБезНдс = ВыборкаПоСтрокамТЧ.Сумма;
				СуммаСНдс = ВыборкаПоСтрокамТЧ.Сумма + ВыборкаПоСтрокамТЧ.СуммаНДС;
			КонецЕсли;
			
			ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + СуммаБезНдс;
			ИтогоСуммаСНДС = ИтогоСуммаСНДС + СуммаСНдс;
			ИтогоНДС = ИтогоНДС + ВыборкаПоСтрокамТЧ.СуммаНДС;
			
			ОбластьСтрока.Параметры.ЦенаБезНдс = ЦенаБезНдс;
			ОбластьСтрока.Параметры.СуммаБезНдс = СуммаБезНдс;
			ОбластьСтрока.Параметры.СуммаСНдс = СуммаСНдс;
			ТабличныйДокумент.Вывести(ОбластьСтрока);
		
		КонецЦикла;
		
		ОбластьПодвал.Параметры.ИтогоСуммаБезНДС = ИтогоСуммаБезНДС;
		ОбластьПодвал.Параметры.ИтогоСуммаСНДС = ИтогоСуммаСНДС;
		
		ОбластьПодвал.Параметры.ИтогоСуммаБезНДСПрописью = ФормированиеПечатныхФормСервер.СформироватьСуммуПрописью(ИтогоСуммаСНДС);
		ОбластьПодвал.Параметры.ИтогоСуммаСНДС = ИтогоСуммаСНДС;
		//ОбластьПодвал.Параметры.ИтогоНДС = ИтогоНДС;
		//ОбластьПодвал.Параметры.ИтогоНДСПрописью = ФормированиеПечатныхФормСервер.СформироватьСуммуПрописью(ИтогоНДС);
		
		Руководители = ФормированиеПечатныхФормСервер.ОтветственныеЛицаОрганизаций(ВыборкаПоДокументам.Поставщик, ВыборкаПоДокументам.Дата);
		//ОбластьМакета.Параметры.ДолжностьРуководителя = Руководители.РуководительДолжность;
		ОбластьПодвал.Параметры.ПостДиректор       = ФормированиеПечатныхФормСервер.ФамилияИнициалыФизЛица(Руководители.Руководитель);
		
		ПредставлениеПоставщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(ВыборкаПоДокументам.Поставщик, ВыборкаПоДокументам.Дата), "ПолноеНаименование,");
		ОбластьПодвал.Параметры.Поставщик = ПредставлениеПоставщика;
		
		ПредставлениеПолучателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(ВыборкаПоДокументам.Получатель, ВыборкаПоДокументам.Дата), "ПолноеНаименование,");
		ОбластьПодвал.Параметры.Покупатель = ПредставлениеПолучателя;
		
		//ОбластьПодвал.Параметры.АдресПоставщика =  ФормированиеПечатныхФормСервер.ОписаниеОрганизации(ФормированиеПечатныхФормСервер.СведенияОЮрФизЛице(ВыборкаПоДокументам.Поставщик, ВыборкаПоДокументам.Дата), "ФактическийАдрес,");
		
		//ТЗ_ПокДиректор = УправлениеСвойствами.ПолучитьЗначенияСвойств(ВыборкаПоДокументам.Получатель,Истина,ложь,СвойствоФИООтветственного);
		//Если ТЗ_ПокДиректор.Количество() Тогда
		//	ОбластьПодвал.Параметры.ПокДиректор = ТЗ_ПокДиректор[0].Значение;
		//КонецЕсли;	
		//
		//ТЗ_ДолжностьДиректора  = УправлениеСвойствами.ПолучитьЗначенияСвойств(ВыборкаПоДокументам.Получатель,Истина,ложь,СвойствоДолжностьОтветсвенного);
		//Если ТЗ_ДолжностьДиректора.Количество() Тогда
		//	ОбластьПодвал.Параметры.ДолжностьДиректора = ТЗ_ДолжностьДиректора[0].Значение;
		//КонецЕсли;	
		
		ТабличныйДокумент.Вывести(ОбластьПодвал);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаПоДокументам.Ссылка);
		
	КонецЦикла;
	
	ТабличныйДокумент.АвтоМасштаб = Истина;
	
	Возврат ТабличныйДокумент;
КонецФункции
Показать
11. BackinSoda 19.07.17 13:04 Сейчас в теме
(10) Примерно так, особо не проверял, должно взлететь (плюс там момент один указал в коменте) :
Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

    ТабличныйДокумент  = Новый ТабличныйДокумент;

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

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

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

зы: по ошибке сумму(цены) написал, исправил на максимум
12. avogadro57 20.07.17 04:35 Сейчас в теме
(11) Спасибо большое, получилось
8. avogadro57 19.07.17 12:27 Сейчас в теме
Поидее надо работать с куском, где выводятся Строки в цикле
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)