|
Печать pdf из веб-сервиса. | ☑ | ||
---|---|---|---|---|
0
TolikoSprosit
08.08.17
✎
10:23
|
Есть веб сервис, есть pdf файл.
Код выглядит так: ЗапуститьПриложение("""AcroRd32.exe"" /N /T ""E:\TEMP\123.pdf"" HPIT",,ИСТИНА); Под пользователем под которым работает сервер 1с в командной строке все печатает. Но если выполнить этот код через веб-сервис, то выполнение зависает на этой строчке. Куда смотреть, в чем может быть дело? Я думаю, что при запуске через веб сервис выскакивает какая-то модальшина и по этому все останавливается, но почему через командную строку(и просто через предприятие) все работает? Жду ответа, как соловей лета. |
|||
1
Юрий Лазаренко
08.08.17
✎
10:38
|
А "AcroRd32.exe" точно есть на сервере? Может вы его на клиентских машинах запускаете, поэтому там все работает, а на серваке - дуля.
|
|||
2
sFAQer
08.08.17
✎
10:40
|
(0) НачатьЗапускПриложения() и виснуть не будет
|
|||
3
Юрий Лазаренко
08.08.17
✎
10:46
|
(2)НачатьЗапускПриложения() выполняется только на клиенте, а клиент из модуля веб-сервиса недоступен.
|
|||
4
Blumawolf
08.08.17
✎
11:02
|
Код
ЗапуститьПриложение("""AcroRd32.exe"" /N /T ""E:\TEMP\123.pdf"" HPIT",,ИСТИНА); разместите в какой-нибудь процедуре общего модуля, у которого сделайте вызов сервера. После чего - запускайте его из веб-сервиса, данный код будет выполняться в контексте сервера. |
|||
5
TolikoSprosit
08.08.17
✎
11:17
|
(1) ЗапуститьПриложение("""C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"" /N /T ""E:\TEMP\123.pdf"" HPIT",,ИСТИНА);
Точно такое же поведение |
|||
6
Вафель
08.08.17
✎
11:19
|
А просто из серверного модуля печатает?
|
|||
7
TolikoSprosit
08.08.17
✎
11:19
|
(4) Код расположен в модуле, с галочками сервер, клиент, внешнее соединение. Но я думаю это не критично, так как весь код веб-сервиса выполняется в контексте сервера вроде)
|
|||
8
TolikoSprosit
08.08.17
✎
11:20
|
(6) Да, но если вызываю из предприятия
|
|||
9
TolikoSprosit
08.08.17
✎
11:22
|
Еще как вариант что-то не так с именем принтера, но конструкция вида \\сервер\принтер ничего не дала
|
|||
10
TolikoSprosit
08.08.17
✎
11:33
|
Принтер находится, дело не в принтере
|
|||
11
TolikoSprosit
08.08.17
✎
11:33
|
Функция ПринтерНайден(ИмяПринтера)
Попытка Locator = Новый COMОбъект("WbemScripting.SWbemLocator"); Сервисы = Locator.ConnectServer("."); Объекты = Сервисы.InstancesOf("Win32_Printer"); // Теперь переберем все принтеры системы Для Каждого Принтер из Объекты Цикл Если ИмяПринтера = Принтер.Name Тогда Возврат Истина; КонецЕсли; КонецЦикла; Возврат Ложь; Исключение Возврат Ложь; КонецПопытки; КонецФункции // () |
|||
12
Fedor-1971
08.08.17
✎
11:35
|
(0) Есть ограничение на доступ к файловой системе веб-клиента. Уладил сей вопрос? (типа "расширение работы с файлами" или как-то так)
""AcroRd32.exe"" - на сервере есть? укажи полный правильный путь /N /T - флаги печати ""E:\TEMP\123.pdf"" - то же есть и именно на сервере по указанному пути? HPIT - это имя принтера в системе, он прямо так называется (так виден в диалоге "Печать") как тест: запускаешь командную строку и набираешь то, что пытаешься сделать из 1С |
|||
13
TolikoSprosit
08.08.17
✎
11:37
|
(12) Расскажите подробнее про ограничение на доступ к файловой системе. Где смотреть?
Все остальное ок |
|||
14
TolikoSprosit
08.08.17
✎
11:41
|
(12) ПодключитьРасширениеРаботыСФайлами это про веб-клиент, у меня веб-сервис же ну)
|
|||
15
Вафель
08.08.17
✎
11:42
|
(7) оставь только галку Сервер
(12) у сервера нет таких ограничений |
|||
16
Юрий Лазаренко
08.08.17
✎
11:50
|
А в ЖР есть ошибки?
|
|||
17
Юрий Лазаренко
08.08.17
✎
11:50
|
Пользователь, под которым запускается веб-сервис, имеет все необходимые права?
|
|||
18
TolikoSprosit
08.08.17
✎
11:57
|
(15) Спасибо. Оставил галочку "Сервер" и все заработало. Буду благодарен если объясните почему)
|
|||
19
Юрий Лазаренко
08.08.17
✎
12:44
|
(18) Потому что веб-сервис при инициализации общего модуля делает для него проверку, что-то вроде Ctrl+F7. Видит в нем что-то, что относится к клиенту, и отваливается.
|
|||
20
TolikoSprosit
08.08.17
✎
12:45
|
(19) Но эту проверку модуль проходит в конфигураторе. Нуралиев как обычно(
|
|||
21
Юрий Лазаренко
08.08.17
✎
12:47
|
(20) Привыкайте!
|
|||
22
ptiz
08.08.17
✎
12:48
|
(20) Галочки для синтаксической проверки сначала правильно расставь в конфигураторе.
|
|||
23
h-sp
08.08.17
✎
12:48
|
(20) не проходит модуль эту проверку.
|
|||
24
TolikoSprosit
08.08.17
✎
13:03
|
(23) (22) Вы мне хотите сказать, что при нажатии на Ctrl+F7(Сервис-Параметры-Проверка(галочка сервер)) в модуле с галочкой "Клиент" найдутся ошибки?
|
|||
25
TolikoSprosit
08.08.17
✎
13:05
|
(24) Ошибки про галочку "Клиент", а не в коде.
|
|||
26
h-sp
08.08.17
✎
13:08
|
(24) Параметры - Модули - Проверка. Чего у вас указано? Толстый клиент?
|
|||
27
TolikoSprosit
08.08.17
✎
13:11
|
(26) Сервер, я же написал
|
|||
28
h-sp
08.08.17
✎
13:13
|
(27) то есть Ctrl-f7 у вас только сервер проверяет? странно. Вы сами там так задали?
|
|||
29
TolikoSprosit
08.08.17
✎
13:18
|
(28) да сам
|
|||
30
TolikoSprosit
08.08.17
✎
13:21
|
Короче хватит, модуль проходит проверку(Сервер) если у него установлена галочка "Клиент". Но, видимо, не проходит во время выполнения через веб-сервис. Поэтому мы и любим Нуралиева.
|
|||
31
h-sp
08.08.17
✎
13:23
|
(30) под столом.
|
|||
32
Юрий Лазаренко
08.08.17
✎
13:30
|
(30) Нуралиев тоже любит вас.
|
|||
33
aka AMIGO
08.08.17
✎
13:31
|
(30) Нуралиев-то может и не знать об этом..
|
|||
34
TolikoSprosit
08.08.17
✎
13:41
|
(30) Я тут еще подумал. Модуль и на веб-сервере нормально работает и проходит проверку(У меня в этом модуле не только печать). Проблемы с тем что "ЗапуститьПриложение" не корректно работает, видимо с галочкой "Клиент" она выполняется где-то в другом месте, не на сервере или вообще не выполняется. Где-то бы про это почитать, но это видимо секретные знания нашего усатого друга.
|
|||
35
ildary
08.08.17
✎
13:56
|
(34) Правилами форума запрещена критика 1С, я бы не советовал называть нашего кормильца такими словами.
|
|||
36
TolikoSprosit
08.08.17
✎
14:03
|
(35) "Другом"?)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |