|
Печать табличного документа в COM-соединении | ☑ | ||
---|---|---|---|---|
0
Михаил Анянов
29.04.12
✎
12:29
|
Подскажите, кто-нибудь решал эту проблему?
Есть ТСД, который собирает номенклатуру, после завершения в базе 1С создается и проводится документ. Необходимо при проведении документа печатать документ (в зависимости от настроек пользователя на тот или иной сетевой принтер), только вот одна проблема - на стороне сервера (ТСД через промежуточную базу соединяется при помощи COM-соединения) метод ТабДокумент.Напечатать() - недоступен. Кто-нибудь сталкивался с данной проблемой? Как напечатать документ? Самое простое, что пришло в голову, на сервере запускать клиент, который будет при появлении записи в в определенном регистре со ссылкой на документ - распечатывать его, после запись в регистре удалять. Но хотелось бы решения "на прямую". |
|||
1
Wobland
29.04.12
✎
12:30
|
Напечатать() экспортный, конечно, да?
|
|||
2
Михаил Анянов
29.04.12
✎
12:32
|
(1) - причем тут экспортный - это стандартный метод объекта ТабличныйДокумент
|
|||
3
Михаил Анянов
29.04.12
✎
12:32
|
ТабличныйДокумент (SpreadsheetDocument)
Напечатать (Print) Синтаксис: Напечатать(<ДиалогПечати>) Параметры: <ДиалогПечати> (необязательный) Тип: РежимИспользованияДиалогаПечати. Определяет необходимость показа диалога печати перед печатью. Значение по умолчанию: НеИспользовать Описание: Выводит табличный документ на печать. Доступность: Тонкий клиент, веб-клиент, толстый клиент. |
|||
4
Wobland
29.04.12
✎
12:34
|
(3) Доступность:
Тонкий клиент, веб-клиент, толстый клиент. дальше объяснять? |
|||
5
ДенисЧ
29.04.12
✎
12:37
|
(4) Да! Да! Да! Продолжай! Объясни ему по полной! По самые помидоры!....
|
|||
6
Михаил Анянов
29.04.12
✎
12:38
|
(4) ты прикалываешься или как? Я знаю что метод недоступен. Я спрашиваю - кто и как решал эту задачу "в обход"!
|
|||
7
Михаил Анянов
29.04.12
✎
12:40
|
(4) более того - я знаю уже одно решение этой задачи, но мне не нравится обязательность запущенного экземпляра клиента 1с на сервере.
|
|||
8
ДенисЧ
29.04.12
✎
12:41
|
(6) А чем тебе метод повременного запуска задачи не нравится?
|
|||
9
Wobland
29.04.12
✎
12:43
|
(6) нет. со скидкой на собственный выходной нет
(7) поставь себя на место сервера (ну того соединения, к которому коннектишься). какие нафих принтеры? что это? |
|||
10
Михаил Анянов
29.04.12
✎
12:44
|
(9) - обычные "расшаренные" сетевые принтеры
|
|||
11
Wobland
29.04.12
✎
12:45
|
(10) я как сервер такого не понимаю. нужен клиент, пускай он и разбирается с принтерами, не?
|
|||
12
Михаил Анянов
29.04.12
✎
12:46
|
(8) Ты о указанном мною варианте? Экземпляр 1с постоянно запущенный. Плюс - интенсивность проверки (допустим каждые 5 секунд) - задержка как никак.
|
|||
13
Михаил Анянов
29.04.12
✎
12:47
|
(11) т.е. тот вариант о котором я написал - единственный?
|
|||
14
Wobland
29.04.12
✎
12:48
|
(13) имхо да. но я в себе сомневаюсь ;)
|
|||
15
Михаил Анянов
29.04.12
✎
12:50
|
(14) вот и я сомневаюсь, очень сомневаюсь, что нельзя использовать какие-нибудь скрипты (по типу того, как буфер обмена читается/устанавливается), вот только в JS не силен :)
|
|||
16
ДенисЧ
29.04.12
✎
12:54
|
даблин...
Сохрнять сформированный файл в каталог (Не помню, умеет это ком-моединение или нет...) Потом в винде тупая программка с подпиской на изменения в каталоге. и она уже гонит на принтер... Хотя, это я гоню... Но и автор тоже гонит.... |
|||
17
Михаил Анянов
29.04.12
✎
12:58
|
(16) суть чего я хочу - именно добиться печати кодом 1с, без использования сторонних программ, пусть и с применением WSH или еще чего, но главное в одной процедуре допустим при проведении :)
|
|||
18
Wobland
29.04.12
✎
13:01
|
(17) при проведении? зло. юзеры любят ОК нажимать после просмотра. о программном проведении вообще молчу.
имхо печать документа - задача юзера |
|||
19
Wobland
29.04.12
✎
13:03
|
ну я, когда ставил себе задачу распечатать список документов, вызывал экспортную Печать().. но это была разовая работа
|
|||
20
Михаил Анянов
29.04.12
✎
13:04
|
(18) боже мой :) пусть тычут, если у дока нет признака допустим "СозданТСД" - ничего не происходит... Эту ерунду обсуждать уже не интересно. Пока что еще один вариант - сохраняем документ в Excel (во временную директорию), печать при помощи WSH и удаление документа.
Код вроде даже нашел: Const wdDoNotSaveChanges = 0 Set objWord = CreateObject("Word.Application") objWord.Visible = False objWord.DisplayAlerts = False objWord.Documents.Open("mydoc.doc") objWord.Options.PrintBackground = False objWord.ActiveDocument.PrintOut objWord.Application.Quit wdDoNotSaveChanges |
|||
21
Михаил Анянов
29.04.12
✎
13:05
|
Тока на Wxcel переделать и потестить :)
|
|||
22
Михаил Анянов
29.04.12
✎
13:06
|
Такое ощущение, как будто постановку задачи никто не читал. Если бы не ТСД - никаких проблем бы вообще не было с печатью.
|
|||
23
etc
29.04.12
✎
15:25
|
А ТСД то как работает? Через RDP сессию на терминале?
|
|||
24
etc
29.04.12
✎
15:27
|
(0) вопрос снят. не заметил сразу что "ТСД через промежуточную базу соединяется при помощи COM-соединения"
Че печатаем? Документ или этикетку на принтер этикеток? |
|||
25
Михаил Анянов
04.05.12
✎
06:58
|
Печатаем документ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |