|
|
УФ: Печать документа |
☑ |
|
0
lisicin
30.11.16
✎
03:57
|
Здравствуйте, прошу подсказать, переделываю документ под УФ в БП 3.0, застопорился на вопросе печати. Привожу код.
В модуле формы:
&НаКлиенте
Процедура Печать(Команда)
ПечатьНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПечатьНаСервере()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Печать("Квитанция");
КонецПроцедуры
В модуле объекта:
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
Если ИмяМакета = "Квитанция" Тогда
ТабДокумент = ПечатьДокумента();
КонецЕсли;
Возврат ТабДокумент;
//УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), НепосредственнаяПечать);
КонецПроцедуры
Функция ПечатьДокумента()
Макет = ЭтотОбъект.ПолучитьМакет("Квитанция");
ТабДок = Новый ТабличныйДокумент;
Запрос = Новый Запрос;
Запрос.Текст =
\\делаем запрос
\\заполняем области и параметры
ТабДок.Вывести(ОбластьПодвал);
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСлева = 2;
ТабДок.ПолеСнизу = 0;
ТабДок.ПолеСправа = 5;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ИмяПараметровПечати = "Квитанция";
Возврат ТабДок;
КонецФункции
Как я понимаю в БП 2.0 вывод на печать осуществлялся строчкой
//УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект), НепосредственнаяПечать);
Чем и как мне заменить его в 3.0?
|
|
|
1
lisicin
30.11.16
✎
04:00
|
(0) В первой процедуре модуля объекта строка
Возврат ТабДокумент;
лишняя.
|
|
|
2
Рэйв
30.11.16
✎
07:07
|
Процедура Печать
переделай в функцию
и
//------
&НаКлиенте
Процедура Печать(Команда)
ТабДок=ПечатьНаСервере();
ТабДок.показать();
КонецПроцедуры
&НаСервере
Функция ПечатьНаСервере()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ТабДок=ДокументОбъект.Печать("Квитанция");
Возврат ТабДок;
КонецПроцедуры
|
|
|
3
Рэйв
30.11.16
✎
07:07
|
хотя на мой вкус слишком много лишних вызовов. Можно было сделать экспортной Функция ПечатьДокумента() , напрямую вызвать ее с клиента и не париться
|
|
|
4
Рэйв
30.11.16
✎
07:08
|
ну или через
&НаСервере
Процедура ПечатьНаСервере()
|
|
|
5
lisicin
30.11.16
✎
09:09
|
(2) Да, именно к такому варианту в результате своих изысканий я и пришёл, не хватало только
ТабДок.показать();
всё искал что-нибудь, связанное с печатью :)
Спасибо!
|
|
|
6
lisicin
12.12.16
✎
01:22
|
Подскажите пожалуйста.
Есть внутренняя обработка, которая по документам Закупка создает и проводит документ Поступление. Теперь нужно чтобы при необходимости каждое созданное поступление выводилось на печать по форме ТОРГ12. Я так понимаю здесь велосипед изобретать не надо и можно обратиться к встроенной процедуре, но не могу найти к какой.
Платформа 8.3, конфигурация БП 3.0
|
|
|
7
Torquader
12.12.16
✎
01:46
|
(6) Наверное, нужная процедура живёт в обработчике нажатия на кнопку "печать".
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший