Ошибка при вызове конструктора comобъект excel
Как правило, ошибка возникает при фоновом обмене данными между базами 1С или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.
Текст: «Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса».
Решение — в регистрации библиотеки comcntr.dll из каталога программы для корректного вызова COMConnector.
Подготовительные действия
- отключите службу Агента сервера 1С:Предприятия и программы, возможно использующие регистрируемую DLL;
- если ранее использовалась библиотека устаревшей версии, удалите регистрацию comcntr.dll, запустив команду вызова regsvr32 с ключом /u.
Подходы к решению
В командной строке с правами Администратора выполните команду:
2. Переустановка платформы с внесением исправлений
- запускаем консоль «Службы компонентов»;
- добавляем новый элемент, переходим «Компьютеры» — «Мой компьютер» — из списка выбираем «Приложения COM+»;
- выбираем «Создать» — «Приложение»;
- в Мастере установки выбираем второй вариант «Создать новое приложение», в поле «Введите имя нового приложения:» вводим «V83COMConnector», «Способ активации» устанавливаем «Серверное приложение», нажимаем «Далее»;
- выбираем учетную запись под которой запускается приложение, по умолчанию — «Текущий (вошедший в систему) пользователь»;
- на этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» нажимаем «Далее», а затем «Готово».
В ветке только что созданного приложения переходим в подветку «Компоненты» и создаем компонент:
- в контекстном меню выбираем «Создать» — «Компонент»;
- кликаем по первому варианту «Установка новых компонентов»;
- в открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть»;
- нажимаем «Далее» и «Готово».
Обратите внимание: после установки измените свойства объекта. Для этого переходим к ветке V83COMConnector:
- открываем свойства созданного компонента, переходим в ветку V83COMConnector — «Свойства»;
- на вкладке «Безопасность», в «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений»;
- в «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:» — «Неограниченный»;
- нажимаем «Применить» — «ОК».
Полная версия со снимками экранов — в статье на Дзен-канале.
Ошибка при вызове конструктора (COMObject)
Всем привет, ребята ошибка распространённая. Облазил все темы. Даже в гуголе до 10 страницы добрался ничего не помогает. Все перепробовал. Вот сама ошибка. База сервернаяМожет кто подскажет что еще может быть, что еще можно сделать. Ну или хотябы вместе разберемся с этой проблемой.
Конфигурация ИТИЛ 1С:ITIL. Управление информационными технологиями предприятия. ПРОФ, редакция 1.1. Версия платформы 1С:Предприятие 8.3 (8.3.10.2466). При выполнение кода
скорее всего офис слетел на сервере. попробуй переустановить
Я пользуюсь этим способом, работает везде:
&НаКлиенте
Процедура Загрузка(Команда)
Режим = РежимДиалогаВыбораФайла.О� �крытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Фильт� � = НСтр("ru = ''; en = ''")
+ "Excel 97 • 2003 (*.xls)|*.xls|Excel 2010 и выше (*.xlsx)|*.xlsx";
ДиалогОткрытияФайла.Множе� �твенныйВыбор = Ложь;
ДиалогОткрытияФайла.Загол� �вок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбра� �ь() Тогда
ПолныйПуть = ДиалогОткрытияФайла.Полно� �ИмяФайла;
Для НомСтроки = 2 По 100 Цикл
Режим = РежимДиалогаВопрос.ОК;
Ответ = Вопрос(НСтр("ru = 'Загрузка прервана!';"
+ " en = 'Do you want to continue?'"), Режим, 0);
Если Ответ = КодВозвратаДиалога.ОК Тогда
Возврат;
КонецЕсли;
Сейчас посмотрел, офис там и не стоит. Возможно ли это влияет на данную ошибку? Хотя вроде, работало раньше без офиса на сервре. Но точно утверждать не буду
Я пользуюсь этим способом, работает везде:
&НаКлиенте
Процедура Загрузка(Команда)
Режим = РежимДиалогаВыбораФайла.О� �крытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Фильт� � = НСтр("ru = ''; en = ''")
+ "Excel 97 • 2003 (*.xls)|*.xls|Excel 2010 и выше (*.xlsx)|*.xlsx";
ДиалогОткрытияФайла.Множе� �твенныйВыбор = Ложь;
ДиалогОткрытияФайла.Загол� �вок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбра� �ь() Тогда
ПолныйПуть = ДиалогОткрытияФайла.Полно� �ИмяФайла;
Для НомСтроки = 2 По 100 Цикл
Режим = РежимДиалогаВопрос.ОК;
Ответ = Вопрос(НСтр("ru = 'Загрузка прервана!';"
+ " en = 'Do you want to continue?'"), Режим, 0);
Если Ответ = КодВозвратаДиалога.ОК Тогда
Возврат;
КонецЕсли;
&НаСервере
Процедура ЗагрузкаНаСервере(МассивЭ� �ементов,ПолныйПуть)
ВремяОплаты = СокрЛП(МассивЭлементов.Пол учить(0));
КартаКлиента = СокрЛП(МассивЭлементов.Пол учить(1));
СнятаяСумма = СокрЛП(МассивЭлементов.Пол учить(2));
ТелФ = СокрЛП(МассивЭлементов.Пол учить(3));
ДатаФ = СокрЛП(МассивЭлементов.Пол учить(4));
НомерФ = СокрЛП(МассивЭлементов.Пол учить(5));
СуммаФ = СокрЛП(МассивЭлементов.Пол учить(6));
НомСтроки = СокрЛП(МассивЭлементов.Пол учить(7));
КонецПроцедуры
Первое что нужно сделать, это запустить командную строку от имени администратора.
В командной строке Windows набираете cmd , в писке выбора появится программа с таким названием, устанавливаете курсор на эту программу и выбираете из контекстного меню «Запуск под администратором» (см. картинку ниже).
Затем ввести команду (можно двумя способами):
1. regsvr32 "C:\Program Files (x86)\1cv8[ версия платформы ]\bin\comcntr.dll"
2. C:\Program Files (x86)\1cv8[ версия платформы ]\bin>regsvr32 comcntr.dll
Прежде чем ввести эти команды нужно переместиться по каталогам. Допустим, при запуске командной строки появляется совсем другой каталог, пример можно увидеть на картинке ниже.
Для смены каталога нужно написать cd , после которого установить пробел, а затем указать тот путь, который нам нужен, например C :\ Program Files ( x 86)\1 cv 8[версия платформы]\ bin , затем после указания пути к каталогу нажимаете Enter . Смотрите пример смены каталога на картинке ниже.
Вот теперь рядом с каталогом можно ввести regsvr 32 comcntr . dll , нажать Enter и зарегистрировать компоненту (смотрите пример на картинке ниже).
Если компоненту не удалось зарегистрировать, проверьте как вы запустили командную строку, возможно, что забыли запустить от имени администратора. Если все в порядке, то нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL.
Читайте также: