|
печать через веб-сервис | ☑ | ||
---|---|---|---|---|
0
temmy70
16.04.14
✎
09:14
|
Добрый день.
Очень хочется печатать из внешнего приложения на принтер, который указывается ручками. Но печать не проходит. По логам строку печати проходит, но результата никакого. Вообще возможно печатать через веб-сервис? Еще заметил, при запуске теста печати из обработки, что у одного пользователя 1С работает установка принтера ТабДок.ИмяПринтера = "Прринтерр" , а другому пользователю побарабану, он печатает на тот, что стоит поумолчанию.
Это как-то связано между собой? |
|||
1
temmy70
16.04.14
✎
09:15
|
Платформа (8.2.19.83).
Апач стартует под пользователем с правами на принтер. |
|||
2
temmy70
16.04.14
✎
14:26
|
ап
|
|||
3
braslavets
16.04.14
✎
14:29
|
Доступность:
Тонкий клиент, веб-клиент, толстый клиент. |
|||
4
temmy70
16.04.14
✎
14:37
|
(3) это доступность чего?
ИмяПринтера |
|||
5
temmy70
16.04.14
✎
14:39
|
у свойства табличного документа ИмяПринтера
Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение. у общего модуля, из которого печать Доступность: Клиент, Сервер, ВнешнееСоединение |
|||
6
braslavets
16.04.14
✎
14:43
|
(4) Напечатать()
|
|||
7
temmy70
16.04.14
✎
14:55
|
(6) то есть никак не напечатать из веб-сервиса? (
|
|||
8
braslavets
16.04.14
✎
15:07
|
можно получить base64 закодированный печ.файл - к примеру пдф, сохранить его и запулить на печать. Зависит от приложения которое пользует вебсервис. У меня было так: из одной базы через веб-сервис запрашивал пакет печатных форм из другой - zip с mxl файлами. Разворачивал и печатал.
|
|||
9
temmy70
16.04.14
✎
15:10
|
(8) имеется ввиду сохранить файл, и 1Синой же его напечатать?
|
|||
10
braslavets
16.04.14
✎
15:12
|
У меня было так - на складе печатали расходку, налоговую и ттн из УТ. Склад удаленный, у него своя конфа.
|
|||
11
temmy70
16.04.14
✎
15:17
|
(10)спасибо, интересная идея. можно пожалуйста поподробнее про base64? не совсем понял как реализовать.
|
|||
12
braslavets
16.04.14
✎
15:21
|
А это на уровне выходного параметра у операции вебсервиса - устанавливаешь ему тип: "base64Binary (http://www.w3.org/2001/XMLSchema)", направление: выходной.
А в методе назначаешь ему значение: ИмяПараметра = Base64Строка(Новый ДвоичныеДанные(ИмяЗипаФайла)); |
|||
13
braslavets
16.04.14
✎
15:21
|
А на стороне получателя разворачиваешь.
|
|||
14
temmy70
16.04.14
✎
15:34
|
(12) аа вот как. ясно. у меня немного другая задача, клиентское приложение только отдает команду печати, а печатать надо на сетевом принтере с сервера.
|
|||
15
braslavets
16.04.14
✎
17:03
|
(14) Ну, сохраняй в ексель, открывай через COMОбъект("Excel.Application") и печатай
|
|||
16
temmy70
16.04.14
✎
17:42
|
(15) [b]braslavets[/b] спасибо большое за советы, буду так пробовать.
|
|||
17
Serginio1
16.04.14
✎
18:26
|
(16) Еще на 8.1 помню изворачивался для сохранения файлов в xls через запуск 1С конфигурации в которой при запуске проверял параметры запуска в котором хранился путь к документу и пересохранял его в экселевский формат.
ЗапуститьПриложение(ИсполняемыйФайл,"ENTERPRISE /F """+путьКБазе+""" /C """+ИмяФайлаМХЛ+""""); А в Базе уже ПриНачалеРаботыСистемы анализируешь ПараметрЗапуска печатаешь и выходишь. |
|||
18
temmy70
16.04.14
✎
19:34
|
(17) тоже была мысль запуска 1С под пользователем для печати, но это не очень хорошо. Если вдруг лицензий будет не хватать, то весь функционал встанет.
А как печатать через COMОбъект на указанный принтер? |
|||
19
Serginio1
17.04.14
✎
10:36
|
||||
20
temmy70
17.04.14
✎
15:10
|
(19) спасибо, буду изучать
|
|||
21
temmy70
17.04.14
✎
16:41
|
Запуск 1С работает быстрее чем COMОбъект Excel. Но дальше столкнулся с предыдущей проблемой. Не устанавливается имя принтера. Точнее оно устанавливается, но не воспринимается при печати, используется принтер по умолчанию. Может быть причина в самом табличном документе? или в пользователе?
|
|||
22
temmy70
23.04.14
✎
09:27
|
продолжаем биться с печатью из вебсервиса.
принято решение формировать файл Excel через COMОбъект, заполнять печатать и закрывать не сохраняя. Из обработки из под пользователя печатает. Но из вебсервиса ругается на команде Лист.PrintOUT(,,,,PrinterName,,,);
говорит что не установлены принтеры. Как быть? как ему (и кому?) установить принтеры? |
|||
23
Serginio1
23.04.14
✎
10:31
|
Вообще то для принтеров нужно устанавливать драйвера пути.
Устройства и Принтеры\Установка принтера |
|||
24
temmy70
23.04.14
✎
10:36
|
(23) так принтеры установлены. вебсервис возвращает клиенту список принтеров, но печатать на них не хочет.
|
|||
25
Serginio1
23.04.14
✎
10:44
|
(24) Надо так понимать, что печать из под сервиса из 64 разрядного приложения?
Проблема может быть в драйверах и правах доступа |
|||
26
braslavets
23.04.14
✎
10:54
|
(22) пользователю, от имени которого работает агент сервера 1С.
|
|||
27
temmy70
23.04.14
✎
11:20
|
(25) извините, не понял вопроса. Команды в вебсервис идут из приложения на java, из браузера. Первые два раза печатал, потом перестал. сначала просто перестал, потом стал ругаться на принтеры. Какие права доступа посмотреть? Апач работает от пользователя со всеми правами. От пользователя 1С, под которым подключается вебсервис, вроде ничего зависить не должно.
(26) база файловая. |
|||
28
Serginio1
23.04.14
✎
12:20
|
Очередь печати смотрел?
|
|||
29
temmy70
23.04.14
✎
12:55
|
(28) да, пусто
может можно как-то программно установить принтер? |
|||
30
Serginio1
23.04.14
✎
13:55
|
(21) По уму печить из запускаемой 1С должна быть такой же как при интерактивной печати. Печатать из 1С с программной установкой пробовал?
|
|||
31
temmy70
23.04.14
✎
17:02
|
(30) да, но у меня получается что сеанс 1С не запускается. Или когда приходит команда в вебсервис из внешнего источника что-то запускается?
Что значит печатать из 1С с программной установкой? Печатать Табличный документ не выходит, потому что команда недоступна для внешнего соединения. Печатать запуская батник или сеанс 1С тоже не получится, так не доступно для внешнего соединения. |
|||
32
Serginio1
23.04.14
✎
19:07
|
(30) в 17 если ты в ИмяФайлаМХЛ можешь передать имя файла в котором сохранишь путь к табличному документу и имя принтера
то А в Базе уже ПриНачалеРаботыСистемы анализируешь ПараметрЗапуска печатаешь и выходишь. По сути должно выполняться как интерактивный запуск. |
|||
33
temmy70
23.04.14
✎
19:57
|
(32) а, понял, но команда ЗапуститьПриложение() не доступна для внешнего соединения. :( я так уже пробовал.
|
|||
34
Serginio1
23.04.14
✎
20:37
|
Ну запусти через COM
v8: v8: Использование сборок .NET в 1С 7.x и 8.x |
|||
35
Serginio1
23.04.14
✎
20:38
|
||||
36
temmy70
24.04.14
✎
10:18
|
(35) ух ты! Спасибо огромное, сейчас буду пробовать.
|
|||
37
Serginio1
24.04.14
✎
10:30
|
(36) Если что описание и DLL лежит здесь http://1c.proclub.ru/modules/mydownloads/personal.php?cid=142&lid=9569
|
|||
38
temmy70
24.04.14
✎
11:09
|
(37) что-то у меня по ссылке на вирусы ругается :(.
видимо у меня библиотеки нет, потому что COMОбъект создать не может: "недопустимая строка класса". |
|||
39
temmy70
24.04.14
✎
11:14
|
регистрация comcntr.dll не помогла.
|
|||
40
Serginio1
24.04.14
✎
11:21
|
(38) Ты читал описание в 37?
Для проведения тестов нужно распаковать архив . Затем нужно зарегистрировать Нужные DLL. Запускаем РегистрацияКомСервера.exe и выбираем NetObjetToIDispatch45.dll которая лежит в DLLNetObjetToIDispatch45 Соответственно на компьютере должна быть установлена \Windows\Microsoft.NET\Framework\v4.0.30319\ |
|||
41
temmy70
24.04.14
✎
11:23
|
(37) скачал, изучаю, спасибо большое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |