Настройка DCOM для Excel.Application в 1С, за минуту
Добрый день! Уважаемые читатели и гости, популярного IT блога pyatilistnik.org. Сегодня я продолжу пополнять свою копилку знаний в разделе 1С. Вчера меня один из разработчиков, попросил ему помочь настроить компоненты DCOM для Excel.Application в связке с приложением 1С. Я ранее этого не делал, так что пришлось в этом разбираться. По итогам найденного решения, появилась и эта заметка. Уверен, что на этот материал найдутся желающие.
Что такое DCOM
Distributed Component Object Model (DCOM) - программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) к компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента. С данным компонентов мы уже знакомились, когда решали ошибку 10016.
Настройка DCOM для Excel.Application
И так у меня есть виртуальная машина под управлением Windows Server 2012 R2, на ней установлены серверные компоненты 1С, есть задача для Excel.Application модуля, настроить DCOM компоненты.
Нам необходимо открыть в панели управления Windows, компонент "Службы компонентов".
Либо можете, через окно выполнить ввести DCOMCNFG, откроется, тоже самое.
В службах компонентов (Component Services) откройте ветку:
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением {00020812-0000-0000-C000-000000000046}.
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:
У вас откроется mmc оснастка "Службы компонентов", которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты. В результате этих манипуляций компонент Microsoft Excel Application у вас должен появиться. Открываем свойства Microsoft Excel Application.
Переходим на вкладку "Безопасность (Secutity)". В пункте "Разрешения на запуск и активацию (Launch and Activation Permissions)", выберите "Настроить (Customize )" и изменить. Вам нужно добавить сюда учетную запись, от имени которой запускается служба 1С и предоставить ей права:
- Локальный запуск - Local Launch
- Локальная активация - Local Activation
Далее переходим к пункту "Разрешения на доступ (Access Permissions)" и так же меняем их. Добавьте там ту же учетную запись, от имени которой запускается сервис 1С, и дайте ей права "Локальный доступ (Local Access)". Сохраните настройки.
Закрываем окно служб компонентов, теперь для того, чтобы закончит ьнастройку DCOM для 1С и Microsoft Excel Application, вам необходимо дать права на две папки.
Вам нужно убедиться, что у вас есть две папки:
и
C:\Windows\System32\config\systemprofile\Desktop\
Если их нет, то создайте их. Далее даем полные права на эту папку, для все той же учетной записи, сервиса 1С. Надеюсь, что было не сложно, и вы разобрались в конфигурировании DCOM для компонента Excel.Application в связке с 1С. С вами был Семин Иван, автор и основатель IT портала Pyatilistnik.org,
дополню
еще надо дать полный доступ на папку
C:\Windows\System32\config\systemprofile\AppData
Спасибо!
Если у кого не появился в службе компонентов этот объект Microsoft Excel Allpication, то надо найти в реестре выше Раздел с именем {00020812-0000-0000-C000-000000000046} или создать его в HKEY_CLASSES_ROOT\AppID\ и внутри него создать строковый параметр по умолчанию с именем Microsoft Excel Allpication. У меня появилось, и потом уже раздавать на него права. А то весь мозг сломал почему его нет
Спасибо !
Но у меня не получилось до тех пор пока не зашел на закладку «Удостоверения» и там явным образом не указал необходимого запускающего пользователя.
Спасибо, получилось прямо по инструкции.
Сервер 1С и Excel 2016 оба 64х битные. Пришлось напрямую прописывать разрешения на пользователя USR1CV8, хотя он был в группе администраторов и через группу права по идее должны были у него быть. После выполненной настройки стал возможен вызов COM объекта Excel из процедур «&НаСервере». Теперь пользователям Excel не нужен, можно хорошо сыкономить на лицензиях. Еще раз спасибо.
Дайте пример настроки с WORD. Везде только про Excel