Имя: Пароль:
1C
1С v8
Вызов печатной формы
0 PavelShu
 
30.09.12
14:47
Внешняя подключаемая печатная форма (обработка), управляемое приложение.

В модуле объекта процедура

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   
   ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
   
   Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТОРГ13") Тогда
       Сообщить("Печатаю Торг13");
       УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТОРГ13", "ТОРГ-13", ПечатнаяФорма(МассивОбъектов, ОбъектыПечати, "ТОРГ13"));
   КонецЕсли;
   
   
КонецПроцедуры // Печать()

При СерверномВызове из функции

Функция СведенияОВнешнейОбработке() Экспорт

Появляется печатная форма как надо.

Но есть еще в этой функции команда ВызовКлиентскогоМетода,
Которая открывает форму этой обработки.

На форме кнопка вызова печатной формы:

&НаСервере
Процедура ПечатьНакладной(Док,Копий)
   МассивОбъектов = Новый Массив();
   МассивОбъектов.Добавить(Док);
   
   КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
   КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
   КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
   КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
   КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
   КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
   КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
   КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
   
   Стр = КоллекцияПечатныхФорм.Добавить();
   Стр.ИмяВРЕГ = "ТОРГ13";
   Стр.ИмяМакета = "ТОРГ13";
   Стр.Экземпляров = Копий;
   
   ОбъектыПечати = Новый СписокЗначений;
   ПараметрыВывода = Новый Структура;
   ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно", Истина);
   ПараметрыВывода.Вставить("ОтправительЭлектронногоПисьма", Неопределено);
   ПараметрыВывода.Вставить("ПолучательЭлектронногоПисьма", Неопределено);
   
   Обработка = РеквизитФормыВЗначение("Объект");
   Обработка.Печать(МассивОбъектов,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
       ЗначениеВРеквизитФормы(Обработка,"Объект");
   
КонецПроцедуры

При нажатии на кнопку отрабатывает Сообщить("Печатаю Торг13");
из модуля объекта, но печатная форма не открывается.

Как ее можно открыть из модуля формы?
1 PavelShu
 
02.10.12
07:56
Пробовал вызвать

УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Обработка.ПечатьПакетаДокументов", // Для вызова метода менеджера обработки "Печать". Она ищется в составе конфигурации :(
           "ТОРГ13",
           ПараметрКоманды,
           ЭтаФорма, // Форма владелец
           Неопределено
       );


Похоже из внешней подключаемой обработки невозможно вызвать
общую форму печати документов, т.к. ей нужно передать путь,
к менеджеру печати, а внешняя обработка не является частью конфигурации
и после подключения через пользовательский интерфейс еще и не является
внешним файлом.
Наверно переносится в хранилище и запускается от туда, трассировать
такую обработку в отладчике тоже не получается, т.к. управление передается
не во внешний подключаемый файл :(
2 Мимохожий Однако
 
02.10.12
08:08
(2)чтобы трассировать обработку можно посмотреть во временной папке созданный конфигурацией файл и в нём поставить точку останова.
3 gvk
 
02.10.12
11:01
Попробуйте вызывать не процедуру УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию, а процедуру Печать() из модуля МЕНЕДЖЕРА объекта.
Например, Документы.РеализацияТоваров.Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
4 PavelShu
 
02.10.12
20:07
Но мне не нужно вызывать печать документа из внешней обработки.

Нужно вызвать процедуру печати которая находится во внешней обработки из
формы этой же обработки.

А внешняя внешняя обработка подключена через "Администритование->Дополнительные отчеты и обработки" как внешняя печатная форма.

В результате подключения в журнале и в документе в группе печать,
появляется пункт меню "Дополнительные печатные формы.."

После выбора "Дополнительные печатные формы.." появляется список команд,
которые были описаны в этой внешней обработке.

Первая команда, сразу вызывает печатную форму и работает как надо.
Вторая команда вызывает форму этой же обработки с кнопками.

Пользователь должен крыжиками выбрать нужные печатные формы и нажать на кнопку
печать.

Вызывать печать документов в составе конфигурации не требуется.
Нужно вызвать печатные формы из этой же внешней обработки.
5 leksv1
 
23.10.12
09:57
Столкнулся с этой же проблемой, у тебя получилось ее решить?