v82Server.dll - Технология Microsoft COM+ для доступа к 1C82. Теперь и к 1С83.

08.03.20

Разработка - Разработка внешних компонент

Мгновенное подключение к базе 1С по OLE (COMConnector).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
v82Server.dll
.dll 96,00Kb
131
131 Скачать (1 SM) Купить за 1 850 руб.
v83Server.zip - 32х и 64х - разрядная версия + исходники
.zip 95,77Kb
14
14 Скачать (2 SM) Купить за 2 150 руб.

Чуда нет. Просто подключение Вы организуете заранее.

 Я не являюсь автором идеи и привожу ссылку на первоисточник. Мой скромный вклад заключается в перекомпиляции библиотеки, первоначально предназначенной для 1С77 для использования с 1С81 и 1С82. Для тех же, кому лень читать 6 страниц обсуждения темы на приведенном форуме, постараюсь привести здесь выжимку из всех этих обсуждений.

1. Что это такое и зачем это нужно?

Когда мы соединяемся с базой 1С77 по OLE (с базой 1С8х через COMConnector) на соединение с базой уходит несколько секунд, что ограничивает область применения этой технологии. В обсуждениях мелькала идея о том, что было бы здорово иметь уже запущенный экземпляр 1С и с помощью какой-то внешней компоненты соединяться с ним и затем отсоединяться. Так как 1С уже запущена, соединение должно проходить значительно быстрее.

Собственно, v82Server.dll (как и v7Server.dll и v8Server.dll) ровно это и делает с использованием встроенной в ОС Windows технологии COM+. Причем COM+  дает нам дополнительные бонусы:

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

2. Есть возможность удаленного выполнения процедур, то есть сама v82Server.dll может располагаться на сервере, а на клиентском компьютере будет установлена сформированная подсистемой COM+ заглушка (stub), переадресующая вызовы на сервер.

 

 Как это применить? Ну, например, если у Вас уже есть сайт на PHP, то для организации взаимодействия с 1С вы можете написать:

Код PHP
 

 

2. Как настроить, чтобы это заработало?

- Создать COM+ приложение:

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

- найти в дереве консоли узел "Мой компьютер". Открыть свойства и проверить на закладке "Свойства по умолчанию", что на данном компьютере разрешено исполнение приложений DCOM. Если галочка не стоит, включить. 

- в дереве консоли найти узел "Мой компьютер - > Приложения Com+" и в контекстном меню этого узла выбрать Создать -> Приложение;

- в мастере установки нажать кнопку "создать новое приложение" и ввести имя приложения (например "v82Server")
Способ активации выбрать "серверное приложение" и проклацать "далее" до завершения работы мастера.

- Создать компонент в приложении

- в только что созданном приложении найти группу "Компоненты" и в контекстном меню выбрать "Создать -> Компонент"

- в мастере установки компонентов нажать "Установка новых компонентов", указать путь к файлу v82Server.dll и нажать "Готово"

- в свойствах компонента, на закладке "Активация" включить группировку объектов в пул и указать минимальный и максимальный размер пула (например 1 и 3);

- включить флажок "Включить создание объектов" и в поле "строка конструктора" написать параметры строки соединения для V82.ComConnector (например: Srvr="mysrvr";Ref="UPP";Usr=remote;Pwd=123) (сразу замечу, что у пользователя remote в базе должны быть права на внешнее подключение);

- запустить приложение (через контекстное меню v82Server).
После этого в списке процессов должны появиться n процессов 1cv8.exe, где n-минимальный размер пула объектов, а если зайти в базу 1С и посмотреть список активных пользователей, то мы увидим n пользователей remote.

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

set v82=CreateObject("v82Server.Connection")
MsgBox v82.UserName()
 

 

3. Как сделать, чтобы было соединение и с базой Бухгалтерии и с базой Торговли?

Создать 2 приложения COM+ с разными именами, например v8BUH и v8Trade. При создании компонентов указать соответствующую строку подключения. При программном создании объектов указывать имена "v8BUH.Connection" и "v8Trade.Connection"

 

4. Как сделать, чтобы я вызывал объект на локальном компьютере, а код исполнялся на удаленном?

