![]() |
|
v8: 1C Excel DCOM сложности с открытием | ☑ | ||
---|---|---|---|---|
0
vlandev
08.10.13
✎
11:42
|
Что можно сделать чтобы фоновые задания сервера 1С-предприятия (1CUSR1CV82) открывали эксельные форматы все?
Есть файлик с расширением xls но по сути там внутри не эксель, а просто текстовые строки, где данные разделены табуляцией. Такой файл фоновое серверное задание открывает так: Excel = Новый COMОбъект("Excel.Application"); Excel.Workbooks.Open(файлик); При попытке открыть такой файл по фэншую, когда 1CUSR1CV82 не входит в группу администраторов, происходит ругань: Microsoft Office Excel не может открыть или сохранить документы из-за нехватки памяти или места на диске. Дальше нарыл такие варианты: Если этот файл пересохранить в формат эксель-97 - то ошибки нету. Если пользователю 1CUSR1CV82 дать админские права - то ошибки нету. Если в оснастке dcomcnfg сделать что бы "Microsoft Excel Application" запускалось не от "Текущий пользователь", а от 1CUSR1CV82 - то ошибки нету, но тогда перестают нормально открываться эксельные файлы у других пользователей - эксель начинает ругаться про связи таблиц. Права папку и на сами файлы полные, дело точно не в запретах NTFS. Папочки C:\Windows\SysWOW64\config\systemprofile\Desktop и C:\Windows\System32\config\systemprofile\Desktop существуют, права на них полные всем. Что можно сделать, что бы фоновое задание через эксель нормально отрабатывало с такими файлами? Чего не хватает экселю или может быть dcom-у? |
|||
1
Serginio1
08.10.13
✎
11:46
|
||||
2
Serginio1
08.10.13
✎
11:47
|
||||
3
Serginio1
08.10.13
✎
11:49
|
Добавь 1CUSR1CV82 в папку локальные пользователи и группы\Группы\ Пользователи DCOM
|
|||
4
vlandev
08.10.13
✎
11:53
|
(1) и (2) уже были мной предварительно выкурены.
(3) 1CUSR1CV82 находится в группе "Пользователи DCOM", а что за папка "локальные пользователи"? Имеется в виду группа "Пользователи"? Сейчас аккаунт 1CUSR1CV82 состоит в группах "Пользователи" и "Пользователи DCOM". |
|||
5
Serginio1
08.10.13
✎
12:08
|
То есть если явно указать при запуске 1CUSR1CV82 то ошибки нет?
На сервере необходимо было еще установить в локальных политиках право на запуск DCOM для конкретных пользователей. |
|||
6
vlandev
08.10.13
✎
12:21
|
(5) Да, если в настройках dcom-а указать что запускать явно от 1CUSR1CV82 с его паролем - то ошибок нет. Ошибка зависит походу только от того, что именно внутри открываемого файла. Если внутри файл true-exell формата - то никаких ошибок нету, а если файл внутри текстовый, но с расширением xls - то тогда происходит ошибка. Хотя в реале такой файл экселем открывается и преобразовывается, а вот через DCOM-нет. Может он там пытается где-то в каких-то одному богу известных местах создать временный файл для преобразования и на этом обламывается? На всякий случай дал полный доступ 1CUSR1CV82 на паку WINDOWS\TEMP - но не помогло.
По поводу локальных политик там вообще ничего про DCOM нету, есть только какое-то "DCOM: Ограничения компьютера на запуск в синтаксисе SDDL", но эта хрень явно не то, там вообще ничего не поменять. |
|||
7
Serginio1
08.10.13
✎
12:25
|
А с .csv открывается?
|
|||
8
vlandev
08.10.13
✎
12:30
|
(7) Нет, если переименовать в .csv - то вываливается такая же ошибка:
Microsoft Office Excel не может открыть или сохранить документы из-за нехватки памяти или места на диске. Если просто открывать руками - то открывается, эксель загружает даже без ругани на неправильный формат. |
|||
9
Serginio1
08.10.13
✎
12:31
|
http://www.contravt.ru/?id=8620
Кстати а при запуске от Запускающий Пользователь? |
|||
10
Serginio1
08.10.13
✎
12:39
|
Посмотри какие ошибки в Журнале
|
|||
11
vlandev
08.10.13
✎
12:44
|
(9) Да, сейчас при запуске стоит "от запускающий пользователь". Глобалные права на DCOM настроил, спасибо за ссылку, но ничего не поменялось.
В логах нет ничего, только появляется уведомление: ID: 1, Application Name: Microsoft Office Excel, Application Version: 12.0.4518.1014, Microsoft Office Version: 12.0.4518.1014. This session lasted 0 seconds with 0 seconds of active time. This session ended normally. Но оно всегда появляется, даже в случае когда ошибок нету. |
|||
12
Serginio1
08.10.13
✎
13:40
|
(11) Сервер перегружал?
|
|||
13
vlandev
08.10.13
✎
14:14
|
(12) Агента 1С-Предприятие перезагружал, а целиком сервак пока не могу, надо ждать ночи.
Если меняется настройка DCOM с типа "от запускающий пользователь" на другой типа "указанный пользователь" - то ничего перезагружать не требуется, изменение этих настроек вступают в силу сразу. |
|||
14
vde69
модератор
08.10.13
✎
14:23
|
в каждом объекте DCOM нужно явно добавить пользователя 1CUSR1CV82 (вкладку не помню....)
после этого перезагрузить сервер. кроме того пользователь 1CUSR1CV82 должен иметь файловые права на папки, в том числе и для темповых файлов екселя. Файловых папок ексель юзает не так мало, по этому тут придется повозится... |
|||
15
vlandev
08.10.13
✎
15:27
|
(14) То есть правильно я понимаю, что когда DCOM "Microsoft Excel Application" сталкивается с необходимостью прочитать файл не родного формата, а как у мну - в формате .csv, то он через DCOM призывает еще какой-то компонент?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |