Контакти

Усунення помилок підключення через COM-з'єднання. Усунення помилок підключення через COM-з'єднання 1с реєстрація com компоненти

У цій статті я розповім про багатьох особливості взаємодії між базами 1С по COM технології, накопичених за роки розвитку і використання інтеграційного комерційного продукту 2iS: Інтеграція нашої компанії 2iS.

терміни

ОС - операційна система

COM-клієнт - процес (потік) ОС, що запитав створення COM-об'єкта

COM-сервер - COM-об'єкт, створений за запитом клієнта

Com-з'єднувач - COM-об'єкт V8X.ComСonnector для створення зовнішніх з'єднань з базами 1С

Automation-сервер - він же OLE-сервер, COM-об'єкт V8X.Application для створення додатків 1С

Видання платформи - підрядок до 2-ї точки версії платформи (наприклад 8.2, 8.3)

Збірка платформи - повна рядок версії платформи (наприклад 8.2.19.130, 8.2.16.352)

Підключення зовнішнього з'єднання

Розглянемо алгоритм підключення зовнішнього з'єднання в деталях
  1. Створення COM-об'єкта Com-з'єднувач (Ім'я класу - V8X.ComConnector). варіанти:
  2. Внутріпроцессное (inproc)
  3. Повинен бути зареєстрований клас V8X.ComConnector тієї ж розрядності, що і COM-клієнт
  4. Якщо видання платформи COM-клієнта збігається з виданням платформи COM-сервера, то також потрібно рівність збірки платформи COM-клієнта і COM-сервера.
  5. Він реєструється при установці платформи з опцією «Зовнішнє з'єднання». У будь-який момент його можна зареєструвати командою «Regsvr32 comcntr.dll» в каталозі виконуваних файлів платформи.
  6. COM-об'єкт створюється в пам'яті COM-клієнта
  7. Витрати на створення приблизно - 0.01 (перше) /0.001 (друге) cек
  8. приклад

  9. Внепроцессное локальне (local)
  10. Повинен бути зареєстрований клас V8X.ComConnector будь розрядності і збірки платформи. Необхідно налаштувати через dcomcnfg.exe COM + додаток з активацією «серверний додаток» / «Server apllication». Детальніше розглянуто далі.
  11. COM-об'єкт створюється в пам'яті службового хост-процесу (dllhost.exe) на комп'ютері COM-клієнта
  12. Витрати на створення приблизно - 0.06 (перше) /0.03 (друге) сек
  13. приклад
    КомСоедінітель \u003d Новий COMОб'ект ( "V83.ComConnector");
    ВнешнееСоедіненіе \u003d КомСоедінітель.Connect (СтрокаСоедіненія);
  14. Внепроцессное нелокального (DCOM)
  15. На нелокального комп'ютері повинен бути зареєстрований клас V8X.ComConnector будь розрядності і збірки платформи. Необхідно налаштувати на нелокального комп'ютері через dcomcnfg.exe COM + додаток з активацією «Cерверное додаток» / «Server apllication». Детальніше розглянуто далі.
  16. Необхідно налаштувати на нелокального комп'ютері роль «Сервер додатків» / «Application server» і включити нелокальний доступ COM +, вибравши опцію « Мережевий доступ до COM + »/" COM + network access ". Детальніше розглянуто далі.
  17. COM-об'єкт створюється в пам'яті службового хост-процесу (dllhost.exe) на іншому комп'ютері
  18. Витрати на створення приблизно
  19. експериментальні дані

На графіку видно, що тривалість створення цього COM-об'єкта прямо пропорційна затримці каналу і коефіцієнт пропорційності становить приблизно 24. Можна припустити, що при створенні цього COM-об'єкта відбувається 24 виклику через канал.
  1. приклад
    КомСоедінітель \u003d Новий COMОб'ект ( "V83.ComConnector", ІмяКомпьютера);
    ВнешнееСоедіненіе \u003d КомСоедінітель.Connect (СтрокаСоедіненія);
  2. Виконання методу Connect (створення зовнішнього з'єднання)
  3. Створення сеансу - 1 сек
  4. Ініціалізація сеансу - сек
  5. ПередНачаломРаботиСістеми (тільки для Automation-сервера)
  6. ПріНачалеРаботиСістеми
  7. Ініціалізація параметрів сеансу
  8. Вантаження потрібних метаданих

Витрати на COM-виклики

Кожен раз, коли ми звертаємося у вбудованому мовою до властивості або методу COM-об'єкта (виконуємо COM-виклик), відбувається ряд додаткових дій в порівнянні зі зверненням до рідного об'єкту вбудованої мови. Якщо COM-сервер знаходиться в іншому локальному процесі, то при цьому ще на початку виконується перенесення всіх параметрів з COM-клієнта в COM-сервер і в кінці виконується зворотний перенос параметрів в COM-клієнт. Для такого перенесення інформація природно повинна бути серіалізовані під час пересилання і потім десеріалізована на стороні одержувача, що в сукупності з деякими іншими діями отримало назву маршалинга і демаршалінга. У нелокального режимі (DCOM) таке перенесення буде ще витрачати час на мережеві комунікації і при першому зверненні до нового COM-об'єкту на передачу його «скелета», і тому затримка каналу буде грати вирішальну роль (Детальніше про COM виклики, DCOM в вікіпедії, технічний огляд DCOM,)

Співвідношення витрат на виклик за типами розташування COM-сервера

  1. Мінімальні для внутріпроцессного Com-сервера
  2. Середні для локального внепроцессного Com-сервера
  3. Від середніх до великих для нелокального внепроцессного Cоm-сервера в залежності від якості каналу зв'язку

Мінімізація кількості COM-викликів

  1. Створюємо базову зовнішню обробку з набором загальних методів для прийому викликів від COM-клієнта на стороні COM-сервера
  2. Тепер нам не потрібно змінювати конфігурацію бази COM-сервера, щоб використовувати там складний функціонал.
  3. У нашому продукті ми назвали її «Сервісний процесор». На її передачу і ініціалізацію йде близько 1 сек
  4. Проектуємо взаємодія з COM-сервером за принципом "мінімум COM-викликів", тобто готуємо все потрібне на стороні COM-клієнта і передаємо в якості параметрів одного великого виклику »
  5. Створюємо вбудовану обробку для виконання такого виклику в COM-клієнті
  6. Передача агрегатних об'єктів
  7. Серіалізуем все вхідні параметри на стороні COM-клієнта
  8. Десеріалізуем все вхідні параметри на стороні COM-сервера
  9. Серіалізуем всі вихідні параметри на стороні COM-сервера
  10. Десеріалізуем всі вихідні параметри на стороні COM-клієнта
  11. У нашому продукті ми назвали її «Виконання сервісу Інфобази»
  12. Для багаторазових COM-викликів передбачаємо регульовану частоту
  13. Наприклад, інформаційні виклики можуть виконуватися із змінною частотою

Зворотній зв'язок

При використанні принципу «мінімум COM-викликів» значну частину часу код буде виконуватися в чужому контексті, що серйозно посилює деякі незручності COM-викликів:
  1. Не можна перервати потік COM-Клієнта і його з'єднання з сервером додатків 1С, поки не завершиться виклик COM-сервера
  2. У COM-Клієнта немає інформації про прогрес виконання виклику в COM-сервері
Для боротьби з цими незручностями можна організувати зворотній зв'язок від COM-сервера до COM-клієнту, передавши COM-Серверу посилання на загальний модуль COM-клієнта і періодично викликаючи через неї COM-клієнт. Потрібно відзначити, що є помилки платформи (https://partners.v8.1c.ru/forum/t/1382465/m/1382465), які проявляються при створенні посилань на один загальний модуль більш ніж в одному COM-півночі сеансу. Тому поки краще очищати посилання на загальний модуль у всіх утримуваних COM-серверах перед приміщенням в новий. У зворотних виклики можна передавати:
  1. інформацію про прогрес виконання
  2. накопичені повідомлення користувачу (отримувати функцією ПолучітьСообщеніяПользователю (Істина))

Схема принципу "мінімум COM-викликів"

Така схема дружня до великих затримок каналів зв'язку. Тому вона багато в чому схожа на виклик веб-сервісу. А отже використовуючи її для COM взаємодії, ви значно знижуєте витрати на можливі переходи між COM і веб-сервісом в обох напрямках.

налагодження

При використанні принципу «мінімум COM-викликів» полегшити налагодження виконання коду на COM-сервер можна, зробивши опциональное модальне вікно підключення до бази в COM-клієнті. У цьому вікні повинні бути можливості завдання одноразових параметрів підключення, виконання допоміжних функцій і перегляду інформації про підключене сеансі. Нижче як приклад показано таке вікно з нашого продукту

Щоб включити можливість налагодження зовнішніх з'єднань, в підкаталозі conf потрібно створити файл comcntrcfg.xml з відповідним вмістом. У вікні підключення можна зробити кнопку / прапорець для програмного створення такого файлу. Однак багато версій платформи містять помилку, через яку предмети налагодження зовнішніх з'єднань не видно в отладчике навіть з цим коректно настроєним файлом. На платформі 8.3 ці проблеми начебто вирішено.

Приклад файлу comcntrcfg.xml:


Також не можна забувати про необхідність запускати конфігуратор для налагодження з тієї ж (до регістру букв) рядком з'єднання, що і предмет налагодження. Тому в цьому діалозі потрібно зробити кнопку для запуску конфігуратора COM-сервера з правильною рядком з'єднання.

В якійсь мірі обійти проблему невидимості предмета налагодження зовнішнього з'єднання і ряд інших незручностей можна шляхом одноразового виконання коду на товстому клієнті з заміною режиму «Зовнішнє з'єднання» на «Automation-сервер» (додаток), тобто використовуючи COM клас V8X.Application і включену видимість. Тому у вікні підключення потрібні параметри для вибору режиму підключення.

Після створення підключення на стороні COM-клієнта зазвичай потрібне підключення відладчика бази COM-сервера і установка там точки зупину в потрібному місці. Тому у вікні підключення потрібно розташувати кнопку підключення відладчика / конфігуратора COM-сервера. Якщо COM-сервер запущений в режимі видимого додатки, то для підключення відладчика можна скористатися асинхронним викликом виключення в ньому. З діалогу з помилкою в додатку COM-сервера через кнопку «Конфігуратор» можна буде відкрити конфигуратор і в більшості випадків відразу підключити відладчик. Якщо підключення відладчика таким способом недоступно, то оператору допоможе відображення інформації про сеанс (його номера) в базі COM-сервера. Також потрібна кнопка відкриття у відкритому отладчике файлу зовнішньої обробки, Яка буде виконуватися в ньому.

Управління COM класами і COM + додатками 1С

Управління COM класами

  1. Зовнішнє з'єднання (V8X.ComConnector)
  2. Реєстрація: Regsvr32 comcntr.dll
  3. Скасування реєстрації: Regsvr32 comcntr.dll / u
  4. Automation-сервер (V8X.Application)
  5. Реєстрація - 1cv8.exe / regserver
  6. Скасування реєстрації - 1cv8.exe / unregserver

Управління COM + додатками

Здійснюється через оснащення dcomcnfg.exe. Для реєстрації 1С в якості COM + додатки необхідно відкрити оснастку "dcomcnfg". У ній в гілці "Служби компонентів" - "Комп'ютери" - "Мій комп'ютер" - "Додатки COM +" (COM + Applications) необхідно додати новий додаток (application). При додаванні можна вказати будь-яке ім'я. Далі необхідно вказати користувача, від імені якого буде працювати COM + додаток, на закладці Ідентифікація (Identity). Також потрібно задати доступ до додатка для всіх користувачів шляхом додавання, якщо відсутня, ролі з будь-яким ім'ям в гілці Ролі (Roles), і додавання в її гілку Користувачі (Users) користувача Все (Everyone). Після додавання додатки необхідно створити нову компоненту. Для цього в гілці "Компоненти" створеного додатки необхідно вибрати пункт меню "Створити" - "Компонент". При створенні вибрати імпорт вже зареєстрованих компонентів і знайдіть в списку (бажано 64-бітну) компоненту 1С (V8x.COMConnector.1).

У нашому продукті є інструмент «Управління COM класами 1С» для перегляду / реєстрації / зміни всіх COM класів і COM + додатків 1С на вказаному комп'ютері:

Налаштування DCOM-сервера

Для Windows 2008 Server потрібно додати роль «Сервер додатків» (Application server). Для цього необхідно відкрити панель управління комп'ютером, натиснути правою кнопкою миші в гілки "Ролі" і вибрати пункт меню "Додати роль".

З'явиться око в якому необхідно вибрати роль "Сервер додатків" / "Application server". На етапі вибору ролей сервера додатків необхідно вказати пункт "Мережевий доступ до COM +" / "COM + network access". Якщо це не зробити, то при спробі створення COM-об'єкта ви будете отримувати помилку "Помилка при виклику конструктора (COMОб'ект): The component or application containing the component has been disabled".

проблеми

  1. Високі витрати на підключення / ініціалізацію
  2. Утримання com-серверів - ефективний засіб боротьби
  3. Тимчасове сховище. Виробник не рекомендує, але діватися більше нікуди. http://infostart.ru/public/331683/
  4. Повторне використання значень, що повертаються. Очищаються кожні 20 хв
  5. Різні збірки платформи клієнта і сервера при однаковому виданні платформи
  6. Для обходу для кожної відмінною від COM-клієнта збірки платформи призначаємо і налаштовуємо DCOM сервер
  7. Відсутність інформації про типи вкладених в COM-об'єкти об'єктів 1С (замість типу об'єкта 1С всюди отримуємо тип «COMОб'ект») і відсутність контекстної підказки по ним
  8. Для обходу застосовуємо принцип «мінімум COM-викликів»
  9. При передачі виключення з COM-сервера воно приймає коротку форму через помилки платформи
  10. Для обходу обертаємо кожен виклик на стороні COM-сервера в спробу і у виключенні перевизиваем виключення з повним описом помилки
  11. При створенні COM-об'єкта помилка "Версія компоненти" comcntr "(8.X.XX.XXX) відрізняється від версії кореневого модуля" core82 "(8.X.YY.YYY)"
  12. Для обходу створюємо COM + додаток з внепроцессной активацією. Тоді COM-сервер буде створюватися в окремому процесі і збіги версій цих модулів не буде потрібно.
  13. Повільні канали (великі затримки)
  14. Кожній підмережі за окремим повільним каналом призначаємо і налаштовуємо свій DCOM сервер і при зверненні до баз за цим каналом COM-сервери створюємо на цьому комп'ютері, мінімізуючи кількість і обсяги викликів Com-клієнт<->Com-сервер
  15. Кешіруем (повторно використовуємо) COM-сервери
  16. Неможливо розірвати з'єднання робочого процесу, в якому очікується завершення виклику COM-сервера
  17. Для обходу можна використовувати створення COM-об'єктів в виділених хост-процесах, налаштувавши відповідним чином COM + додаток, і реєструвати ідентифікатори цих процесів в прив'язці до сеансів COM-клієнтів. Тоді при необхідності завершити серверне з'єднання такого сеансу можна спочатку вбити процес COM-сервера, а потім і сам сеанс.
  18. При зверненні до COM-об'єкту може виникати помилка « невідома помилка». Можливі причини:
  19. Com-сервер перестав існувати. Можливі причини:
  20. переповнення стека
  21. невідновні помилка
  22. Хост-процес завершився
  23. Втрата зв'язку з нелокальним COM-сервером
  24. Збіг імен властивостей і методів без параметрів об'єкта створює неоднозначність звернення до них через COM
  25. Наприклад, якщо у довідника є реквізит ПолноеНаіменованіе, то через наявність методу ПолноеНаіменованіе () звернення до реквізиту ПолноеНаіменованіе через COM може привести до виклику методу ПолноеНаіменованіе ()
  26. Для обходу використовуємо принцип "мінімум COM-викликів"

Com-технологія VS веб-сервіси в локальній мережі

недоліки

  1. Розглянуті вище складності з взаємодією різних збірок платформи 1C, що вимагають для свого рішення сервісний механізм
  2. Високі витрати на підключення / ініціалізацію, тому при відсутності кешування неефективно для частих дрібних викликів
  3. Прив'язка до сімейства операційних систем (платформі) Windows

переваги

  1. Відсутність необхідності змінювати конфігурацію баз, до яких підключаємося
  2. широка функціональність
  3. простіше налагодження
  4. Не потрібно розгортати і підтримувати веб-сервер

Захоплення клієнтських ліцензій

У більшості випадків всіх клієнтських додатків, окремим випадком якого є Automation-сервер і з застереженнями є зовнішнє з'єднання, в одному сеансі ОС потрібно всього лише одна на всіх ліцензія. Однак якщо клієнтського додатку не вдалося отримати апаратну ліцензію (від локального HASP або мережевого HASP) і програмну ліцензію (Платформи або базовій конфігурації), то робиться спроба отримати окрему ліцензію з сервера 1С: Підприємства. Сервер 1С: Підприємства може видати ліцензію тільки, якщо у властивостях бази дозволена видача ліцензій сервером 1С: Підприємства. У такому випадку кожне клієнтське додаток і зовнішнє з'єднання може захоплювати свою власну ліцензію.

висновок

Якщо ви хочете докладніше дізнатися про описані особливості, ви можете безкоштовно завантажити конфігурацію і демонстраційну базу продукту, для чого необхідно оформити попереднє замовлення на Інфостарте на продукт 2iS: Інтеграція. Незважаючи на наявність в конфігурації захищеного модуля, 99% програмного коду конфігурації відкрито, тобто Ви можете вивчити реалізацію описаних прийомів.

Що поставляється з платформою COM-компонент дозволяє взаємодіяти між собою кілька інформаційних баз, А також отримувати доступ до баз 1С: Підприємства з сторонніх додатків. Детальніше можете прочитати на офіційному сайті.

Приклад роботи через COM-з'єднання ми розглядали в одній з попередніх статей. У цій статті розглянемо дії в системі, необхідні для використання COM-компоненти.

Реєстрація в системі

Після установки платформи на комьютер COM-компонент повинен бути встановлен автоматично монтажник. Файл зовнішньої компоненти розташовується в каталозі:

C: \\ Program Files \\ 1cv82 \\ [версія платформи] \\ bin \\ comcntr.dll

Таким чином, при установці новке нової версії платформи компонент буде встановлений новий і знаходиться у відповідній директорії. Для використання COM-компоненти вона повинна бути зареєстрована в операційній системі.

Бувають ситуації, коли програма установки не може автоматично зареєструвати DLL в операційній системі, тому це доводиться робити вручну. Також при установці нової версії платформи поверх вже встановленої може знадобитися зареєструвати comcntrl.dll з каталогу встановленої версії.

Виконати дії вручну можна за допомогою командного рядка, запущеної від імені адміністратора, в такий спосіб:

regsvr32 comcntrl.dll

запущеної в вищевказаному каталозі.


Часто буває потрібно отримати дані з різних баз, які, що зовсім не рідкість працюють на різних платформах. Це може бути і регулярний обмін даними між базами. Також можуть бути якісь разові обробки по перенесенню даних. Це можуть бути і звіти, що збирають дані з різних баз і формують необхідний результат на виході.
У кожному з цих випадків необхідно з однієї бази підключитися до іншої через COM-з'єднання. Ось на етапі підключення часто підстерігають різні неприємності. У цій статті будуть розглянуті деякі помилки і способи їх усунення. Тут будуть наведені конкретні помилки при з'єднанні між певними платформами, але способи усунення можуть бути такими ж придатними і при з'єднанні між платформами в інших варіаціях.

Ситуація перша. При спробі підключення через COM-з'єднання до бази-джерела видається повідомлення про помилку. Щось на кшталт: "Помилка при виклику конструктора (COMObject): -2147221164 (0x80040154): Клас не зареєстрований".
Для усунення подібної помилки насамперед потрібно зареєструвати бібліотеку клієнта - приймача. причому для різних версій клієнтів однієї версії платформи потрібно реєструвати свою бібліотеку. Тобто для різних збірок платформи версії 8.3 потрібно заново реєструвати версію бібліотеки потрібного релізу платформи. Для платформи версії 8.2 такий же підхід.
Бібліотека реєструється в такий спосіб. Запускається Командний рядок з-під адміністратора в ній пишеться команда

Regsvr32 "[Шлях до бібліотеки] \\ bin \\ comcntr.dll,

Наприклад, regsvr32 "c: \\ Program Files (x86) \\ 1cv8 \\ 8.3.5.1119 \\ bin \\ comcntr.dll" і команда виконується. Всі відкриті програми 1С при цьому краще закрити. При успішній реєстрації буде видане повідомлення про успіх. Якщо видається повідомлення про помилку, то потрібно перевірити шлях, по якому знаходиться бібліотека, і всі права.
Також цю команду можна помістити в cmd- файл і запустити його з правами адміністратора.

Якщо така помилка випадає при спробі підключити до БД на платформі 7.7, то слід перевірити реєстр на предмет наявності реєстрації 7.7-коннектора. У розділі HKEY_CLASSES_ROOT повинні бути присутніми гілки зображені:

Для правильної реєстрації 7.7-коннектора слід один раз запустити 1С Підприємство 7.7 від імені Адміністратора.

Ситуація друга. При спробі встановити COM-з'єднання випадає помилка з повідомленням про невідповідність версії клієнта БД-джерела. У цьому випадку проблема вирішується реєстрацією правильної версії бібліотеки comcntr.dllтак, як це було описано вище.

Ситуація третя. При спробі підключення через COM-з'єднання до бази-джерела на платформі 1С 7.7 помилок не видається, але обробка "намертво" "зависає". При знятті завдання з'єднання через консоль управління серверами 8.х залишається і не скидається ніякими хитрощами, крім перезапуску служби сервера 1С. Таке явище відбувається, коли здійснюється спроба з'єднання з БД на платформі 8.х до БД на платформі 7.7 з сеансу сервера. Чітко визначених причин такої поведінки програми тут не наводиться. Рекомендація одна - використовувати виклик підключення з сеансу клієнта (& НаКліенте).

Ситуація четверта. При спробі підключення через COM-з'єднання до бази-джерела на платформі 1С 7.7 помилок не видається, а й з'єднання не відбувається. В цьому випадку, а також в деяких інших допомагає ручна реєстрація COM- компонентів.

1. Заходимо в Панель управління → Адміністрування → Служби компонентів.
2. Переходимо до гілки Комп'ютери → Мій комп'ютер → Програми COM +.


3. У контекстному меню вибираємо Створити → Додаток. Відкриється Майстер установки додатків COM +. Вибираємо "Створити новий додаток".

4. Ім'я нового додатка краще написати щоб було зрозуміло про що мова: V8_ComConnector, спосіб активації - "серверний додаток".

5. На наступному кроці встановлюємо «Поточний користувач». Натискаємо «Далі» .У гілці створеного додатки переходимо на гілку "Ролі" відкриваємо роль "CreatorOwner" і далі в розділі "Користувачі" створюємо користувача - обліковий запис під якою працює сервер 1С.
6. В гілці створеного додатки переходимо на гілку "Компоненти" та створюємо компонент: Створити - Компонент Вибираємо "Установка нових компонентів", і в діалозі вибираємо потрібну DLL-ку (в даному прикладі: [Шлях до бібліотеки] \\ bin \\ comcntr.dll).
7. У контекстному меню вибираємо «Властивості». У вікні, переходимо на вкладку «Безпека».
8. Знімаємо галку «Примусова перевірка доступу для додатків». Ставимо галку «Застосувати політику програмних обмежень». Встановлюємо Рівень обмежень - «Необмежений»


9. Натискаємо «ОК».

Як в Windows x32 (x86) / x64 зареєструвати компоненту com-з'єднання comcntr.dll 1С 8.

Відповідь на це питання актуальне в контексті натройкі обмінів між базами 1С за допомогою прямого підключення. Один з варіантів установки / реєстрації компоненти com-з'єднання наведено на сторінці: На ній описано варіант установки компоненти при установці / перевстановлення компонентів платформи 1С: Підприємство зі стандартного пакета установки. Але трапляється і так, що все-таки com-компонента по якимось таємничим Пірчине все ж не реєструється при вищевказаної операції.

На це є альтернативний варіант за допомогою командного рядка операційної системи. Забігаючи трохи вперед, і щоб убезпечити себе від помилок при реєстрації com-компоненти comcntr.dll через командний рядок, подібних наведеної на скрині

Щоб уникнути помилки "Модуль comcntr.dll завантажений, але не вдалося здійснити телефонний дзвінок DllRegisterServer, код помилки 0x80070005" запускайте командний рядок з правами адміністратора

В системі з розрядністю x32 (x86) для платформи 1С: Підприємство 8.2

C: \\ Program Files (x86) \\ 1cv82 \\<номер_релиза>\\ Bin\u003e regsvr32 comcntr.dll

де<номер_релиза> - номер поточного використовуваного релізу плафторми 1С 8.

Для платформи 1С: Підприємство 8.3 командний рядок для реєстрації com-компоненти буде виглядати приблизно так:

C: \\ Program Files (x86) \\ 1cv8 \\<номер_релиза>\\ Bin\u003e regsvr32 comcntr.dll

На скрині, наведеному нижче в якості пірмере для випадку реєстрація comcntr.dll в ОС x86 значення<номер_релиза> - "8.3.9.1818"

Тепер розглянемо варіант для системи з розрядністю x64 для платформи 1С: Підприємство 8.2, альтернативний варіант:

C: \\ Windows \\ SysWOW64\u003e regsvr32 "C: \\ Program Files (x86) \\ 1cv82 \\<номер_релиза>\\ Bin \\ comcntr.dll "

Для Windows x64 регістірація com-з'єднання 1С 8.3 може виглдяеть так:

C: \\ Windows \\ SysWOW64\u003e regsvr32 "C: \\ Program Files (x86) \\ 1cv8 \\<номер_релиза>\\ Bin \\ comcntr.dll "

Якщо все-таки наведений матеріал не допоміг, пропонується звернутися до альтернативних публікацій: Реєстрація comcntr.dll-компоненти в 64-бітової версії Microsoft Windows і Реєстрація компоненти comcntr.dll для COM з'єднання з 1С 8 в 32-бітної операційної системи

© www .. Все права захищені. Використання текстів і зображень з даної сторінки без письмового дозволу власника заборонено. При використанні матеріалів з даної сторінки обов'язкова вказівка \u200b\u200bпосилання на дану сторінку.

Свого часу зіткнувся з проблемою створення COM-з'єднання на стороні сервера. Проблема важко діагностується, тому що код, прекрасно працює під клієнтом відмовляється працювати на сервері, наприклад, якщо код виконує регламентне завдання.

Пропонована нижче методика дозволяє позбутися від описуваної проблеми. На жаль, після переустановлення платформи все повертається на круги своя і процедуру доводиться повторювати.

Http://www.steeltrace.ru/details/articleid/22/%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1 % 86% D0% B8% D1% 8F-1% D1% 81-com-% D0% BA% D0% BE% D0% BC% D0% BF% D0% BE% D0% BD% D0% B5% D0% BD% D1% 82% D0% B0-% D0% B4% D0% BB% D1% 8F-% D1% 80% D0% B0% D0% B1% D0% BE% D1% 82% D1% 8B-% D1 % 81-64-% D0% B1% D0% B8% D1% 82% D0% BD% D1% 8B% D0% BC% D0% B8-% D0% BF% D1% 80% D0% B8% D0% BB % D0% BE% D0% B6% D0% B5% D0% BD% D0% B8% D1% 8F% D0% BC% D0% B8.aspx

Upd. Доповнення: якщо на Windows-сервері 64-біт варто Сервер 1С Підприємство 64-біт (в дистрибутиві windows64.rar),
то такої проблеми не буде. Уставщик дозволяє поставити COM-коннектор без установки самого півночі. Це корисно, коли додаток реалізовано на платформі 8.3, а COM-з'єднання потрібно до баз на 8.2.

За доповнення спасибіbrix8x.

Наведено алгоритм настройки системи, зі скрін до кожної дії.

2. Реєстрація компоненти comcntr.dll

5. Старт сервера 1С. (Обов'язково :)

викликаємо консоль


Реєструємо компоненту. Компонента відсутня, якщо встановлений тільки сервер 1С. Чомусь 1С публікує її тільки в складі клієнта.


Upd. Якщо компонента не реєструється, то можливо доведеться спочатку видалити стару компоненту, Тільки потім постане нова.
робимо regsvr32 / u "C: \\ Program Files \\ 1cv8 \\ 8.2.18.82 \\ bin \\ comcntr.dll"
Потім те ж саме, але без "/ u" regsvr32 "c: \\ Program Files \\ 1cv8 \\ 8.2.18.82 \\ bin \\ comcntr.dll"

За доповнення спасибіshur52.

Запускаємо службу компонентів. описується для Windows Server 2008 R2 Standart.








У гілці Components додаємо нову компоненту comcntr.dll






ВАЖЛИВО !!! Після установки потрібно трохи змінити властивості. Ця тонкість ніде не описана, без неї у мене не працювало!

Перезапуск фізичного сервера



Сподобалася стаття? поділіться їй