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

Обновлено: 04.07.2024

(6) Проблема у вас только одна - попытка использования устаревших и уже нихрена реально не поддерживаемых технологий.

Представь что у тебя Linux (или Mac) и действуй исходя из этого.

(7) я вангую что он ставит не там и не той разрядности
(9) Там проблемы когда несколько разных версий платформы 1С стоят или ставили криво.
Можно совместить 8.1. 8.2 и 8.3 а вот разные 8.3 глючит.
Например если 8.3.16 и 8.3.15 ну или разрядность того.
(10) неа. Я подозреваю что надо ставить на сервере, а он пытается на клиенте. Ну и х86-64 и SysWOW64 - как бы противоречие, хотя там надо просто зарегать COM+-приложение
С учетом того,что стандартный обмен все равно передает xml-файл,то можно перейти на web-сервисы без проблем.
(12) это надо публиковать базу, а мало кто это хочет делать
(13) так надо опубликовать внутри локальной сети, не надо в глобальном интернете публиковать.
мне регистрация в службах компонентов всегда помогала
Нет, версия одна и запускаю на сервере. Проблема решилась перезапуском сервера 1С. Всем спасибо за участие.
Вроде COM-соединение возможно с базой на другой версии платформы 8.3 А OLE-соединение возможно?

(кстати на 16-ю версию платформы люди жалуются, нам сейчас пока запретили её ставить)

Панель управления\Все элементы панели управления\Администрирование\Службы компонентов\Компьютеры\Мой компьютер\Приложения COM+\CommCtrl\Роли\CreatorOwner\Пользователи\
Сюда добавить пользователей ОС сервера, под кем приходится запускать регламентные задания, а главное USR1CV8.

И лучше физически перезагрузить сервер сам компьютер.

(20) > И лучше физически перезагрузить сервер сам компьютер.
У меня все базы на 8.3.10.2466 (x86-64), только одна 8.3.14.1779 (x64) на диапазоне портов 16хх. Когда к ней подключаюсь в строке подключения к имени сервера дописываю ":1640". Даже вручную делаю команду C:\Windows\SysWOW64\regsvr32 "c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll", пишет: Успешно выполнено DllRtgisterServer в c:\Program Files\1cv8\8.3.14.1779\bin\comcntr.dll. Но при этом все равно ошибка: "Несоответствие версий клиента и сервера 1С:Предприятия" (8.3.10.2466 - 8.3.14.1779).

(21) Я вот думаю сказать или нет что COM как и прочие приложения могут быть как x32 так и x64.

И короче регать думать надо что и откуда. И откуда и куда подключаться.
Ну не выйдет цыветочек и x32 не умеет с x64 через COM или OLE

Первое что нужно сделать, это запустить командную строку от имени администратора.

В командной строке Windows набираете cmd , в писке выбора появится программа с таким названием, устанавливаете курсор на эту программу и выбираете из контекстного меню «Запуск под администратором» (см. картинку ниже).

Запуск командной строки от имени администратора

Затем ввести команду (можно двумя способами):

1. regsvr32 "C:\Program Files (x86)\1cv8[ версия платформы ]\bin\comcntr.dll"

2. C:\Program Files (x86)\1cv8[ версия платформы ]\bin>regsvr32 comcntr.dll

Прежде чем ввести эти команды нужно переместиться по каталогам. Допустим, при запуске командной строки появляется совсем другой каталог, пример можно увидеть на картинке ниже.

командная строка

Для смены каталога нужно написать cd , после которого установить пробел, а затем указать тот путь, который нам нужен, например C :\ Program Files ( x 86)\1 cv 8[версия платформы]\ bin , затем после указания пути к каталогу нажимаете Enter . Смотрите пример смены каталога на картинке ниже.

смена каталога в cmd

Вот теперь рядом с каталогом можно ввести regsvr 32 comcntr . dll , нажать Enter и зарегистрировать компоненту (смотрите пример на картинке ниже).

запуск regsvr3

успешное выполнение регистрации компоненты comcntr.dll

Если компоненту не удалось зарегистрировать, проверьте как вы запустили командную строку, возможно, что забыли запустить от имени администратора. Если все в порядке, то нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL.

Ошибки, которые возникают во время работы в 1С и методы их исправления

Эта статья ориентирована на обычных пользователей и новичков, которые только начали работать с программой. Опытные программисты знают об этих ошибках и у них есть свои методы решения проблемы. Я объединила в данной статье часто возникающие ошибки.

Причин появления ошибок может быть много. Может быть нарушена целостность базы, разработчик (программист) ошибся – такое бывает, все мы люди, сами пользователи не корректно работают с базой, сбой в операционной системе и так далее.

Если специалист, с которым Вы общаетесь, работает у Вас не постоянно, то необходимо сообщить информацию о релизах платформы и конфигурации, в которых работаете в настоящий момент. Как часто и как давно возникла проблема. Возникает такая ошибка у всех пользователей или только у одного. Исходя из всей полученной информации, специалист может уже сделать какие-то выводы и дать дальнейшие рекомендации.

При возникновении программных ошибок, первое, что нужно сделать – это почистить Кешь (и Local, и Roaming) чистим в первую очередь. И при возможности перезапускаем серверы приложения и СУБД.

Теперь перейдем к рассмотрению ошибок и вариантам их исправления.

1. Как не удивительно, но бывает так, что при обновлении платформы начали появляться ошибки , например при запуске программы, но полностью работу программы не останавливает. Тут можно попробовать переустановить платформу, бывает, что ошибки в релизе. Например: в версии платформы 8.3.13.1690 от пользователей поступали жалобы на сбои программы, переустановка при этом не помогала.
При установке нового релиза ошибка больше не появляется. В таком случае приходится ждать обновления.

Если уже такое случилось, и нового релиза нет, то выход один – восстанавливать базу из бекапа.

3. При выполнении действия ссылка на код, то есть выкидывает в конфигуратор.

В данном случае ошибка в коде и нужно с помощью отладчика искать ошибку. Это может произойти из-за ошибки программиста, который не учел какие-то моменты или ошибка в новом релизе (после обновления программы стала возникать), но в любом случае - без отладчика не обойтись.

4 . Ко мне часто обращались с таким вопросом, что один пользователь может выполнять операцию, а другой нет .

Тут все просто и я в статье уже об этом писала – ограничение прав. Значит у одного пользователя предоставлено в программе больше прав.

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

5. Частые жалобы, что все сломалось, а пользователь утверждает, что ни при чем, и ничего не делал . Или такое заявление: «Я не отменял(ла) проводки, а кто-то все сломал». Как правило, в таких случаях не добьёшься правды.

Нужно смотреть журнал регистрации. Его можно найти в Пользовательском режиме в разделе «Администрирование – Обслуживание - Журнал регистрации». В Конфигураторе – «Администрирование – Журнал регистрации». Отобраться по нужным реквизитам, и посмотреть какие были изменения, и кто их сделал. Еще специальную обработку добавляли, с помощью которой видели все изменения, которые происходили с документом или справочником (но это уже по личной инициативе, своя обработка).

Журнал регистрации Обслуживание

6. С одного компьютера не войти в базу, с других – все работает

Если это файловая база , то очищаем кеш. Проверяем доступ к папке с базой. Возможно, что к папке не предоставлен общий доступ.

Если это клиент-серверный вариант , то тут может быть проблема связи или авторизации. В данном случае пингуем, анализируем системные логи и т. д. Еще помогает в решении проблемы технологический журнал, но это отдельная тема, так как неопытным специалистам будет сложно работать с ним. Технологический журнал требует хорошего понимания архитектуры работы системы и тексты запросов регистрируются на языке DBMS.

7. База запускается в конфигураторе, а в пользовательском режиме не работает

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

В случае, если такая ошибка и у других пользователей , то нужно сделать Тестирование и исправление информационной базы. В конфигураторе «Администрирование – Тестирование и исправление». Галочки устанавливаете в зависимости от ситуации.

Тестирование и исправление 1С



Можно выгрузить базу (dt), создать пустую новую базу и туда загрузить (dt) или провести тестирование средствами sql (chdbfl /).

8. База не открывается ни в конфигураторе, ни в пользовательском режиме

В данном случае решения похожи на те, что в пункте 6. То есть, очистка кеша, новое подключение базы, запуск с другого ПК – в случае ошибки на одном рабочем месте.

Если файловая база , то запустите утилиту chdbfl, для определения физической целостности базы. Утилита находится в папке: C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe

Если база на sql, то тестируйте chdbfl /.

Если все выше перечисленное не помогло, попробуйте установить новую платформу.

В пунктах 7 и 8 тоже специалисты рекомендуют не гадать, а обращаться к технологическому журналу. Это уже на Ваше усмотрение.

9. 1С закрывается с записью дампа памяти

При работе в программе, чаще всего при формировании отчетов 1с закрывается с формирование дампа памяти.

В этом случае нужно отключить аппаратное ускорение видеокарты .

Отключение аппаратного ускорения в Windows XP

  • Открываем свойства экрана через Панель управления или щелкнув правой кнопкой мыши по любой части рабочего стола (свободного без ярлыков), выбрав в контекстном меню «Свойства».
  • Откроется окно настройки дисплея. Нужно перейти на закладку «Параметры» и нажать кнопку «Дополнительно».
  • Откроется окно свойств видеокарты. Перейдите на вкладку «Диагностика».
  • Передвиньте регулятор в крайнее левое положение (то есть «нет»). Далее нажать «Применить» или «ОК».
  • Все аппаратное ускорение отключено, но изменения вступят в силу только после перезагрузки системы.

Отключение аппаратного ускорения в Windows 7

  • Открываете Панель управления (Пуск – Панель управления).
  • Открываете элемент «Экран».
  • В левой части открывшегося окна щелкните по ссылке «Настройка параметров экрана».
  • В открывшемся окне нажмите на ссылку «Дополнительные параметры».
  • Перейдите на вкладку «Диагностика» и нажмите кнопку «Изменить параметры».
  • В открывшемся окне передвиньте регулятор в крайнее левое положение («нет») и нажмите «Ок».
  • Если UAC включен, придется подтвердить, что изменения санкционированы пользователем.
  • Аппаратное ускорение отключено. Изменения вступят в силу после перезагрузки системы.

В Windows 7 не всегда активна кнопка «Изменить параметры». Если кнопка неактивна, то отключить аппаратное ускорение не возможно, значит видеокарта и драйвер не поддерживают такие настройки.

Вариант решения проблемы через отключение аппаратного ускорения предлагается у многих специалистов, но это одна из возможных причин.

Лучшее решение – это обновление драйверов видео, так как чаще всего ошибки такого характера происходят со старыми драйверами.

При возникновении этой ошибки тоже рекомендуется анализировать технологический журнал.

10. Элементы форм неправильно расположены, форма до конца не разворачивается и т.д .

Такое часто возникало в 1С 8.2., в обычных формах (ОФ). В управляемых приложениях такой ошибки я уже не видела, хотя утверждают, что такое бывает, тогда может быть виноват браузер.

Если у вас старая версия программы и такое возникает в ОФ, то либо попробуйте очистить кешь, либо в конфигураторе смотрите привязки элементов формы. Я чаще всего в этом случае исправляла привязки.

В некоторых случаях достаточно просто перезапустить сеанс, но это работает не всегда.

11. Недостаточно памяти.

Эта ошибка может возникать при обновлении конфигурации, формировании отчета, загрузке или обработке большого файла и т. д. В данном случае речь идет об адресной памяти.

Причина ошибки в том, что по умолчанию, адресная память ограничена. Для 32-х битной системы – это 2 гб., а для 64- разрядной системы – 4 гб..

Можно увеличить размер памяти. Для этого нужно:

  • запустить командную строку – «Пуск» - «Выполнить» - введите в поле « CMD » и нажмите « Enter »;
  • ввести в командной строке «bcdedit /set increaseuserva 3072″, где 3072 — размер желаемой адресной памяти;

Увеличение памяти

После успешного завершения процесса в 1С рекомендуется вернуть размер адресной памяти, если такая ошибка возникает редко. Для возврата нужно ввести в командной строке bcdedit /deletevalue increaseuserva.

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

12. Конфликт блокировок при выполнении транзакций

Конфликт блокировок встречается по следующим причинам:

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

Не стоит игнорировать конфликты блокировок. Они могут привести к дальнейшим, более грубым ошибкам в программе.

Решением проблемы конфликта блокировок в 1С 8.3 может стать перевод на ручной режим управления блокировками. Но в этом случае нужно будет самостоятельно контролировать все блокировки в системе, если вы это делать не готовы, то не торопитесь с переводом.

Быстрое решение проблемы, но при этом без поиска первопричин:

  • завершить заблокированный сеанс пользователя;
  • если очень много сотрудников и найти быстро заблокированный сеанс не возможно или жалоб несколько в одно и то же время, то можно перезагрузить сервер.

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

13. Ошибка СУБД: Внутренняя ошибка компоненты dbeng8

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

В этом случае нужно сделать Тестирование и исправление средствами конфигуратора .

  • Администрирование – Тестирование и исправление…
  • Далее устанавливаем как на картинке ниже.

Можно использовать утилиту chdbfl, она является аналогом тестирования и исправления . В пункте 8 я уже писала об этой утилите, напомню, что она находится - C:\Program Files (x86)\1cv8\8.x.x.xxx\bin\chdbfl.exe. После запуска утилиты потребуется указать путь к тестируемой базе данных и установить флаг «Исправлять обнаруженные ошибки».

Если два предыдущих способа не помогли, то можно переустановить платформу или подменить файл dbeng8.dll из другого дистрибутива программы, который находится также в папке bin .

Еще как вариант можно сделать выгрузку dt и загрузку в новую базу.

14. Ошибка SDBL: Выход за пределы размерности результата»

Такая ошибка может появиться при обновлении конфигурации или при использовании обменов по средствам РИБ (распределенных баз данных).

В этом случае может помочь один из вариантов решения.

  • Очистите кеш сервера или перезагрузите службу сервера 1С:Предприятие.
  • В менеджере SQL сервера очистить таблицы _ConfigChngR и _ConfigChngR_ExtProps (используя команду delete).
  • Может помочь обновление платформы.

15. Ошибка десериализации контактной информации не указан ожидаемый тип

Эта ошибка может появиться при переходе на новую редакцию программы. Например: переводим Бухгалтерию Предприятия с версии 2.0 на 3.0. В этом случае некорректно конвертировался справочник «Виды контактной информации» . Бывает, что ошибка описана по-другому: «Сведения о виде контактной информации были повреждены» . В обоих случаях решается ошибка одинаково.

Нужно в справочнике «Виды контактной информации» пометить на удаление поле, тогда оно перестанет отображаться.

16. Ошибка формата потока

Варианты исправлений такие же как и в предыдущих ошибках.

Удаление временных файлов, тестирование и исправление в конфигураторе или с помощью утилиты.

Если перечисленные способы не помогли, но режим 1С предприятие запускается, то можно выгрузить данные в новую базу при помощи обработки « Универсальная выгрузка/загрузка данных XML », только при этом способе можете потерять некоторые данные.

Если конфигуратор запускается, то лучше выгрузить dt , а потом загрузить в новую базу. При таком способе вы данные не потеряете.

17. Начало сеанса с информационной базой запрещено. Резервное копирование

В этом случае перед тем, как что-то делать и выбирать вариант решения проблемы, о которых я расскажу позже, нужно полностью убедиться, что никто не работает в программе (не обновляет ее) и Вы на 100 % уверены, что процесс завис.

Самый простой вариант - удалить файл блокировки 1Cv8.cdn из каталога с информационной базой . Особенно этот способ подойдет, если это файловая база .

Второй способ – это через дополнительные параметры запуска с параметром СРазрешитьРаботуПользователей /UC <пароль для разблокировки>/. На этом варианте остановимся подробней.
Такой способ подойдет в том случае если в программе был задан код для разблокировки. Задается этот код на закладке «Администрирование – Поддержка и обслуживание - Блокировка работы пользователей» (пример на картинке ниже).

Установка кода блокировки пользователей

Для того, чтобы запустить программу с дополнительными параметрами нужно выбрать из списка базу, которая заблокирована, затем нажать кнопку «Изменить» откроется окно «Редактирование информационной базы», затем «Далее», на второй закладке редактирования есть нужная нам строка «Дополнительные параметры запуска». Туда нужно ввести параметр СРазрешитьРаботуПользователей /UC 6542 , где 6542 – это пароль для разблокировки (пример на картинке ниже).

Дополнительные параметры запуска для разблокировки

Если код блокировки был задан, но его забыли , то можно посмотреть его в файле 1Cv8.cdn. Открыть этот файл нужно с помощью текстового редактора.

Если кода не знаете или не задавали , то можете попробовать использовать значение по умолчанию «/UCКодРазрешения» или «/UC КодРазрешения».

Третий вариант решения проблемы подойдет для снятия блокировки с клиент-серверной базы .

Если есть доступ к консоли сервера , то нужно открыть свойства информационной базы и убрать галку «Блокировка начала сеансов включена» (на картинке выделено красным цветом, где нужно отключить флажок).

Консоль сервера для разблокировки

Четвертый способ – это откорректировать содержимое файла 1Cv8.cdn . Открываете файл с помощью текстового редактора. Первый параметр, который на картинке подчеркнут красным цветом – является признаком блокировки. Если там стоит 1, значит база заблокирована. Если поменять на 0 и записать изменения, то база должна запуститься.

Коррекция содержимого файла cdn

18. Неверный формат хранилища данных

Причина ошибки кроется в кеше, или в нарушении целостности структуры.

Первое, что надо сделать – это почистить кешь. Если это не поможет, то запускаем Тестирование и исправление или файла chdbfl.exe , в предыдущих пунктах об этих способах я уже писала.

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

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

Рада, что эта статья пользуется спросом. Появились новые ошибки, о которых, как и обещала рассказываю во второй части.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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