Имя: Пароль:
1C
1С v8
Как сформировать типовую печ.форму документа, имея ссылку на него
0 altaykniga
 
24.10.16
16:17
Привет всем! Можете пинать, но найти не получилось быстро

Во внешней обработке выполняется некоторый код, создается документ ЗаказНаПроизводство, далее его необходимо напечатать. Варианта нужно 2: отправлять сразу на принтер или выводить на экран печ.форму. Как этого добиться?

в обработке выполняю след.код:


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


в итоге печ.форма формируется, но общая форма "ПечатьДокументов" не открывается. Может есть какая-нибудь типовая процедура в общих модулях, которая выводит на экран печатные формы документов, имея ссылки на них (документы одного типа)
1 DrShad
 
24.10.16
16:18
в процедуре Печать смотри
2 altaykniga
 
24.10.16
16:37
(1) много там понаписано...

ну а НаКлиенте проще вызвать печать доков, имея ссылки на них? Добавил на форму внешней обработки реквизит СписокДокументовДляПечати, с помощью Обработки заполняю этот список нужными документами, после окончания обработки возвращаюсь наКлиент.. Как теперь тут распечатать доки по списку?
3 Boleev
 
24.10.16
16:38
БСП?
4 altaykniga
 
24.10.16
16:38
(0) УНФ 1.6.5
5 altaykniga
 
24.10.16
16:39
(3) ДА
6 DrShad
 
24.10.16
16:40
у каждого дока есть модуль менеджера, в типовых процедуры печати находятся в нем - там и смотри как называется процедура, которая выводит нужный макет

а вообще есть еще процедуры  функции, которые управляют печатью
7 DrShad
 
24.10.16
16:42
+(6) и тут уже сделать групповую печать не так просто
8 altaykniga
 
24.10.16
16:43
(6) в модуле менеджера есть фнукция Печать(), но открытие общей формы "ПечатьДокументов" происходит еще раньше, в модуле команды формы "Печать"
9 Boleev
 
24.10.16
16:43
Раньше была функция ВыполнитьКомандуПечатиНаПринтер
10 DrShad
 
24.10.16
16:44
(8) ты же уже спрашивал как распечатать документы по списку
11 DrShad
 
24.10.16
16:45
кури РС НастройкиПечатиОбъектов
12 altaykniga
 
24.10.16
16:54
(11) нет такого в УНФ 1.6
13 Dmitry1c
 
24.10.16
16:55
А как раньше было просто!


УниверсальныеМеханизмы.НапечататьДокумент...
14 DrShad
 
24.10.16
16:55
(12) а в УТ 11 есть
15 altaykniga
 
24.10.16
19:31
всем большое спасибо за помощь, сделал следующим образом:
после выполнения кода процедуры наСервере получил список доков для печати и наКлиенте написал:


УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ЗаказНаПроизводство","ТребованиеНаСклад",МассивДоковДляПечати,ЭтаФорма,);
16 altaykniga
 
25.10.16
15:28
(15) А кто знает, как реализовать данных механизм для внешней печатной формы?

т.е. есть ВПФ, как программно вызвать печать массива документов ?
17 altaykniga
 
25.10.16
15:38
(16) тема закрыта.

написал так:

УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ЗаказНаПроизводство","ВнешняяПечатнаяФорма.СопроводительныйЯрлык",МассивДоковДляПечати,ЭтаФорма,);
18 altaykniga
 
25.10.16
16:31
столкнулся с такой проблемой:
выполняется код

УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ЗаказНаПроизводство","ВнешняяПечатнаяФорма.СопроводительныйЯрлык",МассивДоковДляПечати,ЭтаФорма,);


Открывается общая форма ПечатьДокументов, в табличныйДокумент выходит сформированная печатная форма.

Если закрыть общую форму ПечатьДокументов и выполнить печать повторно (выполнить указанный выше код), то ПолеТабличногоДокумента не очищается, т.е. теперь у меня в этом поле получается 2 сформированные печ.формы одного и того же документа
19 altaykniga
 
25.10.16
17:14
(18) тема закрыта, забыл, что нужно очистить МассивДоковДляПечати перед выполнением кода
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший