PDA

Просмотр полной версии : Печатная форма счета на оплату покупателям



veraperev
14.08.2015, 23:47
Пытаюсь создать внешнюю печатную форму в УТ 10.3 документа "счета на оплату покупателям".При распечатке счета , картинка печати разрывается на 2 страницы, а хотелось бы чтобы она переходила на следующую страницу полностью.Пыталась что-то сделать, но бесполензно
// Функция помещает в структуру все данные, отображаемые при печати документа.
// Вызывается из функции ПечатьСчетаЗаказа и из веб-приложения
//
// Параметры:
// Тип - строка, содержит тип печатаемого документа (счет или заказ)
//
// Возвращаемое значение:
// Структура
//
Функция ПолучитьПараметрыПечатиСч етаЗаказа(Тип) Экспорт

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

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

СтрокаВыборкиПоляСодержан ия = ОбработкаТабличныхЧастей.� �олучитьЧастьЗапросаДляВы� �ораСодержания("СчетНаОплату");

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

ЗапросТовары = Запрос.Выполнить().Выгрузит ь();

// Выводим шапку накладной

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

ПараметрыПечати.Вставить("БИКБанкаПолучателя", БИК);
ПараметрыПечати.Вставить("БанкПолучателя", Банк);
ПараметрыПечати.Вставить("БанкПолучателяПредставлен ие", СокрЛП(Банк) + " " + ГородБанка);
ПараметрыПечати.Вставить("СчетБанкаПолучателя", КоррСчет);
ПараметрыПечати.Вставить("СчетБанкаПолучателяПредст авление", КоррСчет);
ПараметрыПечати.Вставить("СчетПолучателяПредставлен ие", НомерСчета);
ПараметрыПечати.Вставить("СчетПолучателя", НомерСчета);
ПредставлениеПоставщикаДл яПлатПоручения = СтруктурнаяЕдиница.ТекстК� �рреспондента;
КонецЕсли;
Если ПустаяСтрока(Представлени� �ПоставщикаДляПлатПоручен� �я) Тогда
ПредставлениеПоставщикаДл яПлатПоручения = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПоставщике, "ПолноеНаименование,");
КонецЕсли;
ПараметрыПечати.Вставить("ПредставлениеПоставщикаДл яПлатПоручения", ПредставлениеПоставщикаДл яПлатПоручения);
КонецЕсли;

ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.Сформиро� �атьЗаголовокДокумента(Шап ка, "Счет на оплату"));
ПараметрыПечати.Вставить("ТекстПоставщик", ?(Тип = "Счет", "Поставщик:", "Исполнитель:"));
ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФорм.� �писаниеОрганизации(Управл ениеКонтактнойИнформацией .СведенияОЮрФизЛице(Шапка.� �рганизация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП ,ЮридическийАдрес,Телефоны ,"));
Если Шапка.Организация = Шапка.Грузоотправитель Тогда
ПараметрыПечати.Вставить("ПредставлениеГрузоотправи теля", ФормированиеПечатныхФорм.� �писаниеОрганизации(Управл ениеКонтактнойИнформацией .СведенияОЮрФизЛице(Шапка.� �рганизация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП ,ЮридическийАдрес,Телефоны ,"));
Иначе
ПараметрыПечати.Вставить("ПредставлениеГрузоотправи теля", ФормированиеПечатныхФорм.� �писаниеОрганизации(Управл ениеКонтактнойИнформацией .СведенияОЮрФизЛице(Шапка.� �рузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП ,ФактическийАдрес,Телефоны ,"));
КонецЕсли;
СведенияОПолучателе = УправлениеКонтактнойИнфор мацией.СведенияОЮрФизЛице( Шапка.Получатель, Шапка.Дата);
ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:"));
ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФорм.� �писаниеОрганизации(Управл ениеКонтактнойИнформацией .СведенияОЮрФизЛице(Шапка.� �олучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП ,ЮридическийАдрес,Телефоны ,"));
ПараметрыПечати.Вставить("ПредставлениеГрузополучат еля", ФормированиеПечатныхФорм.� �писаниеОрганизации(Управл ениеКонтактнойИнформацией .СведенияОЮрФизЛице(Шапка.� �рузополучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП ,ФактическийАдрес,Телефоны ,"));

ПараметрыПечати.Вставить("ЕстьСкидки", Ложь);
Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
//Если ЗначениеЗаполнено(Выборка� �трокТовары.Скидка) Тогда
//// ПараметрыПечати.ЕстьСкидк� � = Истина;
// Прервать;
//КонецЕсли;
КонецЦикла;

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

//Если ПараметрыПечати.ВыводитьК� �ды Тогда
// ПараметрыПечати.Вставить("ИмяКолонкиКодов", Колонка);
//КонецЕсли;

Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;

Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

ПараметрыПозиции = Новый Структура;

ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенк� �атура);
ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(Выборк аСтрокТовары) + 1);

Если ПараметрыПечати.ВыводитьК� �ды Тогда
Если Колонка = "Артикул" Тогда
ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артику� �);
Иначе
ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код);
КонецЕсли;
КонецЕсли;

ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количе� �тво);
ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.Единиц� �Измерения);
ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена);
ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.Н аименованиеПолное)
+ ФормированиеПечатныхФорм.� �редставлениеСерий(Выборка СтрокТовары));

//Скидка = Ценообразование.ПолучитьС� �ммуСкидки(ВыборкаСтрокТов ары.Сумма, ВыборкаСтрокТовары.Скидка) ;

//Если ПараметрыПечати.ЕстьСкидк� � Тогда
// ПараметрыПозиции.Вставить("Скидка", Скидка);
// ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка);
//КонецЕсли;

ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма);

Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаН� �С;
//ВсегоСкидок = ВсегоСкидок + Скидка;
//ВсегоБезСкидок = Сумма + ВсегоСкидок;
//#Если ВнешнееСоединение Тогда
//WEBПриложения.ПодготовитьСт руктуруДляВнешнегоСоедине ния(ПараметрыПозиции);
//#КонецЕсли

Позиции.Добавить(Параметры Позиции);

КонецЦикла;

ПараметрыПечати.Вставить("Позиции", Позиции);

// Вывести Итого
Если ПараметрыПечати.ЕстьСкидк� � Тогда
ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок);
ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок);
КонецЕсли;
ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСу� �м(Сумма));

// Вывести ИтогоНДС
Если ПараметрыПечати.Учитывать� �ДС Тогда
ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:"));
ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСу� �м(ЗапросТовары.Итог("СуммаНДС")));
ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСу� �м(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС)));
КонецЕсли;

// Вывести Сумму прописью
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество()
+ ", на сумму " + ОбщегоНазначения.ФорматСу� �м(СуммаКПрописи, Шапка.ВалютаДокумента));
ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.Сформиро� �атьСуммуПрописью(СуммаКПр описи, Шапка.ВалютаДокумента));

// Вывести подписи
Если Тип = "Счет" Тогда
Руководители = РегламентированнаяОтчетно сть.ОтветственныеЛицаОрга� �изации(Шапка.Руководители, Шапка.Дата,);
Руководитель = Руководители.Руководитель;
ДолжностьРуководителя = Руководители.Руководитель� �олжность;
Бухгалтер = Руководители.ГлавныйБухга� �тер;

ПараметрыПечати.Вставить("ФИОРуководителя", Руководитель);
ПараметрыПечати.Вставить("ДолжностьРуководителя", ДолжностьРуководителя);
ПараметрыПечати.Вставить("ФИОБухгалтера", Бухгалтер);

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

КонецЕсли;
//#Если ВнешнееСоединение Тогда
//WEBПриложения.ПодготовитьСт руктуруДляВнешнегоСоедине ния(ПараметрыПечати);
//#КонецЕсли

Возврат ПараметрыПечати;

КонецФункции //ПолучитьПараметрыПечатиСч етаЗаказа()


// Функция создает табличный документ для печати счета и заказа,
// помещая в него готовые данные, переданные в виде структуры.
//
// Параметры:
// Тип - строка, содержит тип печатаемого документа (счет или заказ);
// ПараметрыПечати - структура с данными для печати.
//
// Возвращаемое значение:
// Табличный документ - сформированная печатная форма
//
Функция СоздатьТабличныйДокументП ечатиСчетаЗаказа(Тип, ПараметрыПечати)

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметров� �ечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПоку пателя_СчетЗаказ";

Макет = ПолучитьМакет("Счет");

// Выводим шапку накладной
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСЛоготипом");
ОбластьМакета.Параметры.За полнить(ПараметрыПечати);
ТабДокумент.Вывести(Област ьМакета);

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

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.За полнить(ПараметрыПечати);
ТабДокумент.Вывести(Област ьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.За полнить(ПараметрыПечати);
ТабДокумент.Вывести(Област ьМакета);

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

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

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

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

ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
//ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
////ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка");
ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма");

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

Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

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

ОбластьНомера.Параметры.За полнить(ПараметрыПозиции);
ТабДокумент.Вывести(Област ьНомера);

//Если ПараметрыПечати.ВыводитьК� �ды Тогда
// //ОбластьКодов.Параметры.Зап олнить(ПараметрыПозиции);
// ТабДокумент.Присоединить(О бластьКодов);
//КонецЕсли;

ОбластьТовар.Параметры.Зап олнить(ПараметрыПозиции);
ТабДокумент.Присоединить(О бластьТовар);
ОбластьДанных.Параметры.За полнить(ПараметрыПозиции);
ТабДокумент.Присоединить(О бластьДанных);

//Если ПараметрыПечати.ЕстьСкидк� � Тогда
// ОбластьСкидок.Параметры.За полнить(ПараметрыПозиции);
// ТабДокумент.Присоединить(О бластьСкидок);
//КонецЕсли;

ОбластьСуммы.Параметры.Зап олнить(ПараметрыПозиции);
ТабДокумент.Присоединить(О бластьСуммы);

КонецЦикла;

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

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

ТабДокумент.Вывести(Област ьНомера);
//Если ПараметрыПечати.ВыводитьК� �ды Тогда
// ТабДокумент.Присоединить(О бластьКодов);
//КонецЕсли;
ТабДокумент.Присоединить(О бластьТовар);
ТабДокумент.Присоединить(О бластьДанных);
////Если ПараметрыПечати.ЕстьСкидк� � Тогда
//// //ОбластьСкидок.Параметры.За полнить(ПараметрыПечати);
//// ТабДокумент.Присоединить(О бластьСкидок);
////КонецЕсли;
ОбластьСуммы.Параметры.Зап олнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьСуммы);

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

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

ТабДокумент.Вывести(Област ьНомера);
Если ПараметрыПечати.ВыводитьК� �ды Тогда
//ТабДокумент.Присоединить(О бластьКодов);
КонецЕсли;
ОбластьТовар.Параметры.Зап олнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьТовар);
ОбластьДанных.Параметры.За полнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьДанных);
//Если ПараметрыПечати.ЕстьСкидк� � Тогда
// ТабДокумент.Присоединить(О бластьСкидок);
//КонецЕсли;
ОбластьСуммы.Параметры.Зап олнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьСуммы);

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

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

ТабДокумент.Вывести(Област ьНомера);
Если ПараметрыПечати.ВыводитьК� �ды Тогда
//ТабДокумент.Присоединить(О бластьКодов);
КонецЕсли;
ОбластьТовар.Параметры.Зап олнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьТовар);
ОбластьДанных.Параметры.За полнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьДанных);
//Если ПараметрыПечати.ЕстьСкидк� � Тогда
// ТабДокумент.Присоединить(О бластьСкидок);
//КонецЕсли;
ОбластьСуммы.Параметры.Зап олнить(ПараметрыПечати);
ТабДокумент.Присоединить(О бластьСуммы);

КонецЕсли;

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

// Вывести подписи
Если Тип = "Счет" Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
КонецЕсли;

ОбластьМакета.Параметры.За полнить(ПараметрыПечати);

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

Возврат ТабДокумент;

КонецФункции // СоздатьТабличныйДокументП ечатиСчетаЗаказа()

// Функция формирует табличный документ с печатной формой заказа или счета,
// разработанного методистами
//
// Возвращаемое значение:
// Табличный документ - сформированная печатная форма
//
Функция ПечатьСчетаЗаказа(Тип)

Возврат СоздатьТабличныйДокументП ечатиСчетаЗаказа(Тип, ПолучитьПараметрыПечатиСч етаЗаказа(Тип));

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

// Процедура осуществляет печать документа. Можно направить печать на
// экран или принтер, а также распечатать необходмое количество копий.
//
// Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.
//
// Параметры:
// НазваниеМакета - строка, название макета.
//
Функция Печать() Экспорт

КоличествоЭкземпляров=1;
НаПринтер=Ложь;
ИмяМакета="Счет";

ТабДокумент = ПечатьСчетаЗаказа(ИмяМаке� �а);

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


//Если Не ТабДокумент.ПроверитьВыво� �(ОбластьМакета) Тогда
//ТабДокумент.ВывестиГоризо� �тальныйРазделительСтрани� �();
//ТабДокумент .Вывести("ПодвалСчета");

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


КонецФункции // Печать