Меню

Ошибка при регистрации компоненты comcntr код ошибки regsvr32 13 не удалось подключиться к другой

   ЧессМастер

24.10.18 — 11:15

Всем доброе время суток !

Столкнулся со странным поведением COM.

Ситуация следующая.

На машине установлено два релиза 1С.

8.3.10.2252 32 разрядная и 8.3.11.3034 64 разрядная.

Есть база БП 3.0 (3.0.64.42).

В списке настроенных синхронизаций указана база ЗУП 3.1 находящаяся на этом же сервере 1С.

При попытке установить с ней COM соединение (Параметры подключения — Проверить подключение) получаю сообщение

Не удалось подключиться к другой программе. -2147221005(0x800401F3): Недопустимая строка с указанием класса

Делаю отмену регистрации библиотеки comcntr.dll для релиза 8.3.10.2252

regsvr32 «C:Program Files (x86)1cv88.3.10.2252bincomcntr.dll»  /u

Отмена регистрации прошла успешно.

Делаю регистрации библиотеки comcntr.dll для релиза 8.3.11.3034

regsvr32 «C:Program Files1cv88.3.11.3034bincomcntr.dll»

Регистрация прошла успешно.

Что еще необходимо сделать ?

Ранее в конфигурации использовался справочник НастройкиВыполненияОбмена где прописывались релизы используемые для подключения. Но сейчас он не используется.

Кто сталкивался с этой проблемой просьба подсказать.

   ZDenis

1 — 24.10.18 — 11:22

(0) Библиотеку на Сервере 1С регистрируешь?

   ЧессМастер

2 — 24.10.18 — 11:24

(1) Нет на локальном компе. Я же с него захожу в базу БП и из нее генерируется COM подключение в базу ЗУП

   RomanYS

3 — 24.10.18 — 11:27

(2) «из нее генерируется COM подключение» — это может происходить на сервере

   ЧессМастер

4 — 24.10.18 — 11:32

(3) То есть сделать отмену регистрации comcntr.dll и регистрацию на сервере 1С ?

   RomanYS

5 — 24.10.18 — 11:35

(4) Я не знаю, где вызывается твой ком.

   ZDenis

6 — 24.10.18 — 11:41

(4) Если это стандартный обмен БП — ЗУП, то он делается на стороне сервера, если свой, то надо смотреть где ты СОМ создаешь

   ЧессМастер

7 — 24.10.18 — 11:42

(6) Стандартный

   ZDenis

8 — 24.10.18 — 11:45

(7) тогда регистрируй на сервере, но только того релиза под которым сам сервер крутиться

   ЧессМастер

9 — 24.10.18 — 11:57

(8) На сервере зарегистрировал. Ошибка та же самая. Сервер нужно перезапускать ?

   Cyberhawk

10 — 24.10.18 — 12:00

Хост надо перезагрузить даже скорее всего

   dmrjan

11 — 24.10.18 — 12:06

Попробуй через реестр поискать библиотеку и изменить пути к ней.

   lxs

12 — 24.10.18 — 12:08

Надо на сервере регистрировать библиотеку.

   ЧессМастер

13 — 24.10.18 — 12:33

(10) Сервер перегрузил, ошибка осталась.

Какие то чудеса.

   Cyberhawk

14 — 24.10.18 — 12:34

А в чем проблема? В трех словах

   ЧессМастер

15 — 24.10.18 — 12:35

(14)

Есть база БП 3.0 (3.0.64.42).

В списке настроенных синхронизаций указана база ЗУП 3.1 находящаяся на этом же сервере 1С.

При попытке установить с ней COM соединение (Параметры подключения — Проверить подключение) получаю сообщение

Не удалось подключиться к другой программе. -2147221005(0x800401F3): Недопустимая строка с указанием класса

   ЧессМастер

16 — 24.10.18 — 12:36

Ошибка точно выглядит так:

Не удалось подключится к другой программе: -2147221005(0x800401F3): Недопустимая строка с указанием класса

   RomanYS

17 — 24.10.18 — 12:37

Здесь пишут, что regsvr32 надо другой запускать

https://helpf.pro/faq/view/1825.htm

   Cyberhawk

18 — 24.10.18 — 12:38

Для начала выяснить, где (хост и пользователь ОС) выполняется код, в строке которого возникает ошибка

   palsergeich

19 — 24.10.18 — 12:43

1) нужен ребут, иначе не работает, проверено буквально вчера.

2) https://helpf.pro/faq/view/1825.htm это действительно так

   ЧессМастер

20 — 24.10.18 — 12:46

(19) Я делал регистрацию comcntr.dll 64 битной платформы через

regsvr32 «C:Program iles1cv88.3.11.3034bincomcntr.dll»

Получил сообщение что регистрация успешная.

В статье написано то что нужно

1. Остановить сервер 1С

2. Делать регистрацию comcntr.dll 64 битной платформы через C:WindowsSysWOW64regsvr32

Эти пункты действительно важны ?

   ZDenis

21 — 24.10.18 — 13:09

(20) Проверь в реестре (поиском по имени библиотеки) что пути именно из нужного релиза. Перезапусти службу 1С. Должно работать. И главное чтобы релиз библиотеки совпадал с релизом 1С (в параметрах службы посмотри путь, откуда она запускается)

   ЧессМастер

22 — 24.10.18 — 15:35

(21) На сервере нашел интересный момент

Существуют регистрации comcntr.dll по путям которых нет в системе (возможно ранее была установлена 32 разрядная версия 1С и зарегистрирована dll).

C:Program Files (x86)1cv88.3.11.3034bincomcntr.dll

Я так понимаю что лучше это удалить ?

   ZDenis

23 — 24.10.18 — 16:34

(22) насчет удалить не уверен, лучше новый путь подсунуть

   VitShvets

24 — 24.10.18 — 17:48

(22) лучше руками ничего не удалять. А для чего именно х64 ком-конектор?

   ЧессМастер

25 — 24.10.18 — 18:25

(23) (24)

Хоть ты тресни. Ничего не помогает.

Делаю все по инструкции в https://helpf.pro/faq/view/1825.htm

Останавливаю агент сервера.

Отменяю  регистрацию

regsvr32 «C:Program Files1cv88.3.11.3034bincomcntr.dll» /u

regsvr32 «C:Program Files (x86)1cv88.3.11.3034bincomcntr.dll»  /u

Регистрирую компоненту

C:WindowsSysWOW64regsvr32 «C:Program Files1cv88.3.11.3034bincomcntr.dll»

Путь в реестре который не убирался при отмене регистрации

C:Program Files (x86)1cv88.3.11.3034bincomcntr.dll

заменил на

C:Program Files1cv88.3.11.3034bincomcntr.dll

Перезапускаю службу сервера 1С.

Захожу в БП.

В списке настроенных синхронизаций указана база ЗУП 3.1 находящаяся на этом же сервере 1С.

Открываю ее параметры. Проверить подключение.

При попытке установить с ней COM соединение (Параметры подключения — Проверить подключение) получаю сообщение

Не удалось подключиться к другой программе. -2147221005(0x800401F3): Недопустимая строка с указанием класса

   Cyberhawk

26 — 24.10.18 — 18:27

Не увидел в твоем описании перезагрузки хоста. Что-то ты бакланишь.

   ЧессМастер

27 — 24.10.18 — 18:28

Единственное что смущает — на сервере установлена англоязычная версия 1С (все диалоги на английском). В этом может быть дело ?

Но ведь 1С нормально же заходит в БП и ЗУП. Почему же COM подключение не работает ?

   ЧессМастер

28 — 24.10.18 — 18:29

(26) Службу сервера перезапускал. Сервер физически перегрузить ?

   Cyberhawk

29 — 24.10.18 — 18:32

Я все сказал

   ЧессМастер

30 — 24.10.18 — 18:34

(29) в (25) написал же «Останавливаю агент сервера. »

Потом отмена регистрации comcntr.dll

Потом регистрация.

Потом запуск службы сервера 1С.

   ЧессМастер

31 — 24.10.18 — 18:53

(29) Сервер перегрузил, ошибка осталась.

   VitShvets

32 — 24.10.18 — 19:01

Таки для чего именно х64 ком-конектор? Если везде клиенты стоят х32, то и конектор такой-же надо устанавливать. На крайний случай его можно потом через СОМ+ прописать.

Я пару недель назад, 2 дня плясал с бубном на тему подружить 1С 8.3.12 и Аксапту 2012 через х64 ком-конектор. Не победил. Тексты ошибок АХа писала столь экзотичные, что даже гугло-поиск молчал. Плюнул, взял х32, прописал в COM+, всё работает.

Вот от этих статей начинал «плясать»:

http://catalog.mista.ru/public/197627/

http://catalog.mista.ru/public/400951/

   Cyberhawk

33 — 24.10.18 — 19:05

(31) Тогда переходи к следующему моему указанию

   ЧессМастер

34 — 24.10.18 — 19:06

(32) >Таки для чего именно х64 ком-конектор?

Потому что на сервере стоит 64 битная 1С. В каталоге

C:Program Files1cv88.3.11.3034

Соответственно comcntr.dll лежит в этом же каталоге.

   ЧессМастер

35 — 24.10.18 — 19:09

(33)  У тебя написано в (18)

«Для начала выяснить, где (хост и пользователь ОС) выполняется код, в строке которого возникает ошибка»

Это уже выяснено в (6). «Если это стандартный обмен БП — ЗУП, то он делается на стороне сервера, если свой, то надо смотреть где ты СОМ создаешь».

У меня стандартная БП 3.0 которая связывается с ЗУП 3.1

Дальше идет инструкция в https://helpf.pro/faq/view/1825.htm

Сделал все как в ней сказано. Начиная с остановки службы сервера 1С. Далее удаление регистрации компонент. Далее регистрация. Далее перезагрузка сервера.

   Cyberhawk

36 — 24.10.18 — 19:11

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

   ЧессМастер

37 — 24.10.18 — 19:16

(36) От тебя за всю ветку ноль полезной информации но очень много пафоса. Если нечего сказать по теме может не стоит время тратить ?

   VitShvets

38 — 24.10.18 — 19:22

(34) >> Потому что на сервере стоит 64 битная 1С. В каталоге

Это осознанное решение? Когда х64 платформу ставили, поставили флаг «СОМ-Coединение»?

   Cyberhawk

39 — 25.10.18 — 08:34

Ясно. Не в коня корм значит.

   ЧессМастер

40 — 26.10.18 — 13:49

(38) Новое место работы. Сервер 1С до этого ставил сисадмин. Зачем он поставил 64 разрядную версию внятно ответить не может.

Как только бухи сдадут квартальную отчетность буду переставлять сервер 1С.

   ЧессМастер

41 — 26.10.18 — 13:55

(38) У сисадмина сервер 1С на котором крутятся базы БП и ЗУП до этого работал виртуальной машиной. Были большие тормоза. Он его снес и поставил на отдельную машину. Зачем поставил 64 разрядный сервер если на сервере крутится только база БП с 5 пользователями и база ЗУП одному ему известно.

Причем самое веселое что сервер 1С для бухгалтерии он решил переставить во время сдачи отчетности.

   ZDenis

42 — 26.10.18 — 14:56

(41) Да не важно 64 версия или нет, все должно работать.

1. Ты определил какая версия сервера 1С запущена из установленных?

2. Остальные просто снеси чтобы не путались Длл.

3. Еще раз снимаешь регистрацию Длл, потом регистрируешь новую.

4. В реестре для верности проверяешь, что все пути ведут к нужной.

5. Перезапускаешь сервер 1С.

   ZDenis

43 — 26.10.18 — 14:59

(41) И еще вопрос, если у вас всего 5 пользователей, то зачем вы купили 64 битную изначально? Она как бы намного дороже

   ЧессМастер

44 — 26.10.18 — 15:08

(42)

1. На сервере установлена только одна 1С.

C:Program Files1cv88.3.11.3034

2. На сервере на данный момент нет других 1С помимо

C:Program Files1cv88.3.11.3034

3. Я это сделал. Остановил службу сервера 1С.

Снял регистрацию comcntr.dll

Зарегистрировал через C:WindowsSysWOW64regsvr32

Запустил службу сервера 1С. Перегрузил сервер.

Не помогло.

4. В реестре были ссылки на comcntr.dll от 32 разрядной версии C:Program Files (x86)1cv88.3.11.3034

Этой версии 1С на сервере нет но в реестре ссылки на comcntr.dll от 32 разрядной версии остались.

Путь к comcntr.dll я поправил на 64 разрядную.

5. Это сделано

   ЧессМастер

45 — 26.10.18 — 15:09

(43) Я не уверен что 1С вообще куплена. Я же говорю сервер 1С переустанавливал сисалдмин. Я в этой организации недавно работаю и до проверки лицензий и восстановления анкет (при необходимости) руки еще не дошли.

   dezss

46 — 26.10.18 — 15:16

(44) Зарегистрировал через C:WindowsSysWOW64regsvr32

так это ж для регистрации 32-разрядных компонент, а не для 64х

   VitShvets

47 — 26.10.18 — 15:53

(41) Выбор разрядности сервера это отдельный вопрос. Он никак не связан с вопросом (0).

Я спрашиваю именно про разрядность клиента и COM конектора. Конектор х32 абсолютно нормально работает и с х32 и с х64 сервером. Выбор разрядности конектора зависит от разрядности же ПО, который будет его использовать. Если кроме сервера всё ПО х32, то нет смысла заморачиваться с х64 конектором.

   ЧессМастер

48 — 27.10.18 — 15:31

(46) Цитата

https://helpf.pro/faq/view/1825.htm

В 32-битной версии сервера проблема решилась бы командой: regsvr32 «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll»

но в 64-битной версии команда будет примерно такой * : C:WindowsSysWOW64regsvr32 «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll»

   ЧессМастер

49 — 27.10.18 — 15:35

(47) >Я спрашиваю именно про разрядность клиента и COM конектора

Если честно вопрос не совсем понял.

У меня на сервере установлена 64 разрядная 1С.

Каталог

C:Program Files1cv88.3.11.3034

Служба запуска сервера 1С

C:Program Files1cv88.3.11.3034binragent.exe

Других 1С на сервере нет.

   hhhh

50 — 27.10.18 — 17:20

(49) ну грохни ее нахрен поставь 32х. в чем проблема?

   lodger

51 — 27.10.18 — 17:42

5-10 минутное дело пересадки сервера 1ц с 64 на 32 бит версию растянули на

(49) — (0) = 3 дня, 4 часа, 20 минут

   Franchiser

52 — 27.10.18 — 17:54

Сеансовые данные почистить на сервере, и какая разница какого типа клиент, если подключение на сервере…

   hhhh

53 — 27.10.18 — 18:11

(52) com он как раз и подключается к тому клиенту, который на сервере.

   i_rodionov

54 — 27.10.18 — 18:18

Какой контекст COM-подключения? Кто выполняет подключение? Серверный или клиентский код?

   Сияющий в темноте

55 — 28.10.18 — 18:50

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

   Cyberhawk

56 — 29.10.18 — 08:47

«из одной версии платформы не получится зайти по кому в другую,т.к.перекроются имена dll» // Прекрасно получится, если СОМ-компоненте установить внепроцессную активацию.

С внутрипроцессной активацией в СОМ-компоненте не получится не из-за какого-то «перекрытия имен», а из-за того, что для СОМ-подключения используется не только одна длл-библиотека, но и другие (например, core83.dll), которые, единожды загруженные в процесс ОС, не могут быть изменены (подменены).

   VitShvets

57 — 29.10.18 — 16:56

(49) «У меня на сервере установлена 64 разрядная 1С».  Платформа состоит из компонент — сервер, толстый клиент, тонкий клиент, ком-конектор.

   VitShvets

58 — 29.10.18 — 17:07

(49) + к (57)

Выбор каждой из компонент, разрядности, в идеале, должен быть осознанным. Скажем сервер x64, это обязательное условие при более или менее больших БД и количестве пользователей. Но ещё зависит от наличия денюжек, ибо х54 сервер в 2 раза дороже х32.

А вот х64 клиентская часть, имхо, нафиг не нужная история. Где-то на форуме читал, что без х64 тяжко работает ERP, но не проверял.

Собственно возвращаясь к. Выбор разрядности компоненты должен основываться на разрядности ПО, что будет использовать эту компоненту. У меня, например, должны были дружить 1С и Аксапта х64. Т.е. х64 компонента выбиралась осознанно. В вашем случае, имхо, не нужна х64 клиентская часть. Попробуйте самое простое, просто правильно и ососзнанно установить нужные коппоненты:

1. В дистрибутиве х64 установить только сервер и  консоль администрирования.

2. В дистрибутиве х32 установить клиента. Тонкие и расширения по необходимости.

Можно перезагрузить сервер, но должно и так заработать.

   ЧессМастер

59 — 30.10.18 — 16:37

(57) Я выше писал что у меня 1С на сервере установлена ТОЛЬКО в каталог C:Program Files1cv88.3.11.3034

Соответственно у меня и сервер 64 разрядный и клиент.

   ЧессМастер

60 — 30.10.18 — 16:41

(51) >5-10 минутное дело пересадки сервера 1ц с 64 на 32 бит версию растянули на

Если бы было так все просто.

А то что на этом сервере работают бухи и идет процесс сдачи отчетности вы упускаете ? Вы предлагаете снести сервер на котором крутятся ВСЕ базы БП и ЗУП, при этом бухи работать с базами не смогут. После переустановки сервера опять с нуля регистрация всех баз 1С.

А если что-то пошло не так и опять  нужна переустановка ?

А бухи сидят и ждут.

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

  

   hhhh

61 — 30.10.18 — 16:45

(60) не сервер снести, платформу поменять на сервере. клиента.

   ЧессМастер

62 — 30.10.18 — 16:51

(61) Вы предлагаете поставить на сервер две 1С — одну в каталог C:Program Files1cv88.3.11.3034 и из нее запускать сервер 1С C:Program Files1cv88.3.11.3034binragent.exe

Только для запуска сервера.

Другую в каталог C:C:Program Files (x86)1cv88.3.11.3034

и использовать только для запуска клиента ?

   VitShvets

63 — 31.10.18 — 13:01

(59) >> Соответственно у меня и сервер 64 разрядный и клиент.

Вот абсолютно ничего не значит. Полный дистрибутив платформы и х32 и х64 содержат как различных клиентов, так и сервер. Ну и плюс сопутствующие компоненты навроде СОМ конектора. Есть даже отдельный дистрибутив с сервером х64, который не содержит клиента. Надо смотреть что именно стоит, какие флаги были выбраны при установке.

(62) Нет, он не это предлагает. Ну я же писал в (57) что надо сделать… П.1. выполнен, осталось только п.2. Сервер как стоял х64, так пусть и стоит себе. Надо только поставить клиента х32. В установщике надо выбрать только 1 компонент — самый верхний, «1С предприятие», остальные должны быть отключены. Вместе с клиентом будет установлена и зарегистрирована х32 СОМ компонента. И будет щастье.

   dmrjan

64 — 31.10.18 — 15:38

При установке на сервере 1с Сервер 64bit клиент тоже лучше ставить 64bit и не экспериментировать. 32 разрядный, понятное дело, лучше сразу перед установкой снести (а еще лучше перед установкой перезапустить сервер).

   VitShvets

65 — 31.10.18 — 15:48

(64) Имхо, бред. Какие-то аргументы за данное решение есть?

   dmrjan

66 — 31.10.18 — 15:59

(65) У меня так работает, с 32 бит клиентом на сервере косяки с com.

   VitShvets

67 — 31.10.18 — 16:01

(66) А у ТС проблемы с х64 СОМ. На 12.1595 и у меня проблемы были на связке 1С_аксапта с помощью х64 СОМ. И?

   ZDenis

68 — 31.10.18 — 16:03

(64) на 64 битном клиенте не работает встроенное сканирование (компонента не устанавливается)

   Woold

69 — 31.10.18 — 18:09

(64) Если у вас это не работает, то не значит что у других такие же кривые лапки. На 64 битных клиентах до сих пор не прикрутили многие ВК (например та же печать ШК в отчетах) да и слабо представляю необходимость 64 битного клиента при наличии сервера 1с, а чтобы с комами всё хорошо было надо просто четко представлять себе что ты делаешь, и либо не допускать клиентских/серверных вызовов (в зависимости от того что вы регистрировали по умолчанию) при разных разрядностях/платформах или оборачивать в обертки нужные вам библиотеки.

   ЧессМастер

70 — 01.11.18 — 11:11

(63) >Сервер как стоял х64, так пусть и стоит себе. Надо только поставить клиента х32

Можете пояснить — зачем ?

У меня на сервере стоит 64 разрядная 1С. Других там нет.

