|
v7: Распечать и закрыть документ созданный другим документом через СоздатьОбъект | ☑ | ||
---|---|---|---|---|
0
Double_Medved
13.01.14
✎
16:43
|
Добрый день! ТиС, дописанная. Вот была уже сделана такая штука - в документе заявка есть кнопка "Создать пакет документов". Она программно создает ПКО и Реализацию, и потом "ОткрытьФорму(ПКО и Реализация). А менеджеру остается напечатать их и закрыть. Но нет предела совершенству, и менеджер не хочет сам печатать и закрывать, это долго. Он хочет чтобы документы сами напечатались и закрылись. Вот подскажите, как это лучше сделать? Единственное что мне пока пришло в голову - сделать константу "Напечатать и Закрыть", которая будет ставиться в 1 в процедуре "Создать пакет документов" и при открытии реализации форма будет к ней к ней обращаться, если 1 - то печатать, закрывать, и менять на 0. Но а вдруг одновременно 2 менеджера будут это делать с разными документами? И как-то это не по-людски.
|
|||
1
Ёпрст
13.01.14
✎
16:48
|
если без переделок самих документов, то проще всего печатать внешнюю печ. форму
|
|||
2
Ёпрст
13.01.14
✎
16:48
|
может еще и в твоей поделке принтёр выбрать сразу.. куды печатать
|
|||
3
Avganec
13.01.14
✎
16:49
|
(0) ну и что. просто вместо ОткрытьФорму вызывайте Печать()
|
|||
4
Double_Medved
13.01.14
✎
16:50
|
ДокРеализация.Записать();
ОткрытьФорму(ДокРеализация.ТекущийДокумент()); |
|||
5
Double_Medved
13.01.14
✎
16:51
|
А вот печать - она же уже в форме, разве к ней можно обратиться через ДокРеализация?
|
|||
6
Avganec
13.01.14
✎
16:54
|
(5) выноси печать из формы, тогда можно без проблем. а так, у тебя же есть форма, попробуй вызови. не помню, можно было так в 7.7
|
|||
7
DeiMos
13.01.14
✎
17:00
|
Не открывай формы ПКО и Реализации вообще.
А в том документе, в котором создаёшь ПКО и Реализацию - ПКО.Записать(); ПечатьПКО(ПКО.ТекущийДокумент()); И то же самое с реализацией. Реал.Записать(); ПечатьРеал(Реал.ТекущийДокумент()); |
|||
8
Double_Medved
13.01.14
✎
17:03
|
(7)О, спасибо, так и буду делать
|
|||
9
ADirks
13.01.14
✎
17:05
|
вообще-то в стандартном ТиС'е есть стандартный механизм для печати документов (например так они из журналов печатаются)
сзПарам = СоздатьОбъект("СписокЗначений"); сзПарам.Установить("Команда", "ПечатьНаПринтер"); //или ПечатьНаЭкран ОткрытьФорму(Док, сзПарам); |
|||
10
Double_Medved
13.01.14
✎
17:11
|
(9)О, получилось! Спасибо!
|
|||
11
Double_Medved
13.01.14
✎
17:17
|
(9)А как таким макаром можно закрыть?
|
|||
12
Ёпрст
13.01.14
✎
17:18
|
(11) он и не откроется, там СтатусВозврата(0) стоит в ПриОткрытии у документа.
|
|||
13
Double_Medved
13.01.14
✎
17:28
|
(12)у меня печатается, но при этом и открывается
|
|||
14
Ёпрст
13.01.14
✎
17:31
|
(13) смотри, что написано в ПриОткрытии у документа.
в штатном тисе форма дока не открывается, её статусвозврата подавляет |
|||
15
Double_Medved
13.01.14
✎
17:39
|
(14) О, все норм, это у меня просто уже глаза устали, там был другой документ открвт
|
|||
16
Double_Medved
13.01.14
✎
17:39
|
Всем спасибо, все оказалось просто
сзПарам = СоздатьОбъект("СписокЗначений"); сзПарам.Установить("Команда", "ПечатьНаПринтер"); //или ПечатьНаЭкран ОткрытьФорму(Док, сзПарам); |
|||
17
Double_Medved
13.01.14
✎
17:39
|
Как и писал (9)
|
|||
18
Ёпрст
13.01.14
✎
17:40
|
(16) учти, что печатаемая "по-умолчанию" форма, это не всегда то, что нужно.. особенно в реализации
|
|||
19
Double_Medved
13.01.14
✎
17:50
|
(18) Понятно, спасибо. А с помощью сзПарам.Установить("Команда", "ПечатьНаПринтер"); Можно как-нибудь выбрать печатную форму?
|
|||
20
ADirks
13.01.14
✎
17:51
|
(19) штатный механизм такого не предусматривает, надо допиливать
|
|||
21
Ёпрст
13.01.14
✎
17:51
|
(19) неа..если только в самом документе не подправишь код.
|
|||
22
Ёпрст
13.01.14
✎
17:53
|
либо править документ, либо сразу печатать нужную внеш.печ.форму (только её тоже выбирать придётся :)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |