1С8. Пример: Печать ТОРГ12. ПроверитьВывод(МассивВыводимыхОбластей)

Фрагмент программы печать Печать ТОРГ12 ТабличныйДокумент.ПроверитьВывод(МассивВыводимыхОбластей).

Функция ПечатьТОРГ12()

	ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();

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

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

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

	Шапка = Запрос.Выполнить().Выбрать();
	Шапка.Следующий();

	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);

	Если ВалютаДокумента = ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
		// Документ оформлен в валюте взаиморасчетов
		Запрос.УстановитьПараметр("Курс", ЭтотОбъект.КурсВзаиморасчетов);
		Запрос.УстановитьПараметр("Кратность", ЭтотОбъект.КратностьВзаиморасчетов);
	Иначе
		// Документ оформлен в валюте регламентированного учета
		Запрос.УстановитьПараметр("Курс", 1);
		Запрос.УстановитьПараметр("Кратность", 1);
	КонецЕсли;

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

	Макет = ПолучитьОбщийМакет("ТОРГ12");

	// Выводим общие реквизиты шапки
	СведенияОПоставщике      = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
	СведенияОПокупателе      = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Контрагент, Шапка.ДатаДокумента);
	СведенияОГрузополучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);

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

		ОбластьМакета.Параметры.Основание = РаботаСДиалогами.СформироватьЗаголовокДокумента(ШапкаЗаказ, Строка(ШапкаЗаказ.ВидОперации));
	КонецЕсли;

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

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

	ТабДокумент.Вывести(ОбластьМакета);

	НомерСтраницы   = 1;

	КоличествоСтрок = ЗапросТовары.Количество();
	
	// инициализация итогов по документу
	ИтогоМассаБрутто = 0;
	ИтогоКоличествоШт= 0;
	ИтогоКоличество  = 0;
	ИтогоСуммаСНДС   = 0;
	ИтогоСумма       = 0;
	ИтогоНДС         = 0;
	Ном              = 0;

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

	// инициализация итогов по странице
	ИтогоМассаБруттоНаСтранице = 0;
	ИтогоКоличествоШтНаСтранице= 0;
	ИтогоКоличествоНаСтранице  = 0;
	ИтогоСуммаНаСтранице       = 0;
	ИтогоНДСНаСтранице         = 0;
	ИтогоСуммаСНДСНаСтранице   = 0;
	
	Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

		Если ЗначениеНеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
			Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

		Ном           = Ном + 1;

		ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
		ОбластьМакета.Параметры.Номер             = ЗапросТовары.Индекс(ВыборкаСтрок) + 1;
		
		ОбластьМакета.Параметры.ТоварНаименование = ?(ВыборкаСтрок.Номенклатура.ВидНоменклатуры = Справочники.ТипыНоменклатуры.МатериалДМ,"",ВыборкаСтрок.Номенклатура.ВидНоменклатуры.Наименование) + " " 
																							+	ВыборкаСтрок.Номенклатура.Наименование + ?(ВыборкаСтрок.Номенклатура.Наименование<>ВыборкаСтрок.Номенклатура.Артикул, " Арт. " + ВыборкаСтрок.Номенклатура.Артикул, "") + ", "
		                                          + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
		                                          + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");

		Если ЗначениеНеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
			МассаБрутто = 0;
		Иначе

			МассаБрутто = ВыборкаСтрок.МассаБрутто;

			МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
		КонецЕсли;

		КоличествоШт        = ВыборкаСтрок.КоличествоШт;
		КоличествоШт        = ?(КоличествоШт <> Неопределено И КоличествоШт <> NULL, КоличествоШт, 0);

		Количество  = ВыборкаСтрок.Количество;
		СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
		СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
		СуммаБезНДС = СуммаСНДС - СуммаНДС;

		ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;
		ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;
		ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;
		ОбластьМакета.Параметры.СтавкаНДС   = ?(Шапка.УчитыватьНДС,ВыборкаСтрок.СтавкаНДС,"Без НДС");
		ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;
		
		Если ВыборкаСтрок.ВидЕИЦены = Перечисления.ВидыЕИЦен.ЗаЕИК Тогда
			ОбластьМакета.Параметры.БазоваяЕдиницаНаименование = "шт";
			ОбластьМакета.Параметры.БазоваяЕдиницаКодПоОКЕИ = "796";
		Иначе
			ОбластьМакета.Параметры.БазоваяЕдиницаНаименование = ВыборкаСтрок.БазоваяЕдиницаНаименование;
			ОбластьМакета.Параметры.БазоваяЕдиницаКодПоОКЕИ = ВыборкаСтрок.БазоваяЕдиницаКодПоОКЕИ;
		КонецЕсли;
		
		Если ВыборкаСтрок.Метка = 0 Тогда
			ОбластьМакета.Параметры.Цена        = СуммаБезНДС / ?(ВыборкаСтрок.ВидЕИЦены = Перечисления.ВидыЕИЦен.ЗаЕИБ, ?(Количество = 0, 1, Количество), ?(ВыборкаСтрок.КоличествоШт = 0, 1, ВыборкаСтрок.КоличествоШт));
		Иначе
			ОбластьМакета.Параметры.Цена        = СуммаБезНДС / Количество;
		КонецЕсли; 
		
		Если Ном = 1 Тогда // первая срока
		
			ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; 
			ТабДокумент.Вывести(ОбластьЗаголовокТаблицы);
			
		Иначе
				
			МассивВыводимыхОбластей.Очистить();
			МассивВыводимыхОбластей.Добавить(ОбластьМакета);
			МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
			Если Ном = КоличествоСтрок Тогда
				МассивВыводимыхОбластей.Добавить(ОбластьВсего);
				МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
			КонецЕсли;		
			
			Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
					
				ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
				ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоШтПоСтранице= ИтогоКоличествоШтНаСтранице;
				ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
				ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
				ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
				ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;

				ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
				
				// очистим итоги по странице
				ИтогоМассаБруттоНаСтранице = 0;
				ИтогоКоличествоШтНаСтранице= 0;
				ИтогоКоличествоНаСтранице  = 0;
				ИтогоСуммаНаСтранице       = 0;
				ИтогоНДСНаСтранице         = 0;
				ИтогоСуммаСНДСНаСтранице   = 0;

				НомерСтраницы = НомерСтраницы + 1;
				ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
				ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
				ТабДокумент.Вывести(ОбластьЗаголовокТаблицы);

			КонецЕсли;
		КонецЕсли;


		Количество = ВыборкаСтрок.МассаБрутто; 
		ОбластьМакета.Параметры.Количество = Количество;


		ТабДокумент.Вывести(ОбластьМакета);

		// увеличим итоги по странице
		ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
		ИтогоКоличествоШтНаСтранице= ИтогоКоличествоШтНаСтранице+ КоличествоШт;
		ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
		ИтогоСуммаНаСтранице       = ИтогоСуммаНаСтранице       + СуммаБезНДС;
		ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СуммаНДС;
		ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СуммаСНДС;

		// увеличим итоги по дукументу
		ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
		ИтогоКоличествоШт= ИтогоКоличествоШт+ КоличествоШт;
		ИтогоКоличество  = ИтогоКоличество  + Количество;
		ИтогоСумма       = ИтогоСумма       + СуммаБезНДС;
		ИтогоНДС         = ИтогоНДС         + СуммаНДС;
		ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СуммаСНДС;

	КонецЦикла;

	// Выводим итоги по последней странице
	ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
	ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
	ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоШтПоСтранице= ИтогоКоличествоШтНаСтранице;
	ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
	ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
	ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
	ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;

	ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
	
	// Выводим итоги по документу в целом
	ОбластьМакета = Макет.ПолучитьОбласть("Всего");
	ОбластьМакета.Параметры.ИтогМассаБрутто = ИтогоМассаБрутто;
	ОбластьМакета.Параметры.ИтогКоличествоШт= ИтогоКоличествоШт;
	ОбластьМакета.Параметры.ИтогКоличество  = ИтогоКоличество;
	ОбластьМакета.Параметры.ИтогСуммы       = ИтогоСумма;
	ОбластьМакета.Параметры.ИтогНДС         = ИтогоНДС;
	ОбластьМакета.Параметры.ИтогСуммыСНДС   = ИтогоСуммаСНДС;

	ТабДокумент.Вывести(ОбластьМакета);

	// Выводим подвал документа
	ОбластьМакета = Макет.ПолучитьОбласть("Подвал");

	Руководители =  РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента,);
	Руководитель = Руководители.Руководитель;
	Бухгалтер    = Руководители.ГлавныйБухгалтер;
	ОбластьМакета.Параметры.ФИОРуководителя       = Руководитель;
	ОбластьМакета.Параметры.ФИОГлавБухгалтера     = Бухгалтер;
	ОбластьМакета.Параметры.ДолжностьРуководителя = Руководители.РуководительДолжность;
	ФамилияИмяОтчествоФизЛица                     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
	ФамилияИмяОтчествоКладовщика                  = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
	ОбластьМакета.Параметры.ФИОКладовщика         =  РегламентированнаяОтчетность.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоКладовщика);

	Если НЕ ЗначениеНеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоМассаБрутто > 0 Тогда

		ОбластьМакета.Параметры.МассаГрузаПрописью = ФормированиеПечатныхФорм.ПолучитьВесПрописью(ИтогоМассаБрутто, ЕдиницаИзмеренияВеса.НаименованиеПолное, 2);

	КонецЕсли;

	Если ИтогоКоличествоШт > 0 Тогда
		ОбластьМакета.Параметры.ВсегоКоличествоШтПрописью = ЧислоПрописью(ИтогоКоличествоШт, ,",,,,,,,,0");
	КонецЕсли;

	ОбластьМакета.Параметры.ИтогМассаБрутто = ИтогоМассаБрутто;
	ОбластьМакета.Параметры.ИтогКоличество  = ИтогоКоличество;
	ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
	ОбластьМакета.Параметры.СуммаПрописью = РаботаСДиалогами.СформироватьСуммуПрописью(ИтогоСуммаСНДС, мВалютаРегламентированногоУчета);
	ТабДокумент.Вывести(ОбластьМакета);

	Возврат ТабДокумент;
КонецФункции // ПечатьТОРГ12()




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга