V83 comconnector как найти

Установка COM-компонента в 1С

Подключение к информационной базе через com-соединение происходит через внешний com-компонент который настраивается на стороне сервера. Если не создать компонент, то будет появляться ошибка «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».

Данная инструкция выполнена на примере платформы 1С 8.3.17.1549
Вначале необходимо зарегистрировать DLL в системе, для этого запускаем командную строку от имени администратора и вводим:

Regsvr32 “C:Program Files1cv88.3.17.1549bincomcntr.dll"

В случае если это не помогает, то создаем коннектор вручную, для этого:

  • Заходим в Панель управления – Администрирование – Службы компонентов.
  • В контекстном меню выбираем Создать – Приложение. Откроется Мастер установки приложений COM+. Выбираем «Создать новое приложение». Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
  • На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее». Выбираем роль «CreatorOwner» и нажимаем «Далее» и «Готово».
  • В появившейся ветке V83COMConnector переходим к подветке Компоненты. В контекстном меню выбираем Создать – Компонент. Откроется Мастер установки компонентов COM+. Нажимаем «Далее».
  • Выбираем «Установка новых компонентов». Выбираем файл <каталог “C:Program Files1cv88.3.17.1549bincomcntr.dll”. Нажимаем «Далее» – «Готово».
  • Переходим к ветке V83COMConnector. В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность». Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений – «Неограниченный».

Итоговый результат настройки COM-Компонента

Рисунок 1 – Итоговый результат настройки COM-Компонента

Не нашли ответа на свой вопрос?

Закажите звонок специалиста!

Закажите звонок специалиста!

Сначала зарегистрируем библиотеку comcntr.dll. Для этого запускаем cmd от имени администратора и выполним поочередно следующие команды:

cd C:Program Files (x86)1cv88.3.13.1690bin
regsvr32 comcntr.dll

Вместо «8.3.13.1690» — нужно подставить требуемую версию платформы

Или можно обойтись одной строкой команды:

regsvr32 "C:Program Files (x86)1cv88.3.13.1690bincomcntr.dll"

Далее опишу полный процесс создания COM+ соединения

1. Запускаем оснастку «Службы компонентов» из папки Администрирование.

Пуск — Панель управления — Система и безопасность — Администрирование — Службы компонентов

или

win+R -> control userpasswords -> Службы компонентов

2. Раскрываем ветку «Службы компонентов» — компьютер — Приложения COM+

Создать — приложение

3. Откроется окно мастера установки приложений COM+. Ждем «Далее»

4. Выбираем «Создать новое приложение»

5. Вбиваем имя приложения. В моем примере — «v83COMConnector». Отмечаем чекбокс «Серверное приложение»

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

7. В следующем окне просто жмем «Далее»

8. На следующем шаге можно добавить пользователей, либо группу пользователей, которым необходимо предоставить права на запуск COM+ приложения (локальные/доменные — не важно)

9. Закрываем мастер кнопкой «Готово»

10. Теперь необходимо создать компонент. Возвращаемся к оснастке «Службы компонентов», раскрываем созданное COM+ приложение, встаем на ветку «Компоненты»

Создать — Компонент

11. Откроется окно «Мастера установки компонентов COM+». Жмем «Далее»

12. В следующем окне выбираем «Установка новых компонентов»

13. Теперь с помощью открывшегося окна проводника выберите ранее зарегистрированную библиотеку comcntr.dll, которая лежит в папке установленной 1С, в каталоге bin. В моем случае

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

«Enter» или кнопка «Открыть»

14. В следующем окне просто жмите «Далее»

15. Закрываем окно мастера кнопкой «Готово»

16. Раскройте ветку «Компоненты». Здесь вы должны увидеть созданный на предыдущем шаге компонент. Выделите его, нажмите ПКМ — Свойства

17. На вкладке «Безопасность» нужно отметить галочкой CreateOwner и нажать «ОК»

Компонента COM+ создана. COM+ приложение настроено!

Обновление версии компонента

Иногда необходимо зарегистрировать иную версию библиотеки comcntr.dll.

Для того, чтобы посмотреть текущую зарегистрированную версию, необходимо войти в свойства компонена V83.COMConnector (см п.16) данного руководства

На вкладке «Общие» будет прописан путь. В моем случае это версия 8.3.13.1690

Зарегистрировать другую версию библиотеки можно при помощи уже рассмотренной команды regsvr32

regsvr32 "C:Program Files (x86)1cv88.3.14.1565bincomcntr.dll" 

Если в п.8 вы забыли указать пользователей или группы, кому необходимы права для запуска COM+ приложения, то добавить нужных пользователей можно так:

  • Панель управления — Система и безопасность — Администрирование — Службы компонентов
  • Раскрываем ветку: Приложения COM+ — v83COMConnector — Роли — CreateOwner
  • ПКМ на разделе «Пользователи», «Создать — Пользователь»
  • В открывшемся окне выбираем локального или доменного пользователя, либо группу

Один из вариантов обмена данными между базами 1С это обмен через COM соединение. С помощью COM соединения можно из одной базы 1С подключиться к другой и прочитать или записать данные. Пользоваться этим методом можно как в клиент-серверных вариантах баз, так и в файловых базах. В этой статье рассматривается такого рода соединений на платформа 8.3

Com соединение

Можно создать два вида COM объектов для приложения 1С. Это ole соединения  V83.Application и  com соединения  V83.COMConnector. В случае с V83.Application запускается практически полноценный экземпляр приложения 1С. В случае использования V83.COMConnector запускается небольшая серверная часть. Скорость работы в этом случае выше, но некоторые функции могут быть недоступны. В частности работа с формами и с общими модулями для которых не установлено свойство работы с внешними соединениями. Преимущественно надо использовать V83.COMConnector и только в случае нехватки функционала V83.Application. Особенно сильно разница в скорости работы может быть заметна на базах большого объема. Для платформе 8.2 используется V82.Application или V82.COMConnector

Установить OLE соединение

 Соединение = Новый COMОбъект("V83.Application"); 

Установить COM соединение

 Соединение = Новый COMОбъект("V83.COMConnector"); 

Строка подключения

 //Для варианта клиент- сервер
СтрокаСоединения = "Srvr = ""ИмяСервера"";Ref = ""ИмяБазы""; Usr = ИмяПользователя; Pwd = Пароль";
//Для варианта файлового режима:
СтрокаСоединения = "File = ""ПутьКБазе""; Usr = ИмяПользователя; Pwd = Пароль";
 Попытка 
Подключение = Соединение.Connect(СтрокаСоединения);
Исключение 
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось подключиться к базе" + ОписаниеОшибки(); Сообщение.Сообщить();
КонецПопытки; 

Разрыв соединения

 Соединение = Неопределено; 

Для объекта V83.Application выполнять разрыв соединения обязательно, в противном случае останется висеть незавершенный сеанс, который потом придется удалять вручную. В случае с V83.COMConnector соединение разрывается автоматически при завершении процедуры в которой выполнялось подключение.И есть еще один маленький момент. Для пользователя под которым выполняется подключение должен быть отключен флажок «Запрашивать подтверждение при закрытии программы» в его настройках.

Метод NewObject()

Для создания нового объекта  можно воспользоваться методом NewObject(), например: 

 // для V83.COMConnector
 Подключение = Соединение.Connect(СтрокаСоединения); 
 ЗапросCOM = Подключение.NewObject("Запрос"); 
ТаблицаCOM = Подключение.NewObject("ТаблицаЗначений");
МассивCOM = Подключение.NewObject("Массив");
УидCOM =Подключение.NewObject("УникальныйИдентификатор",СтрокаУИД); 

 //для V83.Application
 Соединение = Новый COMОбъект("V83.COMConnector");  
ЗапросOLE = Соединение.NewObject("Запрос"); 
ТаблицаOLE = Соединение.NewObject("ТаблицаЗначений");
МассивOLE = Соединение.NewObject("Массив");
УидCOM =Соединение.NewObject("УникальныйИдентификатор",СтрокаУИД); 

После создания Com объекта можно далее работать с ним, например

 ЗапросCOM.Текст ="ВЫБРАТЬ
| ДолжностиОрганизаций.Код,
| ДолжностиОрганизаций.Наименование
|ИЗ 
| Справочник.ДолжностиОрганизаций 
КАК ДолжностиОрганизаций";
Результат = ЗапросCOM.Выполнить(); 
Выборка = Результат.Выбрать(); 
Пока Выборка.Следующий() Цикл
// ........
КонецЦикла; 

Можно также использовать менеджеры объектов конфигурации:

 СправочникCOM = Подключение.Справочники.ИмяСправочника; 
 ДокументCOM = Подключение.Документы.ИмяДокумента; 
 РегистрCOM = Подключение.РегистрыСведений.ИмяРегистра; 

Получение и сравнение перечисления через COM соединение

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

 ЭлементПеречисления = Подключение.Справочники.Справочник1.НайтиПоКоду(1).Реквизит1;
 ВозможныеЗначения = ЭлементПеречисления.Метаданные().ЗначенияПеречисления;
 НомерЭлементаПеречисления = ВозможныеЗначения.Индекс(ВозможныеЗначения.Найти(Соединение.XMLString(ЭлементПеречисления)));
 Если НомерЭлементаПеречисления = 0 Тогда
   Сообщить("ЗначениеПеречисления1");
 ИначеЕсли НомерЭлементаПеречисления = 1 Тогда
   Сообщить("ЗначениеПеречисления2");
 КонецЕсли; 

Получение объекта через COM по идентификатору

Через  менеджеры объектов конфигурации получаем com объект, например :

 ДокументCOM = Соединение.Документы.ИмяДокумента; 

Затем получаем строку уникального идентификатора :

 СтрокаУИД=Соединение.string(ДокументCOM.УникальныйИдентификатор()); 

Затем в базе данных можно найти по ссылке нужный документ, таким образом:

 Идентификатор= Новый УникальныйИдентификатор(СтрокаУИД);
СсылкаПоИдентификатору = Документы[ИмяДокумента].ПолучитьСсылку(Идентификатор); 

Если нужно найти com объект по идентификатору,  то тогда нужно написать так:

 УидCOM = Соединение.NewObject("УникальныйИдентификатор",СтрокаУИД);
СсылкаПоИдентификатору = Соединение.Документы[ИмяДокумента].ПолучитьСсылку(УидCOM); 

Previous ArticleОтправка SMS

6. Прописать строку подключения к 1С

Правильная строка подключения к серверной версии 1С может быть, например, такой

ConnectionString = "srv='PROGER';ref='Sales';usr='Proger';pwd='12345'"
ConnectionString = "File="D:\Sales";Usr='mobile';Pwd='12345'"

7. Добавить пользователя в 1С

Что бы строка подключения из п.6 работала, надо, через Конфигуратор 1С, создать пользователя Proger и дать ему права Администратор системы и Полные права.

8. Открыть порты

Для подключения к серверу 1С с другого сервера надо открыть доступ по портам 1541 и 1560. Иногда возникает ситуация, когда этих портов недостаточно, надо открыть еще диапазон 1560-1591.


9. Предпочтительна 32-разрядная версия

В свойствах проекта на C# надо убрать галочку – «Предпочтительна 32- разрядная версия».
Без этого происходит ошибка при подключении.

в VS 2022

Иначе будет ошибка:

Retrieving the COM class factory for component with CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} failed due to the following error: 80040154 Класс не зарегистрирован (0x80040154 (REGDB_E_CLASSNOTREG)).


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

  • Ошибка отключения пользователей базы 1С, Недопустимая строка с указанием класса, ProgID: «V83.ComConnector»;
  • Ошибка соединения с кластером 1С, Ошибка при загрузке библиотеки;
  • Ошибка соединения с кластером 1С. Не найден указанный модуль, ProgID: «V83.ComConnector»;
  • Ошибка соединения с кластером 1С, Отказано в доступе, ProgID: «V83.ComConnector»;
  • Ошибка отключения пользователей базы 1С. Различаются версии клиента и сервера (8.3.18.1208 — 8.3.16.1296), клиентское приложение: COM-администратор (HRESULT=80004005).

Этап 1. Проверка и удаление альтернативной регистрации библиотеки как COM+.

Первое что необходимо сделать, это проверить наличие регистрации COM+ в службах компонентов и удалить ее. Для этого перейдите «Панель управления»«Администрирование» — выберите «Службы компонентов».

В открывшемся окне «Службы компонентов» перейдите «Компьютеры»«Мой компьютер» — из списка выберите «Приложения COM+».

Откройте V83COMConnector — папку «Компоненты». Удалите содержимое папки.

Этап 2. Отмена регистрации библиотек для всех установленных платформ 1С:Предприятия

Важно: проделайте отмену регистрации для всех платформ 1С:Предприятия, как новых, так и старых.

Если используете Effector Saver 4
Для удаления регистрации, откройте Effector Saver и перейдите «Сервис»«Регистрация V83.COMConnector».

Нажмите «Отменить регистрацию».

Если команда выполнена успешно, то вы увидите вот такое уведомление.

Если используете Effector Saver 3
Для удаления регистрации, запустите командную строку от имени Администратора.

И выполните команды отмены регистрации библиотеки.
Команда выглядит, следующим образом: (измените путь на версию 1С установленную на вашем компьютере)

Если у вас 32 разрядная платформа
regsvr32 /u «C:Program Files (x86)1cv88.3.16.1148bincomcntr.dll»

Если у вас 64 разрядная платформа
regsvr32 /u «C:Program Files1cv88.3.16.1148bincomcntr.dll»

Если команда выполнена успешно, то вы увидите вот такое окно.

Повторите эту процедуру для каждой установленной версии 1С предприятия на данном компьютере.

Этап 3. Регистрация библиотеки comcntr.dll

Теперь, выполним регистрацию только одной, необходимой нам библиотеки comcntr.dll.

Если используете Effector Saver 4
В окне «Регистрация V83.COMConnector», нажмите «Регистрация».

Если команда выполнена успешно, то вы увидите вот такое уведомление.

Если используете Effector Saver 3
Для регистрации, запустите командную строку от имени Администратора, и выполните команду регистрации библиотеки.
Команда выглядит, следующим образом: (измените путь на нужную версию)

Если у вас 32 разрядная платформа
regsvr32 /i:user “C:Program Files (x86)1cv88.3.16.1148bincomcntr.dll”

Если у вас 64 разрядная платформа
regsvr32 /i:user “C:Program Files1cv88.3.16.1148bincomcntr.dll”

Если команда выполнена успешно, то вы увидите вот такое окно.

После регистрации библиотеки comcntr.dll рекомендуем перезагрузить компьютер.

Если данная инструкция не помогла, попробуйте зарегистрировать библиотеку как COM+, по материалу: «Решение проблемы «Недопустимая строка с указанием класса»».

Добавить комментарий