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

08.03.20

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

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

Скачать файлы

Наименование Файл Версия Размер
v82Server.dll
.dll 96,00Kb
131
.dll 96,00Kb 131 Скачать
v83Server.zip - 32х и 64х - разрядная версия + исходники
.zip 95,77Kb
13
.zip 95,77Kb 13 Скачать

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

 Я не являюсь автором идеи и привожу ссылку на первоисточник. Мой скромный вклад заключается в перекомпиляции библиотеки, первоначально предназначенной для 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! 20%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

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

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

45650 36520 руб.

04.08.2015    159689    363    267    

345

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134940    723    291    

388

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22449    19    1    

22

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

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

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

34650 27720 руб.

15.04.2019    68418    178    138    

111

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

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

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34169    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 25200 руб.

23.07.2020    46301    196    64    

158

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

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

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

50722 45650 руб.

31.10.2014    231411    124    327    

296

Перенос данных из Парус 10 в ЗГУ ред.3

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9208    9    8    

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

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

1. cool.vlad4 2 10.10.11 23:17 Сейчас в теме
а можешь выложить исходники?
2. cleaner_it 220 11.10.11 05:03 Сейчас в теме
(1) Согласен, лишними не будут:)
3. alex_bob 246 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 246 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 173 11.10.11 08:13 Сейчас в теме
при обновлении конфиги сервер вырубает все подключения к базе, как потом эти remote пользователи пула подключатся обратно?
5. alex_bob 246 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 1254 11.10.11 09:06 Сейчас в теме
1. 1С ушла от использования СОМ+ компонентов в 8.1
2. на nix - не взлетит :)
3. за развитие велосипеда +
7. alex_bob 246 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 246 19.10.11 16:05 Сейчас в теме
dandrontiy пишет:
Что то я там исходника не нашел. DLL - на чем написана и откомпилирована?


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

также я там на форуме 1С++ (ссылка на сообщение) парочку вопросов задал, если будет время ответишь ?
14. andboss 200 28.10.11 09:04 Сейчас в теме
В 8.2 все это реализуется штатно через Менеджер COM-соединений
15. alex_bob 246 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 246 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 146 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 246 02.08.12 13:48 Сейчас в теме
Возможно у Вас ошибка в строке подключения через COM к конфигурации 8.2.13? Нужно указывать явно номер порта через двоеточие после имени сервера.
27. nick_krsk 19 20.02.13 13:29 Сейчас в теме
Подскажите, пожалуйста, вот по какому вопросу:как передать параметры в вызываемую глобальную функцию?

$v7 = new COM("v7AppServer.Connection");
echo $v7->AppDispatch->EvalExpr("glTest('777','тестовая строка'"); - так не получается
28. alex_bob 246 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 246 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 246 05.09.14 15:10 Сейчас в теме
(35) БизнесРешение,
Операционка и 1С случайно не 64разрядные? Я тестировал компоненту только на 32-разрядных системах.
37. БизнесРешение 05.09.14 16:12 Сейчас в теме
"К сожалению" ДА! :(
Прикрепленные файлы:
38. БизнесРешение 05.09.14 16:12 Сейчас в теме
Не получится в этом случае запустить?! :(
39. alex_bob 246 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 7136 17.01.16 16:05 Сейчас в теме
Где взять последние исходники? Форум на 1cpp.ru похоже поломался (дальше 3-й страницы тем все пусто).
sanfoto; Asmody; +2 Ответить
46. wunderland 201 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 246 06.03.20 15:37 Сейчас в теме
(48) Извините, что не ответил сразу. Искал исходники, устанавливал окружение. Вроде удалось собрать компоненту для 1С83, но из-за ограниченных возможностей для тестирования гарантировать работу не могу. Буду выкладывать вместе с исходниками как отдельную публикацию, пока на модерации.
50. mavinic 06.03.20 15:44 Сейчас в теме
51. alex_bob 246 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 246 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 246 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 246 04.10.23 17:22 Сейчас в теме
(56) И всё же дело скорее всего в строке подключения. Проверьте, v83.ComConnector с идентичной строкой работает? Пользователь 1С, указанный в строке должен иметь право на внешнее подключение.
59. dredomir 05.10.23 15:29 Сейчас в теме
(57) Строка подключения указана корректно, через v83.ComConnector подключается без проблем.
58. alex_bob 246 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 246 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 246 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 246 06.10.23 16:25 Сейчас в теме
(65) Это сообщение относится к моменту запуска приложения v83Server или когда пытаешься к нему обратиться из 1С?
70. dredomir 06.10.23 16:42 Сейчас в теме
68. alex_bob 246 06.10.23 16:29 Сейчас в теме
(67) Попробуй удалить приложение и создать по новой.
71. dredomir 06.10.23 17:33 Сейчас в теме
(68) установил на другом сервере, ошибка та же самая.

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