При попытке вызвать внешний скрипт или инициализировать элемент управления через механизм COM-соединения разработчики 1С иногда сталкиваются с ошибкой: «Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса». Разберем по шагам, почему возникает эта проблема и как ее устранить.
Рассмотрим строку кода, которая вызывает сбой:
ScrptCtrl = Новый COMОбъект("1С_ScriptControl");
Данная ошибка означает, что операционная система Windows не может найти в системном реестре зарегистрированный сервер COM с указанным идентификатором программного обеспечения (ProgID) 1С_ScriptControl.
Проанализируем основные причины, из-за которых система выдает код ошибки 0x800401F3:
MSScriptControl.ScriptControl. Имя 1С_ScriptControl не является стандартным системным ProgID и доступно только в том случае, если оно вручную создано через приложение COM+ или специфическую внешнюю библиотеку..dll или .ocx) отсутствует на компьютере или не был зарегистрирован утилитой regsvr32.Выясним причину отсутствия записи в реестре. Для этого выполним следующие действия:
Win + R, введем regedit и откроем редактор реестра.HKEY_CLASSES_ROOT и проверим наличие раздела с именем 1С_ScriptControl или MSScriptControl.ScriptControl.
// Использование стандартного системного ProgID
ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
Если для работы требуется конкретная внешняя библиотека (например, 1С_ScriptControl.dll или msscript.ocx), ее необходимо зарегистрировать в операционной системе. Разберем порядок действий:
C:\Windows\SysWOW64\).cmd.exe) от имени администратора.regsvr32:
C:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\msscript.ocx
Если сервер 1С:Предприятие или клиентское приложение работают в 64-разрядном режиме, прямой вызов 32-разрядного COM-объекта вызовет ошибку. Настроим обертку COM+ для обращения к 32-битному компоненту под именем 1С_ScriptControl:
comexp.msc в окне «Выполнить»).1С_ScriptControl и выберем тип Серверное приложение.После этой настройки вызов Новый COMОбъект("1С_ScriptControl") станет доступен из 64-битного контекста 1С.
Поскольку технология VBScript и Script Control признана устаревшей и постепенно удаляется из современных выпусков Windows, проанализируем альтернативные способы решения задач в 1С без использования сторонних COM-объектов:
ПрочитатьJSON и ЗаписатьJSON.ЗапуститьПриложение с передачей параметров.