|
вызов печатной формы БП 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
|
СПАСИБКИ
ВЫРУЧИЛ ХОТЬ ЧТО ТО В МОЗГАХ СТАЛО ПРОЯСНЯТЬСЯ О СИСТЕМЕ ПЕЧАТИ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |