Добрый день! Уважаемые читатели и гости, популярного 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) откройте ветку:
Компоненты — Мой компьютер — Настройка DCOM — Microsoft Excel Application (Component Services — Computers — My computer — DCOM Config)
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOTAppIDEXCEL.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:WindowsSysWOW64configsystemprofileDesktop
и
C:WindowsSystem32configsystemprofileDesktop
Если их нет, то создайте их. Далее даем полные права на эту папку, для все той же учетной записи, сервиса 1С. Надеюсь, что было не сложно, и вы разобрались в конфигурировании DCOM для компонента Excel.Application в связке с 1С. С вами был Семин Иван, автор и основатель IT портала Pyatilistnik.org,
Опубликовано в Статьи по 1С 02.09.2019
Добрый день! Уважаемые читатели и гости, популярного 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) откройте ветку:Компоненты — Мой компьютер — Настройка DCOM — Microsoft Excel Application (Component Services — Computers — My computer — DCOM Config)
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением {00020812-0000-0000-C000-000000000046}.
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:mmc comexp.msc /32
У вас откроется 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:WindowsSysWOW64configsystemprofileDesktop
и
C:WindowsSystem32configsystemprofileDesktop
Если их нет, то создайте их. Далее даем полные права на эту папку, для все той же учетной записи, сервиса 1С. Надеюсь, что было не сложно, и вы разобрались в конфигурировании DCOM для компонента Excel.Application в связке с 1С. С вами был Семин Иван, автор и основатель IT портала Pyatilistnik.org,
- Также рекомендуется дать полный доступ на папку
C:WindowsSystem32configsystemprofileAppData
Оригинл статьи: http://pyatilistnik.org/dcom-in-excel-application/
16.05.2017
Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект «Excel.Application» на сервере 1С.
Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания.
Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом.
Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.
- Заходим на сервер приложений 1С под локальным админом
- Запускаем DCOMCNFG (Консоль настроек «Component Services»)
- Открываем ветку Console Root -> Component Services -> Computers -> My computer -> DCOM Config
- Ищем «Microsoft Excel Application»
- Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента «Microsoft Excel Application»)
- Закрываем «Component Services»
- Настройка реестра
- Запускаем REGEDIT
- Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
- Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться «Microsoft Excel Application»
- Настраиваем свойства DCOM компонента «Microsoft Excel Application»
- Закладка «Security»
- «Launch and Activation Permissions» — Customize — Edit
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначем ему только следующие права (allow):
- Local Launch
- Local Activation
- «Access Permissions» — Customize — Edit
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначаем ему только следующие права (allow):
- Local Access
- «Launch and Activation Permissions» — Customize — Edit
- Закладка «Identity»
- Должно быть выбрано «The launching user»
- Закладка «Security»
- Системные папки
- Папка «C:WindowsSysWOW64configsystemprofileDesktop»
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право «Read» и «Write»
- Папка «C:WindowsSystem32configsystemprofileDesktop»
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право «Read» и «Write»
PS: по просьбе yukon добавляю следующий дисклаймер:
Вопросы серверной автоматизации Office https://support.microsoft.com/kb/257757
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
Описание настройки на 64-битном сервере приложений 1С, позволяющие создавать и использовать COMОбъект «Excel.Application» на сервере 1С.
Это поможет обработать большие файлы excel на сервере, в том числе через фоновые задания.
Все описанные действия родились по мотивам прочтения тысячи форумов и было опробовано сначала на разработческом сервере, затем на боевом.
Поэтому решил выложить это сюда, наверняка спасет вам хотя бы 1 день жизни.
- Заходим на сервер приложений 1С под локальным админом
- Запускаем DCOMCNFG (Консоль настроек «Component Services»)
- Открываем ветку Console Root -> Component Services -> Computers -> My computer -> DCOM Config
- Ищем «Microsoft Excel Application»
- Если нашли, то переходим к пункту 4 (Настраиваем свойства DCOM компонента «Microsoft Excel Application»)
- Закрываем «Component Services»
- Настройка реестра
- Запускаем REGEDIT
- Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
- Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться «Microsoft Excel Application»
- Настраиваем свойства DCOM компонента «Microsoft Excel Application»
- Закладка «Security»
- «Launch and Activation Permissions» — Customize — Edit
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначем ему только следующие права (allow):
- Local Launch
- Local Activation
- «Access Permissions» — Customize — Edit
- Добавляем пользователя, под которым запускается агент сервера 1С
- Назначаем ему только следующие права (allow):
- Local Access
- «Launch and Activation Permissions» — Customize — Edit
- Закладка «Identity»
- Должно быть выбрано «The launching user»
- Закладка «Security»
- Системные папки
- Папка «C:WindowsSysWOW64configsystemprofileDesktop»
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право «Read» и «Write»
- Папка «C:WindowsSystem32configsystemprofileDesktop»
- Проверяем наличие папки , если нет -то создаем.
- Заходим в свойства этой папки.
- Закладка Security
- Добавляем, если нет, пользователя, под которым запускается агент сервера 1С
- Добавляем право «Read» и «Write»
PS: по просьбе yukon добавляю следующий дисклаймер:
Вопросы серверной автоматизации Office https://support.microsoft.com/kb/257757
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
источник: https://open-budget.ru/public/325873/
The entry for «Microsoft Excel Application» is not there in DCOM Config (tried in both 32-bit and 64-bit). How can I make it shows up there? I have Microsoft Office installed.
TylerH
20.6k64 gold badges76 silver badges97 bronze badges
asked Jul 17, 2013 at 21:11
1
If you cannot find ‘Microsoft Excel Application’ in either 32-bit or 64-bit DCOMCNFG, you might go into registry to HKEY_CLASSES_ROOT/AppID and find the CLSID for your version of Excel (Excel 2013 has an AppID of {00020812-0000-0000-C000-000000000046})
Check that the (Default) REG_SZ for this key has a value set for it.
If not, change the default value to «Microsoft Excel Application» and after relaunching DCOMCNFG you should see «Microsoft Excel Application» in the DCOM tree.
answered Mar 24, 2017 at 13:29
1
Assuming you have restarted since the install, this page explains how to attempt to re-register the COM server: TechNet Entry on Excel DCOM Config.
From a command prompt, navigate to where the Excel.exe is located and
re-register the application. On a 64-bit machine, this is located (by
default) under C:Program Files (x86)Microsoft OfficeOffice14 for
Office 2010 and C:Program Files (x86)Microsoft OfficeOffice12 for
Office 2007.
- Open a command prompt – START, RUN, type CMD.EXE but don’t hit ENTER just yet
- Find CMD.EXE in the ‘All Programs” list. Right click it and left click on “Run as administrator”
This should open a command prompt. Now, type the following:
CD
And hit ENTER. Then type:
CD C:Program Files (x86)Microsoft OfficeOffice14
And hit ENTER. Then type:
EXCEL.EXE –REGSERVER
And hit ENTER
* Note, for Microsoft Word the CMD would be:
WINWORD.EXE –REGSERVER
TylerH
20.6k64 gold badges76 silver badges97 bronze badges
answered Jul 17, 2013 at 21:23
1
Another trick is to unregister the component first.
First run:
EXCEL.EXE -UNREGSERVER
then:
EXCEL.EXE -REGSERVER
answered Jan 31, 2022 at 11:20
andrey_tandrey_t
1181 gold badge1 silver badge6 bronze badges
Start DCOMCNFG in 32-bit Mode:
DCOMCNFG -32
Then located under:
Component Services My Computer DCOM Config Microsoft Excel Application
answered Oct 19, 2015 at 18:46
Gordon BellGordon Bell
13.1k3 gold badges45 silver badges64 bronze badges
0