|
можно ли из веб-сервиса распечатать документ? | ☑ | ||
---|---|---|---|---|
0
Эмбеддер
07.02.14
✎
19:58
|
в веб-сервисе не работает ТабДокумент.Напечатать()
(Доступность Тонкий клиент, веб-клиент, толстый клиент) хотел сделать базу для подключения к ней клиентов, написанных не на 1С (Qt) из глобальной сети для синхронизации справочников через веб-сервисы, и печати документа на принтере, подключенном к компьютеру с 1С (по команде клиента) какой-нибудь выход есть, кроме как создать пользователя (Робот), который всегда будет входить в 1С, отслеживать регистры сведений и при необходимости печатать документы? |
|||
1
Torquader
08.02.14
✎
00:06
|
Если из Web-service можно сохранить табличный документ, т сохранить как Excel или pdf, а потом отправить на принтер через команду системы.
|
|||
2
zulu_mix
08.02.14
✎
00:30
|
а чего бы на веб-сервисе не реализовать функцию, которая будет принимать команду "Печать"?
|
|||
3
Torquader
08.02.14
✎
00:33
|
(2) Команду она примет, а вот что она сможет с таблицей сделать, кроме как сохранить ?
|
|||
4
zulu_mix
08.02.14
✎
00:38
|
(3) например сохранит ее в виртуальный принтер который отправит табдок на печать
|
|||
5
Torquader
08.02.14
✎
01:03
|
(4) А в (1) что-то другое написано ?
|
|||
6
Эмбеддер
08.02.14
✎
08:04
|
поэкспериментировал с Йокселем. табличный документ сохраняем из 1С во временный каталог, потом открываем Йокселем. произошла ошибка "нет доступа к файлу". дал на каталог temp всем пользователям полные права, файл открылся. вызываю у Йокселя "Напечатать(0)" - все подвисает. я так понимаю, что юзер IUSR не имеет ни одного установленного принтера или другая причина. в любом случае нехорошо будет, если WS сервис будет зависать.
про команду системы думал, от какого имени пользователя она запустится, от IUSR? тогда у него тоже принтеров в системе не будет. наверное, лучший выход это все-таки в 1С запускать пользователя Робот |
|||
7
ilpar
08.02.14
✎
08:33
|
Веб-сервис выполняет метод и отдает данные. Разве нет?
Печать уже проблемы приемника. |
|||
8
Эмбеддер
08.02.14
✎
10:21
|
(7) желательно чтобы все работало без участия пользователя. т.е. в любом случае надо выполнить вход в систему windows, чтобы запустилось приложение. ну а там уже *.bat файл запустит 1С из командной строки. а если сеанс завершится? как-то надо и это контролировать и перезапускать.
или же компьютер перезагрузится (например, по питанию) - опять надо входить в windows. получается надо делать запуск как в windows-98, без ввода пользователя, что тоже не хорошо |
|||
9
Эмбеддер
08.02.14
✎
10:23
|
(7) ааа понял, ну да можно сформировать форму в 1С и отправить на принтер hp форму в виде вложения pdf, на e-mail такого принтера
|
|||
10
Torquader
08.02.14
✎
11:05
|
(6) Ну, пользователю-то можно принтер поставить, но данный пользователь не имеет полноценного сеанса, так как заходит как служба.
(9) Если таблицу можно сохранить как pdf или что-то другое, то её можно отправить другой службе, которая умеет печатать. Она, правда, тоже можно зависнуть, но её можно и "передёрнуть" без последствий, в отличие от 1С. |
|||
11
Либерал
08.02.14
✎
11:40
|
(0) я вот неделю назад сношался с подобной задачей - хотелось печатать из регламентного задания на сервере.
В итоге от регл.задания пришлось отказаться. Да, запускаю клиентский сеанс 1С под Роботом, там обработчик ожидания смотрит в рег.сведений, где накапливаются объекты для печати и печатает. Клиент под Роботом запускается разумеется не руками, а как служба (есть сервисный софт, например "Always UP", который так умеет запускать любые программы). |
|||
12
Либерал
08.02.14
✎
11:45
|
пробовал еще запускать из фонового задания v82.Application - то же гимор - сервер х64, клиент 32 битный, ком-соединение не создается, ругается, можно плясать с бубном вокруг ком+ - плюнул, не стал.
|
|||
13
Torquader
08.02.14
✎
11:50
|
При желании, из регламентного задания можно открыть новый сеанс 1С через ЗапуститьПриложение или КомандаСистемы.
А вот COM-соединение из фонового задания - это самого себя подключать ? |
|||
14
Либерал
08.02.14
✎
11:55
|
(13) можно и команду системы, только гимор узнать о завершении и его результатах... если для задачи это удобнее - почему и нет..
да, через ком самого себя клиентом. но много гимора если сервер 1с х64 |
|||
15
Torquader
08.02.14
✎
12:12
|
(14) Ну, если запустить сценарий на VbScript, а потом из него запустить процесс, то сценарий будет знать судьбу процесса очень хорошо, и даже завершить его, если завис.
Можно ещё в сторону php посмотреть - там печать всего на всём уже давно реализована. |
|||
16
Эмбеддер
08.02.14
✎
13:02
|
(11) я думаю, это лучший вариант
|
|||
17
Torquader
08.02.14
✎
13:07
|
(16) Робота кто-то должен запускать - это единственный недостаток.
|
|||
18
Либерал
08.02.14
✎
13:53
|
(17) см.(11) >> Клиент под Роботом запускается разумеется не руками
(16) только нужно не забывать перезапуск этой псевдослужбы после перезапуска сервера 1С делать. иначе робот будет висеть с невидимым диалоговым окном типа "сервер прервал сеанс подключения бла-бла. Перезапустить? Закрыть?" |
|||
19
Эмбеддер
08.02.14
✎
13:59
|
(18) понятно. но у меня будет файловый вариант
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |