документ Word в веб-сервисе

  1. 9 г. назад

    Active документ можно получить только в толстом клиенте.
    COMОбъект("Word.Application") - насколько я понял по поиску, ни у кого не работает.

    Как быть? Нужно в модуле веб-сервиса прописать заполнение вордовского шаблона

    Ответы: (1) (18) (20)
  2. Stim COMОбъект("Word.Application")

    а кто сказал, что это COM-объект?

    Ответы: (2) (26)
  3. (1) СП сказал

    Ответы: (3)
  4. (2) кто-кто сказал? СП знает, есть ли у тебя такой класс?

  5. ну что за..
    дал полный доступ пользователю USR1CV8 на папку и файл в ней.
    пишу в веб-сервисе:

    ИмяФайла ="C:\счета клиентов\шаблон.doc";
    попытка
    КомОбъект = ПолучитьCOMОбъект(ИмяФайла );
    Возврат "да"  ;
    Исключение
    Возврат "нет";
    конецпопытки;
    

    веб-сервис возвращает нет.
    что за хрень?

    Ответы: (7) (9)
  6. 04.04.2015 15:49:33 отредактировано Stim

    + доступ точно есть, пишу

    попытка
    //КомОбъект = ПолучитьCOMОбъект(ИмяФайла );
    ТабДок = Новый ТабличныйДокумент ;
    ТабДок.Записать("C:\счета клиентов\шаблон2.doc");
    Возврат "да"  ;
    Исключение
    Возврат "нет";
    конецпопытки;
    

    возвращает да и создает файл

  7. Вдруг угадаю - а на какой стороне вызывается COM-объект?

    Ответы: (8)
  8. (4) описание исключения в студию

    Ответы: (9)
  9. (6) на сервере, не тупи ДВ

  10. andrewks (4) описание исключения в студию

    {WebСервис.WebService.Модуль(1325)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147024891(0x80070005): Отказано в доступе.

    Ответы: (16) (23)
  11. Распакуй шаблон и работай с ним как с xml, если тебе только надо заполнять определенные реквизиты.

    Ответы: (12) (56)
  12. это при том, что я вызываю ком объект из файла шаблон2, который сам же USR1CV8 и создал

  13. (10) поподробнее плз

    Ответы: (13)
  14. (12) xlsx

  15. Открой как zip-архив. Внутри xml.

  16. наверное, где-то здесь ответ:

    я подозреваю что проблема все таки остается в том что DCOM запускается с пустым пользователем, но не знаю как можно это поправить
    Я сделал следующее в настройках DCOM:
    Администирование-СлужбыКопонентов-Компютеры-МойКомпютер-настройка DCOM-Microsoft Excel application- Свойства-Удостоверение: Указанный пользователь - выбрал администратора сервера и ввел его пароль.
    LadukOpiat
    32 - 17.07.12 - 22:00 Подсказали решение на SQL.ru
    На сервере необходимо было еще установить в локальных политиках право на запуск DCOM для конкретных пользователей.
    и, о чудо, все заработало :-)

  17. (9) а разве может сервис, не имеющий окна, запустить оконное OLE-приложение?

    Ответы: (23)
  18. попробуй там же вызвать "V82.Application", и сравни результат

  19. (0) вам не кажется, что веб сервис работает на сервере и ему пофиг на толстоту клиента?

    Ответы: (20)
  20. http://www.forum.mista.ru/topic.php?id=683597

    Ответы: (21)
  21. sda553 (0) вам не кажется, что веб сервис работает на сервере и ему пофиг на толстоту клиента?

    Ну так-то ПолучитьCOMОбъект доступен на серве

  22. (19)ага
    в каждом объекте DCOM нужно явно добавить пользователя 1CUSR1CV82 (вкладку не помню....)

    Ответы: (22)
  23. Stim вкладку не помню..

    Безопасность

  24. andrewks (9) а разве может сервис, не имеющий окна, запустить оконное OLE-приложение?

    люди говорят, работает

    Ответы: (25)
  25. а почему я не вижу никаких DCOM от MS Office?

    Ответы: (26)
  26. (23) да, я уже и сам проверил, работает

  27. (24) и тут мы возвращаемся к (1)

    Ответы: (27)
  28. (26) ну а что должно возвратиться?

    вот СП:

    Глобальный контекст (Global context)
    ПолучитьCOMОбъект (GetCOMObject)
    Синтаксис:

    ПолучитьCOMОбъект(<ИмяФайла>, <ИмяКлассаCOM>)
    Параметры:

    <ИмяФайла> (необязательный)

    Тип: Строка.
    Имя файла, включающее полный путь.
    <ИмяКлассаCOM> (необязательный)

    Тип: Строка.
    Имя класса COM, экземпляр которого должен быть создан или получен. Если расширение имени файла, указанное в первом параметре, полностью идентифицирует класс объекта, то параметр может быть опущен.
    Возвращаемое значение:

    Тип: COMОбъект.

    Описание:

    Основное применение функции ПолучитьCOMОбъект - это получение COM-объекта, соответствующего файлу. Для этого следует в качестве первого параметра функции задать имя файла, который будет определять COM-объект. Например, фрагмент кода:
    Таб = ПолучитьCOMОбъект("C:\DATA\DATA.XLS");
    создает объект Excel.Application и открывает с его помощью файл документа "C:\DATA\DATA.XLS".

    Ответы: (30)
  29. Возвращаемое значение:
    Тип: COMОбъект.

  30. не хотелось бы разбирать док на хмл и перебирать текст(( ввел кучу полей в документ.
    так же не хотелось бы и запускать сеанс под толстым клиентом

  31. (27) я к тому намекаю - в системе такой ком-сервер зареген, вообще? проверял?

    Ответы: (31)
  32. (30) ну в толстом клиенте ПолучитьCOMОбъект(ИмяФайла ) как и мойActiveМакет.ПОлучить()

    работает

  33. т.е. получается, под моим пользователем работает.
    под пользователем USR1CV8 не работает.
    хотя включил пользователя и в админы, и в пользователиDCOM

    Ответы: (33) (37) (42)
  34. (32) включи работу с рабочим столом в службе

    Ответы: (34)
  35. (33) эмм. где это и зачем?

    Ответы: (35) (36)
  36. (34) в настройках службы, разрешить взаимодествие с рабочим столом.
    Тогда сможет запустить word.exe отдельным процессом и взаимодействовать с ним в com

    Ответы: (36)
  37. pumbaEO (34) в настройках службы, разрешить взаимодествие с рабочим столом.
    Тогда сможет запустить word.exe отдельным процессом и взаимодействовать с ним в com

    какой службы?

  38. (32) в настройки COM+ ходил?

    Ответы: (38) (42)
  39. (37) а что там? компонента установлена, серверный юзер - админ

    Ответы: (40)
  40. пишут 2003 надо ставить.
    ща попробую

  41. (38) там права для каждого ком-сервера можно задать

    Ответы: (41)
  42. (40) думаешь дело в правах на комобъект?

    Ответы: (43)
  43. andrewks (32) в настройки COM+ ходил?

    это там же в компонентах?

  44. (41) да кто же знает точно...
    неправильно сказал, не COM+, а DCOM

    "Службы компонентов \ Настройка DCOM"

  45. дком.png

    Ответы: (45)
  46. (44) ну вот про то и речь. в версиях офиса старше 2003 компоненты имеют гуидные названия.
    ща поставлю 2003 и там попробую

  47. ладно, буду разбираться.
    а пока что сделаю через запуск толстого клиента с командой строки с открытием внешней обработки

    Ответы: (47) (49)
  48. (46) Сори за оффтоп, я тебе на Инфостарте ответил

  49. http://mac-blog.org.ua/word-application-iz-pod-powershell-i-ili-asp-net/

  50. Stim ладно, буду разбираться.
    а пока что сделаю через запуск толстого клиента с командой строки с открытием внешней обработки

    Извращенец
    :)
    Всё и так работает.

  51. блин, ну что за хрень.
    админ поставил 2003 офис, нет там такой компоненты((

  52. разобралсо

    Ответы: (52)
  53. (51) поставил одмину пиво?

  54. І шо, воно було?

  55. Кароч, не стал париться с дсом, сохранил шаблон в файл xml(ворд-сохранить как) и тупо попарсил хмлку

    Ответы: (55) (56)
  56. (54) мужик!

  57. (54) не прошло и 40 постов, для (10)...

    Ответы: (57) (58)
  58. (56) так речь была про архив, распаковку и упаковку обратно.
    у меня такой фокус не получился.

или зарегистрируйтесь чтобы ответить!