- Зайти в консоль Службы компонентов (Панель управления -> Администрирование -> Службы компонентов) на сервере - компьютере, где уже установлено наше COM+ приложение, найти его в дереве, и щелкнув правой кнопкой мышки в контекстном меню выбрать "Экспорт".

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

- перенести сформированный мастером инсталляционный пакет на клиентский компьютер и установить.

- Установка требует прав администратора, поэтому я делал так:

- Запускаем консоль Службы компонентов от имени администратора.

- в дереве консоли находим узел "Мой компьютер - > Приложения Com+" и в контекстном меню этого узла выбираем Создать -> Приложение;

- в мастере установки нажимаем кнопку "Выбрать готовое приложение" и выбираем наш инсталляционный пакет.

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

- перезапустить приложение COM+ в консоли сервера.

Проверить работу на клиенте можно также с помощью вышеприведенного скрипта. Код 1С82 должен выполняться и в том случае, если восьмерка на клиентском компьютере вообще не установлена.

 

PS. Я проверял работу данного компонента на MS Windows 2003 и XP. Возможно, что-то может не заработать. Это зависит от настроек безопасности в вашем домене.

Если нет домена, тогда удаленная работа с COM+ приложением будет возможна, если на сервере существует пользователь, под которым вы работаете на локальном компьютере, у него совпадает пароль с вашим, настроены права на DCOM и на использование данного приложения. В общем случае читайте справку в консоли "Службы компонентов". Там все достаточно детально описано. Кроме того, советую все же почитать ветку форума, указанную в начале статьи. В этой ветке можно найти также компоненты для доступа к 1С77 и к 1С81 с исходными текстами.

 

Обновление от 08.03.2020:

Добавлен архив с версией библиотеки для 1с83 (32 и 64-разрядная), а также исходниками (проект VS).

К сожалению, проверить смог только 64-разрядную версию на Windows 10 (версия платформы 8.3.15.1830, УПП 1.3.132.2).

 

 

Удачи в экспериментах!

См. также

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    166488    333    277    

373

SALE! 20%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 22338 руб.

12.06.2017    141529    798    297    

419

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.234.x) и БП 3.0 (3.0.161.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    24026    169    51    

127

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.19.x).

35000 руб.

23.07.2020    51273    228    69    

185

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20696    21    49    

38

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56210    59    105    

61

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171178    303    257    

378

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 13005 руб.

18.02.2016    186886    589    509    

526
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. alex_bob 248 10.10.11 23:17 Сейчас в теме
Мгновенное подключение к базе 1С по OLE (COMConnector).

Перейти к публикации

1. cool.vlad4 2 10.10.11 23:17 Сейчас в теме
а можешь выложить исходники?
2. cleaner_it 209 11.10.11 05:03 Сейчас в теме
(1) Согласен, лишними не будут:)
3. alex_bob 248 11.10.11 08:06 Сейчас в теме
Исходники для 1С81 лежат здесь (см. ответ #78). Для 82 изменилось только наименование объекта и GUIDы. Для того, чтобы разобраться что к чему более чем достаточно. А что, есть какие-то идеи?
8. marsohod 123 11.10.11 13:39 Сейчас в теме
(3) размер отличается почти в два раза - v8Server.dll весит 53248 байт, а v82Server.dll - 98304 байт. Присоединяюсь к просьбе выложить исходники по причине элементарной осторожности :)
11. dandrontiy 19.10.11 15:21 Сейчас в теме
alex_bob пишет:
(см. ответ #78). Для 82 изменилось только наименование объекта и GUIDы. Для того, чтобы разобраться что к чему более чем достаточно. А что, есть какие-то идеи?
Ответили: (8) (10)


Что то я там исходника не нашел. DLL - на чем написана и откомпилирована ?
10. alex_bob 248 11.10.11 14:49 Сейчас в теме
marsohod пишет:

(3) alex_bob, размер отличается почти в два раза - v8Server.dll весит 53248 байт, а v82Server.dll - 98304 байт. Присоединяюсь к просьбе выложить исходники по причине элементарной осторожности :)


Размер сырцов изменился, так как изменилась опция сборки проекта с /MD на /MT. Если вы читали форум, я там спрашивал, каким образом избавиться от зависимости от CRT для VC80 (библиотеки msvcp80.dll, msvcr.dll и vcomp.dll с манифестами) при переносе прокси-приложения на удаленный компьютер.
Оказалось, что с опцией /MT приложение линкуется с CRT статически.
4. anton.fly7 174 11.10.11 08:13 Сейчас в теме
при обновлении конфиги сервер вырубает все подключения к базе, как потом эти remote пользователи пула подключатся обратно?
5. alex_bob 248 11.10.11 08:49 Сейчас в теме
anton.fly7 пишет:

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

Есть несколько вариантов.
1. Ручками :) То есть залезть в консоль Службы компонентов и выбрать в меню "Запустить".
2. Скриптом. Все объекты доступны через WMI.
set ComPlus = createobject("COMAdmin.COMAdminCatalog")
set Pril=ComPlus.GetCollection("Applications")
Pril.Populate()
PrCount=pril.Count - 1
for each f1 in Pril
    if f1.Name="v82Server" then
	  ComPlus.StartApplication(f1.Name)
    end if
next 
Показать
6. fishca 1259 11.10.11 09:06 Сейчас в теме
1. 1С ушла от использования СОМ+ компонентов в 8.1
2. на nix - не взлетит :)
3. за развитие велосипеда +
7. alex_bob 248 11.10.11 09:33 Сейчас в теме
fishca пишет:

1. 1С ушла от использования СОМ+ компонентов в 8.1
2. на nix - не взлетит :)

Да, согласен это не в русле тенденций развития 1С и даже Microsoft после COM+ уже выпустило 4 версии NET.
Но если здесь и сейчас эта штука поможет кому-то решить его текущие проблемы, то это уже хорошо.

fishca пишет:

3. за развитие велосипеда +

Я бы сказал, что это не велосипед, а молоток. И использование зависит от кривизны рук - можно пальцы отбить, а можно статую Аполлона вырубить.
9. kapustinag 11.10.11 14:27 Сейчас в теме
fishca пишет:
1. 1С ушла от использования СОМ+ компонентов в 8.1
...


При переходе от 8.1 на 8.2 замедлился вход пользователя в 1С (на одном и том же железе), это видно невооруженным глазом. Если разработчики 1С не хотят / не могут ничего с этим поделать, что ж...очень жаль.

Поэтому хочется плюсовать разработки, позволяющие этот самый вход ускорить. Если архитектура {Клиентское приложение - Сервер 1С - Сервер БД} не позволяет достичь приемлемой производительности, то это могло бы быть еще одним, четвертым, звеном в клиент-серверной архитектуре 1С. COM+ или NET - это уже другой вопрос.
12. alex_bob 248 19.10.11 16:05 Сейчас в теме
dandrontiy пишет:
Что то я там исходника не нашел. DLL - на чем написана и откомпилирована?


Наверное плохо искали. Написано на С++.
Прикрепленные файлы:
13. lustin 27.10.11 12:25 Сейчас в теме
(12) Алексей, плюс поставил - считаю отличная работа.

также я там на форуме 1С++ (ссылка на сообщение) парочку вопросов задал, если будет время ответишь ?
14. andboss 201 28.10.11 09:04 Сейчас в теме
В 8.2 все это реализуется штатно через Менеджер COM-соединений
15. alex_bob 248 28.10.11 10:54 Сейчас в теме
Извиняюсь, но "все это" что? Менеджер COM-соединений дает после установки внешнего соединения подключаться/отключаться к себе внешним процессам? Или обеспечивает удаленное исполнение методов?
Собственно компонента и использует внутри менеджер COM-соединений. Только он готовит внешнее соединение заранее и предоставляет его вызывающему процессу минуя длительную стадию подключения.
Грубо говоря - подключился, провел документ, отключился (освободил соединение для другого пользователя).
16. opiumdx 28.10.11 14:53 Сейчас в теме
17. Karglak 31.10.11 09:25 Сейчас в теме
Отличная штука, а вот если мы из 1С подключаемся к 1С, возможно проще записывать подключение в глобальную переменную?
22. alex_bob 248 01.12.11 11:42 Сейчас в теме
(17)(21)
Да, возможен и такой режим работы и он подходит для обменов и административных нужд. Я же говорю о другом режиме работы, когда созданное соединение может использоваться в разных сеансах разных внешних приложений. Наиболее наглядный пример - взаимодействие с web-сайтом. Пользователь зашел на web-сайт (подключения к 1с нет). Пользователь выбрал в меню просмотр каталога товаров (подключился к 1с, выбрал запросом товары, вывел на html-страничку, отключился). Пользователь 2 в это время оформлял заказ. Нажал на кнопку ОК (подключился к 1с, создал и записал документ, отключился). Таким образом, пула из 2х соединений будет достаточно для обслуживания десятка пользователей, одновременно присутствующих на сайте.
23. AlexO 135 02.12.11 22:34 Сейчас в теме
(22)
не получится, там, по-моему (я не испытывал на примере) одна авторизация - одна сессия. Т.е. подключения разные.
а это непреодолимо.
24. DMSDeveloper 148 29.05.12 15:02 Сейчас в теме
(23) AlexO, Вы не то что не испытывали на примере, вы еще и читали не внимательно. Получившаяся Com+ публикация в момент своего старта запускает сессию V82ComConnector'а под указанным в настройках пользователем и все подключения и операции выполняются от имени этого пользователя.
На одной сессии. Если пул приложений настроен на 1 сессию.

(0) Автору творения Мега респект. Пригодилась.
29. AlexO 135 25.03.14 21:52 Сейчас в теме
(24) Padonak-XXI,
На одной сессии. Если пул приложений настроен на 1 сессию.

Вы сами-то поняли, что написали? Я сказал - один пользователь - одна сессия. Второй к ней не подключится. А то пишут тут про какие-то "пул приложений.. на одну сессию"
Набор слов в предложении. Разберитесь сначала.
18. vladen 83 01.11.11 11:10 Сейчас в теме
мог бы- поставил бы три плюса.
Спасибо.
19. petrovaUL 14.11.11 08:45 Сейчас в теме
20. maksar 25.11.11 03:24 Сейчас в теме
хорошая статья, спасибо
21. AlexO 135 01.12.11 01:18 Сейчас в теме
а вообще просто заранее открыть соединение и ждать, когда будет обмен? не мгновенно будет?
одно дело - 77, а здесь это похоже на масло масленное....
25. Созинов 01.08.12 17:05 Сейчас в теме
Вопрос от безысходности. Пол дня сижу с этой проблемой. Поможет ли мне данная компонента в следующей ситуации:
на сервере 2 версии платформы: 8.2.14.533 (порт 1641) (пусть будет сервер1) и 8.2.13.219 (порт 1741) (пусть будет сервер2). Мне необходимо установить com подключение. Конфигурация, из которой проводится подключение на платформе 8.2.14.533. К серверу1 подключаюсь нормально, данные забираю. К серверу2 не могу. Регистрация comcntr.dll от 8.2.13.219 не помогает. Пишет следущее:

(V82.COMConnector.1): Несоответствие версий клиента и сервера 1С:Предприятия
Различаются версии клиента и сервера (8.2.14.533 - 8.2.13.219), клиентское приложение: COM-соединение


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

Еще раз прошу прощения за свой вопрос. Судя по всему не получится, но вдруг (с технологией COM+ не знаком толком).
26. alex_bob 248 02.08.12 13:48 Сейчас в теме
Возможно у Вас ошибка в строке подключения через COM к конфигурации 8.2.13? Нужно указывать явно номер порта через двоеточие после имени сервера.
27. nick_krsk 18 20.02.13 13:29 Сейчас в теме
Подскажите, пожалуйста, вот по какому вопросу:как передать параметры в вызываемую глобальную функцию?

$v7 = new COM("v7AppServer.Connection");
echo $v7->AppDispatch->EvalExpr("glTest('777','тестовая строка'"); - так не получается
28. alex_bob 248 20.02.13 17:23 Сейчас в теме
Это PHP?

Давно с ним не работал.
Во-первых, должно работать без AppDispatch.
Во-вторых, строку внутри EvalExpr должна разбирать сама 1С, а она апострофы не понимает, только кавычки.
В-третих, где закрывающая скобка для glTest?
Так что наверно:

echo $v7->EvalExpr("glTest(\"777\",\"тестовая строка\")");
30. vladen 83 23.06.14 18:20 Сейчас в теме
А на 8,3,4 работать будет? Может кто пользовался на новой платформе?
31. БизнесРешение 03.09.14 21:17 Сейчас в теме
Создал Приложение, создал Компоненту - всё ОК! Запустил Процесс - тоже ОК, значок появился.
НО! никакого пользователя (заданного "Админ") в списке активных пользователей 1С не появилось.
Естественно строку Srvr="1C-Server"; Ref="TEST"; Usr=Админ; Pwd=111 на предмет правильности имён и паролей перепроверил несколько раз!
Почему такое может быть, не подскажите?? :(
32. alex_bob 248 04.09.14 09:11 Сейчас в теме
(31) БизнесРешение,
Соединение через V82.ComConnector с такой строкой соединения работает?
33. БизнесРешение 04.09.14 10:57 Сейчас в теме
Да, конечно!
V82.ComConnector и так работает Srvr="1C-Server"; Ref="TEST"; Usr=Админ; Pwd=111 и так работает Srvr=1C-Server; Ref=TEST; Usr=Админ; Pwd=111
И COM-соединение создаётся.
Но мой первый вопрос НЕ про создание объекта {Новый COMObject("V82.COMConnector")} или {Новый COMОбъект("V82Server.Connection")}, а просто про запуск СОМ-Приложения и появления после этого запуска активного пользователя "Админ" в базе 1С.
34. БизнесРешение 04.09.14 11:14 Сейчас в теме
Картинки по настройки "Службы компонентов.jpg" и свойства самой Компоненты "V82Server.Connection.1" прикладываю (Безопасность.jpg и Активация.jpg).
Windows Server 2012 R2.
Хотел спросить: на закладке "Безопасность" нужно ставить галочки?

Вот видите - всё вроде красиво, а активного пользователя "Админ" в базе 1С не появляется :(
Прикрепленные файлы:
35. БизнесРешение 05.09.14 13:04 Сейчас в теме
Так подскажите, что нам делать?? Ваша идея с COM+ очень нужная для нашей реализации!
36. alex_bob 248 05.09.14 15:10 Сейчас в теме
(35) БизнесРешение,
Операционка и 1С случайно не 64разрядные? Я тестировал компоненту только на 32-разрядных системах.
37. БизнесРешение 05.09.14 16:12 Сейчас в теме
"К сожалению" ДА! :(
Прикрепленные файлы:
38. БизнесРешение 05.09.14 16:12 Сейчас в теме
Не получится в этом случае запустить?! :(
39. alex_bob 248 05.09.14 16:52 Сейчас в теме
(38) БизнесРешение,
Посмотрите по ссылке здесь
40. БизнесРешение 09.09.14 21:39 Сейчас в теме
Установка галочек Авторизации и Владельцев в "Службы компонентов" НИ К ЧЕМУ НЕ ПРИВЕЛА :(

А вот скажите - у Вас срабатывает "Повторный запуск" (как на картинке)? =>> у меня немного думает... и потом отключается из "Работающих процессов" :(
Прикрепленные файлы:
41. БизнесРешение 09.09.14 21:43 Сейчас в теме
И ещё вопрос.
Всё-таки пользователь (ваш - remote или наш - Админ) должен появиться в списке активных пользователей сразу после запуска компоненты,
т.е. ещё ДО создания COMОбъекта "COMConnector" из языка. Правильно?!
42. avz_1C 10 16.11.14 12:29 Сейчас в теме
Спасибо.
Ставлю "+".
Пригодилось, как наводка на решение в нескольких "зависших" проектах.
43. Tsarev_Vladimir@mail.ru 19.04.15 15:28 Сейчас в теме
Ole := CreateOLEObject('v82Server.Connection');

Произошла ошибка активации COM+ из-за сбоя функции инициализации. Дополнительная информация содержится в журнале ошибок.
44. sorb 22.05.15 10:12 Сейчас в теме
А для 8.3 готовое есть? Исходники посмотрел, вроде как достаточно clsid заменить и V81.COMConnector на V83.COMConnector заменить, но сейчас под рукой нет установленной ide,чтоб собрать...
45. tormozit 7231 17.01.16 16:05 Сейчас в теме
Где взять последние исходники? Форум на 1cpp.ru похоже поломался (дальше 3-й страницы тем все пусто).
sanfoto; Asmody; +2 Ответить
46. wunderland 202 22.03.16 14:58 Сейчас в теме
Хорошая штука. Жаль что мне раньше не попалось, когда нужно было из 8 на 7.7 ходить
47. tailer2 06.10.17 13:54 Сейчас в теме
Ну, то есть на 8.3 не будет, так?
48. mavinic 03.03.20 21:36 Сейчас в теме
Алексей, куплю версию для 8.3.
49. alex_bob 248 06.03.20 15:37 Сейчас в теме
(48) Извините, что не ответил сразу. Искал исходники, устанавливал окружение. Вроде удалось собрать компоненту для 1С83, но из-за ограниченных возможностей для тестирования гарантировать работу не могу. Буду выкладывать вместе с исходниками как отдельную публикацию, пока на модерации.
50. mavinic 06.03.20 15:44 Сейчас в теме
51. alex_bob 248 09.03.20 06:05 Сейчас в теме
(50) В итоге добавил архив к этой публикации. Модераторы посчитали, что так более правильно.
leasing; mavinic; +2 Ответить
52. leasing 5 02.08.22 13:42 Сейчас в теме
Приветствую! А как будет выглядеть код подключения в С++ ?
Попробовал CoCreateInstance - получил ошибку E_NOINTERFACE No such interface supported.
53. alex_bob 248 02.08.22 16:00 Сейчас в теме
(52) Нужно добавить в модуль c++ из которого планируется вызывать компонент
#import "v8server.tlb"

Этот файл (библиотека типов компоненты) должен лежать после успешной компиляции в папке Release или Debug.
Гуглить "Обращение к COM-объектам из C++"
54. dredomir 04.10.23 13:05 Сейчас в теме
(53) Приветствую!
При запуске на win 2016 выдает ошибку

Следующий компонент настроен для создания (Construction), но либо произошла ошибка в методе IObjectConstruct::Construct(), либо компонент не поддерживает IObjectConstruct. Активизация не выполнена для объекта: {4751C145-D33B-4535-82C9-5AD4F6A857D5}

Код серверного приложения: {FED82A58-17BC-466C-A5E2-A3760FE662C0}
Код экземпляра серверного приложения:
{D543A4C1-C263-469A-AF43-A6E6BCED2429}
Имя серверного приложения: v83Server
Код ошибки = 0x80040154 : Класс не зарегистрирован

Сведения внутренних служб COM+:
Файл: com\complus\src\comsvcs\ctoract\ctoract.cpp, строка: 160
Comsvcs.dll, версия файла : ENU 2001.12.10530.18999 shp
55. alex_bob 248 04.10.23 14:05 Сейчас в теме
(54) 1. Строку соединения проверили?
2. Разрядность процессора? Разрядность 1С? v83Server.dll?
56. dredomir 04.10.23 14:24 Сейчас в теме
(55)
Строку соединения проверили?

1. Да строка указана корректно
2. разрядность x64, да v83
57. alex_bob 248 04.10.23 17:22 Сейчас в теме
(56) И всё же дело скорее всего в строке подключения. Проверьте, v83.ComConnector с идентичной строкой работает? Пользователь 1С, указанный в строке должен иметь право на внешнее подключение.
59. dredomir 05.10.23 15:29 Сейчас в теме
(57) Строка подключения указана корректно, через v83.ComConnector подключается без проблем.
58. alex_bob 248 04.10.23 18:10 Сейчас в теме
После некоторых манипуляций удалось запустить на winServer2019.
1. На скриншотах установленные свойства для приложения и для компонента.
2. Всё заработало после перерегистрации comcntrl.dll
C:\program files\1cv8\8.3.23.1782\bin>  C:\Windows\SysWOW64\regsvr32 comcntr.dll

3, После манипуляций со свойствами не забывать перезапускать v83Server.
Прикрепленные файлы:
60. dredomir 05.10.23 15:55 Сейчас в теме
(58)
перезапускать

Все сделал как описали: перерегистрировал comcntr.dll, изменил настройки компонент.
При запуске v83Server в процессах появляется dllhost, но почему-то от имени другого залогинившегося пользователя, но всё равно не работает, также пишет ошибку в событиях, в базе никаких коннектов не появляется.
61. alex_bob 248 05.10.23 17:13 Сейчас в теме
Когда создавали приложение v83Server, что указали для пользователя, под которым оно должно запускаться? Там варианты текущий пользователь, системная служба, указанный пользователь. Я выбирал указанный пользователь и он должен входить в группу Distributed COM Users.
65. dredomir 06.10.23 16:18 Сейчас в теме
(61) Активизация не выполнена для объекта: {4751C145-D33B-4535-82C9-5AD4F6A857D5}
- о какой Активации идет речь? DLL зарегистрировал. Чего ещё не хватает?

Код серверного приложения: {5FDB275B-8CB2-4D5B-8A26-D7FC32246274}
Код экземпляра серверного приложения:
{87CADED6-CE09-4DEB-92D3-1212914F5C96}
Имя серверного приложения: v83Server
Код ошибки = 0x80040154 : Класс не зарегистрирован - как будто она не зарегистрировалась.
67. dredomir 06.10.23 16:26 Сейчас в теме
(65) в Реестре не нашел приложения с этим ID - {5FDB275B-8CB2-4D5B-8A26-D7FC32246274}

для объекта: {4751C145-D33B-4535-82C9-5AD4F6A857D5} в реестре AppID другой - {5E6DDD52-D460-4E24-8ECE-6106AEE40D3D}

может в этом проблема?
62. alex_bob 248 05.10.23 17:16 Сейчас в теме
При создании компонента выбирали v83Server_64x.dll?
64. dredomir 06.10.23 15:59 Сейчас в теме
63. dredomir 06.10.23 15:59 Сейчас в теме
(61) пробовал и текущего пользователи и локальную службу. Пробовал указывать себя, предварительно добавил в группу Пользователи DCOM. Всё равно ошибка. Библиотеки заново зарегистрировал.
66. alex_bob 248 06.10.23 16:25 Сейчас в теме
(65) Это сообщение относится к моменту запуска приложения v83Server или когда пытаешься к нему обратиться из 1С?
70. dredomir 06.10.23 16:42 Сейчас в теме
68. alex_bob 248 06.10.23 16:29 Сейчас в теме
(67) Попробуй удалить приложение и создать по новой.
71. dredomir 06.10.23 17:33 Сейчас в теме
(68) установил на другом сервере, ошибка та же самая.

Код серверного приложения: {7A8BAF60-136F-49CC-A6EF-447CA60B9492} - с этим кодом в Реестре нет никакой информации.
69. alex_bob 248 06.10.23 16:31 Сейчас в теме
Перед удалением останови.
72. dredomir 10.10.23 12:25 Сейчас в теме
(69) Удалил и заново установил, всё равно ошибка та же самая.
Есть ещё идеи?
73. alex_bob 248 11.10.23 08:56 Сейчас в теме
Покажи скриншоты страниц свойств приложения и компонента Общие, Активация, Безопасность.
74. dredomir 12.10.23 06:45 Сейчас в теме
(73)
Прикрепленные файлы:
75. alex_bob 248 12.10.23 10:36 Сейчас в теме
(74) Блин, у меня всё также и работает. Может на сервере развернуто несколько версий платформ? dll будет цепляться по COM к самой последней версии. Или платформа 32х-разрядная?
76. dredomir 12.10.23 13:43 Сейчас в теме
(75) На одном сервере несколько платформ, скриншоты с него. Компонента зарегана х64.
На втором сервере только одна платформа 64-разрядная, ни там ни там не работает.
Платформа 8.3.20.2184.
77. ketr 128 08.10.24 17:37 Сейчас в теме
Все работает, спасибо
Платформа 8.3.24.1467 64-бит
Оставьте свое сообщение