Имя: Пароль:
1C
1С v8
Подключение внешней печатной формы с ВызовКлиентскогоМетода
,
0 cmex
 
24.09.13
14:51
Добрый день.
В БП 3.0 подключаю внешнюю печатную форму с использованием "ВызовКлиентскогоМетода". На форме создал процедуру печати, из нее в модуле вызываю печать стандартную, таб док создается, в коллекцию помещается, а на экран не выдает. Почему беда?
1 Fedot200
 
24.09.13
14:53
А зачем форма нужна?
2 Fedot200
 
24.09.13
14:55
+(1) у меня без форм и реквизитов все нормально отрабатывает.
3 cmex
 
24.09.13
14:56
(2) мне нужно при формировании печатной формы у пользователя кое что спросить, а сие можно токо на клиенте.
4 Fedot200
 
24.09.13
15:02
(3) да, тогда тока через форму
5 Fedot200
 
24.09.13
15:04
у меня вот так процедура печати выглядит

Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПечатьТоварногоЧека") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПечатьТоварногоЧека", "Товарный чек",
        ПечатьЧека(МассивОбъектовНазначения, ОбъектыПечати));
    КонецЕсли;
    
КонецПроцедуры
6 Fedot200
 
24.09.13
15:05
+(5) Функция ПечатьЧека возращает табличный документ.
7 banco
 
24.09.13
15:10
(5) а отладчиком пройтись?
8 banco
 
24.09.13
15:12
(5) мне кажется процедура печать неправильная, вот что в документации

Для назначаемых обработок типа «ПечатнаяФорма» – реализовать экспортную процедуру Печать с двумя параметрами ИдентификаторКоманды и ОбъектыНазначенияМассив, где ИдентификаторКоманды – строка, идентификатор команды; ОбъектыНазначенияМассив –  массив, ссылок на объекты информационной базы, для которых выполняется дополнительная обработка:

&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив)
  // Реализация логики команды печати
  //...
КонецПроцедуры
9 Fedot200
 
24.09.13
15:14
(8) не знаю у меня все работает. И заметь - это внешня печатная форма и там &НаКлиенте не канает в модуле :-)
10 Fedot200
 
24.09.13
15:15
(7) а зачем мне отладчиком ходить, у меня все работает :-)
11 cmex
 
24.09.13
15:37
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
    
    СписокВидов = ЗаполнитьСписокВидовНаСервере();
    Вид = СписокВидов.ВыбратьЭлемент("Выберите ответственного в подписях",Вид);
    ПечатьНаСеревере(ОбъектыНазначения, Вид.Значение);
    
КонецПроцедуры

&НаСервере
Функция ЗаполнитьСписокВидовНаСервере()
    
    СписокВидов = Новый СписокЗначений;
    СписокВидов.Добавить(Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер);
    СписокВидов.Добавить(Перечисления.ОтветственныеЛицаОрганизаций.Кассир);
    СписокВидов.Добавить(Перечисления.ОтветственныеЛицаОрганизаций.Руководитель);
    
    Возврат СписокВидов;
    
КонецФункции

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


//В модуле обработки

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

КонецПроцедуры

Что тут не так?
12 cmex
 
24.09.13
16:00
up
13 Fedot200
 
24.09.13
16:16
(11) трудно сказать, я еще сам до конца не разобрался. Делал по шаблону.
14 cmex
 
25.09.13
10:49
(13) разобрался
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс