При работе с внешними обработками, особенно теми, которые занимаются выгрузкой или загрузкой данных в формате XML, разработчики часто сталкиваются с критической ошибкой «Ошибка при создании СОМ-объекта Msxml2.DOMDocument». Эта проблема может быть вызвана как настройками безопасности платформы 1С, так и отсутствием или некорректной регистрацией необходимых библиотек в операционной системе. Давайте вместе разберем по шагам, как выявить причину и устранить эту неисправность.
Прежде всего, проанализируем, где именно происходит вызов объекта. В 1С принципиально важно, выполняется ли код &НаКлиенте или &НаСервере. Использование внешних COM-объектов на стороне клиента (особенно в веб-клиенте) часто блокируется политиками безопасности браузера или настройками операционной системы. Попробуйте перенести логику создания объекта на серверную часть, если это возможно, либо убедитесь, что клиентское приложение имеет соответствующие права доступа к системным компонентам Windows.
Одной из частых причин является жесткая привязка кода к конкретной версии библиотеки, например, Msxml2.DOMDocument.4.0, которая считается устаревшей и может отсутствовать в современных версиях Windows. Чтобы выяснить, какие версии доступны в вашей системе, создадим небольшую тестовую внешнюю обработку. С помощью этого теста мы определим, какая именно версия библиотеки вызывает ошибку, а какая может успешно инициализироваться.
Рассмотрим пример кода для диагностики:
Попытка
// Попробуем инициализировать разные версии библиотеки
ОбъектXML = Новый COMОбъект("Msxml2.DOMDocument.6.0");
Сообщить("Версия 6.0 создана успешно!");
Исключение
Сообщить("Ошибка при создании 6.0: " + ОписаниеОшибки());
КонецПопытки;
Попытка
ОбъектXML = Новый COMОбъект("Msxml2.DOMDocument.3.0");
Сообщить("Версия 3.0 создана успешно!");
Исключение
Сообщить("Ошибка при создании 3.0: " + ОписаниеОшибки());
КонецПопытки;
Если в процессе теста выяснится, что одна из версий работает, рекомендуем изменить код основной обработки, заменив устаревший вариант на наиболее актуальный и стабильный, например, на Msxml2.DOMDocument.6.0.
Если с библиотеками всё в порядке, причиной блокировки могут выступать профили безопасности 1С. В современных конфигурациях внешние обработки могут запускаться в «безопасном режиме», который ограничивает доступ к файловой системе и внешним компонентам ОС.
Если использование COM-объектов продолжает вызывать нестабильную работу или ошибки из-за ограничений ОС, мы настоятельно рекомендуем рассмотреть штатные средства платформы 1С. Современная платформа обладает развитыми инструментами для работы с XML, которые не требуют регистрации библиотек в Windows и работают значительно быстрее:
ЧтениеXML и ЗаписьXML: Эти объекты являются встроенными и позволяют гибко управлять процессом парсинга и генерации XML-файлов без сторонних зависимостей.ФабрикаXDTO: Идеальный инструмент для работы со сложными структурами XML, позволяющий связать данные напрямую с объектами конфигурации 1С.Переход на встроенные механизмы позволит сделать ваше решение кроссплатформенным и избавит от необходимости заниматься регистрацией regsvr32 на каждом рабочем месте, что значительно упростит администрирование системы в будущем.