Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 сен 2024, 02:33

Внешняя печатная форма

Автор Nail2010, 18 апр 2011, 12:05

0 Пользователей и 6 гостей просматривают эту тему.

Nail2010

Выкладываю.

Сначала модуль формы

Процедура КнопкаСформироватьНажатие(Кнопка)
Печать("Накладная1");
КонецПроцедуры


Тепереь модуль Объекта

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

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

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");

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

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная1";

нМакет = нСсылка.ПолучитьОбъект();
Макет=ПолучитьМакет("Накладная1");

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

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Копия Чека");
ТабДокумент.Вывести(ОбластьМакета);

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

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

ЕстьСкидки = Ложь;

ВыводитьКоды = Ложь;

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

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

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

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

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

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

ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
ТабДокумент.Вывести(ОбластьНомера);

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

Скидка = 0;

ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
ВсегоСкидок    = ВсегоСкидок + Скидка;
ВсегоБезСкидок = Сумма       + ВсегоСкидок;
КонецЦикла;

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

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

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

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

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

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


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

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

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

КонецФункции // ПечатьДокумента()


Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт

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

Nail2010

Система выдает: ( при вызове из формы документа):

Не удалось сформировать внешнюю печатную форму!
Обращение к процедуре объекта как к функции (Печать)

Nail2010

Поменял в модуле Объекта Процедуру Печать() на Функцию Печать(). Одинаково....

Maxim

Вы выбрали назначение?

Nail2010

Не понял, какое назначение? О чем речь?

Nail2010

Народ, у меня тут нечто уникальное происходит. Ради проверки закомментил все процедуры и функции в обработке, то есть, она практически нерабочая. И все равно, при попытке вызова из формы документа вылазит эта ошибка - обращение к процедуре как к функции. Откуда система это берет??????

progmikon

Да выложите вы обработку мы посмотрим. Кусками что-то обсуждаем.

Nail2010

Прогмикон, выкладываю уже третий раз. на предыдущей странице же выложил. Отдельно в модуле объекта и модуле документа.

Модуль Объекта :

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

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

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");

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

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная1";

нМакет = нСсылка.ПолучитьОбъект();
Макет=нМакет.ПолучитьМакет("Накладная1");

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

ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Копия Чека");
ТабДокумент.Вывести(ОбластьМакета);

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

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

ЕстьСкидки = Ложь;

ВыводитьКоды = Ложь;

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

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

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

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

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

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

ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
ТабДокумент.Вывести(ОбластьНомера);

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

Скидка = 0;

ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьСуммы);
Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
ВсегоСкидок    = ВсегоСкидок + Скидка;
ВсегоБезСкидок = Сумма       + ВсегоСкидок;
КонецЦикла;

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

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

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

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

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

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


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

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

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

КонецФункции // ПечатьДокумента()

  Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт

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



Модуль формы :

Процедура КнопкаСформироватьНажатие(Кнопка)
нСсылка=ЭлементыФормы.СсылкаНаОбъект.Значение;
мСсылка=нСсылка.ПолучитьОбъект();
мСсылка.Печать("Накладная1");

КонецПроцедуры

progmikon

Я имею ввиду саму обработку файл прикрепите.

Nail2010

Извиняюсь.

Вот этот файл:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск