Ошибка при вызове конструктора записьтекста
Обновлено: 30.04.2024
Ошибка происходит при попытке загрузить из Excel в 1С, когда код обработчика выполняется не на клиенте, а на сервере и в большинстве случаев текст ошибки говорит об отсутствии прав у пользователя сервера 1С.
Особенности
Кодом со стороны 1С без изменения места исполнения не устраняется, использование других функций подключения Com также не дает положительных результатов.
Убедиться в причине ошибки возможно, если посмотреть логи системы.
Устранение:
- на сервере убиваем excel (taskkill /im excel.exe /f)
- открываем оснастку «Службы компонентов» (Пуск->Администрирование->Службы компонентов)
- в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM
- справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем пользователя с администраторскими правами, ОК.
Может оказаться, что «Microsoft Excel Application» отсутствует в списке, в данном случае
- Запускаем REGEDIT
- Открываем ветку Computer\HKEY_CLASSES_ROOT\AppID\EXCEL.EXE, если ее нет, то создаем
- Создаем в ней строковый параметр AppID =
- Выполняем команду «mmc comexp.msc /32», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты.
- После этого в Component Services должен появиться «Microsoft Excel Application»
Чтобы решить эту проблему, я включил пользователя USRV82, под которым запускается сервер приложений 1С Предприятия 8.3, в группу Distributed COM Users, но ошибка сразу не ушла, потребовалась перезагрузка.
Осложняло проблему то, что ошибка плавала: периодически выходила, либо в момент создания объекта, либо уже в момент вызова методов excel-application.
Так что нельзя однозначно сказать, что же решило проблему.
Заключение
В большинстве случаев уйти от дополнительной настройки операционной системы возможно, если использовать вызова Com-Объекта на клиенте. При правильной установке объектов они работают даже при различных по битности 1с и Excel, OS.
В моем же случае клиентские компьютеры работали на Ubuntu, поэтому вся обработка перенесена на сервер.
Бывает такое: вы прописываете для компонента пользователя и пароль.
Затем через некоторое время меняете пароль и компонент перестает работать: выходит такая же ошибка «Интерфейс не поддерживается». Следует просто вбить новый пароль.
Реклама духов принесла мне больше известности, чем любой фильм, в котором я снималась.
— Денев Катрин
112
23
Текущий релиз 3.0.61.3.Обновитесь до текущего релиза.Пометьте на удаление созданную до обновления форму РСВ-1.На новом релизе создайте новый отчет РСВ-1.
27
2
Создаем новый отчет РСВ-1, а ошибка все равно появляется
: Поле объекта не обнаружено (ПФДопТариф1)
л_Структура.Вставить("ПФДоп1"+СокрЛП(л_Строка.КодСтроки), л_Строка.ПФДопТариф1);
479
325
Открыть РСВ и посмотреть есть ли в разделе 1 графы (колоночки)"ПФ доп. тариф1" и "ПФ доп тариф2".
Если нет, то у вас документ РСВ1 образца 2012 г.Удалить!!
112
23
Скорее всего вы создали РСВ на старом релизе, а на новом пересчитываете ее.Проблема решается удалением старой формы и созданием НОВОЙ формы РСВ-1.
3
0
У нас другая проблема. Выгружаем файл РСВ-1 а при загрузки в SPUORB выдает ошибку "Неизвестный тип документа"
479
325
3
0
479
325
У вас старая информация версия 1.90 загружает файлы РСВ-1 с Камин 3.5
Да , ошибся, вышли обновления, но сейчас выгружал из камина 3.0 61,2 и проверял CHECKXML-Ufa все ОК,
Загрузить в SPU_ORB не удалось, та же ошибка.
Сформировал в SPU_ORB РСВ1_2013, выгрузил, а загрузить не могу-"Не известный тип документа".
27
2
Нет, создал я но новом, просто после обновления если нажать на кнопку создать можно увидеть 2 раза РСВ-1 и РСВ-1 (до 2012). Выбирали вторую, а оказалось надо первую.
Вложения:
27
2
Нет, создал я но новом, просто после обновления если нажать на кнопку создать можно увидеть 2 раза РСВ-1 и РСВ-1 (до 2012). Выбирали вторую, а оказалось надо первую.
Вложения:
3
0
Позвонил разработчикам SPU_ORB сказали РСВ-1 вносить руками, обновлений в этом отчетном не будет, программист а нет(((
479
325
Использование 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.
Версию можно указать и в ярлыке запуска 1С.
Можно еще попробовать самостоятельно создать COM + , но лично из своего опыта могу сказать это не помогает. Самый действенный вариант это установка х32 клиента. Так как компонента которая необходимо работает только с х32.
Так же проблема может быть непосредственно в самом коде.
Ошибка (COMOбъект) : 1 комментарий
Хотелось бы узнать и утвердиться в том, что ваша информация действительно сможет помочь людям в данной ситуации с переустановкой офисных центров и вызовов мастеров, в принципе информация интересная, информативная, но слишком много заумных слов
Например, во время синхронизации возникает ошибка Обмен данными.ОбменЗарплата3Бухгалтерия3.Отправка данных со следующим содержимом:
Причины возникновения ошибки -2147221005(0x800401F3)
Данная ошибка относится к регулярно встречающимся ошибкам 1С, и фиксируется у многих пользователей. Единственного и эффективного рецепта её решения не существует, так как она может иметь уникальную основу, и вызывается особенностями программного кода в конкретной системе.
Тем не менее к числу наиболее популярных причин ошибки -2147221005(0x800401F3) относятся следующие:
Обновление конфигурации до последней версии
Вопрос обновления конфигурации 1С на примере «1С:Бухгалтерия 3.0» я рассматривал ранее. Поэтому здесь не имеет смысла описывать данный процесс.
Запускайте 1С с правами администратора
Убедитесь, что вы запускаете систему под учётной записью администратора, а не ограниченного в правах «Гостя» или аналога.
Измените код программы
В некоторых случаях код программы может устареть и не соответствовать текущей версии 1С. Эффективным решением ошибки -2147221005(0x800401F3) является замена строки кода:
После указанной замены проблема может быть решена.
Довольно часто ошибка возникает после обновления платформы, когда во время установки новой версии не регистрируется компонента comcntr.dll .
Для регистрации компоненты вручную необходимо выполнить в PowerShell от имени администратора следующие команды:
C:\Windows\SysWOW64\regsvr32 /u "c:\Program Files\1cv8\8.3.17.1851\bin\comcntr.dll" или C:\Windows\SysWOW64\regsvr32 /u "c:\Program Files (x86)\1cv8\8.3.17.1851\bin\comcntr.dll"
C:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.17.1851\bin\comcntr.dll" или C:\Windows\SysWOW64\regsvr32 "c:\Program Files (x86)\1cv8\8.3.17.1851\bin\comcntr.dll"
Как правило, ошибка возникает при фоновом обмене данными между базами 1С или запуске синхронизации вручную. Что делать при появлении этой ошибки и куда смотреть.
Текст: «Ошибка при вызове конструктора (COMObject) по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса».
Решение — в регистрации библиотеки comcntr.dll из каталога программы для корректного вызова COMConnector.
Подготовительные действия
- отключите службу Агента сервера 1С:Предприятия и программы, возможно использующие регистрируемую DLL;
- если ранее использовалась библиотека устаревшей версии, удалите регистрацию comcntr.dll, запустив команду вызова regsvr32 с ключом /u.
Подходы к решению
В командной строке с правами Администратора выполните команду:
2. Переустановка платформы с внесением исправлений
- запускаем консоль «Службы компонентов»;
- добавляем новый элемент, переходим «Компьютеры» — «Мой компьютер» — из списка выбираем «Приложения COM+»;
- выбираем «Создать» — «Приложение»;
- в Мастере установки выбираем второй вариант «Создать новое приложение», в поле «Введите имя нового приложения:» вводим «V83COMConnector», «Способ активации» устанавливаем «Серверное приложение», нажимаем «Далее»;
- выбираем учетную запись под которой запускается приложение, по умолчанию — «Текущий (вошедший в систему) пользователь»;
- на этапах «Добавление ролей приложения» и «Добавление пользователей для ролей» нажимаем «Далее», а затем «Готово».
В ветке только что созданного приложения переходим в подветку «Компоненты» и создаем компонент:
- в контекстном меню выбираем «Создать» — «Компонент»;
- кликаем по первому варианту «Установка новых компонентов»;
- в открывшемся диалоге выбираем необходимый файл comcntr.dll и нажимаем «Открыть»;
- нажимаем «Далее» и «Готово».
Обратите внимание: после установки измените свойства объекта. Для этого переходим к ветке V83COMConnector:
- открываем свойства созданного компонента, переходим в ветку V83COMConnector — «Свойства»;
- на вкладке «Безопасность», в «Авторизация» снимаем флаг «Принудительная проверка доступа для приложений»;
- в «Политика программных ограничений» устанавливаем флаг «Применить политику программных ограничений» и выбираем «Уровень ограничений:» — «Неограниченный»;
- нажимаем «Применить» — «ОК».
Полная версия со снимками экранов — в статье на Дзен-канале.
Читайте также: