Имя: Пароль:
1C
1С v8
вызов печатной формы БП 3.0
,
0 opus70
 
16.01.14
19:17
Подскажите как вызвать кодом зарегистрировану печатную форму
хочу сделать кнопку на форме чтоб была без списка
не получается
1 Поpyчик-4
 
16.01.14
21:31
Пример вызова внешней печатной формы БСП можно содрать отсюда http://infostart.ru/public/73691/
2 opus70
 
16.01.14
22:14
к сожалению не могу воспользоваться ссылкой на infostart жадные они стали в последнее время
3 Поpyчик-4
 
17.01.14
01:50
(2) 500 рублей на счет в сбере.
4 Любопытная
 
17.01.14
06:42
&НаКлиенте
Процедура Печать(Команда)
    ТабДок = ПечатьНаСервере();
    
    ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция ПечатьНаСервере()
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчётАвизо");
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;

    
    
    ЭтотОбъект.Печать(Объект.СсылкаНаОбъект, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    
    Стр = КоллекцияПечатныхФорм[0];
    Возврат Стр.ТабличныйДокумент;
        
КонецФункции

Примерно так, если я правильно поняла, что автору нужно
5 opus70
 
17.01.14
10:35
спасибо буду щас пробывать выручили
6 opus70
 
17.01.14
11:10
не помогло
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаТовары.Форма(1060)}: Метод объекта не обнаружен (Печать)
    ЭтотОбъект.Печать(Объект.Ссылка, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);



полный код
&НаКлиенте
Процедура Печать1(Команда)
    ТабДок = ПечатьНаСервереТТН1();
    ТабДок.Показать();    
КонецПроцедуры

&НаСервере
функция ПечатьНаСервереТТН1()
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("Накладная");
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;
    
    ЭтотОбъект.Печать(Объект.Ссылка, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    
    Стр = КоллекцияПечатныхФорм[0];
    Возврат Стр.ТабличныйДокумент;    
КонецФункции
7 fmrlex
 
17.01.14
11:14
(6) Печать1 - это пять!
8 Поpyчик-4
 
17.01.14
11:17
(6) 550 рублей на счет в сбере.
9 Любопытная
 
17.01.14
11:18
Блин, я ж для примера просто показала, как вызвать процедуру печати в команде. Она ж модуле менеджера у вас живет, это у меня в модуле объекта
10 fmrlex
 
17.01.14
11:19
(6) Ты просто посмотри как из списка ВПФ в типовой вызывается.
11 Поpyчик-4
 
17.01.14
11:24
Сколько иппотни ради нескольких строк. Вся работа максимум на час.
12 opus70
 
17.01.14
11:31
все разобрался и лишний раз убеждаюсь рвать гладны через оно место больно зачем так все сложно делать

ссылка на статейку хорошую модет кому пригодиться
http://1clancer.ru/article/modul_obekta_i_modul_menedzhera._otlichiya_830

ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("Накладная");
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;
    
    //МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода    
    массивобъектов = Новый Массив();
    массивобъектов.Добавить(Объект.Ссылка);
    
    Документы.РеализацияТоваровУслуг.Печать(массивобъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    
    Стр = КоллекцияПечатныхФорм[0];
    Возврат Стр.ТабличныйДокумент;
13 opus70
 
17.01.14
11:32
большое все спасибо
14 Любопытная
 
17.01.14
11:34
Ну вот модуль менеджера это как раз, имхо, вполне себе хорошо сделано. Нафиг тебе объект для печати?
15 opus70
 
17.01.14
11:38
бухгалтера хотят отдельные кнопочки на печать и их не волнует мое мнение
16 opus70
 
17.01.14
11:39
вы эту строчку имели в виду  массивобъектов.Добавить(Объект.Ссылка);
17 opus70
 
17.01.14
11:40
и по большому счету с бухгалтерами я согласен когда идет интенсивная выписка документов а их у меня в сутки около 800 штук то замучаешься выбирать из списка
18 fmrlex
 
17.01.14
11:50
(17) Так в списке документов выделяешь нужные доки и для всех можно распечатать же.
19 fmrlex
 
17.01.14
11:53
+(18)  Для пакетной печати и были сделаны такие заморочки в коде.
20 opus70
 
17.01.14
11:54
не прокатит пробывал, люди перешли с 7.7 сразу в БП 3.0
и инерция коллектива за 40 это сильная вещь
21 fmrlex
 
17.01.14
11:56
(20) Ох не умеешь ты еще с людями работать(с)
22 Любопытная
 
17.01.14
11:58
(20)там вроде в настройках есть "интерфейс как в 7.7". Не пробовал?)
23 opus70
 
17.01.14
12:16
с людьми вообще то умею но иногда проще уступить чем ломиться в закрытую дверь

да интерфейс пробывал, но мне не понравился так что включил стандартный тут я не вижу особых проблем сказали новое сидят разбираются
24 magolubev
 
23.01.14
13:35
(23) Выолжи обработку, которая в итоге получилась
25 opus70
 
27.01.14
11:45
&НаКлиенте
Процедура Печать1(Команда)
    ТабДок = ПечатьНаСервереТТН1();
    ТабДок.Показать();    
КонецПроцедуры

&НаСервере
функция ПечатьНаСервереТТН1()
    ЭтотОбъект = РеквизитФормыВЗначение("Объект");
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("Накладная");
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектыПечати = Новый СписокЗначений;
    
    //МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода    
    массивобъектов = Новый Массив();
    массивобъектов.Добавить(Объект.Ссылка);
    
    Документы.РеализацияТоваровУслуг.Печать(массивобъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    
    Стр = КоллекцияПечатныхФорм[0];
    Возврат Стр.ТабличныйДокумент;    
КонецФункции
26 opus70
 
27.01.14
11:45
вот правда мучаюсь как задать сразу количество копий или вывести без просмотра
27 fmrlex
 
27.01.14
11:47
(25) Это не труъ т.к. в БП печать лучше делать через БСП.
Там тогда будет использоваться общая форма с плюшками.
28 opus70
 
27.01.14
12:02
это как через БСП ?
можно примерчик
мне нужно сделать печать 2 экземпляров без просмотра к примеру накладной по кнопке на форме
29 fmrlex
 
27.01.14
12:14
(28) Без просмотра - отправляй сразу на принтер ТабДок.Напечатать()
Подробности в СП.
30 Новиков
 
27.01.14
12:23
Классический случай кодирования той задачи, кодировать которую НЕ нужно, а нужно все лишь показать пользователю как воспользоваться текущим функционалом. Пользователю лень потратить 2 секунды на выбор нужной команды, и для этого программист наколбасит (25). Естественно, фокус с типовой формой пока не удался. Причем, чем дальше автор будет погружаться в кишки БСП, тем света в его царстве будет все меньше и меньше :)

opus70 удачи тебе и терпения!
31 Мимохожий Однако
 
27.01.14
12:31
(30)+100500
32 fmrlex
 
27.01.14
13:18
(28) Дарю.
за 5 минут на коленке.
На форме кнопку сделай, команда
&НаКлиенте
Процедура ПечатьТоргСФормы(Команда)
    К= ЭтаФорма.Команды.Найти("ГруппаВажныеКомандыПодменюПечатьКомандаПечати5");
    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(К, ЭтаФорма, Объект);
    
    
    Если ТипЗнч(К) = Тип("КомандаФормы") Тогда
        ОписаниеКоманды = УправлениеПечатьюКлиент.ОписаниеКомандыПечати(К.Имя, ЭтаФорма.ИмяФормы);
        Если ОписаниеКоманды.Идентификатор = "СчетФактура" Тогда
            ПодключитьОбработчикОжидания("ПоказатьПредупреждениеОбИзменениях_УПД", 1, Истина);
        КонецЕсли;
    КонецЕсли;
    

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


Оптимизируешь сам. Печатает Торг12
33 opus70
 
28.01.14
12:36
красивое решение но не работает выдает ошибку

{ОбщийМодуль.УправлениеПечатьюКлиент.Модуль(225)}: Значение не является значением объектного типа (НеВыполнятьЗаписьВФорме)
    Если Не ОписаниеКоманды.НеВыполнятьЗаписьВФорме И ТипЗнч(Источник) = Тип("ДанныеФормыСтруктура")
34 fmrlex
 
28.01.14
12:43
(33) Ну значит команда по другому называется.
Отладчиком найди имя и подставь.
35 fmrlex
 
28.01.14
12:45
(33) Перебери команды формы и найди ее по заголовку.
36 opus70
 
28.01.14
13:02
СПАСИБО НЕ ДОГАДАЛСЯ ВОТ ТАК РАБОТАЕТ
ЭтаФорма.Команды.Найти("ФормаКоманднаяПанельПодменюПечатьКомандаПечати5");
    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(К, ЭтаФорма, Объект);

ТОЛЬКО КАК ЕЩЕ ПОБОРОТЬ КОЛИЧЕСТВО ЭКЗЕМПЛЯРОВ И ПЕЧАТ БЕЗ ПРОСМОТРА
СВОИМ СПОСОБО Я ВРОДЕ ПОБОРОЛ
ТабДок = ПечатьНаСервереТТН1();
ТабДок.напечатать();
37 fmrlex
 
28.01.14
13:09
&НаКлиенте
Процедура ПечатьТоргСФормы(Команда)
    
    
    ИмяКоманды =  ВернутьИмяКоманды();
    Если ИмяКоманды = Неопределено Тогда
        Возврат;
    КонецЕсли;
    К= ЭтаФорма.Команды.Найти(ИмяКоманды);
    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(К, ЭтаФорма, Объект);
    
    
    Если ТипЗнч(К) = Тип("КомандаФормы") Тогда
        ОписаниеКоманды = УправлениеПечатьюКлиент.ОписаниеКомандыПечати(К.Имя, ЭтаФорма.ИмяФормы);
        Если ОписаниеКоманды.Идентификатор = "СчетФактура" Тогда
            ПодключитьОбработчикОжидания("ПоказатьПредупреждениеОбИзменениях_УПД", 1, Истина);
        КонецЕсли;
    КонецЕсли;
    

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

&НаСервере

Функция ВернутьИмяКоманды()
    
    К = Неопределено;
    Для Каждого КомандаЭтойФормы ИЗ ЭтаФорма.Команды Цикл
        
        Если Найти (КомандаЭтойФормы.Заголовок,"Товарная накладная (ТОРГ-12)")> 0 Тогда
            К = КомандаЭтойФормы.Имя;
            
        КонецЕсли;
    КонецЦикла;

    
    Возврат К;
КонецФункции



Вот так более универсально
38 fmrlex
 
28.01.14
13:10
+(37) Ну и там цикл можно прервать, после нахождения нужной.
39 opus70
 
28.01.14
13:18
СПАСИБКИ
ВЫРУЧИЛ ХОТЬ ЧТО ТО В МОЗГАХ СТАЛО ПРОЯСНЯТЬСЯ О СИСТЕМЕ ПЕЧАТИ
Независимо от того, куда вы едете — это в гору и против ветра!