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»
Регистрация прошла успешно.
Что еще необходимо сделать ?
Ранее в конфигурации использовался справочник НастройкиВыполненияОбмена где прописывались релизы используемые для подключения. Но сейчас он не используется.
Кто сталкивался с этой проблемой просьба подсказать.
1 — 24.10.18 — 11:22
(0) Библиотеку на Сервере 1С регистрируешь?
2 — 24.10.18 — 11:24
(1) Нет на локальном компе. Я же с него захожу в базу БП и из нее генерируется COM подключение в базу ЗУП
3 — 24.10.18 — 11:27
(2) «из нее генерируется COM подключение» — это может происходить на сервере
4 — 24.10.18 — 11:32
(3) То есть сделать отмену регистрации comcntr.dll и регистрацию на сервере 1С ?
5 — 24.10.18 — 11:35
(4) Я не знаю, где вызывается твой ком.
6 — 24.10.18 — 11:41
(4) Если это стандартный обмен БП — ЗУП, то он делается на стороне сервера, если свой, то надо смотреть где ты СОМ создаешь
7 — 24.10.18 — 11:42
(6) Стандартный
8 — 24.10.18 — 11:45
(7) тогда регистрируй на сервере, но только того релиза под которым сам сервер крутиться
9 — 24.10.18 — 11:57
(8) На сервере зарегистрировал. Ошибка та же самая. Сервер нужно перезапускать ?
10 — 24.10.18 — 12:00
Хост надо перезагрузить даже скорее всего
11 — 24.10.18 — 12:06
Попробуй через реестр поискать библиотеку и изменить пути к ней.
12 — 24.10.18 — 12:08
Надо на сервере регистрировать библиотеку.
13 — 24.10.18 — 12:33
(10) Сервер перегрузил, ошибка осталась.
Какие то чудеса.
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): Недопустимая строка с указанием класса
17 — 24.10.18 — 12:37
Здесь пишут, что regsvr32 надо другой запускать
https://helpf.pro/faq/view/1825.htm
18 — 24.10.18 — 12:38
Для начала выяснить, где (хост и пользователь ОС) выполняется код, в строке которого возникает ошибка
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
Эти пункты действительно важны ?
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
Я так понимаю что лучше это удалить ?
23 — 24.10.18 — 16:34
(22) насчет удалить не уверен, лучше новый путь подсунуть
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): Недопустимая строка с указанием класса
26 — 24.10.18 — 18:27
Не увидел в твоем описании перезагрузки хоста. Что-то ты бакланишь.
27 — 24.10.18 — 18:28
Единственное что смущает — на сервере установлена англоязычная версия 1С (все диалоги на английском). В этом может быть дело ?
Но ведь 1С нормально же заходит в БП и ЗУП. Почему же COM подключение не работает ?
28 — 24.10.18 — 18:29
(26) Службу сервера перезапускал. Сервер физически перегрузить ?
29 — 24.10.18 — 18:32
Я все сказал
30 — 24.10.18 — 18:34
(29) в (25) написал же «Останавливаю агент сервера. »
Потом отмена регистрации comcntr.dll
Потом регистрация.
Потом запуск службы сервера 1С.
31 — 24.10.18 — 18:53
(29) Сервер перегрузил, ошибка осталась.
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/
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С. Далее удаление регистрации компонент. Далее регистрация. Далее перезагрузка сервера.
36 — 24.10.18 — 19:11
Ты опять что-то бакланишь. В (6) фраза ни к чему не обязывающая. Пока не найдешь строку кода, далеко не уедешь, думаю.
37 — 24.10.18 — 19:16
(36) От тебя за всю ветку ноль полезной информации но очень много пафоса. Если нечего сказать по теме может не стоит время тратить ?
38 — 24.10.18 — 19:22
(34) >> Потому что на сервере стоит 64 битная 1С. В каталоге
Это осознанное решение? Когда х64 платформу ставили, поставили флаг «СОМ-Coединение»?
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С для бухгалтерии он решил переставить во время сдачи отчетности.
42 — 26.10.18 — 14:56
(41) Да не важно 64 версия или нет, все должно работать.
1. Ты определил какая версия сервера 1С запущена из установленных?
2. Остальные просто снеси чтобы не путались Длл.
3. Еще раз снимаешь регистрацию Длл, потом регистрируешь новую.
4. В реестре для верности проверяешь, что все пути ведут к нужной.
5. Перезапускаешь сервер 1С.
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С переустанавливал сисалдмин. Я в этой организации недавно работаю и до проверки лицензий и восстановления анкет (при необходимости) руки еще не дошли.
46 — 26.10.18 — 15:16
(44) Зарегистрировал через C:WindowsSysWOW64regsvr32
так это ж для регистрации 32-разрядных компонент, а не для 64х
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С на сервере нет.
50 — 27.10.18 — 17:20
(49) ну грохни ее нахрен поставь 32х. в чем проблема?
51 — 27.10.18 — 17:42
5-10 минутное дело пересадки сервера 1ц с 64 на 32 бит версию растянули на
(49) — (0) = 3 дня, 4 часа, 20 минут
52 — 27.10.18 — 17:54
Сеансовые данные почистить на сервере, и какая разница какого типа клиент, если подключение на сервере…
53 — 27.10.18 — 18:11
(52) com он как раз и подключается к тому клиенту, который на сервере.
54 — 27.10.18 — 18:18
Какой контекст COM-подключения? Кто выполняет подключение? Серверный или клиентский код?
55 — 28.10.18 — 18:50
тут есть проблема в том,что из одной версии платформы не получится зайти по кому в другую,т.к.перекроются имена dll,может быть,у вас проблема в этом,а не в том,что класс не зарегистрировался?
56 — 29.10.18 — 08:47
«из одной версии платформы не получится зайти по кому в другую,т.к.перекроются имена dll» // Прекрасно получится, если СОМ-компоненте установить внепроцессную активацию.
С внутрипроцессной активацией в СОМ-компоненте не получится не из-за какого-то «перекрытия имен», а из-за того, что для СОМ-подключения используется не только одна длл-библиотека, но и другие (например, core83.dll), которые, единожды загруженные в процесс ОС, не могут быть изменены (подменены).
57 — 29.10.18 — 16:56
(49) «У меня на сервере установлена 64 разрядная 1С». Платформа состоит из компонент — сервер, толстый клиент, тонкий клиент, ком-конектор.
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С.
А если что-то пошло не так и опять нужна переустановка ?
А бухи сидят и ждут.
Вариант делать это после работы или ночью конечно возможен но это удовольствие не для всех.

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
и использовать только для запуска клиента ?
63 — 31.10.18 — 13:01
(59) >> Соответственно у меня и сервер 64 разрядный и клиент.
Вот абсолютно ничего не значит. Полный дистрибутив платформы и х32 и х64 содержат как различных клиентов, так и сервер. Ну и плюс сопутствующие компоненты навроде СОМ конектора. Есть даже отдельный дистрибутив с сервером х64, который не содержит клиента. Надо смотреть что именно стоит, какие флаги были выбраны при установке.
(62) Нет, он не это предлагает. Ну я же писал в (57) что надо сделать… П.1. выполнен, осталось только п.2. Сервер как стоял х64, так пусть и стоит себе. Надо только поставить клиента х32. В установщике надо выбрать только 1 компонент — самый верхний, «1С предприятие», остальные должны быть отключены. Вместе с клиентом будет установлена и зарегистрирована х32 СОМ компонента. И будет щастье.
64 — 31.10.18 — 15:38
При установке на сервере 1с Сервер 64bit клиент тоже лучше ставить 64bit и не экспериментировать. 32 разрядный, понятное дело, лучше сразу перед установкой снести (а еще лучше перед установкой перезапустить сервер).
65 — 31.10.18 — 15:48
(64) Имхо, бред. Какие-то аргументы за данное решение есть?
66 — 31.10.18 — 15:59
(65) У меня так работает, с 32 бит клиентом на сервере косяки с com.
67 — 31.10.18 — 16:01
(66) А у ТС проблемы с х64 СОМ. На 12.1595 и у меня проблемы были на связке 1С_аксапта с помощью х64 СОМ. И?
68 — 31.10.18 — 16:03
(64) на 64 битном клиенте не работает встроенное сканирование (компонента не устанавливается)
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С этого релиза нажать «Изменить» то будет видно какие компонеты можно выбрать.
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
Внепроцессорная активация ком это еще то зло,т.к.пересылать данные через границу процесса очень медленно.
75 — 02.11.18 — 00:35
Жесть какая. Автор, твоя проблема решается за 5 минут.
76 — 02.11.18 — 00:53
(75) Не всегда.Бывают тяжелые случаи.Кстати,ТС пока не отписался о решении)
77 — 02.11.18 — 15:07
(75) Каким образом ?
Я делал все по инструкции https://helpf.pro/faq/view/1825.htm
Проблема не решилась
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) Написал
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»
И все работает.
84 — 03.11.18 — 21:00
Много писанины…
1. Удалить старый сервер
2. Установить новый сервер приложений 1С, с нужной версией и под администратором 🙂
… (83) — для сервера 64, регистрируем из C:WindowsSysWOW64 🙂
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 компоненту из-за настроек безопасности на вашем сервере.
В этом случае:
- Заходим в Панель управления — Администрирование — Службы компонентов.
- Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.
- В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем «Далее».
- Выбираем «Создать новое приложение».
- Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
- На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
- Нажимаем «Готово».
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем «Далее».
- Выбираем «Установка новых компонентов».
- Выбираем файл <каталог 1С>bincomcntr.dll.
- Нажимаем «Далее» — «Готово».
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
- Нажимаем «ОК».
После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.
Шаг №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)
Данная ошибка относится к регулярно встречающимся ошибкам 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С.

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

Последние статьи:
У пользователей, работающих на 1С возникаем ошибка, связанная с файлом comcntr.dll. Оказывается, проблема заключается в особенности работы программы. Рассмотрим, как исправляется ошибка регистрации comcntr.dll.
Содержание
- Что это такое
- Что предпринять
- Если переустановка не помогла
- Вывод
Что это такое
Инсталлируя 1С, ОС регистрирует класс COMConnector. Файл comcntr.dll — компонент использующийся для предоставления доступа к информационной базе из внешней программы. Проблема не в библиотеке, а в особенностях работы ПО. Поэтому появляется на ОС Windows, которые поддерживают этот компонент.
Что предпринять
Так как проблема связана не с файлом, не нужно устанавливать заново библиотеку. Лучшее решение — переустановка программы. Удалите ее. Используйте утилиту CCleaner. Приложение удаляет вместе с файлами следы в реестре.
Установите ПО с лицензионного диска или дистрибутива.
Перезагрузите ПК. Проверьте, работу COM-компонента.
Если переустановка не помогла
Инсталлятор 1С может не зарегистрировать библиотеку. Причина до конца не выяснена. Что предпринять? Установите DLL-файл вручную. Нажмите «Win+X», далее:
Пропишите команду:
Если команда не сработала, запустите regsvr32 с ключом «/u».
Вывод
Мы рассмотрели, как исправить ошибку, связанную с работой COM-компонента. Используйте рекомендации, описанные выше, и ошибка возникать не будет.