Да были какие-то хвосты регистрации в реестре comcntr.dll из 32 разрядной 1С. При том что самой 32 разрядной 1С (из папки C:Program Files (x86)1cv88.3.11.3034  на сервере нет. Я поменял путь в реестре с «C:Program Files (x86)1cv88.3.5.1119bincomcntr.dll» на «C:C:Program Files1cv88.3.11.30341cv88.3.5.1119bincomcntr.dll»

Дальше получается следующее.

Вне зависимости от того где зашел клиентом в 1С (с локальной машины или на сервере) происходит проявление ошибки COM при попытке произвести тестовое подключение из БП в ЗУП в штатной процедуре обмена БП-ЗУП.

Теперь давайте думать логически.

Если бы проблема с COM была только при заходе в 1С с клиентских машин а при заходе в 1С с сервера ее не было то надо было бы копать в сторону клиентских машин и клиентских версий.

Но проблема происходит все зависимости от того с какой машины (с локальной или с сервера) зайти в 1С.

В связи с этим чем поможет установка 32 разрядного клиента на сервере если при заходе в 1С с клиентских машин он участвовать не будет ?

   ЧессМастер

71 — 01.11.18 — 11:21

(63) «Полный дистрибутив платформы и х32 и х64 содержат как различных клиентов, так и сервер. Ну и плюс сопутствующие компоненты навроде СОМ конектора. Есть даже отдельный дистрибутив с сервером х64, который не содержит клиента. Надо смотреть что именно стоит, какие флаги были выбраны при установке. »

Где вы видели такие пункты ?

Там есть только выбор из

1С Предприятие 8

1С Предприятие 8 — тонкий клиент

1С Предприятие 8 — тонкий клиент (файловый вариант)

1С Предприятие 8 сервер

Веб сервер и модули расширения

Администрирование сервера

Интерфейсы

Дополнительные административные функции

Больше нет ничего.

Никакой отдельной возможности поставить COM коннектор в дистрибутиве нет.

Собственно если в установленных программах на 1С этого релиза нажать «Изменить» то будет видно какие компонеты можно выбрать.

   Woold

72 — 01.11.18 — 17:26

(71) Данная возможность присутствует в варианте установщика «Cервер 1С:Предприятия (64-bit) для Windows», ни в технологической платформе, ни в тонком клиенте его нет (как нет и в варианте «Технологическая платформа 1С:Предприятия (64-bit) для Windows»). Но в варианте поставки сервера он присутствует из коробки и даже работает без плясок с бубном. От ТСа хотелось бы более явной инфы — какой вариант поставки он использует (со штукой с сайта 1с которая называется «Технологическая платформа 1С:Предприятия (64-bit) для Windows» раньше было много проблем именно с сервером 1с предприятия (хотя вроде как они должны были быть одинаковыми) и com библиотека была 32-битной, может до сих пор не поправили), почистил ли он старые следы библиотеки, как он регистрирует — через 32 битный regsvr или с помощью regsvr из syswow, пробовал ли он указать регистрацию компоненты при установке сервака, написать в конце концов версию платформы и было бы неплохо если бы тс явно отвечал на вопросы (к примеру какой вызов использовался клиентскиЙ или серверный он в явном виде так и не ответил, хотя и можно догадаться о том что серверный). ТС — снеси все к чертям (сохранив папку srvinfo), поставь заново дистрибутив именно «Cервер 1С:Предприятия (64-bit) для Windows» и при установке выберите пункт com соединение, после восстановите папку srvinfo и радуйтесь появившемуся кому.

   МаленькийВопросик

73 — 01.11.18 — 18:30

мне помогло создать ком-объект руками

   Сияющий в темноте

74 — 01.11.18 — 22:40

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

   H A D G E H O G s

75 — 02.11.18 — 00:35

Жесть какая. Автор, твоя проблема решается за 5 минут.

   bolder

76 — 02.11.18 — 00:53

(75) Не всегда.Бывают тяжелые случаи.Кстати,ТС пока не отписался о решении)

   ЧессМастер

77 — 02.11.18 — 15:07

(75) Каким образом ?

Я делал все по инструкции https://helpf.pro/faq/view/1825.htm

Проблема не решилась

   H A D G E H O G s

78 — 02.11.18 — 15:08

(77) Ну давай подключусь, гляну

Пиши на liveups@yandex.ru

   ЧессМастер

79 — 02.11.18 — 15:14

(76) Не отписался потому что проблема пока не решена.

На старом сервере постоянно работают бухи. Если его остановить начнутся вопли «дайте работать».

Сисадмин поднял новый сервер, сейчас с нуля поставлю на него сервер 1С, разверну базы и проверю работу COM.

   ЧессМастер

80 — 02.11.18 — 15:29

(78) Написал

   VitShvets

81 — 02.11.18 — 15:52

(70) (71) > Можете пояснить — зачем ?

Есть целых 2 причины:

1. х64 СОМ «так и не взлетел».

2. Никаких внятных резонов использовать х64 клиентскую часть нет.

Остальное см (72).

   ЧессМастер

82 — 02.11.18 — 18:00

(75) К сожалению как вы сами убедились бывают проблемы которые за 5 минут не решаются.

Проблему к сожалению не удалось решить никакими способами.

Большое спасибо за помощь.

Перехожу к плану Б — поднимаю сервер 1С на чистой машине, разворачиваю базы там и пробую.

   ЧессМастер

83 — 03.11.18 — 18:38

(76) На новом сервере  все заработало.

Последовательность следующая.

1. Установка сервера 1С (поставил 32 разрядную).

Ставил из обычного дистрибутива windows

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

regsvr32 «C:Program Files (x86)1cv88.3.11.3034bincomcntr.dll»

И все работает.

   DrZombi

84 — 03.11.18 — 21:00

Много писанины…

1. Удалить старый сервер

2. Установить новый сервер приложений 1С, с нужной версией и под администратором 🙂

… (83) — для сервера 64, регистрируем из C:WindowsSysWOW64 🙂

   DrZombi

85 — 03.11.18 — 21:00

+(83)  Регистрация comcntr.dll под админскими правами

И помни, админ админу рознь… тут как ваш админ настроит безопасность 😉

   ЧессМастер

86 — 07.11.18 — 18:51

(84) Так хотелось проблему решить терапевтическими методами а не хирургическими

  

ЧессМастер

87 — 07.11.18 — 19:15

(84) Согласитесь что сначала хочется решить более простыми способами чем снести сервер 1С и поставить заново (с регистрацией всех баз на нем заново).

При попытке обновления типовой базы 1С Зарплата и управление персоналом 3.1.6.38 (в пользовательском режиме из меню, а не из конфигуратора) выдается сообщение об ошибке: Ошибка при регистрации компоненты comcntr. Код ошибки regsvr32: 3. Подробности см. в журнале регистрации.

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

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

При обновлении 1С вылпается принудительно регистрация comcntr

C:UsersvasyaPicturesgs000063.png

 

Для этого используется процедура ОбщегоНазначенияКлиентСервер.ЗапуститьПрограмму, в которой видим:

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

Оглавление

  • Как понять, что у нас проблемы с COM
  • Да, судя по тесту, у нас проблемы с COM
    • Шаг №0
    • Шаг №1
    • Шаг №2
    • Шаг №3
    • Шаг №4
    • Шаг №5
    • Шаг №6
    • Шаг №7

Обновлятор-1с в своей работе использует com-библиотеку от 1с для внешнего подключения к базам.

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

Как понять, что у нас проблемы с COM

Для этого нажимаем кнопку «Проверить настройки» удерживая клавишу «Shift» на клавиатуре:

При нормальной работе COM отчёт будет примерно таким:

При проблемах же с COM возникнет вот такая или похожая ошибка:

Ещё может писать, что -то типа «Не удалось создать программное подключение к 1С«.

Да, судя по тесту, у нас проблемы с COM

Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:

Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.

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

regsvr32.exe "путь к папке bincomcntr.dll"

Итак, что мы можем предпринять?

Шаг №0

Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.

Шаг №1

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

Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.

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

Шаг №2

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

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

Далее выбираем базу и нажимаем кнопку «Проверить настройки». Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) — поздравляю, проблема решена. Если нет — идём дальше.

Шаг №3

В 32-битной версии ОС пробуем выполнить команду

regsvr32 "путь к папке bincomcntr.dll"

В 64-битной версии ОС команда будет такой:

— для регистрации 64-битной платформы 1С:

regsvr32 "путь к папке bincomcntr.dll"

— для регистрации 32-битной платформы 1С:

C:WindowsSysWOW64regsvr32 "путь к папке bincomcntr.dll"

Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через «Запуск от имени администратора», либо через такой же запуск написанного батника.

Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u

Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить, а затем зарегистрируйте библиотеку, как написано выше.

Если этот шаг не помог — идём дальше.

Шаг №4

Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:

  1. Заходим в Панель управления — Администрирование — Службы компонентов.
  2. Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.
  3. В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.
  4. Нажимаем «Далее».
  5. Выбираем «Создать новое приложение».
  6. Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
  7. На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
  8. Нажимаем «Готово».
  9. В появившейся ветке V83COMConnector переходим к подветке Компоненты.
  10. В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.
  11. Нажимаем «Далее».
  12. Выбираем «Установка новых компонентов».
  13. Выбираем файл <каталог 1С>bincomcntr.dll.
  14. Нажимаем «Далее» — «Готово».
  15. Переходим к ветке V83COMConnector.
  16. В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
  17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
  18. Нажимаем «ОК».

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

Шаг №5

Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).

Шаг №6

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

Шаг №7

Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню «Запустить от имени администратора» или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.

Наверняка есть и другие экзотические случаи о которых я пока не знаю — пожалуйста, пишите о них мне на почту helpme1c.box@gmail.com, чтобы я смог дополнить эту статью.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

После обновления платформы 1С при синхронизации данных может появляться сообщение об ошибке -2147221005(0x800401F3). Данная ошибка обычно сопровождается строкой «Недопустимая строка с указанием класса» и связана с неверным кодом программы, не зарегистрированными в системе компонентами и другими релевантными факторами.

Например, во время синхронизации возникает ошибка Обмен данными.ОбменЗарплата3Бухгалтерия3.Отправка данных со следующим содержимом:

Не удалось подключится к другой программе: -2147221005(0x800401F3): Недопустимая строка с указанием класса 
{ОбщийМодуль.ОбщегоНазначенияСлужебныйКлиентСервер.Модуль(393)}:		COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // "V83.COMConnector"
{ОбщийМодуль.ОбщегоНазначения.Модуль(2830)}:	Возврат ОбщегоНазначенияСлужебныйКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры, ПодключениеНедоступно, КраткоеОписаниеОшибки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(12564)}:		ЗаполнитьПараметрыПодключенияВнешнегоСоединения(СтруктураНастроек));
{ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1185)}:        РегистрыСведений.НастройкиТранспортаОбменаДанными.НастройкиТранспорта(
{ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(1164)}:	Результат = ВнешнееСоединениеДляУзлаИнформационнойБазы(УзелИнформационнойБазы);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6701)}:	ВнешнееСоединение = ОбменДаннымиПовтИсп.ПолучитьВнешнееСоединениеДляУзлаИнформационнойБазы(
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3952)}:			ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(38)}:		ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5113)}:	Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1036)}:		ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:		ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса 
-2147221005(0x800401F3): Недопустимая строка с указанием класса

Причины возникновения ошибки -2147221005(0x800401F3)

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

Тем не менее к числу наиболее популярных причин ошибки -2147221005(0x800401F3) относятся следующие:

  • Пользователь использует устаревшую конфигурацию 1С;
  • Наличие некорректного кода программы (к примеру, обращение к устаревшему «V82.COMConnector» вместо «V83.COMConnector»);
  • В системе не зарегистрирована библиотека comcntr.dll;
  • У пользователя, запускающего определённый комплекс 1С, нет достаточных прав для работы с ним (к примеру, запуск выполняется из гостевой учётной записи, вместо учётной записи администратора).

Обновление конфигурации до последней версии

Вопрос обновления конфигурации 1С на примере «1С:Бухгалтерия 3.0» я рассматривал ранее. Поэтому здесь не имеет смысла описывать данный процесс.

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

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

Измените код программы

В некоторых случаях код программы может устареть и не соответствовать текущей версии 1С. Эффективным решением ошибки -2147221005(0x800401F3) является замена строки кода:

COMConnector = Новый COMObject(«V82.COMConnector»);

на строку:

COMConnector = Новый COMObject(«V83.COMConnector»);

После указанной замены проблема может быть решена.

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

Довольно часто ошибка возникает после обновления платформы, когда во время установки новой версии не регистрируется компонента comcntr.dll.

Для регистрации компоненты вручную необходимо выполнить в PowerShell от имени администратора следующие команды:

C:WindowsSysWOW64regsvr32 /u "c:Program Files1cv88.3.17.1851bincomcntr.dll" или C:WindowsSysWOW64regsvr32 /u "c:Program Files (x86)1cv88.3.17.1851bincomcntr.dll"

Затем

C:WindowsSysWOW64regsvr32 "c:Program Files1cv88.3.17.1851bincomcntr.dll" или C:WindowsSysWOW64regsvr32 "c:Program Files (x86)1cv88.3.17.1851bincomcntr.dll"

«8.3.17.1851» вам необходимо заменить на вашу версию платформы 1С.

C:WindowsSysWOW64regsvr32

После регистрации библиотеки скорей всего синхронизация заработает.

Синхронизация данных ЗУП-БП

Последние статьи:

У пользователей, работающих на 1С возникаем ошибка, связанная с файлом comcntr.dll. Оказывается, проблема заключается в особенности работы программы. Рассмотрим, как исправляется ошибка регистрации comcntr.dll.

Содержание

  1.  Что это такое
  2. Что предпринять
  3. Если переустановка не помогла
  4. Вывод

 Что это такое

Инсталлируя 1С, ОС регистрирует класс COMConnector. Файл comcntr.dll — компонент использующийся для предоставления доступа к информационной базе из внешней программы. Проблема не в библиотеке, а в особенностях работы ПО. Поэтому появляется на ОС Windows, которые поддерживают этот компонент.

Что предпринять

Так как проблема связана не с файлом, не нужно устанавливать заново библиотеку. Лучшее решение — переустановка программы. Удалите ее. Используйте утилиту CCleaner. Приложение удаляет вместе с файлами следы в реестре.
Установите ПО с лицензионного диска или дистрибутива.
Перезагрузите ПК. Проверьте, работу COM-компонента.

Если переустановка не помогла

Инсталлятор 1С может не зарегистрировать библиотеку. Причина до конца не выяснена. Что предпринять? Установите DLL-файл вручную. Нажмите «Win+X», далее:
Пропишите команду:

Если команда не сработала, запустите regsvr32 с ключом «/u».

Вывод

Мы рассмотрели, как исправить ошибку, связанную с работой COM-компонента. Используйте рекомендации, описанные выше, и ошибка возникать не будет.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при регистрации компоненты comcntr код ошибки regsvr32 13 метод объекта не обнаружен
  • Ошибка при регистрации компаньона twitch улица 2