Имя: Пароль:
1C
1С v8
При создании книги Excel ругается "не удается открыть или сохранить документы из-за нехва"
0 Birmingem
 
07.09.17
18:58
Имеется:
Windows Server 2012 х64
На нем Office 2013 x64
На нем 1С Сервер х64

Пытаюсь выгружать в файл Ексель.
Excel = Новый COMОбъект("Excel.Application");
Excel.Displayalerts = 0;
Книга = Excel.WorkBooks.Add();

И вот на этой строке вылезает сообщение:
Ошибка при вызове метода контекста (Add)
    Книга = Excel.WorkBooks.Add();
по причине:
Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается открыть или сохранить документы из-за нехватки памяти или места на диске.
• Чтобы освободить память, закройте ненужные книги или программы.
• Чтобы освободить место на диске, удалите с этого диска ненужные файлы.

Для эксперимента попробовал открыть существующий файл:
Excel.Workbooks.Open("D:\Temp\111");
Открывает...

Подозреваю что при попытке создания нового файла, Excel обращается куда то, куда доступа у юзера USR1CV8 (под которым работает 1С) нет.

Подскажите что делать?
1 Birmingem
 
07.09.17
19:00
Второй день бьюсь, весь инет перерыл ...
2 Fedor-1971
 
07.09.17
19:21
(0) на msdn - проверь есть ли параметры у Workbooks.Add(), может нужен параметр, что создаём?
3 Birmingem
 
07.09.17
19:25
(2) В файловой базе этот код полностью работает. Так что проблема именно с доступами из 1С:Сервер в Ексель.
4 Fedor-1971
 
07.09.17
19:38
(3) скорее в TEMP, проверь права доступа на ту папку, которая прописана в общей системной переменной
5 Fedor-1971
 
07.09.17
19:46
4+ или залогинься в винду с USR1CV8
6 Birmingem
 
07.09.17
19:48
В "Настройка DCOM" в свойствах Excel прописал "Разрешения на запуск и активацию" пользователя USR1CV8.
А вот на вкладке "Удостоверение" прописать этого пользователя не дает. Ругается "код ошибки 80070569 выбранный режим входа для для данного пользователя не предусмотрен".
Какие еще права надо дать USR1CV8? В какую группу его засунуть?
7 Birmingem
 
07.09.17
19:50
(5)Пробовал. Дал ему "Пользователи удаленного рабочего стола" и зашел удаленно под USR1CV8. Вручную запустил Ексель, создал книгу, нормально создалось. Запустил 1С, попробовал выгрузить в Ексель, результат тот же.
8 lubitelxml
 
07.09.17
19:52
(7) на tmp дал права то?
9 Cyberhawk
 
07.09.17
19:53
(6) Интерактивный вход в систему в групповых политиках вроде
10 Cyberhawk
 
07.09.17
19:54
Ну и проверить, что служба сервера 1С работает не из-под "локал систем"
11 Birmingem
 
07.09.17
20:09
Попробовал так. Дал USR1CV8 еще и права Администратор.
Зашел под ним. В "Настройка DCOM" в свойствах Excel на вкладке "Удостоверение" поставил "Текущий пользователь".
И заработало ...
Получается, надо в "Удостоверение" прописать USR1CV8.
12 Birmingem
 
07.09.17
20:14
(9) Забрал у USR1CV8 права Администратор.
Зашел в "Локальная политика безопасности - Локальные политики - Назначение прав пользователя". Правильно?
В списке нашел "Запретить локальный вход" и там был USR1CV8. Убрал. Все равно не дает прописать его в "Удостоверение".
Что еще нехватает?
13 Birmingem
 
07.09.17
20:19
(10)служба сервера 1С работает под USR1CV8
14 Birmingem
 
07.09.17
20:20
(8)Какую именно tmp надо проверить?
15 VS-1976
 
07.09.17
20:36
Под пользователем USR1CV8 создай новую книгу в excel руками, скорее всего тебе предложит какой нибудь диалог типа создавать конкретно под этим пользователем.
16 Cyberhawk
 
07.09.17
20:55
(12) http://catalog.1cnik.by/public/325873/ тут почитай
17 Birmingem
 
08.09.17
07:20
(15)Пробовал. Зашел под USR1CV8, создал книгу, сохранил. Закрыл Ексель. Снова открыл. Никаких вопросов не задает. Открыл книгу, изменил, сохранил. Все нормально.

(16)Спасибо! Я уже нарыл в инете эту информацию, только по частям. Теперь заново, пошагово все проделал.
В результате COMОбъект("Excel.Application") создается. Но потом, при создании книги Книга = Excel.WorkBooks.Add(); выдает:
Ошибка при вызове метода контекста (Add) Книга=Excel.WorkBooks.Add();
по причине:
Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается открыть или сохранить документы из-за нехватки памяти или места на диске.
• Чтобы освободить память, закройте ненужные книги или программы.
• Чтобы освободить место на диске, удалите с этого диска ненужные файлы.
18 VS-1976
 
08.09.17
14:25
Попробуй создать каталоги, может поможет, но не факт

Папки
C:\Windows\SysWOW64\config\systemprofile\Desktop
C:\Windows\System32\config\systemprofile\Desktop
19 Масянька
 
08.09.17
14:49
(17) Documents and Settings - смотрел?
20 Cyberhawk
 
09.09.17
09:37
Может квоты установлены для пользователя ОС службы агента
21 Birmingem
 
13.09.17
10:39
В общем, так и не победил эту проблему.
Отказался от формирования Ексель файла на сервере (по рекомендации микрософта :) ).
Теперь на сервере собираю данные, складываю в несколько массивов и передаю на клиента.
И файл Ексель создаю на клиенте.