Имя: Пароль:
1C
Админ
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 призывает еще какой-то компонент?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший