|   |   | 
| 
 | ОбъектWord.Documents.Add() - ошибка (только на сервере приложений) | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dmitriy_ Kolesnikov 03.11.17✎ 00:39 | 
        Сразу скажу - на файловой базе в Windows 7 этот код работает корректно.
 Итак, есть: W2016Server + сервер приложений 8.3.10.2580 + самописный документ, в котором есть строчка ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Сразу говорю - файл я проверял вот так: Тест = Новый Файл("c:\temp_pm\test.docx"); Если Тест.Существует() Тогда - он существует, и сервер его может прочитать. С правами доступа к папкам всё ОК. На сервере установлен Office 2013 (причем я ставил и 32-битный, и 64-битный), COM-компонент ручками зарегистрировал, поэтому строчка ОбъектВорд = Новый COMОбъект("Word.Application"); теперь выполняется без ошибок. В отладчике объект виден. Так вот, спотыкаемся на строчке ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Если файл имеет расширение DOC - ошибка такая: {Документ.дкЗаявкаНаПроект.МодульОбъекта(77)}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Ошибка в Word. Если файл имеет расширение DOCХ - ошибка чуть другая: {Документ.дкЗаявкаНаПроект.МодульОбъекта(79)}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Приложению Word не удалось прочитать документ. Возможно, он поврежден. Попробуйте выполнить следующие действия: * Откройте файл с помощью команды ''Открыть и восстановить''. * Откройте файл с помощью конвертера резервных копий. Я уже в отчаянии, целый день мучаюсь. Сборки Офиса 2013 - от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает - такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM. Интуиция подсказывает, что не взлетит. Подскажите, что ещё можно попробовать проверить? | |||
| 1
    
        Сергиус 03.11.17✎ 01:24 | 
        А если попробовать зайти на сервер и вручную открыть данный файл? Открывается нормально и содержимое отображает?     | |||
| 2
    
        Сергиус 03.11.17✎ 01:26 | 
        [Сборки Офиса 2013 - от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает - такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM]
 Достаточно спорное утверждение. Я бы больше доверял оригинальному дистрибутиву, чем какой-то сборке, из которой вполне могли повыкидывать "ненужные" вещи. | |||
| 3
    
        h-sp 03.11.17✎ 01:34 | 
        (0) попробуйте другую папку. c:\temp_pm\  - очень сомнительное место, вряд ли там откроет файл ворд.     | |||
| 4
    
        Dmitriy_ Kolesnikov 03.11.17✎ 06:46 | 
        (1) конечно, открывает и отображает :) Я же не первый день замужем. И даже ЗапуститьПриложение(ИмяФайла), я уверен, будет работать.
 (3) и папка эта - не первая, до неё я использовал подкаталог во временной папке (пробовал разные). Разумеется, права доступа - всем на всё. Ещё раз повторю, что на локальном компьютере с W7 при такой же структуре папок и том же дистрибутиве Офиса (только без сервера приложений) всё работает. Мне кажется, подвох в Windows 2016. Другой вариант - в сервере приложений. Третьего не дано. | |||
| 5
    
        arsik гуру 03.11.17✎ 09:02 | 
        (4) Подвох возможно кроется в битности офиса, 1С.
 Допустим офис 64x, а 1С 32x и наоборот. | |||
| 6
    
        v77 03.11.17✎ 09:05 | 
        нафиг вам этот офис вообще уперся. распаковал, засунул в xml чо хочешь, запаковал и все дела. быстро, дешево и сердито.     | |||
| 7
    
        DOSS_S 03.11.17✎ 09:30 | 
        Курить "профиль безопасности" в программе "Администрирование серверов 1С Предприятия". По умолчанию использование COM на сервере 1С запрещено. Не советую работать с вордом екселем и тд. на сервере. Зависнет ворд вместе с ним 1с сеанс, что будете делать?     | |||
| 8
    
        Сияющий в темноте 03.11.17✎ 09:46 | 
        попробуйте написать сценарий и из него управлять вордлм,а уже этот сценарий запустите из 1ц,если что-то пойдет не так можно убить сценарий и ворд из самой 1с
 а сервер,кстати,обычно 64-битный | |||
| 9
    
        arsik гуру 03.11.17✎ 10:16 | 
        (8) Зачем такой изврат, можно просто фоновым заданием, мне кажется.     | |||
| 10
    
        Dedal 03.11.17✎ 11:08 | 
        (4) Подвохов там масса. Начиная от того под кем выполняется. Если ушло на сервер значит выполняется под серверным userV8 значит у него должен быть доступ к dcom объекту. Лезешь в dcom офиса и выдаешь ему там все права.
 Но лучше сделать по другому. docx это упакованные в zip xml. на просторах интернета есть уже готовый код. Также реализацию и можно посмотреть в 1С Договорчики. Фактически docx распаковывается, в нужном xml правится, пакуется обратно. Сам понимаешь никаких проблем с COM и офис не нужен. | |||
| 11
    
        Dmitriy_ Kolesnikov 03.11.17✎ 11:14 | 
        (5) изначально офис был 32-битный и была ошибка при создании ком-объекта:
 ОбъектВорд = Новый COMОбъект("Word.Application"); Но я вручную создал коннектор (по инструкции), и ошибка исчезла. Более того, как сказано в (0), я снес 32-битный Офис и поставил 64-битный - это ничего не изменило. (6) а ссылку? У меня 15 файлов, часть в DOCX, часть в HTML, надо все их упихать в один. Я делаю это с помощью метода InsertFile. (7) Благодарю, сейчас почитаю про эти профили. Похоже, собака зарыта именно здесь. (10) пользователю usr1cv8 уже выданы везде все права, в том числе в COM+. Насчет XML и ZIP - это интересно, но на будущее. Я уже написал код, который быстро работает на файловой базе. Теперь задача - заставить его выполняться на сервере. | |||
| 12
    
        v77 03.11.17✎ 11:20 | 
        (11) "а ссылку?" я писал про XML и ZIP     | |||
| 13
    
        Dedal 03.11.17✎ 11:36 | 
        (11) В самом объекте dcom дал права? 
 Администрирование ? Службы компонентов ? *** ? Настройка DCOM ? Документ Microsoft Word 97–2003 ? безопасность. | |||
| 14
    
        Филиал-msk 03.11.17✎ 11:53 | 
        (0) Сборки Офиса 2013 - от Кролика, с самыми последними обновлениями, сами понимаете, это бренд
 Кто все эти люди? | |||
| 15
    
        v77 03.11.17✎ 12:03 | 
        (14) уголовники     | |||
| 16
    
        Dmitriy_ Kolesnikov 09.11.17✎ 17:05 | 
        (13) конечно
 (14) весьма уважаемые люди. Робин Гуды наших дней. (15) руководствуясь вашей логикой, уголовниками можно обозвать 99,9% граждан России, пользующихся компьютерами. | |||
| 17
    
        Филиал-msk 09.11.17✎ 17:07 | 
        (16) Обиделся, уголовник?     | |||
| 18
    
        Dedal 09.11.17✎ 17:16 | 
        (16) показывай что у тебя между: 
 ОбъектВорд = Новый COMОбъект("Word.Application"); ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |