|
С помощью БСП (подсистема печать) напечатать табличную часть обработки |
☑ |
0
Borteg
07.06.16
✎
11:26
|
Добрый день. Есть обработка. В ней заполняется табличная часть. Есть команда печати, на нажатие которое происходит формирование печатной формы с помощью это табличной части. Перевожу сейчас все на бсп. Как с помощью бсп вывести на печать табличную часть обработки? При типовом подходе передается МассивОбъектов в команду печати,но у меня объектов нету,мне надо передать табличную часть, а в менеджере я уже сформирую из нее табличный документ и выведу на печать. Как это решается с помощью бсп?
|
|
1
luter-89
07.06.16
✎
11:36
|
Пройдись отладчиком, далее будет код: Если ТипЗнч(Объект) = Тип("ДокументСсылка.Какой-то) Тогда, Если тип = справочник, то другое. Посмотри есть ли там условие, если тип обработка. Но скорее всего есть, так как есть обработки печати, например Счета на оплату. Передавай сам объект в МассивеОбъектов. И команду настой по примеру типовых команд
|
|
2
luter-89
07.06.16
✎
11:37
|
У тебя же есть обработка, значит есть объект
|
|
3
Borteg
07.06.16
✎
11:47
|
(2) При попытки печати из обработки получается, что он не может найти ссылку. Для обработки выдает ошибку.
|
|
4
Mort
07.06.16
✎
12:12
|
Глубже надо копать. Ты полез в команды формирования печатных форм объектов, смотри ближе к открытию формы печати.
|
|
5
Borteg
07.06.16
✎
12:20
|
(4) дорылся,а там пытается получить объекты метаданных из переданного массив объектов, а я туда то тз пихал, то пустой массив)
Я так понимаю функция печати документа вызывается всегда один раз, независимо от количества переданных ссылок, и уже кодом при формирования печатной формы надо определить какие ссылки из передаваемых надо печатать и сформировать табличный документ с разделителями для всех документа?
|
|
6
Borteg
07.06.16
✎
12:24
|
(4) но всеравно если использовать типовые методы туда надо ссылки передавать или список, а в команде печати по этим ссылкам запросом снова получаются данные и происходит уже формирование печатной формы. Мне кажется надо просто использовать отдельные методы бсп, и не пытаться сделать все типовым способ как описано в 1с.
|
|
7
Borteg
07.06.16
✎
13:20
|
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
//УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма,МассивДляПечати);
ТабДок = СформироватьПечатнуюФормуН();
ИдентификаторПечатнойФормы = "Макет";
МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
ПечатнаяФорма.СинонимМакета = "Привет";
ПечатнаяФорма.ТабличныйДокумент = ТабДок;
ПечатнаяФорма.ИмяФайлаПечатнойФормы = "Привет";
ОбластиОбъектов = Новый СписокЗначений;
МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
КонецПроцедуры
|
|
8
Borteg
07.06.16
✎
13:21
|
(7) МодульУправлениеПечатьюКлиент.ПечатьДокументов если заполнено значение табличный документ не формирует его а сразу добавляет. Можно просто сформировать и вывести.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший