1с com неизвестная ошибка
Добрый день, дорогие друзья, я в своей работе часто сталкивался с рядом ошибок связанных с com объектами. Когда я только начинал работать в сфере ИТ, то подобные ошибки о которых пойдет речь ниже, вызывали у меня недоумение и я отправлял пользователей к программистам, но потом шло время и опыт мой рос, такие проблемы начал решать самостоятельно, теперь хочу поделиться решениями с вами.
Рассмотрим первый пример - ошибка связана с внешней обработкой EDI
Данная ошибка устраняется очень просто, вам нужно зарегистрировать excon.dll. Для этого открываем cmd от имени администратора и прописываем следующие команды
Решается не сложно, но для решения есть несколько методов и в разных ситуациях спасает тот или иной метод решения. Ниже рассмотрим примеры данной ошибки и решения.
Первое что нужно попробовать сделать на машине пользователя - это зарегистрировать comcntr.dll
Для этого открываем cmd от имени администратора и прописываем следующие команды
regsvr32 "C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
cd c:\Windows\SysWOW64 regsvr32 "C:\Program Files\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
Если данное решение не помогает, то нужно проверить на сервере 1С возникает такая же ошибка или нет, если возникает при тех же действиях, то сделать следующие действия в cmd от имени администратора
"C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver - Все что выделено жирным шрифтом, в вашем случае может отличаться
"C:\Program Files\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver " - Все что выделено жирным шрифтом, в вашем случае может отличаться
Можно создать данное com соединение с помощью "Службы Компонентов Windows" , об этом рассказывать не буду в данной статье, если вам нужна информация, пишите комменты, я свяжусь с вами и все расскажу. Если будет много пожеланий, сделаю отдельную статью на эту тему.
Если сервер 1С стоит на Windows х64, то рано или поздно Вы столкнетесь с проблемой создания COM-соединения, если соединение инициируется на стороне сервера. На стороне клиента COM-соединение работает нормально, на стороне сервера вываливается с ошибкой. Данная статья позволяет снять проблему. НО - до переустановки платформы.
В свое время столкнулся с проблемой создания COM-соединения на стороне сервера. Проблема трудно диагностируется, т.к. код, прекрасно работающий под клиентом отказывается работать на сервере, например, если код исполняет регламентное задание.
Предлагаемая ниже методика позволяет избавиться от описываемой проблемы. К сожалению, после переустановки платформы все возвращается на круги своя и процедуру приходится повторять.
Upd. Дополнение: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет. Уставщик позволяет поставить COM-коннектор без установки самого севера. Это полезно, когда приложение реализовано на платформе 8.3, а COM-соединение нужно к базам на 8.2.
За дополнение спасибо brix8x .
Приведен алгоритм настройки системы, со скрином к каждому действию.
1. Остановка сервера 1С (рекомендуется, но не обязательно)
3. Создание обертки COM+, позволяющей 64-битному приложению взаимодействовать с 32-битном.
4. Перезагрузка сервера (физического). Не обязательно, но рекомендуется
5. Старт сервера 1С. (обязательно :)
Регистрируем компоненту. Компонента отсутствует, если установлен только сервер 1С. Почему-то 1С публикует ее только в составе клиента.
Upd. Если компонента не регистрируется, то возможно придется сначала удалить старую компоненту, только затем встанет новая.
Делаем regsvr32 /u "c:\Program Files\1cv8\8.2.18.82\bin\comcntr.dll"
Затем тоже самое, но без "/u" regsvr32 "c:\Program Files\1cv8\8.2.18.82\bin\comcntr.dll"
За дополнение спасибо shur52.
Запускаем службу компонентов. Описывается для Windows Server 2008 R2 Standart.
В ветке Components добавляем новую компоненту comcntr.dll
ВАЖНО. После установки нужно немного изменить свойства. Эта тонкость нигде не описана, без нее у меня не работало!
Перезапуск физического сервера
Старт сервера 1С.
Специальные предложения
(2) Да есть, но тут гораздо нагляднее что с картинками и еще есть форум где можно обсудить у кого какие проблемы.
Так что автор молодец, жалко только что для английской версии.
Nelli_A86; rosinfo1; IML_1C; Мах; klaus38; agentesecreto; CratosX; dutlovva; Algado; Draconus; fzt; + 11 – Ответить
Спасибо помогло. Я так понял мы запускаем COM+ приложение которое может работать как с 32 так и с 64. А когда это не используем то наш 64 сервер просто не знает (не может) запустить 32 библиотек.
ну вот, кому-то помогло и то хлеб. :) не зря старался значит.
А вообще эту статью я и сам часто использую. Не забиваю память лишней информацией, смотрю на картинки и делаю. :)
Подскажите, пожалуйста, как быть если нужно зарегистрировать comcntr.dll от 2-х версий платформы? Есть 2 скрипта, которые запускают базы от 8.2.17 и 8.2.14 версий платформы.
В качестве дополнения: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет. Уставщик позволяет поставить COM-коннектор без установки самого севера. Это полезно, когда приложение реализовано на платформе 8.3, а COM-соединение нужно к базам на 8.2.
(10)
К сожалению, в таком решении тоже могут быть свои проблемы.
У меня при использовании 64-битной версии COM-коннектора на сервере 8.3 (8.3.9.1818) при подключении к базам 8.2, периодически, без видимых на то причин, умирали рабочие процессы. Начал искать по форумам - оказалось, что у некоторых наблюдаются аналогичные проблемы. Пришлось использовать 32-битную версию COM-коннектора, завернув ее в COM+ обертку. В результате все стало ОК.
(31) Ключевой момент в решении этой проблемы на 32-битность, а внепроцессность, т.е. использование COM+ приложения во внепроцессном режиме запуска.
(32)
Сергей, спасибо за подсказку. Я сначала пробовал "завернуть" в COM+ именно 64-битную библиотеку, но у меня возникли проблемы с подключением. Позже выяснилось, что ошибки были связаны с настройками безопасности, а в голове засело, что 64-битная библиотека - это зло :). Надо еще раз попробовать завернуть в COM+ 64-битную версию компоненты.
А что, уже просто поставить клиента 8.2 недостаточно? Ведь установщик сам устанавливает и регистрирует соединение "v82.COMConnector". Обязательно вот так вот всё сложно делать ?
Доброго времени суток, коллеги! Внесу свои маленькие пять копеек - чуть подробнее опишите момент про добавление пользователей в роль CreateOwner (на скрине есть этот момент с кнопкой Add User to Role описание только добавьте) без этого у меня долго не взлетало и не мог понять в чем причина..
У меня вот такая ошибка стала вываливаться, не могу разобраться в чём дело. помогите
QVX_UNKNOWN_ERROR: В результате вызова компонента COM возвращена ошибка в формате HRESULT E_FAIL.. Stack trace written to C:\Documents and Settings\All Users\Application Data\QlikTech\Custom Data\connector1c\Log\StackTrace.txt
Здравствуйте, коллеги!
Другая проблема. Соединение через com устанавливает. Но при попытки создания какого либо объекта - зависает намертво.
Платформа 8.2.19.130. Клиент-сервер.
Причем если этот код выполнять на физическом сервере 1с, то все выполняется на ура.
В чем может быть загвоздка?
По коду видно, что соединение COM не устанавливает.
Создает ком-коннектор без привязки к базе - это да. Но видно что зависает именно при подключении к базе.
Попробуйте подключиться сами к себе, т.е. из базы к самой себе.
Это позволит понять, проблема в базе-приемнике или где-то еще
Спасибо, помогло.
Перезапускать сервер не пришлось, оказалось достаточно запустить созданное приложение COM+.
Поставить крыж на "CreatorOwner" не смог (он был disabled). Пользователя USR1CV82 в эту роль добавил руками.
Upd. Дополнение: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет.
Т.е. основная часть была написана до Upd.
В настоящее время (2015 год), если вы не подключаетесь со старыми версиями - ничего такого делать не надо, платформа сама все сделает.
Причина появление ошибки - в падении , затирании, зависании процесса, т.е. типовые ошибки приложения, которые и решаются соответственно
Решение на сегодняшний момент - убить процесс com(зависло) - и вновь запустить регламент. При этом ничего останавливать не придется.
Если не помогло(затерли) - перерегистрировать библиотеку, запустить регламент.
Если не помогло - перезагрузить сервер.
Если не помогло - переустановить сервер 1С , библиотека станет автоматически.
Все делать с соответствующими правами конечно
Т.е. все решения лежат в плоскости администрирования серверов, и не нужно тут же кидаться создавать компоненты и переписывать на него код и т.д..
Написал пост - так как статьи с появлением ручной регистрации компонент под новым именем все появляются и появляются(и плюсов еще кучу набирают) и в форумах аналогично клонируют
6. Вводим имя «V82COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений - «Неограниченный».
Специальные предложения
А я обычно делаю так: запускаем cmd под администратором и выполняем команду regsvr32 /i "C:\Program Files (x86)\1cv8\8.3.10.2667\bin\comcntr.dll"
Конечно при каждом обновлении 1С платформы нужно указывать правильную версию платформы, в приведенном мною примере это 8.3.10.2667.
cleaner_it; itmind; Serg O.; Serg3141; user859251; Trancer64; user705522_constantin_h; + 7 – Ответить
(1) Тоже, как правило, так делаю. Но тут появилась проблема несовпадения версии клиента и сервера и убился с такой регистрацией - ничего не выходит. Удалил и установил заново новый релиз платформы. Зарегил dll-ку. Ничего не помогло. Коннектор остался от предыдущего релиза. Только когда снес все версии платформы и установил последнюю - заработало.
Такой чисто админский подход.
У меня проще.
(4) А вот у меня уже лет 5 такой подход (через regsvr32.exe) не работает, причём в разных компаниях и под админ. правами (когда установлено несколько версий COM-компонент 1С8) - видать что-то в политики безопасности намутили админы (а дома давно так не пробовал). Для смены версии COM спасает только подмена записи в реестре через reg файл. Но для решения указанной в теме проблемы проходится делать как указано у автора статьи. К счастью - очень редко такое бывает.
А можно поподробнее о Вашем методе? Может мне пригодится. У меня два 1С сервера на одном сервере. Когда OLE-подключаюсь из базы на одном 1С-сервере к базе на другом 1С-сервере, то возникает ошибка различия версии: серверная база правильно указана (в строке соединения к имени сервера приписываю порт), клиентская - нет:
Просмотры 19127
Загрузки 0
Рейтинг 39
Создание 27.11.17 12:22
Обновление 27.11.17 12:22
№ Публикации 705363
Тип файла Нет файла
Конфигурация 1С:Бухгалтерия 3.0
Операционная система Windows
Страна Россия
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Да
См. также
Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо
Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.
14.04.2017 68963 user700211_a.straltsou 30
Ферма ОДИНа или как управлять множеством Серверов 1С: Предприятие из одной точки
У Вас много серверов приложений 1С Предприятие разных версий и их надо мониторить и администрировать. Новое приложение для управления фермой ОДИНа как раз для тебя.
26.08.2021 1430 khorevaa 8
Легкий способ регистрации библиотеки COMCNTR.DLL (для COM-соединения)
Устали от командных строк, нюансов с разрядностью 32х/64х или ручного создания V83COMConnector в службе компонентов? Предлагаю простой способ регистрации библиотеки COMCNTR.DLL.
22.12.2020 35518 vakrikun 32
Выгрузка в dt на сервере 1С по расписанию с завершением соединений и подключением к консоли сервера через com
Была задача настроить по расписанию выгрузку серверной базы в dt, готового решения не нашел, делюсь, может, кому пригодится.
16.04.2020 10808 karamazoff 49
Копирование числовых ячеек из 1С в Excel Промо
15.01.2019 38355 itriot11 27
Пошаговая инструкция по установке веб-сервера Apache и завязка с 1С
Данная статья больше предназначена для начинающих администраторов, но «бывалые» тоже могут освежить свои знания и в этой статье в деталях расскажу, как устанавливать Apache и использовать веб-сервер для работы с 1С.
При обмене с базами возникает ошибка:
При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса
Решение ошибки подключения через COM
Все что нам надо это выполнить регистрацию COM-соединения.
Вот что говорит 1С: Программа установки сама выполняет регистрацию COM-соединения “ для компьютера”. Имеется возможность выполнить регистрацию «для пользователя» с помощью командной строки «regsvr32 /n /i:user comcntr.dll».
А вот как это сделал я с помощью командной строки и команды Regsvr32.
Пуск – Выполнить ввел команду Regsvr32 «C:\Program Files\1cv82\8.2.14.533\bin\comcntr.dll» и жмем Enter.
Regsvr32 – команда регистрирует в реестре файлы .dll как компоненты команды.
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] имя_dll
Специальные предложения
У меня была такая беда, только текст ошибки другой:
При попытке соедиения с COM-сервером произошла следующая ошибка:
Метод объекта не обнаружен (Connect)
И тоже помогло :)
Блин, а я с бубном плясал во круг служб компонентов, настроек DCOM и все что на ум приходило :)
Для Win 7 нужно создавать файл с расширением bat или cmd и выполнять от имени администратора иначе ни чего не получится.
Господа Ошибка
-2147221005(0x800401F3): Недопустимая строка с указанием класса
: Ошибка при вызове конструктора (COMОбъект)
Эксель = Новый COMОбъект("Excel.Application");
вот код
______________________________________
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
Эксель = Новый COMОбъект("Excel.Application");
Эксель.WorkBooks.Open(Путь);
Эксель.Sheets(1).Select();
.
.
____________
Везде где мог зарегистрировал comcntr.dll и в службе компонентов под учеткой админ и в настройке компонента все ок поставилось . Проблема не решилась и клиент Толстый "Управляемое и обычный". ОС 7 х64 платформа х32 на х64 тоже ставил такая же беда . Права полные запуск под админом . файл открытия Excel разблокированный что не так?
У меня ошибка осталась проделал и в реестре и в компоненте под полными правами .
: Ошибка при вызове конструктора (COMОбъект)
Эксель = Новый COMОбъект("Excel.Application");
-2147221005(0x800401F3): Недопустимая строка с указанием класса
_____
Только вот на ноуте Excel не устанавливал для открытия файла этого! Надо или не надо его устанавливать . связь 1С и Excell есть какая нибудь по билиотекам
А Вы не можете подсказать решение проблемы?:
При попытке редактирования документа выскочила ошибка: "Ошибка СУБД. Внутренняя ошибка компоненты dbeng8". Документ невозможно ни откорректировать, ни пометить на удаление.
(4) Nadegda_P,
Если файловая база 1С:Предприятие 8, то что-то подобное разок случилось в ситуации, когда пользователь в уже ранее проведенном документе перезаполнял табличную часть. И в момент этих его действий выключилось питание.
В результате получилась такая картина:
- движения документа есть,
- в списке документов он виден,
- запросами через консоль запросов получается выбрать и реквизиты документа, и строки табличных частей,
- но при открытии формы документа выдается ошибка наподобие указанной Вами, с подробностями, в которых упоминается несуществующая строка табличной части. И программа закрывается.
Попытки вылечить документ ни к чему не привели, и пришлось применить обходной путь:
1. Движения документа удалили с помощью обработки типа "Корректировка движений документов" (на Инфостарте есть такие),
2. Реквизиты документа подправили с помощью, например, "Групповой обработки объектов" - так, чтобы было видно, что не надо трогать его.
3. Сделали новый документ взамен этого, и провели его. А старый так и лежит, и никому вроде не мешает.
Если бы существовал бэкап, содержащий этот документ в нормальном состоянии, можно было бы XML-обменом попробовать загрузить документ из бэкапа. Но не было такого бэкапа.
Если файловая база 1С:Предприятие 8, то что-то подобное разок случилось в ситуации, когда пользователь в уже ранее проведенном документе перезаполнял табличную часть. И в момент этих его действий выключилось питание.
В результате получилась такая картина:
- движения документа есть,
- в списке документов он виден,
- запросами через консоль запросов получается выбрать и реквизиты документа, и строки табличных частей,
- но при открытии формы документа выдается ошибка наподобие указанной Вами, с подробностями, в которых упоминается несуществующая строка табличной части. И программа закрывается.
Попытки вылечить документ ни к чему не привели, и пришлось применить обходной путь:
1. Движения документа удалили с помощью обработки типа "Корректировка движений документов" (на Инфостарте есть такие),
2. Реквизиты документа подправили с помощью, например, "Групповой обработки объектов" - так, чтобы было видно, что не надо трогать его.
3. Сделали новый документ взамен этого, и провели его. А старый так и лежит, и никому вроде не мешает.
Если бы существовал бэкап, содержащий этот документ в нормальном состоянии, можно было бы XML-обменом попробовать загрузить документ из бэкапа. Но не было такого бэкапа.
ага, еще бы на SQL бы перевести базу, вообще цены бы вам не было )
(8) WKBAPKA,
Мы тоже не в деревне родились, и про клиент-серверный вариант работы с 1С знаем.
У меня на поддержке есть и базы файловые, и клиент-серверные в достаточном количестве.
В сети той организации, у которой эта проблема случилась, не было установленного 1С-сервера и SQL-сервера, и серверное железо не подходило для такого режима работы.
Да и пользователей в этой организации не столько, чтобы было необходимо переходить на вариант работы через сервер 1С-Предприятия.
Поэтому, раз проблема была только в одном этом документе, было сделано то, что я описал выше.
в смысле? у мну на домашней машине стоит 2005 скуль. и машина у меня не серверная.
вы бы могли эту базу вообще не поднять, там же один файл. в случае разрушения его, все, капут.
другой вопрос, что нужно покупать 1С сервер. это да. тока думаю, что они уже раза три как переплатили за ваши услуги. но то такое. не мое дело конечно.
Если пользователей не много то и железо для сервака не нужно суперское. В одной конторе 5 пользователей, стоит обычный комп проц уже не помню, но с 2 гб. оперативы, SentOS+PostgreSQL+1C все нормально работает уже 3 года.
Недавно обновлял платформу и 2 дня работали в файловом варианте, так все кричали что все ужасно тормозит.
Еще в профилях пользователей C:\Documents and Settings\….\Application Data\1C\1CEStart\1CEStart.cfg изменяем параметр UseHWLicenses=0 на UseHWLicenses=1
Отпишись ели получится
Garik8866; dante; AKV77; user895546; CratosX; user1042924; ch1mera; quNas; kondr1221; wolder; DrVitaly; mnb-next; Pavel_NT; rus_alexey; nano1c; 77dream77; StAlf; BoryaMbi; emilliya; blich; collider; sv_dima; Z_Z; Dimka74; EugeneMal; vikvikmag; barelpro; 1379511; mi0999; Татьяна_69; Xytras; busy1; alimuslim; Sh00rick; mousesport; markela; Alexion; aronskiy; sergsqr; swflash; Apolonov-Erik; smolyakov; Jon2011; Glukaman; FSerg; bar_s; + 46 – Ответить
(15)
Спасибо, то что нужно - помогло! Только я думаю надо добавить, что компоненту ещё надо запустить!
(15)
хотя у меня просто после обновления платформы перестало подключаться из базы в базу.
я попробовал.
вот только "Поставил галку «Применить политику программных ограничений» - Уровень ограничений «Неограниченный»" не нашел.
но стало наверное еще хуже.
стало примерно так ". метод Подключить не обнаружен . "
удалил Ветку V82COMConnector . и все заработало. вот только не знаю. после перезагрузки сервера что будет.
и это из Бухгалтерии 2.0 в Комплексную автоматизацию.
Но вот основную то необходимость из Бухгалтерии 2.0 в Докуметооборот сходу не получилось.
Пишет "При попытке создания обработки ОбменДаннымиXML произошла ошибка:: Поле объекта не обнаружено (ОбменДаннымиXML)"
ну есно! "Обработка.ОбменДаннымиXML" такого в ДО нет.
Чтож . будем шаманить дальше.
(15) Супер! Какой вы МОЛОДЕЦ! Столько времени промучалась с сервером! И как все просто решается! Спасибо огромное!
(15) Для Windows 7x64 у меня вот так получилось
в %systemroot%\SysWoW64\ нашел cmd.exe
далее клик на нем правой мышкой и открываю его из меню как администратор
открывается командное окно с путем: C:\Windows\system32
Далее RegSvr32 "С:\Program Files (x86)\1cv82\8.2.19.76\bin\comcntr.dll"
(15) яростно плюсанула 10 пальцами
давно пыталась решить проблему с этими коннекторами - особенно когда несколько разных платформ и выгрузка идет например с 8.2 торговли в 8.3 бухгалтерию
огромное СПАСИБО за такую подробную инструкцию.
первый вариант с regsvr32 не помогал
(15) , (77)
Спасибо, оба молодцы, хотя (77) выдал более подробную, пошаговую для "чайников" инструкцию.
Рекомендации работают .
Спасибо за то что написали об этом. Когда мне было нужно - нигде об этом не писалось. Было убито немерено времени.
Большое спасибо, сам сталкивался с такой проблемой, сломали голову, так и не смогли забороть. А сейчас попробовал и все получилось.
регистрация по новой этой dll не решило проблемы: платформа 1С:Предприятие 8.2 (8.2.13.219) - может есть еще решения проблемы.
З.Ы.
Платформу не целесообразно обновлять так как у меня распределенка - а новая платформа при изменении в конфигурации отправляет в файле обмена полностью файл конфигурации в подчиненные узлы. (по крайне мере была такая проблема)
Манипуляция с компонентой не помогла.
Regsvr32 "C:\Program Files\1cv82\8.2.14.540\bin\comcntr.dll" делал результат ноль.
Платформу переставлял, тоже не помогло.
Какие будут идеи может с компонентой есть еще какая то настройка?
Как вариант, чтобы запустить cmd в windows 7 от имени администратора, можно запустить его из папки "C:\Windows\System32" (в папке System32 есть файл cmd, который нужно запустить от имени администратора :)))
Автору респект, что поделился. Давно это проходил и, именно так решал проблему. Но не удосужился где-то зафиксировать.
если не помог не один из двух вариантов, еще есть решение?
Win Server 2003 x64
1С 8.2
пытаюсь из ЗУП подключиться к УТ
При попытке соедиения с COM-сервером произошла следующая ошибка:
: Ошибка при вызове конструктора (COMОбъект): Недопустимая строка с указанием класса: Недопустимая строка с указанием класса
У меня компонента успешно регистрируется, однако ошибка все равно вылетает. Уже сносил компа старую и новую версию платформы, комп перезагружал.
Что еще может быть?
Мне тоже помогло, но только после того, как я ЗАШЕЛ в систему как Администратор.
Просто запуск от имени Администратора не помогал.
У меня Windows 7 64-битная
Обратите на это внимание, я убил на это 6 часов.
Воспользовался советом. Винда 64 разрядная, запустил cmd от имени администратора,
командная строка Regsvr32 "C:\Program Files (x86)\1cv82\8.2.19.90\bin\comcntr.dll". путь изменил на нужный в блокноте. все сработало
Мне помогло в следующем случае:
на серваке стоит рабочая версия Бухгалтерии на платформе 8.2.17.143
Себе локально для разработки поставил наверх платформу 8.2.19.116, ибо в старой неприятный глюк с убеганием курсора в левый верхний угол. Но теперь при попытке COM-соединения с сервером от себя выскакивала ошибка несоответствия версий comcntr.dll на клиенте (у меня) и сервере (рабочая).
Зарегистрировал у себя regsvr32 "c:\Program Files (x86)\1cv82\8.2.17.143\bin\comcntr.dll" поверх 8.2.19.116 и соединение с сервером через COM теперь проходит.
Был настроен обмен между ИБ комплексной конфигурации (КА).
После обновления конфигураций в двух базах при обмене выдал эту ошибку.
Воспользовался предложенной командой - обмен восстановился.
Огромное спасибо автору.
Начат обмен данными под полными правами на сервере 1С:Предприятия по настройке "Обмен с "1С:Бухгалтерия государственного учреждения 8 (начиная с версии 1.0.2)"" 08.12.2015 20:26:28
Завершен обмен данными под полными правами на сервере 1С:Предприятия по настройке "Обмен с "1С:Бухгалтерия государственного учреждения 8 (начиная с версии 1.0.2)"" 08.12.2015 20:26:30
Отслеживаю отладкой:
в Функция ПодключитсяКИнформационнойБазе
При "Проверке подключения" ТекCOMПодключение получаем COMОбъект
При "Выполнении обмена" ТекCOMПодключение получаем Неопределено
ОбъектПодключения в обоих случаях равен "V83.COMConnector"
В чем может быть проблема. Подскажите.
(60) as7bs,
Сразу не отписался, но лучше поздно.
Проблема была решена установкой сервера 1С заново. Предполагаю, что проблема возникла из за того, что возможно, когда первоначально обновляли сервер 1С в компонентах не включили "COM-соеденение". После новой установки сервера 1С ошибка пропала.
Ошибка возникает при установке новой версии платформы/сервера 1с
Решение:
1)Деинсталлировать технологические платформы предыдущих версий(если они не требуются вам для старых версий баз)
2)Переставить нужную тех. платформу(должна быть одинаковой версии с версией сервера, если есть сервер)
3)Произвести манипуляцию типа "regsvr32 "c:\Program Files (x86)\1cv82\8.2.17.143\bin\comcntr.dll"" или ее 64 разр аналог.
как на машине, так и на сервере
p.s. при этом regsvr как не хотел нормально её регить, так и не согласился. Но работает.
Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13799)>: Ошибка при вызове конструктора
После этого начинает работать COM на стороне сервера x64.
set version=8.3.5.1625
set x64=C:\Program Files\1cv8\%version%\bin\comcntr.dll
set x32=C:\Program Files (x86)\1cv8\%version%\bin\comcntr.dll
set reg64=%systemroot%\System32\regsvr32.exe
set reg32=%systemroot%\SysWoW64\regsvr32.exe
%reg64% /i /s "%x64%"
%reg64% /u /s "%x32%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x64%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x32%"
%reg64% /i "%x64%"
В большинстве случаев никаких проблем с этой библиотекой не наблюдается - обновлятор сам автоматически регистрирует и использует библиотеку нужной версии 1с, но изредка возникают случаи (в основном на серверных ОС), когда требуются "пляски с бубном".
Как понять, что у нас проблемы с COM
Для этого нажимаем кнопку "Проверить настройки" удерживая клавишу "Shift" на клавиатуре:
При нормальной работе COM отчёт будет примерно таким:
При проблемах же с COM возникнет вот такая или похожая ошибка:
Ещё может писать, что -то типа " Не удалось создать программное подключение к 1С ".
Да, судя по тесту, у нас проблемы с COM
Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:
Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.
Кроме того, обновлятор перед тем как подключаться к базе через внешнее соединение сам дополнительно регистрирует в системе библиотеку из нужной версии платформы при помощи команды:
Итак, что мы можем предпринять?
Шаг №0
Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.
Шаг №1
Прежде всего убеждаемся, что у нас действительно проф-версия платформы, потому что для базовой версии платформы внешнее подключение к базам работать и не должно (это ограничение платформы).
Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.
Если лицензия на платформу у нас всё же не проф, а базовая, то все остальные шаги не имеют смысла. Внешнее подключение к базам у нас работать не будет (из-за ограничений платформы). Ничего не остаётся, кроме как настроить базы вот так.
Шаг №2
Далее пробуем запустить обновлятор с правами администратора.
Если у вас включён UAC, то добиться этого можно, нажав на ярлыке обновлятора правой кнопкой, и выбрав вариант "Запуск от имени администратора".
Далее выбираем базу и нажимаем кнопку "Проверить настройки". Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) - поздравляю, проблема решена. Если нет - идём дальше.
Шаг №3
В 32-битной версии ОС пробуем выполнить команду
В 64-битной версии ОС команда будет такой:
- для регистрации 64-битной платформы 1С:
- для регистрации 32-битной платформы 1С:
Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через "Запуск от имени администратора", либо через такой же запуск написанного батника.
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если этот шаг не помог - идём дальше.
Шаг №4
Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:
- Заходим в Панель управления - Администрирование - Службы компонентов.
- Переходим к ветке Компьютеры - Мой компьютер - Приложения COM+.
- В контекстном меню выбираем Создать - Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем "Далее".
- Выбираем "Создать новое приложение".
- Вводим имя "V83COMConnector". Устанавливаем переключатель "Серверное приложение". Нажимаем "Далее".
- На следующем шаге устанавливаем "Текущий пользователь". Нажимаем "Далее".
- Нажимаем "Готово".
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать - Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем "Далее".
- Выбираем "Установка новых компонентов".
- Выбираем файл \bin\comcntr.dll.
- Нажимаем "Далее" - "Готово".
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем "Свойства". В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку "Применить политику программных ограничений". Устанавливаем Уровень ограничений - "Неограниченный".
- Нажимаем "ОК".
После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.
Шаг №5
Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).
Шаг №6
Если проблема начала возникать сразу после обновления платформы 1с, то вероятнее всего новой версии платформы 1с не хватает какого-нибудь сервиспака или обновления для вашей операционной системы. Поэтому если есть возможность - ставим их все, если нет - действуем выборочно согласно этой ссылке.
Шаг №7
Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню "Запустить от имени администратора" или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Читайте также: