1с невозможно создание объекта контейнером activex
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Сведения, которые пользователь должен заметить, даже если в этой статье skimmingImportant содержатся сведения, которые показывают, как уменьшить параметры безопасности или отключить функции безопасности на компьютере. Эти изменения можно выполнить для работы с определенной проблемой. Перед внесением этих изменений рекомендуется оценить риски, связанные с реализацией этого обходного решения в вашей среде. Если вы реализуете этот обход, примите соответствующие дополнительные меры для защиты компьютера.
Симптомы
Причина
Эта проблема возникает из-за того, что некоторые элементы управления, которые можно скриптами, устарели Office 2013 г. по соображениям безопасности. Это по проекту, и эти ошибки ожидаются. Эти элементы управления, которые можно использовать для скриптов, отключены с помощью определенного для версии бита, который применяется только к этим средствам управления, и это происходит только тогда, когда они используются в документе. Рекомендуется не пытаться встраить элементы управления скриптами непосредственно в документы, так как такое поведение может снизить безопасность системы.
Обходной путь
Обход warningThis может сделать компьютер или сеть более уязвимыми для атак вредоносных пользователей или вредоносных программ, таких как вирусы. Мы не рекомендуем это обходное решение, но предоставляем эту информацию, чтобы вы могли реализовать это обходное решение по своему усмотрению. Ответственность за использование этого обходного пути несет пользователь. Если вы реализуете этот обходной путь, настоятельно рекомендуется выполнить это только для элементов управления, которые необходимо использовать.
Чтобы решить эту проблему, отключайте 32-битные биты с помощью просмотра в следующих реестрах, а затем измените значение DWORD для применимого ClassID с 1024 до 0.
Для установки click-to-Run Office 2013 г. найдите следующий подки реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\15.0\Common\COM Compatibility\<ClassID>
Для установки MSI Office 2013 г. найдите следующий подкай реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\COM Compatibility\<ClassID>
Примечание Чтобы определить версию установки Office 2013 г., выполните следующие действия:
- Запустите приложение Office 2013 года, например Word 2013.
- В меню File щелкните Учетную запись.
- Если Office 2013 был установлен с помощью click-to-Run, отображается элемент "Параметры обновления". Для установки MSI элемент "Параметры обновления" не отображается.
На следующие classID-решения влияет эта проблема:
Описание | ClassID |
---|---|
Управление веб-браузером | |
Компонент скриптлета Майкрософт | |
Управление редактированием HTML | |
Управление редактированием MHTML | |
Управление редактированием DHTML | |
Управление редактированием DHTML (Сейф для скриптов) |
Wow6432Node должен быть опущен из ключей реестра для Office случаев, когда 32-битная версия Office работает в 32-битной версии Windows или 64-битная версия Office работает на 64-битной версии Windows. Однако, Wow6432Node следует включить, когда 32-битная версия Office работает на 64-битной версии Windows.
Компонент ActiveX не может создать объект
Причина
Такое поведение может произойти, если любое из следующих условий является верным:
- Объекты доступа к данным (DAO) не регистрируются должным образом.
- Отсутствуют одна или несколько ссылок.
- Существует ссылка на базу данных утилиты, которая не является допустимой.
- У вас нет необходимых разрешений для необходимых библиотек.
- Существует поврежденный файл мастера.
Решение
Причина 1: DAO не регистрируется должным образом
Перерегистрируйте библиотеку DAO 3.6. Для этого выполните следующие действия:
- На компьютере, на котором установлен Microsoft Access, или на компьютере, на котором находится Microsoft Терминал Windows Server, нажмите кнопку Пуск и нажмите кнопку Запустить. (Если вы не видите Run, вы можете найти его или открыть командную подсказку).
- В текстовом поле Run введите regsvr32, а затем путь к файлу DAO. Заключим этот путь в кавычках. Например, чтобы зарегистрировать библиотеку DAO 3.6, используйте следующую команду, которая включает путь по умолчанию к файлу библиотеки DAO: regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO360.DLL" .
Причина 2. Отсутствуют одна или несколько ссылок
Проверьте отсутствие ссылок. Для этого выполните следующие действия:
Кроме того, вы можете нажать кнопку Обзор в диалоговом окне Ссылки, чтобы просмотреть расположение файла библиотеки, связанного с отсутствующих ссылок.
Причина 3. Существует ссылка на базу данных утилиты, которая не является допустимой
С выпуском Microsoft Access 2000 ссылка на Utility не требуется. Если вы преобразовали базу данных из предыдущей версии, в списке ссылок по-прежнему может появиться ссылка на Utility. Ото всех ссылок на utility или Utility.mda. Для этого выполните следующие действия:
Причина 4. У вас нет необходимых разрешений для необходимых библиотек
Все пользователи Microsoft Access должны иметь разрешения на Windows системных папок.
Убедитесь, что у пользователей есть разрешения на чтение для всех файлов в следующих папках.
Если вы не можете предоставить разрешения на чтение, вы можете использовать такую утилиту, как Process Monitor, чтобы определить, какие файлы или файлы пользователи не имеют необходимых разрешений для использования. Чтобы получить монитор процесса, посетите следующий веб-сайт Sysinternals: Sysinternals.
Причина 5. Существует поврежденный файл мастера
Чтобы восстановить поврежденные файлы мастера, выполните следующие действия:
- Используйте Windows Explorer, чтобы найти следующие файлы мастера: Acwzmain.mde, Acwztool.mde и Acwzlib.mde.
- Измените расширение имени файла каждого файла на "старый". Например, измените Acwzmain.mde на Acwzmain.old.
- Ремонт Microsoft Access или Microsoft Office Professional, чтобы переустановить файлы Мастера.
Дополнительные сведения
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Возможности новой платформы 1С 8.2 все продолжают радовать, многие начали переводить свои конфигурации с 8.1 (а может и 7.7) на управляемые формы для использования в тонком и веб-клиентах, но уже существует множество визуальных компонент для 1С, которые используются в промышленной эксплуатации.
Как известно, MS Internet Explorer прекрасно работает с ActiveX-объектами, чем мы и воспользуемся.
Публикация компоненты.
1. На веб-сервере выкладываем файлы компоненты и html-страницу для инициализации объекта компоненты. (примеры файлов приложены к статье)
Где id - имя элемента, по которому потом будет получен объект компоненты,
2. На клиентских машинах данный веб-сервер добавляем в список "надежных узлов"
(В IE - меню "Сервис" - "Свойства обозревателя" - закладка "Безопасность" - зона "Надежные узлы")
и проверяем уровень безопасности для этой зоны (должно быть разрешено использование ActiveX)
Жмем mmc, выбираем оснастку .NET 2.0 Framework Configuration - C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorcfg.msc (если ее нет, то скачиваем из файлов статьи), выбираем в дереве "Runtime security policy", жмем Adjust Zone Security и дальше выбираем Full Trust (возможно и с меньшим доверием будет работать) для зоны, в которую внесен сайт с нашим ActiveX.
3. После проделанных действий на клиентской машине можно открыть страницу инициализации компоненты и на ней должен появиться объект компоненты.
Использование на форме тонкого клиента
Контейнером для компоненты будем использовать элемент формы с типом "Поле HTML-документа", в котором открываем страницу инициализации компоненты
Пример:
Элементы . ВК . Документ . URL = "http://s0740/components/vector.html" ;
После загрузки страницы ищем элемент по идентифиатору, написанному выше, получаем объект и подписываем нужные события компоненты.
(вот с событиями только 1 нюанс - русские названия событий IE не видит, как побороть - пока не знаю)
Пример:
ЭлементВК = Элементы . ВК . Документ . getElementById ( "vk" );
Если ЭлементВК = Неопределено Тогда
Сообщить ( "Не найден объект компоненты!" );
Возврат;
КонецЕсли;
Элементы . ВК . ТолькоПросмотр = Ложь;
ОбъектВК = ЭлементВК . contentDocument ;
ДобавитьОбработчик ОбъектВК . OnShapeMouseDoubleClick , ПриДвойномЩелчкеМышкойПоФигуре ;
После этого можно работать с объектом компоненты, как с обычным ком-объектом.
Пример использования визуальной компоненты
К статье приложен пример использования компоненты "VectorDrawing"
Эта ошибка имеет следующие причины и способы решения:
Невозможно использовать библиотеки DLL, необходимые для этого объекта, так как ее либо не удается найти, либо она была найдена, но оказалась повреждена. Убедитесь, что все связанные библиотеки DLL доступны. Например, объект доступа к данным (DAO) требует поддержку DLL, которые отличаются в зависимости от платформы. Может потребоваться повторный запуск программы установки для подобного объекта, если именно это является причиной данной ошибки.
Объект доступен на компьютере, но это лицензированный объект автоматизациии нет возможности проверить доступность лицензии, необходимой для создания его экземпляра.
Если попытка создания экземпляра является результатом вызова CreateObject или GetObject, объект должен найти ключ. В этом случае он может выполнить поиск в реестре системы или поиск специального файла, который он создает при установке (например, с расширением .LIC). Если ключ не удается найти, экземпляр объекта не может быть создан.
Если конечный пользователь неправильно настроил приложение объекта, необратимо удалил нужный файл или изменил реестр системы, объекту не удастся найти свой ключ. Если ключ не удается найти, невозможно создать экземпляр объекта. В этом случае создание экземпляра может работать в системе разработчика, но не в системе пользователя. Пользователю может понадобиться переустановка лицензированного объекта.
Вы пытаетесь использовать функцию GetObject для получения ссылки на класс, созданный с помощью Visual Basic. GetObject не может использоваться для получения ссылки на класс, созданный с помощью Visual Basic.
Доступ к объекту явным образом был запрещен. Например, вы пытаетесь получить доступ к объекту данных, который используется в данный момент и заблокирован, чтобы предотвратить ситуацию взаимоблокировки. В таком случае, возможно, вы сможете получить доступ к объекту в другое время.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Читайте также: