![]() |
|
Вывод на печать нескольких макетов из внешней обработки на УФ | ☑ | ||
---|---|---|---|---|
0
DenYuliya
12.07.16
✎
11:03
|
Добрый день.
Подскажите пожалуйста, как можно решить данную задачу, "куда копать"? Есть внешняя обработка (именно обработка, не печ.форма) на УФ, УТ 11. Запускается как внешняя обработка, к документу не подключается. У нее есть на форме ТЧ, в которое есть все нужные мне для печати данные. Надо прикорячить к обработке несколько макетов, чтобы пользователь мог выбрать нужный из них, и напечатать. Данные для заполнения макетов - из ТЧ формы. С чего начать?))). Я, если честно, ранее с УФ не сталкивалась, в обычных формах все проще. 1) Проц. Печать() лучше из модуля формы вызывать? Или из модуля объекта? 2) Не понятно, что в этом случае передавать в кач-ве параметра процедуры Печать(). Хотелось бы использовать ТЧ формы, как бы его вызвать? Если использовать Объект.Товары - ругается. 3) Как реализовать вызов одного из нескольких макетов на выбор? Сделать кнопку выбора типа макета и по условию вызывать тот, или иной? |
|||
1
Горогуля
12.07.16
✎
11:06
|
&НаСервере
Функция СверкаНаСервере(Счёт) об=РеквизитФормыВЗначение("Отчет"); Макет=об.ПолучитьМакет("Сверка"); Запрос.Текст=ПолучитьТекстЗапроса(Счёт); Запрос.УстановитьПараметр("НачПериода", ЭтотОбъект.НачПериода); Возврат ТабДокумент; КонецФункции &НаКлиенте Процедура Сверка2201(Команда) СверкаНаСервере(2201).Показать(); КонецПроцедуры |
|||
2
lodger
12.07.16
✎
11:07
|
смотри как делать тяп ляп:
на форме обработки добавить команду. команда уходит НаСервер со всей формой. там происходит: МакетОтчета = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет"); вместо "Макет" подавай любое имя присобаченного к этой обработке макета. в (1) готовый пример. |
|||
3
DenYuliya
12.07.16
✎
11:11
|
(1) Откуда это? Может быть есть какая-то типовая обработка с аналогичным функционалом, я бы там посмотрела на примере.
|
|||
4
DenYuliya
12.07.16
✎
11:11
|
(1) это в модуле формы все выполняется?
|
|||
5
DenYuliya
12.07.16
✎
11:12
|
(2) Спасибо, сейчас попробую сделать так
|
|||
6
Горогуля
12.07.16
✎
11:19
|
(4) ага. я не захотел иметь возможность формировать отчёт без формы
|
|||
7
Горогуля
12.07.16
✎
11:20
|
можно вместо Показать() выводить в элемент формы. красивше будет
|
|||
8
DenYuliya
12.07.16
✎
11:30
|
(7) (Счёт) - это имя ТЧ формы?
|
|||
9
Горогуля
12.07.16
✎
11:34
|
(8) эта штука называется параметр процедуры
|
|||
10
Горогуля
12.07.16
✎
11:36
|
+(9) ну а как этот параметр отдать тому, кто будет делать результат - дело вкуса. можно на разные команды навешать, как у меня. можно список прикрутить, тумблер, ГСЧ, наконец...
|
|||
11
DenYuliya
12.07.16
✎
11:36
|
(9) Я знаю))). Что вы в параметр передаете?
|
|||
12
Горогуля
12.07.16
✎
11:36
|
(11) 2201
|
|||
13
DenYuliya
12.07.16
✎
12:24
|
А если добавить в реквизиты обработки реквизит "РеквМакет" с типом "Произвольный", а потом обратиться к нему из модуля объекта примерно так:
&НаСервере Процедура ПечатьМакетаНаСервере() Если ЭтотОбъект.ШаблоныМакетовБалткам = "1" Тогда РеквизитМакет = ПолучитьМакет("1"); ИначеЕсли ЭтотОбъект.ШаблоныМакетовБалткам = "2" Тогда РеквизитМакет = ПолучитьМакет("2"); ИначеЕсли ЭтотОбъект.ШаблоныМакетовБалткам = "3" Тогда РеквизитМакет = ПолучитьМакет("3"); |
|||
14
Горогуля
12.07.16
✎
12:25
|
а теперь покажи разницу меж твои кодом и моим:
РеквизитМакет = ПолучитьМакет(ШаблоныМакетовБалткам) |
|||
15
Горогуля
12.07.16
✎
12:26
|
ну а уж имя макета вертишь на форме, как хочешь
|
|||
16
DenYuliya
12.07.16
✎
12:30
|
(14) вызывать из модуля формы, или объекта.
|
|||
17
Горогуля
12.07.16
✎
12:30
|
&НаСервере
Процедура ПечатьМакетаНаСервере() РеквизитМакет = ПолучитьМакет(ШаблоныМакетовБалткам) |
|||
18
Горогуля
12.07.16
✎
12:33
|
&НаСервере
Процедура ПечатьМакетаНаСервере() об=РеквизитФормыВЗначение("Отчет"); Макет=об.ПолучитьМакет(об.ШаблоныМакетовБалткам); |
|||
19
DenYuliya
12.07.16
✎
12:35
|
(18) да, вы правы :)
|
|||
20
DenYuliya
12.07.16
✎
12:48
|
(18) есть в данном случае принципиальная разница, в модуле формы все выполнять, или в модуле объекта? Я больше к модулю формы склоняюсь.
|
|||
21
Горогуля
12.07.16
✎
12:52
|
(20) модуль объекта бывает полезен при программных вызовах. например, если ты хочешь получить свой отчёт из другого места, то взываешь к своей обработке без открытия формы и получаешь результат. но, судя по уровню твоих вопросов, принципиальной разницы нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |