Ошибка при вызове конструктора интернетпочта

Обновлено: 01.05.2024

Как правило, ошибка возникает при фоновом обмене данными между базами 1С или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.

Текст: «Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса».

Решение — в регистрации библиотеки comcntr.dll из каталога программы для корректного вызова COMConnector.

Подготовительные действия

  • отключите службу Агента сервера 1С:Предприятия и программы, возможно использующие регистрируемую DLL;
  • если ранее использовалась библиотека устаревшей версии, удалите регистрацию comcntr.dll, запустив команду вызова regsvr32 с ключом /u.

Подходы к решению

В командной строке с правами Администратора выполните команду:

2. Переустановка платформы с внесением исправлений

  • запускаем консоль «Службы компонентов»;
  • добавляем новый элемент, переходим «Компьютеры» — «Мой компьютер» — из списка выбираем «Приложения COM+»;
  • выбираем «Создать» — «Приложение»;
  • в Мастере установки выбираем второй вариант «Создать новое приложение», в поле «Введите имя нового приложения:» вводим «V83COMConnector», «Способ активации» устанавливаем «Серверное приложение», нажимаем «Далее»;
  • выбираем учетную запись под которой запускается приложение, по умолчанию — «Текущий (вошедший в систему) пользователь»;
  • на этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» нажимаем «Далее», а затем «Готово».

В ветке только что созданного приложения переходим в подветку «Компоненты» и создаем компонент:

  • в контекстном меню выбираем «Создать» — «Компонент»;
  • кликаем по первому варианту «Установка новых компонентов»;
  • в открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть»;
  • нажимаем «Далее» и «Готово».

Обратите внимание: после установки измените свойства объекта. Для этого переходим к ветке V83COMConnector:

  • открываем свойства созданного компонента, переходим в ветку V83COMConnector — «Свойства»;
  • на вкладке «Безопасность», в «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений»;
  • в «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:» — «Неограниченный»;
  • нажимаем «Применить» — «ОК».

Полная версия со снимками экранов — в статье на Дзен-канале.

По идее в модуле должны быть строки а-ля:
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "ТралиВали 8.2.");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Версия", "1.0");

Попробуй установить ("БезопасныйРежим",ложь)

Alexeytur; user803412; ulterior; GV.; Азверин; adhocprog; S_Morozov; just_Art; fst; Atticus2; Vitaly1C8; IgorXml; Ольга_tmp; PhoenixAOD; mie24; Pavel_08; SotNick; lisa_av; Uncore; kudlach; LiebeMein; Азбука Морзе; natalijnnn; vgy; + 24 – Ответить

По идее в модуле должны быть строки а-ля:
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "ТралиВали 8.2.");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Версия", "1.0");

Попробуй установить ("БезопасныйРежим",ложь)

ругается "Установлен безопасный режим. Выполнение операции запрещено"

в модуле объекта написал

(9) ответ на мой вопрос, разработчики в типовоый конфигурации ТУПО поставили УстановитьБезопасныйРежим(Истина) и срать они хотели на параметры обработки.

(6) seakuban, данный метод годится, если обработка запускается как дополнительная внешняя обработка. Если запускать внешнюю обработку через "Файл-Открыть", то такой метод не сработает.

А как решить это же проблему если я не подключаю обработку к конфигурации, а вызываю её из файла?
ВнешняяОбработка = ВнешниеОбработки.Создать(Файл.ПолноеИмя);
ВнешняяОбработка.ВыполнитьКоманду();
Команда начинает работать, но многие методы вызывают ошибку сабж(

У меня была подобная ошибка во внешней обработке: Ошибка при вызове конструктора (WSОпределения): Установлен безопасный режим. Выполнение операции запрещено
Пришлось встроить внешнюю обработку в конфигурацию, тогда всё заработало.

(12) Нет, так не надо было делать. Пишешь вот так: ВнешниеОбработки.Создать(Файл.ПолноеИмя, Ложь ); и все работает

harek78; ALF_RTF; CodeNull; neo-ti; join2us; denisros; D1C; machneff; Sveos; krendel; volex; Jack_off; It-developer; ark.zv; + 14 – Ответить

У меня другая ситуация. Серверный вариант. Есть две тачки. На одной под пользователем нет никаких ошибок при запуске внешней обработки, а на другой тачке по этим же пользователем есть ошибка. Куда копать?

НУжно обработку добавить в Дополнительные отчеты и обработки. Поскольку Система ищет элемент справочника и не находит. Если вы открываете ее как "Файл->Открыть" у вас элемент справочника ДополнительныеОтчетыИОбработки равен Неопределенно. Из-за этого возникает Ошибка.

: Ошибка при вызове метода контекста (ПодключитьВнешнююКомпоненту)
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
по причине: Установлен безопасный режим. Выполнение операции запрещено

В модуле ВПФ в функции СведенияОВнешнейОбработке() зададим право обработке на использование безопасного режима: ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
Или
Удалить в макете ВПФ в заголовке рисунок КартинкаШтрихкода.

У меня во внешней обработке для печати штрихкодов ошибка сабж в конфигурации БП 3.0.57.10 появилась после того, как убрал строку:
ПараметрыРегистрации.БезопасныйРежим=Ложь;
- это пришлось делать из-за того, что обработку необходимо было поместить во Фреш, где Не безопасный режим не допускается. По кнопке "Подробно" стало ясно, что возникает в момент подключения компоненты из общего макета КомпонентаПечатиШтрихкодов
Разобравшись с БСП 2.2.5.36 - добавил 2 строки:

Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеВнешнейКомпоненты(
"ОбщийМакет.КомпонентаПечатиШтрихкодов",
"Вывод в печатную форму штрихкода EAN13 AddOn 5");

После этого все стало работать в безопасном режиме

Есть еще одна внешняя обработка для перевода во Фреш. В ней в безопасном режиме ошибка сабж возникает при исполнении строки:
XBase = Новый XBase;
Вот никак не могу подобрать соответствующее Разрешение из выпадающего списка, чтобы получилось как наподобие с обработкой по печати штрихкодов

(18) Наконец подобрал нужное разрешение для работы с XBase в безопасном режиме:
Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
ПараметрыРегистрации.Разрешения.Добавить(Разрешение);


Странно, но помогло именно РазрешениеНаИспользованиеКаталогаВременныхФайлов, а не РазрешениеНаСозданиеCOMКласса при формировании запроса к базе Оракла

В модуле РаботаВБезопасномРежиме полно разрешений:
РазрешениеНаСозданиеCOMКласса;
РазрешениеНаИспользованиеВнешнейКомпоненты;
РазрешениеНаИспользованиеПривилегированногоРежима
и т.п.

Использование COMOбъектов в 1С это прошлый век, сейчас уже ни кто так не пишет. Раньше с его помощью реализовали печать документов. Они выгружались в Open\Libre Office и от туда уже печатались.

Появиться такая ошибка может после

1 Обновления платформы

2 Переустановки ОС и 1С

3 Обновление конфигурации

4 Проблем с офисными пакетами

Это самые распространенные.

Три способа избавиться от ошибки «Ошибка при вызове конструктора…»

И так после каких либо манипуляций с 1С у вас стала появляться ошибка.

Первый способ

Самое простое это переустановить офисные пакеты Open\Libre, так же как вариант если у вас стоял Open поставить Libre и на оборот. Это нужно для того чтобы обновить специальный компонент.

Второй способ

Попробовать зарегистрировать самостоятельно, для этого запускаем командную строку от имени администратора, переходим в каталог введя команду.

regsvr32 «C:\Program Files (x86)\1cv8\8.3.16.18.14\comcntr.dll»

Кстати данную манипуляцию нужно проводить на сервере.

Третий способ

Установить 32 битную версию клиента 1С, можно даже поверх х64. В итоге у вас появиться два ярлычка для запуска, один для х32 второй х64.

Ошибка при вызове конструктора (COMOбъект)

Версию можно указать и в ярлыке запуска 1С.

Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.

Так же проблема может быть непосредственно в самом коде.

Ошибка (COMOбъект) : 1 комментарий

Хотелось бы узнать и утвердиться в том, что ваша информация действительно сможет помочь людям в данной ситуации с переустановкой офисных центров и вызовов мастеров, в принципе информация интересная, информативная, но слишком много заумных слов



Моя организация использует в качестве корпоративной почты почту Яндекс с делегированием домена, а в качестве почтового клиента встроенную почту 1С:Документооборота. Настройка и тестирование почты велось в течение 2018 года на технологических платформах версий 8.3.10.2650 и 8.3.12.1685 и версиях конфигурации 2.1.11.5 и 2.1.12.2.

С настройками «из коробки» почта работала крайне плохо, часть пользователей перешла на web-доступ к Яндекс.Почте и выпали из корпоративной системы документооборота. Первое, что пришло на ум — перенастройка потоков сбора почты. По умолчанию учётные записи почты распределяется на потоки по 50 штук. Потоков всего 10, регламентные задачи «Прием отправка почты (номер потока)» запускаются каждые 30 секунд. Мне кажется это перебор и в настоящее время у хорошо себя зарекомендовали следующие настройки для 80 учётных записей: 2 потока, запуск каждый день с 7:00 по 23:00 каждые 600 секунд, завершать через 900 секунд, повторять через 600 секунд.

Но это не всё. Параметр «завершать через 900 секунд» введён потому, что почта очень глючит и может зависнуть. Почему? Не понятно. Техподдержка Яндекса отправила меня воспроизводить ошибки через «нормальный» почтовый клиент, а техподдержка 1С ткнула пальцем в ошибки TCP-пакетов в дампе WireShark и сказала, что у меня «неправильный» Интернет.

А ошибки очень занимательные.

Сразу скажу, что к ошибкам протокола IMAP версии 4 этот код ошибки (а у меня было ещё 41 и 6) не имеет никакого отношения. Эти коды придуманы в 1С и они их не раскрывают (я просил). Согласно этой статьи для работы с почтовыми протоколами в 2015 году использовалась open source библиотека libetran, она поддерживается до сих пор, так что может и сейчас используется. Это делает ситуацию ещё более непонятной.

Не буду расписывать разнообразие ошибок, потому что их объединяет одно: информация об ошибке ничего не объясняет, а только запутывает, гугление приводит к единичным запросам на форумах, на которые не получены ответы.

Среди законов Мёрфи есть третий закон Финэйгла, который гласит, что в любом наборе исходных данных самая надежная величина, не требующая никакой проверки, является ошибочной. После долгих тестирований и раздумий над результатами я решил усомниться в корректности работы технологической платформы с механизмами шифрования почты. Для проверки этой крамольной мысли обратил взор на программу, которая хорошо известна нам всем. Это Stunnel.

И всё. Ошибки из массовых стали единичными.

Глава 2. Выполнение задач по почте.

Выполнение задач по почте - шикарная возможность 1С:Документооборота, которая не только позволяет сэкономить на лицензиях в ряде случаев, но и организовать удалённую работу руководителей, по согласованию документов. Однако «из коробки» она также не работает при использовании Яндекс.Почты.

Я написал обработку, которая имеет 2 команды:

  • автоматическая очистка почты сервера — удаление помеченных на удаление писем, период запуска равен периоду запуска регламентного задания «Выполнение задач по почте».
  • автоматическая очистка всей почты сервера — удаление всех писем, запуск ночью один раз в день.

Единственный нюанс при запуске этой обработки, нужно указать пароль к встроенной учётной записи. Мне было лень разбираться где его хранит система.

Вот так вот выглядит более полный текст ошибки:

WSОпределения = Новый(Тип("WSОпределения"), Параметры);

Ошибка работы с Интернет: Удаленный узел не прошел проверку

ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)

10060 - Ошибка соединения с сервером

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

Загрузка cacert.pem

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

Ошибка при вызове конструктора-02

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:\Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

Ошибка при вызове конструктора-03

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
- Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
- Закройте 1С: Предприятие и запустите с правами администратора операционной системы

Читайте также: