|
УФ Печатная форма. Вывести окно перед печатью для ввода доп параметров | ☑ | ||
---|---|---|---|---|
0
Wefast
21.06.17
✎
13:46
|
В общем надо переделать пф из БП 2.0 в БП 3.0
В БП 2.0 в функции Печать был код: СписокСтрок = Новый СписокЗначений; Н = 1; СписокСтрок.Добавить(0, "Все"); Для каждого Стр из СсылкаНаОбъект.КА_ДляТТН Цикл СписокСтрок.Добавить(Н, Строка(Н)+" строка"); Н = Н + 1; КОнецЦикла; ВыбЭлемент = СписокСтрок.НайтиПоЗначению(0); ВыбЭлемент = СписокСтрок.ВыбратьЭлемент("Выберите номер строки", ВыбЭлемент) ; Если ВыбЭлемент = Неопределено Тогда Сообщить("Не выбран тип цен."); Иначе ВыбНомерСтроки = ВыбЭлемент.Значение; КонецЕсли; Смысл такой: В документе табличная часть. На каждую строку выводится своя печатная форма . Перед печатью пользователя спрашивают какую строку напечатать. 1 строка Все печатать. Как это реализовать в печатной форме на УФ? Из модуля объекта функции Печать я же не могу ничего спросить у пользователя |
|||
1
RomaH
naïve
21.06.17
✎
13:50
|
в крайней БСП - есть такая возможность
|
|||
2
Wefast
21.06.17
✎
13:53
|
(1) ?
|
|||
3
RomaH
naïve
21.06.17
✎
14:00
|
(2) блин - в БСП есть подсистема печати
так вот - там это реализовано |
|||
4
Cyberhawk
21.06.17
✎
14:27
|
"Из модуля объекта функции Печать я же не могу ничего спросить у пользователя" // Подключемую печатную форму сделай, тип команды - вызов клиентского метода, там метод "Печать" на клиенте
|
|||
5
Wefast
21.06.17
✎
14:50
|
(3) вот бы было понятно что ты имеешь ввиду. Нашел я общие модули печати(УправлениеПечатью) Но как это мне поможет правильно написать внешнюю обработку не понятно
Указываю в СведениеОВнешнейОбработки .использование = "ОткрытиеФормы". В форме пишу МояОбработка = РеквизитФормыВЗначение("Объект"); МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(); ОбъектыПечати = Новый СписокЗначений; ОбъектыПечати.Добавить(Объект.Ссылка); КоллекцияПечатныхФорм = Новый ТаблицаЗначений; КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ"); КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета"); КоллекцияПечатныхФорм.Колонки.Добавить("Картинка"); КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету"); КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета"); КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент"); КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров"); КоллекцияПечатныхФорм.Колонки.Добавить("ИмяФайлаПечатнойФормы"); // Добавим название обработки что описано в модуле объекта НоваяСтрока = КоллекцияПечатныхФорм.Добавить(); НоваяСтрока.ИмяВРЕГ = "ТРАНСПОРТНАЯНАКЛАДНАЯ"; МояОбработка.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, Новый Структура("")); Этот код формы хорошо работает для быстрой отладки. Но вот как все это отладить после подключения не ясно. Мне же в функцию печать нужно передать не Ссылку на документ с формы, а владельца формы(документ, и какие то реквизиты.) Или может нужно в таких случаях использвать ВызовКлиентскогоМетода? |
|||
6
Cyberhawk
21.06.17
✎
14:58
|
"как все это отладить после подключения не ясно" // Я для этого встраиваю подсистему ИР
|
|||
7
Wirtuozzz
21.06.17
✎
15:01
|
||||
8
Wefast
21.06.17
✎
15:18
|
(7) там же только написано что он решил вопрос, а каким образом решил не написано
|
|||
9
polosov
21.06.17
✎
15:20
|
||||
10
Wefast
21.06.17
✎
15:28
|
(9) полезно, но не то что нужно
Процедура П(м) МояОбработка = РеквизитФормыВЗначение("Объект"); МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(); ОбъектыПечати = Новый СписокЗначений; ОбъектыПечати.Добавить(м[0]); КоллекцияПечатныхФорм = Новый ТаблицаЗначений; КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ"); КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета"); КоллекцияПечатныхФорм.Колонки.Добавить("Картинка"); КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету"); КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета"); КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент"); КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров"); КоллекцияПечатныхФорм.Колонки.Добавить("ИмяФайлаПечатнойФормы"); НоваяСтрока = КоллекцияПечатныхФорм.Добавить(); НоваяСтрока.ИмяВРЕГ = "ТРАНСПОРТНАЯНАКЛАДНАЯ"; МояОбработка.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, Новый Структура("")); КонецПроцедуры &НаКлиенте Процедура Печать(ИдентификаторКоманды,ОбъектыНазначения) Экспорт Сообщить(ОбъектыНазначения); П(ОбъектыНазначения); КонецПроцедуры Сделал так. Теперь нужно сделать КоллекцияПечатныхФорм[0].ТабличныйДокумент.Показать(); Но он выведет обычный табличный документ в окно. А не как печатную форму в какую то стандартную форму для этого. Не рисовать же мне теперь форму для вывода. |
|||
11
TormozIT
гуру
01.07.17
✎
20:35
|
(6) + А теперь и встраивать подсистему ИР не нужно, если режим совместимости 8.3.9+, т.к. есть расширение ИР.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |