Ошибка V82.COMConnector на сервере 64. Решение проблемы

Опубликовал Дмитрий Семенов (Sam13) в раздел Администрирование - Системное

Если сервер 1С стоит на Windows х64, то рано или поздно Вы столкнетесь с проблемой создания COM-соединения, если соединение инициируется на стороне сервера. На стороне клиента COM-соединение работает нормально, на стороне сервера вываливается с ошибкой.
Данная статья позволяет снять проблему. НО - до переустановки платформы.

В свое время столкнулся с проблемой создания COM-соединения на стороне сервера. Проблема трудно диагностируется, т.к. код, прекрасно работающий под клиентом отказывается работать на сервере, например, если код исполняет регламентное задание.

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

Ссылки по теме:

http://www.steeltrace.ru/details/articleid/22/%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-1%D1%81-com-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-64-%D0%B1%D0%B8%D1%82%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8.aspx

UpdДополнение: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar), 
то такой проблемы не будет. Уставщик позволяет поставить COM-коннектор без установки самого севера. Это полезно, когда приложение реализовано на платформе 8.3, а COM-соединение нужно к базам на 8.2.

Com64bit

За дополнение спасибо brix8x.


Приведен алгоритм настройки системы, со скрином к каждому действию.

План:

1. Остановка сервера 1С (рекомендуется, но не обязательно)

2. Регистрация компоненты comcntr.dll

3. Создание обертки COM+, позволяющей 64-битному приложению взаимодействовать с 32-битном.

4. Перезагрузка сервера (физического). Не обязательно, но рекомендуется

5. Старт сервера 1С. (обязательно :)  

 

Вызываем консоль

CMD

Регистрируем компоненту. Компонента отсутствует, если установлен только сервер 1С. Почему-то 1С публикует ее только в составе клиента.

Регистрация comcntr.dll


Запускаем службу компонентов. Описывается для Windows Server 2008 R2 Standart.

Старт службы компонентов


Регистрация нового приложения



В ветке Components добавляем новую компоненту comcntr.dll



ВАЖНО!!! После установки нужно немного изменить свойства. Эта тонкость нигде не описана, без нее у меня не работало!


Перезапуск физического сервера

Старт сервера 1С.

См. также

PowerTools от 1 000

Лучшие комментарии

3. Дмитрий Семенов (Sam13) 15.08.2013 10:27
Ну есть и есть. Пускай здесь тоже будет.
В свое время поиском ничего вменяемого найти не мог.
# Ответить
26. Evgeniy T. (hashpnd) 15.01.2016 14:49
Возможность установки CheckBox может зависить от установки флага Enforce access checks for this application
+ 1 [ CratosX; ]
# Ответить

Комментарии

1. Ёпрст Gjitk yf [eq? Ljh;b! (Ёпрст) 14.08.2013 10:43
всё это есть в сети и на сайте Гилева
# Ответить
2. Ёпрст Gjitk yf [eq? Ljh;b! (Ёпрст) 14.08.2013 10:48
ЗЫ: даже на мисте в базе знаний валяется
http://kb.mista.ru/article.php?id=870
Ответили: (29)
# Ответить
3. Дмитрий Семенов (Sam13) 15.08.2013 10:27
Ну есть и есть. Пускай здесь тоже будет.
В свое время поиском ничего вменяемого найти не мог.
# Ответить
4. no_registration no_registration (no_registration) 21.01.2014 00:03
Спасибо помогло. Я так понял мы запускаем COM+ приложение которое может работать как с 32 так и с 64. А когда это не используем то наш 64 сервер просто не знает (не может) запустить 32 библиотек.
# Ответить
5. Дмитрий Семенов (Sam13) 17.02.2014 12:39
ну вот, кому-то помогло и то хлеб. :) не зря старался значит.
А вообще эту статью я и сам часто использую. Не забиваю память лишней информацией, смотрю на картинки и делаю. :)
# Ответить
6. Vadimus Vulgaris (VDM) 04.03.2014 15:49
Пользователь локальный или доменный?
# Ответить
7. Дмитрий Семенов (Sam13) 06.03.2014 23:49
Доменный
# Ответить
8. Павел Иванов (zlakizla) 29.04.2014 08:17
Подскажите, пожалуйста, как быть если нужно зарегистрировать comcntr.dll от 2-х версий платформы? Есть 2 скрипта, которые запускают базы от 8.2.17 и 8.2.14 версий платформы.
Ответили: (9)
# Ответить
9. Марина Гинко (_qqq) 30.04.2014 12:56
(8) zlakizla, две компоненты нельзя зарегистрировать.
# Ответить
10. brix8x (brix8x) 26.05.2014 13:27
В качестве дополнения: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет. Уставщик позволяет поставить COM-коннектор без установки самого севера. Это полезно, когда приложение реализовано на платформе 8.3, а COM-соединение нужно к базам на 8.2.

Прикрепленные файлы:

COM64bit.PNG
# Ответить
11. Олег Крапивный (powerpc) 16.06.2014 12:39
А что, уже просто поставить клиента 8.2 недостаточно? Ведь установщик сам устанавливает и регистрирует соединение "v82.COMConnector". Обязательно вот так вот всё сложно делать ?
# Ответить
12. Дмитрий Семенов (Sam13) 25.06.2014 12:10
Нет, недостаточно. Проблема не в регистрации компоненты, а в конфликте размерности (32 бит и 64 бит)
# Ответить
13. Дмитрий Кудинов (ZloyProger) 13.10.2014 07:31
Доброго времени суток, коллеги! Внесу свои маленькие пять копеек - чуть подробнее опишите момент про добавление пользователей в роль CreateOwner (на скрине есть этот момент с кнопкой Add User to Role описание только добавьте) без этого у меня долго не взлетало и не мог понять в чем причина..
# Ответить
14. Дмитрий Семенов (Sam13) 22.10.2014 14:35
Насколько я помню на этом этапе просто жмем "Next" без всяких выкрутасов.
# Ответить
15. Сергей Валерьевич (4iga-buga) 04.03.2015 05:25
У меня вот такая ошибка стала вываливаться, не могу разобраться в чём дело. помогите
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
# Ответить
16. Дмитрий Семенов (Sam13) 04.03.2015 11:50
Стала вываливаться после чего? Обновления платформы?
# Ответить
17. alexkozin alexkozin (alexkozin) 20.03.2015 16:16
Вах молодца ;)
# Ответить
18. pawel lytkin (lemonline) 21.04.2015 06:42
Здравствуйте, коллеги!
Другая проблема. Соединение через com устанавливает. Но при попытки создания какого либо объекта - зависает намертво.
Платформа 8.2.19.130. Клиент-сервер.
ИмяСервера="1C.local";
ИмяБазы="db_acc";
Логин="робот";
Пароль="";

СтрокаПодключенияБух= ("Srvr="""+СокрЛП(ИмяСервера)+""";Ref="""+СокрЛП(ИмяБазы)+""";Usr="""+СокрЛП(Логин)+""";Pwd = """ + СокрЛП(Пароль) + """;");
V8= Новый COMОбъект("V82.COMConnector");
БД = V8.Connect(СтрокаПодключенияБух); /// ЗДЕСЬ ЗАВИСАЕТ!!!

БД.Обработки.УниверсальныйОбменДаннымиXML.create();
...Показать Скрыть


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

В чем может быть загвоздка?
# Ответить
19. Дмитрий Семенов (Sam13) 21.04.2015 11:36
По коду видно, что соединение COM не устанавливает.
Создает ком-коннектор без привязки к базе - это да. Но видно что зависает именно при подключении к базе.
Попробуйте подключиться сами к себе, т.е. из базы к самой себе.
Это позволит понять, проблема в базе-приемнике или где-то еще
# Ответить
20. Александр Юдаков (yudakov) 27.05.2015 20:35
Спасибо, помогло.
Перезапускать сервер не пришлось, оказалось достаточно запустить созданное приложение COM+.
Поставить крыж на "CreatorOwner" не смог (он был disabled). Пользователя USR1CV82 в эту роль добавил руками.
# Ответить
21. kiruha Дронов (kiruha) 21.10.2015 11:34
Хорошая статья, но есть пояснение. Ключевое слово в статье
Upd. Дополнение: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет.
Т.е. основная часть была написана до Upd.

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

Решение на сегодняшний момент - убить процесс com(зависло) - и вновь запустить регламент. При этом ничего останавливать не придется.
Если не помогло(затерли) - перерегистрировать библиотеку, запустить регламент.
Если не помогло - перезагрузить сервер.
Если не помогло - переустановить сервер 1С , библиотека станет автоматически.
Все делать с соответствующими правами конечно

Т.е. все решения лежат в плоскости администрирования серверов, и не нужно тут же кидаться создавать компоненты и переписывать на него код и т.д..
Написал пост - так как статьи с появлением ручной регистрации компонент под новым именем все появляются и появляются(и плюсов еще кучу набирают) и в форумах аналогично клонируют
# Ответить
22. Alakbar Azizov (Alakbar33) 06.11.2015 15:01
Никак не могу разобраться почему у меня на предпредпоследнем скриншоте "V82.COMConnector.1 Properties" в закладке "Security" поставить CheckBox на "CreateOwner" не удается. Не активен CheckBox на "CreateOwner" хоть убейся. И администратором заводил COM объект и пользователем которым инсталлировал 1С, и в роль "CreateOwner" добавлял обоих - ничего не помогает. Никто не сталкивался с подобным ?
Ответили: (24)
# Ответить
23. andrew zhmihov (zhmih) 15.11.2015 22:17
можете помочь,поставил все по пунктам на север если заходить под админом в терминалку то все нормально ком работает,а если заходить под простым пользователем то не работает

хотел уточнить,смотрите на сервере две вируталки,если заходишь под terminal админом то нормально соеднинияется,если под доменным именем,то нет, пример office/user
Ответили: (25)
# Ответить
24. Дмитрий Семенов (Sam13) 02.12.2015 16:50
(22) Alakbar33, ХЗ. Был пару раз такой глюк. Просто удалял все нафиг и начинал по новой.
# Ответить
25. Дмитрий Семенов (Sam13) 02.12.2015 17:13
(23) zhmih, Не должно влиять от кого заходишь. Соединение происходит всегда под пользователем, который прописан при установке сервера 1с (он же используется при регистрации обертки)
# Ответить
26. Evgeniy T. (hashpnd) 15.01.2016 14:49
Возможность установки CheckBox может зависить от установки флага Enforce access checks for this application
+ 1 [ CratosX; ]
# Ответить
27. Анатолий Пупкин (just86) 04.03.2016 18:07
Сделал всё по инструкции. Получил такой результат - 1 сканер ls 2208 пробросился с клиента на x64 сервер, например в спр Номенклатура делает подбор номенклатуры по штрихкоду, а вот подключить второй сканер категорически не получается. 2 сканер так же проброшен, проверку в подключении торгового оборудования проходит, но при сканировании не 1с не реагирует
# Ответить
28. Александр Карасев (KAPACEB.AA) 13.04.2016 09:17
Спасибо за статью!
Решал проблему таким же способом, но не снимал флаг "Enforce access checks...", что привело к проблемам обращения COM-соединения к сетевым ресурсам ("обертка" их просто изолировала). После снятия флага все заработало.
# Ответить
29. Олег Шалимов (CaSH_2004) 01.09.2016 17:35
(2) Да есть, но тут гораздо нагляднее что с картинками и еще есть форум где можно обсудить у кого какие проблемы.
Так что автор молодец, жалко только что для английской версии.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл