Имя: Пароль:
1C
1С v8
можно ли из веб-сервиса распечатать документ?
,
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) понятно. но у меня будет файловый вариант
AdBlock убивает бесплатный контент. 1Сергей