-
Приветствую.
Столкнулся с проблемой:
Создал обработку, которая запускает Excel, читает файл, заполняет его и записывает.
На клиенте все великолепно выполняется.
Создал регламентное задание, которое запускает в определенное время это на сервере.
При выполнении на сервере вылезает ошибка про то, что типа MS Excel не удалось получить доступ к файлу. При этом доподлинно известно, что ком. объект Excel даже не создался (нет его в процессах диспетчера задач).
Примечательно, что если запустить обработку клиентом с машины, где установлен сервер 1С, то все выполняется.Excel = Новый COMОбъект("Excel.Application"); Книга = Excel.WorkBooks.Open("D:DstOrder.xls");Чувствую, что дело тут в том, что при работе с клиента Excel запускается из-под пользователя в реальном сеансе, а в случае сервера — под пользователем хоть и с полными правами, но без запущенного сеанса.
Сервер Windows Server 2008 R2 Standart. Service Pack 1
Как это обойти? -
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
1) Файл D:DstOrder.xls действительно существует на сервере?
2) У пользователя под которым запущен сервер есть право доступа к каталогу D:Dst? -
1. Да, файл существует. Обработка при запуске на этом же сервере из-под клиента выполняется без проблем.
2. Доступ есть. Пользователь — администратор. Пробовал файл в разные папки класть.— Объединение сообщений, 15 авг 2014 —
Полный текст ошибки. Ошибка от имени Microsoft Excel, однако процесса EXCEL в диспетчере задач нет!
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу «D:DstOrder.xls». Это может быть вызвано одной из следующих причин.
• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.— Объединение сообщений, 15 авг 2014 —
8.3.4.496
Последнее редактирование: 15 авг 2014 -
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
Т.е. сервер (ragent.exe и т.д.) стартует от имени Администратора? Или все же от USR1CV82 (не знаю как там по умолчанию под 8.3 пользователь называется).
-
У меня пользователь USR1CV81 со старых времен. Он входит в группу Администраторы.
Сейчас провел эксперимент. Зашел на сервер от имени этого пользователя и в клиенте запустил обработку — без проблем.
-
Попробовал вместо COMОбъект использовать ПолучитьCOMОбъект. Вот результат
Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2147221021(0x800401E3): Операция недоступна
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
likalim и Mark768 нравится это.
-
Спасибо тебе, добрый человек. Сам бы не допер…
-
Offline
shurikvz
Модераторы
Команда форума
Модератор- Регистрация:
- 1 окт 2009
- Сообщения:
- 8.547
- Симпатии:
- 344
- Баллы:
- 104
Да не за что.
Не совсем я это, разум это коллективный.. -
Небольшое уточнение:
При выборе «Текущий пользователь», обработка на сервере запускает Excel только в том случае, если на сервер выполнил вход кто-нибудь из пользователей.
Если это условие не выполняется, то получаем ошибку:Ошибка при вызове конструктора (COMОбъект): -2147467262(0x80004002): Интерфейс не поддерживается
На вкладке «Удостоверения» есть 3-й вариант запуска — указать конкретного пользователя и пароль.
Я указал пользователя, от имени которого работает сервер 1С (USR1CV81).
В таком варианте обработка запускает Excel при отсутствии работающих пользователей на сервере.
Это меня устраивает.В моем случае не бывает работающих пользователей на сервере и тем более, запускающих Excel
Могу предположить, что при запуске Excel любым пользователем (не USR1CV81) могут возникнуть проблемы.
Например, Excel запускается и работает, однако при старте выдает «Невозможно использовать связывание и внедрение объектов». -
Приветствую.
Когда в этой теме мне очень помогли. Восстановили сервер после аварии. Теперь восстанавливаю возможность работы пользователя USR1CV81 с Excel.
Столкнулся с тем, что в Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM теперь нет ветки Microsoft Excel Application, хотя сам Excel установлен.
Что я сделал не так? -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Переустанавливать эксель пробовали ?
-
Да, уже несколько раз и разные версии.
Вычитал в сети, что если нет ветки явно, то нужно в реестре найти его наименование в виде кода. В реестре нашел, но его кода в Настройка DCOM тоже нет. -
Offline
Ardak
- Регистрация:
- 21 дек 2015
- Сообщения:
- 1
- Симпатии:
- 1
- Баллы:
- 1
Вдруг кому понадобится
Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты. -
Offline
limus80
- Регистрация:
- 30 май 2013
- Сообщения:
- 5
- Симпатии:
- 0
- Баллы:
- 1
важное как мне кажется дополнение
ко всему вышесказанному надо добавить учетке права входа в качестве сервиса на компьютер
без этого у меня не работало на W2K12R2 -
Offline
Gucci76
Опытный в 1С- Регистрация:
- 9 мар 2008
- Сообщения:
- 75
- Симпатии:
- 0
- Баллы:
- 26
Здравствуйте.
У меня похожая проблема, но только с ВОРДом
В файловом варианте я могу Новый COMОбъект(«Word.Application»), а в клиент-серверном нет.
Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM тут НЕ нашел ворда (открывал через команду «mmc comexp.msc /32»).
|
|||
| IKSparrow
02.06.14 — 16:08 |
Код такой: Ошибка такая: Ошибка получения объекта COM: -2147221014(0x800401EA): Не удается открыть файл при помощи специального имени Платформа вот такая: 8.3.4.482 Где ошибка? |
||
| 1cVandal
1 — 02.06.14 — 16:11 |
Объект.ИмяФайла что там? |
||
| IKSparrow
2 — 02.06.14 — 16:11 |
(1) D:Книга1.xls |
||
| 1cVandal
3 — 02.06.14 — 16:14 |
Коннектор = ПолучитьCOMОбъект(Объект.ИмяФайла,»Excel.Application»); |
||
| 1cVandal
4 — 02.06.14 — 16:15 |
да и прежде чем его обрабатывать,попробуй закрой его |
||
| IKSparrow
5 — 02.06.14 — 16:16 |
(3) Неа, теперь так Ошибка получения объекта COM: -2147221005(0x800401F3): Недопустимая строка с указанием класса. Вроде же всю жизнь было Excel.Application. |
||
| salvator
6 — 02.06.14 — 16:20 |
(5) Эксель не установлен? |
||
| 1cVandal
7 — 02.06.14 — 16:20 |
(5) а он у тебя установлен? может код на сервере выполняется? |
||
| IKSparrow
8 — 02.06.14 — 16:24 |
(6) Excel установлен. |
||
| IKSparrow
9 — 02.06.14 — 16:25 |
А на сервере Excel’я нет. А у меня тонкий клиент. Стало быть мне только Excel на сервак ставить и без вариантов, да? |
||
| RomaH
10 — 02.06.14 — 16:27 |
(9) почему? — читаешь таблицу на клиенте |
||
| IKSparrow
11 — 02.06.14 — 16:32 |
(10) ТЬфу, не в тот раздел СП посмотрел и не на тот метод «ПолучитьCOMОбъект» =))) |
||
| IKSparrow
12 — 02.06.14 — 16:33 |
Ну вот же гадство. Теперь Ошибка в получении объекта COM (0x80004002) Интерфейс не поддерживается. Что за фигня. |
||
| IKSparrow
13 — 02.06.14 — 16:34 |
Процедура теперь на клиенте выполняется. |
||
|
1cVandal 14 — 02.06.14 — 17:00 |
наКлиенте |
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается
Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.
Быстрый переход
- Особенности
- Устранение:
- Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
- Заключение
Особенности
Кодом со стороны 1С без изменения места исполнения не устраняется, использование других функций подключения Com также не дает положительных результатов.
Убедиться в причине ошибки возможно, если посмотреть логи системы.
Устранение:
- на сервере убиваем excel (taskkill /im excel.exe /f)
- открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
- в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
- справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.
Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
- Запускаем REGEDIT
- Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
- Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться «Microsoft Excel Application»
Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.
Для правки использовалась оснастка Локальные пользователи и группы (lusrmgr.msc) — это инструмент, предназначенный для управления локальными пользователями и группами. Локальный пользователь или группа — это учетная запись, которой могут быть предоставлены разрешения и права на вашем компьютере.
Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.
Так что нельзя однозначно сказать, что же решило проблему.
Заключение
В большинстве случаев уйти от дополнительной настройки операционной системы возможно, если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.
В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.
Бывает такое: вы прописываете для компонента пользователя и пароль.
Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка «Интерфейс не поддерживается». Следует просто вбить новый пароль.
Закон рекламы: родившись, брэнд нуждается в рекламе для своего существования.
-
13.11.2018, 09:23
#31
Пришел за помощью
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от avm3110
А сколько есть попыток угадать какую именно библиотеку ставил «2 раза»? Где ставил (на клиенте или на сервере)? под какими правами (пользователя или админа)?
Да и по синтаксису… У тебя в диагностике:
Что явно указывает на ошибку — «лишняя запятая». Параметр «Excel.Application» должен быть
первым
правильно:
ExcelApplication = Новый COMObject(«Excel.Application»);Теперь ошибка немного другая
{ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
ExcelApplication = Новый COMObject(«Excel.Application»);
по причине:
-2147024891(0x80070005): Отказано в доступе.
-
13.11.2018, 12:13
#32
Гордость форума PRO
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от Akbar11
Регистрировал библиотеку на клиенте, под администратором. Той платформы которую запускаю
Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
Опишите поподробнее — как именно регистрируете «под администратором».
-
14.11.2018, 06:04
#33
Пришел за помощью
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от avm3110
Продолжаю занудно. Какую библиотеку регистрируете? Какой командой? У вас база файловая или клиент-сервер?
Опишите поподробнее — как именно регистрируете «под администратором».Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
Клиент — сервер
Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотеку
-
14.11.2018, 07:05
#34
Гордость форума PRO
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от Akbar11
Регистрация библиотеки командой regsvr32 «C:Program Files1cv88.3.10.2466bincomcntr.dll»
Клиент — сервер
Процес, нажимаю вин + Q, пишу командная строка строка, контекстное меню запустить от имени админа, запускаю, Логин + пароль и регистрирую библиотекуМдя-я-я… все как в анекдоте…
«Пьяный ходит вокруг фонаря ночью и о чем-то материться. Прохожий хочет помочь и участливо спрашивает в чем дело.
Да я ключи потерял и уже полчаса не могу найти — следует ответ.
прохожий оглядывает место под фонарем и удивляется. Да тут же ровный асфальт, сухо и отлично видно что ключей тут нет. Ты уверен что именно тут потерял?
Да нет.. потерял я в грязной луже, вон там в подворотне. Но там же очень темно искать и очень грязно и очень мокро — поэтому я ищу именно тут».Уважаемый… У Вас диагностика «не зарегистрирован класс Excel.Application». Ну и что же вы хотите добиться «упорством достойного лучшего применения» регистрируя библиотеку 1с предприятия????
-
Пользователь сказал cпасибо:
-
14.11.2018, 07:10
#35
Гордость форума PRO
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от Akbar11
Теперь ошибка немного другая
{ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
ExcelApplication = Новый COMObject(«Excel.Application»);
по причине:
-2147024891(0x80070005): Отказано в доступе.А эта ошибка показывает, что пользователю под которым выполняется строка
ExcelApplication = Новый COMObject(«Excel.Application»);
нет прав на создание ком-объекта.У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.
-
14.11.2018, 08:14
#36
Пришел за помощью
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от avm3110
А эта ошибка показывает, что пользователю под которым выполняется строка
ExcelApplication = Новый COMObject(«Excel.Application»);
нет прав на создание ком-объекта.У вас база клиент-серверная или файловая? Для файловой запустите 1с с правами администратора и попробуйте выполнить внешнюю обработку под админом с полными правами и правами администрирования.
В файловой все работает, даже не под админимон
-
14.11.2018, 13:33
#37
Гордость форума PRO
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от Akbar11
В файловой все работает, даже не под админимон
Поднимите файловую на сервере и там попробуйте.
Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.
Пришлите вначале результаты этого тестирования
-
27.11.2018, 03:06
#38
Пришел за помощью
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от avm3110
Поднимите файловую на сервере и там попробуйте.
Если интерактивно в файловой будет работать, а в запущенном клиенте на сервере в клиент-сервере — нет. нужно смотреть права пользователя под которым работает 1С предприятие. А есть еще ряд настоек которые нужно будет проверять.
Пришлите вначале результаты этого тестирования
Здравствуйте. В файловой на сервере все работает
Последний раз редактировалось Akbar11; 27.11.2018 в 03:23.
-
27.11.2018, 03:26
#39
Пришел за помощью
Re: Ошибка при вызове конструктора (COMObject)
На сервере ошибка
{ВнешняяОбработка.Загрузка ВITIL.Форма.Форма.Форма(123)}: Ошибка при вызове конструктора (COMObject)
ExcelApplication = Новый COMObject(«Excel.Application»);
по причине:
-2147467262(0x80004002): Интерфейс не поддерживается
-
27.11.2018, 07:59
#40
Гордость форума PRO
Re: Ошибка при вызове конструктора (COMObject)
Сообщение от Akbar11
В файловой на сервере все работает
На сервере ошибкану е-е-е-е… еще раз.. выше уже писал… Если на одном и том же компе одна и та же база поднята в файловом режиме, а затем в клиент-серверном (когда и сервер и клиент это один и тот же ком). И при этом на файловом «все работает», а на клиент-сервере подобная ошибка — следовательно проблема в правах под которым работает база.
При файл серверном — это права пользователя под которым идет запуск базы, а на клиент сервере это права пользователя под которым крутиться сервер 1С предприятия.
Решение — смотреть и фиксить эти права. Например как описано тут: — http://buh.ruboard.ru/public/196323/
Похожие темы
-
Ответов: 1
Последнее сообщение: 08.06.2017, 00:12
-
Ответов: 9
Последнее сообщение: 16.04.2014, 12:50
-
Ответов: 0
Последнее сообщение: 27.02.2014, 22:04
-
Ответов: 2
Последнее сообщение: 12.08.2013, 13:34
-
Ответов: 1
Последнее сообщение: 27.06.2013, 19:33
Социальные закладки
Социальные закладки

Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
- BB коды Вкл.
- Смайлы Вкл.
- [IMG] код Вкл.
- [VIDEO] код Вкл.
- HTML код Выкл.
Правила форума
После обновления платформы 1С на последнюю текущую версию столкнулся с ошибкой в обработке, которая работала еще до сегодняшнего дня.
Вызов осуществляется на сервере 1С:Предприятия, в управляемом приложении.
Эксель = Новый COMОбъект(«Excel.Application»);
При этом сервер приложения 1С 32х разрядный, хотя и стоит на Windows 64 битной версии.
Если запускать этот же метод на клиентской части, то помогает стандартное действие, выполненное с правами администратора:
Regsvr32 «C:Program Files (x86)1cv8(версия платформы)bincomcntr.dll»
Однако не в этом случае…
Поиск по интернету и «гугление» конечно помогает в большинстве случаев 🙂 однако вариантов было перепробовано несколько и ничего не помогло кроме следующего:
- Заходим на сервер приложений 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»
- Папка «C:WindowsSysWOW64configsystemprofileDesktop»
Источник информации © Инфостарт.
Содержание:
1. Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?
2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?
3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом
1. Почему может возникнуть ошибка при вызове конструктора (COM-объект 1С)?
Когда ты начинающий специалист 1С, то иногда приходится чувствовать себя шаманом с бубном, так как не знаешь причин ошибки и как её исправить тоже.
Сегодня мы разберем одну из ошибок, которые появляются при работе с базой, а именно ошибку при вызове конструктора (COM-объект 1С).
Ситуацию такую, мы можем наблюдать при загрузке с Excel при использовании (COM-объекта 1С), при обмене между базами. Ситуаций, когда возникает данное сообщение с возникшей проблемой довольно много при работе с программой.
Как правило, данная ошибка возникает из-за того, что при установке платформы1С не произошла автоматическая регистрация 64-х разрядной компоненты, которая отвечает за использование COM-соединения 1С 8.3. А почему это произошло, спросите? Все очень просто и в то же время сложно, если не знаешь, в чем все ядро проблемы. А причина в том, что те, у кого выдаются такие ошибки, используют 32(86) – разрядную операционную систему и ставят вместо платформы необходимой разрядности их системы, платформу 1С предназначенную для совсем другой системы.
2. С помощью чего можно исправить ошибку при вызове конструктора (COM-объект 1С)?
Исправить данную ошибку, довольно легко. Для этого необходимо всего лишь зарегистрировать библиотеку dll в реестре при помощи командной строки или программы PowerShell, в зависимости от того, что любите использовать, и команды regsvr32.
Для того чтобы выполнить команду, достаточно будет в строке написать такой текст команды «regsvr32 «C:Program Files1cv88.3.ХХ.ХХХХbincomcntr.dll»». Вместо «ХХ.ХХХХ» необходимо указать необходимый релиз платформы, библиотеку которой, необходимо зарегистрировать в реестре системы.
Если все выполнено правильно и регистрация произошла успешно, то должно выдать сообщение, как на скриншоте, об успешной регистрации библиотеки.

Администратор: Командная строка
3. Параметры при вызове конструктора (COM-объект 1С), которые регистрируют компоненты строки кода перед регистрируемым dll-файлом
Также есть некоторые особенности команды, которая регистрирует компоненты.
На данный момент я знаю только 4 параметра (которые при написании строки кода указываются перед регистрируемым dll-файлом):
· /u — параметр, отменяет регистрацию
· /i — параметр, который позволяет при необходимости, в зависимости от библиотеки.
· /n —параметр используется только для установки компоненты 1С, в основном пишется вместе с предыдущим (/I);
· /s – возможность отключить все сообщения при регистрации;
Существует, также, один немаловажный момент, что в зависимости от версии командной строки, иногда приходится прописывать путь к самой утилите.
Кстати, существуют специальные программы-инструменты, которые помогают регистрировать компоненты, без знания команд и утилит администрирования, зарегистрировать библиотеку и продолжить работать дальше.
Таких программ достаточно много и писать, какое-то одно название смысла нет.
Для того чтобы быстро и качественно решать такие проблемы, необходимо изучать разнообразные статьи, для повышения уровня знаний и квалификации.
Специалист компании «Кодерлайн»
Олег Мороз
val245
03.04.18 — 20:24
Здравствуйте
Стоит УТ 11. Клиент-серверный вариант. Загружаю данные из Excel. При попытке открыть файл конструктором
Ex=Новый ComОбъект(«Excel.Application»);
Work = Ex.workbooks.Open(СокрЛП(ПутьКФайлу));
Входит ошибка
{Обработка.ЗагрузкаНоменклатурыИзЭкзель.Форма.Форма.Форма(25)}: Ошибка при вызове конструктора (ComОбъект): -2147467262(0x80004002): No such interface supported
Обработку разрабатывал в фаловом варианте. В файловом варианте обработка проходит нормально. Excel на сервере установлен.
Кто знает, почему файл не хочет читаться в клиент-серверном варианте?
shuhard
1 — 03.04.18 — 20:27
(0)[Кто знает, почему] Все знают 100500 раз писалось про пути и учетные записи
Darych
2 — 03.04.18 — 20:28
права
val245
3 — 03.04.18 — 20:32
права в 1с или права учетных записей Windows?
Darych
4 — 03.04.18 — 20:32
вин
MaxS
5 — 03.04.18 — 20:33
Открывайте 1С-ом через Файл-Открыть
val245
6 — 03.04.18 — 20:34
(1) Ну я пока с такой проблемой не сталкивался
shuhard
7 — 03.04.18 — 20:34
(3) права учетной записи, от которой крутиться rphost
+ ну и конечно для загрузки из xls ставить на сервер эксель плохое решение, пару раз зависнет и сожрёт всю память
Cool_Profi
8 — 03.04.18 — 20:35
(7) Твой вариант решения?
tesseract
9 — 03.04.18 — 20:35
Почему просто в ТД не читать? Зачем Excel дергать?
val245
10 — 03.04.18 — 20:37
(5) Открывать 1С-ом что? обработку или Excel? Экзель открывается, правда, конечно, не читабельно..
Darych
11 — 03.04.18 — 20:37
(9) не всегда в ТД получается
val245
12 — 03.04.18 — 20:38
(9) ТД — это что?
piter3
13 — 03.04.18 — 20:38
Взять типовую загрузку из йокселя,загрузить,закрыть,забыть.
val245
14 — 03.04.18 — 20:38
табличный документ?
val245
15 — 03.04.18 — 20:39
ну так у пользователей данные в экзеле.. приходится загружать из экзель
tesseract
16 — 03.04.18 — 20:39
(14) Да он давно и Excel и ods нормально грузит.
piter3
17 — 03.04.18 — 20:39
shuhard
18 — 03.04.18 — 20:39
(8) adodb однозначно
shuhard
19 — 03.04.18 — 20:40
(16) многостраничные стал грузить совсем не давно
Darych
20 — 03.04.18 — 20:41
(18) а у него думаешь не адо?
Cool_Profi
21 — 03.04.18 — 20:41
(18) И тут мы вам покажем, как вы думаете, что?
Правильно… Вот эту ссылку
https://www.forum.mista.ru/topic.php?id=815766
shuhard
22 — 03.04.18 — 20:42
(20) ты это о чем ?
ComОбъект(«Excel.Application»);
shuhard
23 — 03.04.18 — 20:43
(21) ты неудачник и что ?
Cool_Profi
24 — 03.04.18 — 20:44
(23) А с какого перепою я неудачник? Можешь обосновать внятно?
Или у тебя перепой?
shuhard
25 — 03.04.18 — 20:47
(24) хвостик отрасти для объяснений
val245
26 — 03.04.18 — 20:48
а с чем эта ошибка связана? почему в файловом варианте читает, а в клиент-серверном читать не хочет?
shuhard
27 — 03.04.18 — 20:49
(26) пипец
ты чё, ответы не читаешь ?
ДенисЧ
28 — 03.04.18 — 20:49
(25) Так лучше видно?
tesseract
29 — 03.04.18 — 20:52
(26) Сервер и клиент находятся в разных местах. Если на одном — у них разные пользователи. См НачатьПомещениеФайла для начала.
shuhard
30 — 03.04.18 — 20:53
(28) =)
Darych
31 — 03.04.18 — 20:54
все ж написано: «No such interface supported
«
val245
32 — 03.04.18 — 20:55
сейчас пользователи подключаются через rdp. Все действия происходят на сервере..
shuhard
33 — 03.04.18 — 20:57
val245
34 — 03.04.18 — 21:01
ок. спасибо. Будем разбираться…
Вопрос При работе с Excel из 1С возникает сообщение: «Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается». Что делать?
Ответ Подробнее:
При использовании:
Excel = Новый COMОбъект("Excel.Application");
WB = Excel.Workbooks.Open(ИмяФайла);
Выдает ошибку – Ошибка при вызове конструктора (COMОбъект): Интерфейс не поддерживается.
Или другой метод:
Объект = ПолучитьCOMОбъект(ИмяФайла);
— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Класс не зарегистрирован»
или
Объект = ПолучитьCOMОбъект(ИмяФайла, "Excel.Application");
— сообщение: «Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: Сервер RPC недоступен»
Причин всех этих ошибок может быть несколько.
У службы «Запуск серверных процессов DCOM» тип запуска должен быть «Авто».
Кроме того, если служба «Агент сервера 1С:Предприятия 8.2» запускается от имени специального пользователя, то у него должны быть права на запуск компоненты «Приложение Microsoft Excel»
Служба «Агент сервера 1С:Предприятия 8.2» не должна запускаться от имени пользователя с ограниченными правами, у него должны быть права на запуск компоненты «Приложение Microsoft Excel».
Другая возможная причина: 1С предприятие установлено в 64-битном варианте, а Excel — в 32-битном. Может помочь установка 1С в 32-битном варианте (это может быть проще, чем найти 64-битный Excel)
У службы «Запуск серверных процессов DCOM» тип запуска необходимо установить в «Авто». После чего желательно перезагрузить компьютер.
Ну и как вариант, быть может поврежден установленный пакет MS Office. Необходимо попробовать переустановить его.
Next Post
-
v8
-
Программисту 1C
Пт Май 14 , 2010
Вопрос Как в запросе использовать «СокрЛП», «Лев», «Прав», т.е. как отсечь нужное количество символов? Ответ Использовать конструкцию «ВЫРАЗИТЬ»: … ГДЕ (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) «Груз» |ГДЕ | (ВЫРАЗИТЬ(усЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) &Груз … Запрос.УстановитьПараметр(«Груз»,»Груз»);
Breaking News
В этой статье речь пойдет об ошибках в COM-соединениях. Один из вариантов ошибки –
это «Ошибка при вызове конструктора (COMObject):
-2147221164(0x80040154): Класс не зарегистрирован…». Бывают и другие варианты
сообщений, все я перечислять не буду, в большинстве случаев — это означает, что
при установке платформы компонента comcntr.dll не смогла зарегистрироваться
автоматически. COM — соединения используются в обменах между конфигурациями.
У меня в готовых решениях есть обработка
загрузки сотрудников из ЗУП, в которой тоже используется COM — соединение и у
пользователей тоже может появиться ошибка. В случае с моей обработкой, при
проверке соединения, может появиться сообщение, что невозможно установить
соединение с конфигурацией ЗУП. Это
может произойти, если Вы неправильно указали настройки подключения, неправильно
настроены права пользователя, через которого Вы подключаетесь или чаще всего – проблема
в компоненте comcntr.dll, которая при смене платформы автоматически не
зарегистрировалась. Вот и рассмотрим, как ее зарегистрировать вручную.
Первое что нужно сделать, это запустить
командную строку от имени администратора.
В командной строке Windows набираете cmd, в
писке выбора появится программа с таким названием, устанавливаете курсор на эту
программу и выбираете из контекстного меню «Запуск под администратором» (см.
картинку ниже).
Затем ввести команду (можно двумя способами):
1.
regsvr32
«C:Program Files (x86)1cv8[версия платформы]bincomcntr.dll»
2.
C:Program
Files (x86)1cv8[версия платформы]bin>regsvr32 comcntr.dll
Прежде чем ввести эти команды нужно
переместиться по каталогам. Допустим, при запуске командной строки появляется
совсем другой каталог, пример можно увидеть на картинке ниже.
Для смены каталога нужно написать cd, после которого установить пробел, а
затем указать тот путь, который нам нужен, например C:Program Files (x86)1cv8[версия платформы]bin, затем после указания пути к каталогу нажимаете Enter. Смотрите пример смены каталога на
картинке ниже.
Вот теперь
рядом с каталогом можно ввести regsvr32 comcntr.dll, нажать Enter и
зарегистрировать компоненту (смотрите пример на картинке ниже).
Если все
сделали правильно, то получите сообщение (см. картинку ниже).
Если компоненту не удалось
зарегистрировать, проверьте как вы запустили командную строку, возможно, что
забыли запустить от имени администратора. Если все в порядке, то нужно отключить
службу агента сервера 1С:Предприятия и все программы, использующие эту DLL.
После сообщения об успешной регистрации,
можно вновь запустить обмен или обработку, с которой у вас возникли проблемы.
Здравствуйте. Подскажите, никто не сталкивался с такой проблемой?
Если запускать этот код из внешней обработки , то всё нормально, но как только я разместил код в общий модуль (сервер, привилегированный, вызов сервера) и подцепил рег. задание, то вылетает ошибка:
{ОбщийМодуль.DC_СлужебныйПривелегированный.Модуль(9873)}: Ошибка при вызове конструктора (COMОбъект) ExcelApp = Новый COMОбъект("Excel.Application"); по причине: -2147024891(0x80070005): Отказано в доступе.Решение:
1. Администрирование - Службы компонентов – Компьютеры – Мой компьютер – Приложения COM+ - Создать приложение – Создать новое приложение – вводим имя «V82.COMConnector»(переключатель «Серверное приложение») – Указанный пользователь (Администратор)
2. В появившейся ветке V82COMConnector – подветка Компоненты – создание нового компонента – Установка новых компонентов - <каталог 1С>bincomcntr.dll
3. Правой кнопкой по ветке V82COMConnector – Свойства – Безопасность – Снял галку «Принудительная проверка доступа для приложений» - Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»Проблема была именно с разрядностью.

Добрый день.
Написал обработку для загрузки данных из xls документа в УТ11.
На моем компьютере она работает. Но на сервере клиента выдает ошибку: «Ошибка получения объекта COM: -2147221021(0x800401E3): Операция недоступна». Я сначала подумал, что это из за того что на сервере база на SQL,
но на сервере и в файловых базах выдает такую же ошибку.
ПО моего компьютера: Win 8.1 x64, MS Office 2010.
Сервер клиента: Win Server 2008R2 Enterprise x64, MS Office 2010.
Подскажите пожалуйста, что можно предпринять для решения данной проблемы?
Ошибка при вызове конструктора (COMObject) по причине: Интерфейс не поддерживается
Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.
Быстрый переход
- Особенности
- Устранение:
- Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
- Заключение
Особенности
Кодом со стороны 1С без изменения места исполнения не устраняется, использование других функций подключения Com также не дает положительных результатов.
Убедиться в причине ошибки возможно, если посмотреть логи системы.
Устранение:
- на сервере убиваем excel (taskkill /im excel.exe /f)
- открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
- в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
- справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.
Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
- Запускаем REGEDIT
- Открываем ветку ComputerHKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID = {00020812-0000-0000-C000-000000000046}
- Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться «Microsoft Excel Application»
Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.
Для правки использовалась оснастка Локальные пользователи и группы (lusrmgr.msc) — это инструмент, предназначенный для управления локальными пользователями и группами. Локальный пользователь или группа — это учетная запись, которой могут быть предоставлены разрешения и права на вашем компьютере.
Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.
Так что нельзя однозначно сказать, что же решило проблему.
Заключение
В большинстве случаев уйти от дополнительной настройки операционной системы возможно, если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.
В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.
Бывает такое: вы прописываете для компонента пользователя и пароль.
Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка «Интерфейс не поддерживается». Следует просто вбить новый пароль.
Реклама — средство заставить людей нуждаться в том, о чем они раньше не слыхали.
| ice_ |
|
||
|---|---|---|---|
|
|
Есть серверная база, в которой необходимо подключить Excel и вывести в него данные, в файловом варианте все работает. В серверном варианте происходит следующее: при создании нового COM объекта «Excel.Aplication» не вызывает исключительной ситуации, но при этом в качестве возвращаемого значение возвращает значение «Неопределенно». при этом при самом первом проходе доходит в отладке до конца и при этом Excel все же не показывается, ничего не происходит…Не пойму в чем дело, помогите разобраться!!!! |
| Yandex |
|
||
|---|---|---|---|
|
|
| E_Migachev |
|
||
|---|---|---|---|
|
|
(0) ice_, показывай код, как вызываешь |
| ice_ |
|
||
|---|---|---|---|
|
|
Функция EXCELСоздатьCOMОбъект()
Excel = Неопределено; # Если клиент тогда Попытка Возврат Excel; КонецФункции //EXCELСоздатьCOMОбъект |
| ice_ |
|
||
|---|---|---|---|
|
|
Может дело в платформе? у меня платформа 1С:Предприятие 8.2 (8.2.18.82) |
| E_Migachev |
|
||
|---|---|---|---|
|
|
(3) ice_, а на сервере установлен Excel? у юзера под которым работает сервер 1С есть права на его использование? |
| ice_ |
|
||
|---|---|---|---|
|
|
Мой начальник утверждает, что да, установлен Excel |
| ice_ |
|
||
|---|---|---|---|
|
|
Еще раз прогнал отладку, видно из нее, что строчка COMОбъект(«Excel.Application»); не работает, просто изначально как было значение установлено в значение Неопределенно, так и остается…. |
| E_Migachev |
|
||
|---|---|---|---|
|
|
(5) ice_, если и стандартная не работает, то точно косяк в правах, не сервере недоступен COMОбъект(«Excel.Application»); |
| ice_ |
|
||
|---|---|---|---|
|
|
пробовал, |
| E_Migachev |
|
||
|---|---|---|---|
|
|
Получается что не может создать com-объект и ткт варианта два: |
| ice_ |
|
||
|---|---|---|---|
|
|
Разобрался… оказывается надо было Excel вызывать с клиента, а у меня вызывался с сервера, поэтому ничего и не происходило, т.к. все оставалось на сервере, загадка, конечно, что стандартный документ не работает. |
| Подсказка: Для выделения Кода используйте (в редакторе). |
COM-объект и Excel
lilyapo сказал(-а): 20.12.2016 13:59
COM-объект и Excel
Создаю COM-объект и пытаюсь открыть файл Excel:
ex=Новый ComОбъект(«Excel.Application»);
ex.WorkBooks.Open(Файл);
Файл существует, COM-объект создается, но при открытии файла Excel выдается сообщение:
Ошибка при вызове метода контекста (Open)
ex.WorkBooks.Open(Файл);
по причине:
Неизвестная ошибка
Сталкиваюсь с этим впервые, на других компах всю жизнь все работает, с любой платформой 8.3
Если что-то с Excel, то что?
avm3110 сказал(-а): 20.12.2016 15:25
Re: COM-объект и Excel
Создаю COM-объект и пытаюсь открыть файл Excel:
ex=Новый ComОбъект(«Excel.Application»);
ex.WorkBooks.Open(Файл);
Файл существует, COM-объект создается, но при открытии файла Excel выдается сообщение:
Ошибка при вызове метода контекста (Open)
ex.WorkBooks.Open(Файл);
по причине:
Неизвестная ошибка
Сталкиваюсь с этим впервые, на других компах всю жизнь все работает, с любой платформой 8.3
Если что-то с Excel, то что?
lilyapo сказал(-а): 20.12.2016 15:55
Re: COM-объект и Excel
avm3110 сказал(-а): 20.12.2016 16:31
Re: COM-объект и Excel
А попробуй «завернуть» в Попытку
Попытка
Excel = Новый COMОбъект(«Excel.Application»);
Excel.WorkBooks.Open(ИмяФайла);
Состояние(«Обработка файла Microsoft Excel. «);
Исключение
Сообщить(«Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!»);
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
lilyapo сказал(-а): 20.12.2016 17:04
Re: COM-объект и Excel
avm3110 сказал(-а): 20.12.2016 17:25
Re: COM-объект и Excel
[QUOTE=lilyapo;469920]Все то же самое.
Ошибка при вызове метода контекста (Open): Неизвестная ошибка
похоже у тебя проблема с com-ом. А у тебя Excel нормально в реестре зареген? Ты его видишь в com-объектах?
Попробуй подключиться к открытому «ручками» экселю
Как подключиться к запущенному Excel-евскому файлу в реальном времени, изменить его и даже не сохранять, а просто переключить окно на 1С и сразу же выгружать данные в табличную часть, лишь переключив окна
Обучение программированию на 1С
Использование COM-соединения, выгрузка в Excel через COM-объект Excel.Application
Вообще COM-объекты используют для соединения информационной базы 1С с файлом Word, Excel, Outlook или любой другой программой, поддерживающей данный интерфейс обмена данными. В этой статье рассмотрим задачу выгрузки/загрузки данных из/в MS Excel. Чтобы это осуществить воспользуемся COM-соединением и объектом Excel.Application. Для примера возьмём задачу выгрузки/загрузки данных о номенклатуре. Пример рассмотрим ниже.
COM-соединение
Что же такое COM-соединение? Component Object Model (или COM) – это технология (фирмы Microsoft) взаимодействующих компонентов, которые одновременно могут быть использованы в разных приложениях. При этом весь функционал соответствующего компонента наследуется внутрь разрабатываемого приложения. В нашем случае COM-объект Excel.Application используется внутри кода 1С для операций с файлом книги MS Excel.
Объект Excel.Application
У объекта Excel.Application существует ряд методов, которые нам могут пригодиться для реализации нижепоставленной задачи:
- ОбъектExcel.WorkBooks.Open(ИмяФайла) – Открытие книги MS Excel
- ОбъектExcel.ActiveWorkbook.Close() – Закрытие текущей книги
- ОбъектExcel.Quit() – Закрытие COM-объекта
- ОбъектExcel.Sheets(ИмяЛиста) – Получает лист книги
- ЛистExcel.Cells(НачалоСтрока, НачалоСтолбец) – Ячейка таблицы на данном листе
- ЛистExcel.Range(Ячейка1, Ячейка2) – Выделенная область
- ЯчейкаExcel.Value – Значение ячейки таблицы
- ЯчейкаExcel.Text – Текст ячейки таблицы
Постановка задачи
Итак, предположим, что в обработке 1С у нас имеется табличная часть, состоящая из следующих колонок:
Необходимо реализовать 2 функционала (сделать на форме 2 основные кнопки):
- Выгрузка табличной части в подготовленный файл MS Excel
- Загрузка табличной части из файла.
Алгоритм выгрузки/загрузки в MS Excel
Алгоритм выгрузки следующий:
- Выгружаем табличную часть в таблицу значений
- Создаём новый COM-объект Excel.Application
- Выбираем файл, открываем файл книги MS Excel
- Переходим на заданный лист книги
- Выгружаем данные в файл
- Закрываем книгу, выходим из COM-объекта.
Алгоритм загрузки следующий:
- Создаём новый COM-объект Excel.Application
- Выбираем файл, открываем файл книги MS Excel
- Переходим на заданный лист книги
- Загружаем данные из файла в таблицу значений
- Закрываем книгу, выходим из COM-объекта
- Таблицу значений выгружаем в табличную часть.
Операция выгрузки и загрузки данных о номенклатуре происходит в заранее подготовленный шаблон MS Excel.
Пример кода 1С
Код 1С я постарался разделить на отдельные функции, чтобы, скопировав, с ними можно было работать где угодно. На форме обработки 1С были созданы 3 кнопки:
В итоге в реализации алгоритма получились следующие основные процедуры и функции 1С:
- ПолучитьExcel – Получает COM-объект MS Excel;
- ЗакрытьExcel – Закрывает использование COM-объекта MS Excel;
- ПолучитьЛистExcel – Получает лист книги Excel;
- ДобавитьТабличныйДокументВExcel – Добавляет табличный документ на лист Excel (нужно для выгрузки данных);
- ПрочитатьОбластьИзExcel – Читает область ячеек с листа Excel (нужно для загрузки данных);
- ШиринаЛистаExcel – Ширина листа Excel;
- ВысотаЛистаExcel – Высота листа Excel;
- ПреобразоватьТДвТЗ – Преобразует табличный документ в таблицу значений;
- ПреобразоватьТЗвТД – Преобразует таблицу значений в табличный документ;
Для начала приведу вспомогательную функцию для открытия/сохранения файла на диске:
Настройка DCOM для Excel.Application в 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_ROOTAppIDEXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением .
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:
У вас откроется 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, вам необходимо дать права на две папки.
Вам нужно убедиться, что у вас есть две папки:
2147221005(0x800401F3): Недопустимая строка с указанием класса — что делать
При выполнении каких-либо задач с комплексом 1С (фоновый обмен данными между компонентами, запуске нужной конфигурации, проверки выполнения кода etc) может появиться сообщение об ошибке 2147221005(0x800401F3). Последняя обычно сопровождается строкой « Недопустимая строка с указанием класса » и связана с неверным кодом программы, не зарегистрированными в системе компонентами и другими релевантными факторами. Давайте разберёмся, что делать при появлении ошибки 2147221005(0x800401F3) в вашей 1С.
Суть и причины «Недопустимая строка с указанием класса»
Ошибка 2147221005(0x800401F3) относится к регулярно встречающимся ошибкам 1С, и фиксируется у многих пользователей. Единственного и эффективного рецепта её решения не существует, так как она может иметь уникальную основу, и вызывается особенностями программного кода в конкретной системе.
Тем не менее к числу наиболее популярных причин ошибки 2147221005 относятся следующие:
- Пользователь использует устаревшую конфигурацию 1С . К примеру, фиксировались случаи появления ошибки 2147221005(0x800401F3) при использовании архаичной конфигурации «Управление торговлей» при попытке обмена данными с 1С «Бухгалтерия предприятия»;
- Наличие некорректного кода программы (к примеру, обращение к устаревшему «V82.COMConnector» вместо модерного «V83.COMConnector»);
- В системе не зарегистрирована библиотека comcntr.dll , имеющая важное значение для работы 1С;
- У пользователя, запускающего определённый комплекс 1С, нет достаточных прав для работы с ним (к примеру, запуск выполняется из гостевой учётной записи, вместо учётки администратора);
- В системе не установлен (не зарегистрирован) Excel , необходимый для работы 1С.
Давайте разберёмся, как исправить ошибку 2147221005 «Недопустимая строка с указанием класса» в вашей системе 1С.
Обновите вашу конфигурацию 1С до актуальной версии
Первым делом убедитесь, что вы используете самую свежую версию конфигурации 1С. При подключении к нужным базам для выполнения обмена она может попытаться использовать устаревшую платформу (к примеру, 8.2), которая фактически отсутствует. Потому обновите вашу версию конфигурации до актуального релиза, а потом попробуйте осуществить требуемое подключение.

Запускайте 1С с правами админа
Убедитесь, что вы запускаете систему под учётной записью администратора, а не ограниченного в правах «Гостя» или аналога.
Измените код программы
В некоторых случаях код программы может устареть и не соответствовать текущей версии 1С. Эффективным решением ошибки 2147221005 является замена строки кода:
COMConnector = Новый COMObject(«V82.COMConnector»);
COMConnector = Новый COMObject(«V83.COMConnector»);
После указанной замены ошибка «Недопустимая строка с указанием класса» может быть решена.
Зарегистрируйте в системе библиотеку comcntr.dll
Если вы пользуетесь Виндовс 64, то необходимо провести корректную регистрацию в системе библиотеки comcntr.dll . Нажмите на Win+R, введите следующую строку:
C:WindowsSysWOW64regsvr32 «c:Program Files(x86)1cv88.3.12.1469bincomcntr.dll»
Вместо «8.3.12.1469» укажите установленную у вас версию технологической платформы. После этого нажмите на ввод. Указанная регистрация может помочь избавиться от ошибки 2147221005 в 1С.
Проверьте наличие установленного в системе Excel
Наличие установленного в системе Excel является необходимым элементом при обращении к нему системы 1С. Потому рекомендуем убедиться, что Эксель в системе установлен корректно, для чего нажмите Win+R, введите там Excel , и нажмите ввод. Если программа запустилась, тогда всё работает корректно. Если нет, тогда следует установить (переустановить) Excel (комплекс «MS Office») на вашей машине (машинах).
Используйте специализированные форумы 1С
Если не один из указанных советов вам не помог, обратитесь к помощи форумов, которые посещают множество программистов и специалистов 1С. В частности, рекомендуем такие форумы как forum.infostart.ru, cyberforum.ru/1c-standard, is.ideasoft.in.ua где вам могут помочь в решении возникшей дисфункции.
Заключение
В нашем материале мы разобрали, когда появляется ошибка «2147221005(0x800401F3): Недопустимая строка с указанием класса», и как можно её исправить. Данная дисфункция может иметь различные причины, а для её решения рекомендуем задействовать весь комплекс способов, перечисленным нами выше. Их выполнение может помочь устранить ошибку 2147221005 в вашей системе 1С.
ComObject Excel.Application без офисного пакета
Мне нужно прочитать файл Excel из Powershell.
Я использую этот объект:
Он прекрасно работает на машине с установкой Office, но если Office не установлен, я получаю эту ошибку:
Есть ли какая-то среда выполнения для Office, чтобы использовать ее?
3 Ответа
Там нет «runtime» для Excel, которые вы можете использовать без получения надлежащей лицензии для Excel (и установки Excel на машину). Если вы пытаетесь сделать это на сервере OS с несколькими пользователями, вам также нужно рассмотреть возможность специального лицензирования (поскольку одна лицензия Excel не будет охватывать несколько пользователей более чем вероятно).
Вы можете рассмотреть возможность использования OpenXML SDK для Office в качестве способа выполнения некоторых общих действий в файле Excel, как описано здесь . Поскольку это библиотека .NET, вы сможете использовать ее изнутри PowerShell.
Нет времени выполнения, как и доступа.
Там есть зритель, если это вам поможет.
Обзор
С помощью средства просмотра Excel можно открывать, просматривать и печатать книги Excel, даже если у вас не установлен Excel. Вы также можете скопировать данные из Excel Viewer в другую программу. Тем не менее, вы не можете редактировать данные, сохраните книгу или создайте новую книгу.
Вместо COM можно использовать активные X-объекты данных (ADO), например
Похожие вопросы:
Мне нужно закончить заявку в C#. Теперь я хочу получить функцию, которая управляет файлом Excel для получения данных. Я использовал getActiveObject(Excel.Application) , но это ничего не возвращает.
У меня есть набор документов, чтобы запросить, чтобы пользователь открыл версию только для чтения(опция рекомендуется только для чтения). Я хотел бы открыть документ excel без чтения только в.
Я ищу разъяснений относительно влияния New на объекты и сценарий. Я понимаю, что если мне нужно выполнить действия над документом excel и приложение закрыто, то я должен использовать новый.
Я пытался получить доступ к COM объектам всех экземпляров Excel 2010, зарегистрированных в ROT в Visual C# Express 2010. Я нашел код на.
Есть ли способ преобразовать .xls в .csv без установки Excel с помощью Powershell? У меня нет доступа к Excel на конкретной машине, поэтому я получаю ошибку при попытке: New-Object -ComObject.
У меня есть powershell скрипт, который использует -ComObject Word.Application. Я хотел бы использовать это в сервере windows, но у него нет Word. На данный момент , когда я выполняю, у меня есть эта.
У меня есть небольшой скрипт, который позволяет мне объединить несколько .csv к А.файлы XLSX: $path = C:UsersFrancescoMDesktopCSVResults* $csvs = Get-ChildItem $path -Include *.csv $y =.
Я столкнулся с проблемой на Powershell Excel ComObject, где я не могу принять разделитель, отличный от запятой , . Некоторые из внешних .Полученные файлы csv используют другой разделитель, например.





















