1С com компонента

Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован» или «Недопустимая строка с указанием класса».
Первым делом необходимо зарегистрировать DLL в системе
Regsvr32 «C:\Program Files\1cv8\8.3….версия…..\bin\comcntr.dll»
В случае, если не помогает — создаём коннектор руками:
Заходим в Панель управления — Администрирование — Службы компонентов.
Переходим к ветке Компьютеры — Мой компьютер — Приложения COM+.
В контекстном меню выбираем Создать — Приложение. Откроется Мастер установки приложений COM+.
Нажимаем «Далее».
Выбираем «Создать новое приложение».
Вводим имя «V83COMConnector». Устанавливаем переключатель «Серверное приложение». Нажимаем «Далее».
На следующем шаге устанавливаем «Текущий пользователь». Нажимаем «Далее».
Нажимаем «Готово».
В появившейся ветке V83COMConnector переходим к подветке Компоненты.
В контекстном меню выбираем Создать — Компонент. Откроется Мастер установки компонентов COM+.
Нажимаем «Далее».
Выбираем «Установка новых компонентов».
Выбираем файл <каталог 1С>\bin\comcntr.dll.
Нажимаем «Далее» — «Готово».
Переходим к ветке V83COMConnector.
В контекстном меню выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность».
Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку «Применить политику программных ограничений». Устанавливаем Уровень ограничений — «Неограниченный».
Нажимаем «ОК».
Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.

2 Мар 2016

Успешно прошел очередную сертификацию на получение статуса «Совместимо! Система программ 1С:Предприятие» программный продукт «2iS:Интеграция», разработанный и тиражируемый фирмой ООО «ИИС» и представленный на сертификацию как конфигурация, разработанная в среде «1С:Предприятия 8.3» в режиме управляемого приложения.

«2iS:Интеграция»

Продукт «2iS:Интеграция» предназначен для централизованного управления обменом данными, информационной безопасностью и автоматизированными заданиями для любых конфигураций и баз данных «1С:Предприятие 8».

При использовании продукта отпадает необходимость внесения и поддержки изменений в конфигурации управляемых баз данных в части их интеграции между собой и с другими системами, так как вся логика взаимодействия инфосистем вынесена, централизованно настраивается и поддерживается в единой базе «2iS:Интеграция». Это приводит к снижению затрат на ИТ-поддержку систем, снижению влияния «человеческого фактора», улучшению качества обслуживания систем и увеличению их производительности.

Продукт содержит гибкие средства для мониторинга процессов интеграции с автоматическим контролем проблемных ситуаций и рассылкой sms- и e-mail-уведомлений. Конфигурация работает в режиме управляемого приложения. Для мониторинга и настройки может использоваться веб-интерфейс.

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

  • Ускоренный многопоточный обмен данными:
    • С использованием правил конвертации / Без использования правил;
    • С использованием узлов планов обмена / Без использования узлов;
    • Импорт и конвертация данных из внешних источников данных (не 1С);
    • «Умная» обработка ошибок, режимы «дозакачки» и нестрого чтения XML;
  • Новый уровень информационной безопасности:
    • Управление пользователями инфобаз из единого центра. Импорт настроек из Active Directory;
    • Сбор журналов регистрации и техно-журналов инфобаз в едином хранилище;
    • Мониторинг, контроль и управление любыми автоматизированными (регламентными) заданиями;
    • Мониторинг показателей оборудования и производительности инфобаз;
    • Автоматизированные сверки данных между инфобазами.
  • Многопоточные обработки данных:
    • Нормализация НСИ (поиск дублей, обработка заявок на их удаление с заменой ссылок);
    • Свертка (сокращение) регистров сведений, накопления и бухгалтерии;
    • Продукт позволяет разрабатывать, отлаживать и запускать по расписанию автоматизированные распараллеливаемые задания в любых базах «1С:Предприятие 8»;
  • Веб-портал отчетов из любых систем (1С и не только):
    • Возможность настройки сводных отчетов по данным нескольких систем;
    • Импорт отчетов и схем компоновок из метаданных любой конфигурации;
    • Управление рассылками отчетов с компоновкой данных из нескольких инфобаз;
    • Встроенные и портативные Инструменты разработчика для быстрой и удобной разработки отчетов в любых конфигурациях 1С;
  • Администрирование инфраструктуры (серверов, кластеров, инфобаз):
    • Регистрация всех объектов инфраструктуры 1С (серверы, кластеры, инфобазы) из единой точки;
    • Создание резервных копий инфобаз средствами SQL и 1С;
    • Обновления конфигураций по расписанию и по заявкам из файла или хранилища.

Конфигурация «2iS:Интеграция» является оригинальной, но не самостоятельной, для ее работы необходимо наличие установленной платформы «1С:Предприятие 8.3» версии не ниже 8.3.5.1248. Взаимодействие с другими базами на платформе «1С:Предприятие» осуществляется с использованием COM- и DCOM-технологий.

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

Срок действия данного сертификата – до 02.03.2018.

На сервере под управлением Microsoft Windows Server 2008 R2 ×64 работает 32-х разрядная версия сервера 1С. Не спрашивайте – почему именно так, но на личном опыте убедился, что версия 1С данной разрядности работает стабильнее, чем её 64-х битный собрат. Единственным минусом, который я пока обнаружил, является тот факт, что при установке 32-х битной версии нет возможности активировать компоненту COM+ соединений, т.к. 64-х битные приложения не могут запускать 32-х битные DLL, которые активируются при запуске 32-х битного COM+ объекта 1С.

Это выливается в некоторые трудности. Например, при попытке завершения «подвисшего” сеанса из следующей формы:

Сделать это, используя «COM-соединение с агентом сервера”, не получится, и операция завершится ошибкой.

Для того, чтобы вручную создать COM-соединение для 32-х битной версии платформы 1С, работающей на 64-х битной версии операционной системы, необходимы выполнить следующие шаги.

1. Необходимо зарегистрировать в системе 32-х битную библиотеку comcntr.dll. Для этого, откройте на сервере командную строку cmd.exe от имени администратора и выполните следующие команды:

C:\Users\администратор>cd C:\Program Files (x86)\1cv8\8.3.6.2390\bin C:\Program Files (x86)\1cv8\8.3.6.2390\bin>regsvr32 comcntr.dll

В появившемся окошке с сообщением об успешной регистрации библиотеки необходимо нажать «ОК”:

Папку bin надо искать по пути, куда у вас установлена текущая версия платформы 1С. На момент написания статьи – её номер 8.3.6.2390.

2. Запускаем консоль «Службы компонентов”: Пуск -> Администрирование -> Службы компонентов. Раскрываем ветку «Службы компонентов”. Вызываем меню, кликнув правой клавишей мыши по ветке «Приложения COM+” и выбираем Создать -> Приложение:

3. У вас откроется приветственное окно «Мастера установки приложений COM+”, в котором необходимо нажать «Далее”:

4. В следующем окне нажмите на «Создать новое приложение”:

5. Введите желаемое имя для нового приложения. В примере используется V83_ComConnector, отметьте способ активации, как «Серверное приложение” и нажмите далее:

6. В следующем окне выберите учетную запись, которую использует при старте агент сервера 1С. В примере – это учетная запись локального администратора сервера. Введите пару логин/пароль и нажмите «Далее”:

7. В следующем окне «Мастера…” нажмите «Далее”:

8. На следующем шаге, вам необходимо добавить (если имеет смысл) пользователя, от имени которого стартует агент сервера 1С и, соответственно, учетная запись которого будет использована для удостоверения работы нашего нового COM+ приложения. В окне данного примера указан только доменный администратор, от имени которого запущен «Мастер установки приложений COM+”, нажмите кнопку «Добавить”:

9. В следующем окне введите имя учетной записи, от имени которой работает агент сервера 1С, и нажмите «ОК”:

10. Вернувшись к «Мастеру…”, убедитесь, что искомая учетная запись добавилась и нажмите «Далее”:

11. Закройте «Мастер установки приложений COM+”, нажав «Готово”:

12. Мы вернулись к окну консоли «Службы компонентов”. Убедитесь, что приложение COM+ с вашим именем (в примере – V83_ComConnector) создан:

13. Раскройте дерево созданного приложения и, вызвав меню правой кнопкой мыши по ветви «Компоненты”, создайте новый компонент Создать -> Компонент:

14. У вас откроется приветственное окно «Мастера установки компонентов COM+”, в котором необходимо нажать «Далее”:

15. В следующем окне нажмите на «Установка новых компонентов”:

16. С помощью окна explorer выберите библиотеку comcntr.dll, находящуюся по пути C:\Program Files (x86)\1cv8\8.3.6.2390\bin, которую мы зарегистрировали в системе на первом шаге. Убедитесь, что путь к этой библиотеке совпадает с вашей версией платформы. В примере – это 8.3.6.2390. И нажмите «Открыть”:

17. В следующем окне «Мастера…” нажмите «Далее”:

18. Закройте «Мастера установки компонентов COM+”, нажав «Готово”:

19. Вы вернетесь к окну консоли «Службы компонентов”. Убедитесь, что в нашем приложении COM+ создалась новая компонента:

20. Вызовите её свойства:

21. И на вкладке «Безопасность” в окошке «Явно установленные для выделенных объектов роли:” отметьте мышкой CreatorOwner и нажмите «ОК”:

22. Вернувшись к консоли «Службы компонентов” закройте её и перезагрузите сервер.

После выполнения указанных действий, завершение «подвисших” сеансов в 1С версии 8.3 происходило без проблем. Единственное неудобство – теперь после каждого обновления платформы 1С на новую версию, необходимо проделывать данную операцию.

_______________
По мотивам данной статьи.

Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): «Класс не зарегистрирован” или «Недопустимая строка с указанием класса”.

Первым делом необходимо зарегистрировать DLL в системе

Regsvr32 «C:\Program Files\1cv8\8.3.7.1776\bin\comcntr.dll”

В случае, если не помогает – создаём коннектор руками:

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

Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.

Платформа 8.2 УПП 1.3 с огромным количеством дописок и доделок.
В системе создается каждый день документ, называется «Просрочка», в котором еженощно пересчитываются количество дней просрочки контрагентов, сумма задолженности, сумма просроченной задолженности и т.д. Пытаюсь объединить взаиморасчеты и этот документ Следующим запросом:
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток,
ПросрочкатзДолги.Контрагент КАК КонтрагентПросрочка,
ПросрочкатзДолги.ДолгПолный,
ПросрочкатзДолги.ДолгПросроч,
ПросрочкатзДолги.ПросрочДней,
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент.Территория4Сез КАК Территория
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Начало, &Конец, , , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ПОЛНОЕ СОЕДИНЕНИЕ Документ.Просрочка.тзДолги КАК ПросрочкатзДолги
ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент = ПросрочкатзДолги.Контрагент
ГДЕ
ПросрочкатзДолги.Ссылка.Дата = &Дата
И все бы хорошо, но тех контрагентов, которые закрыли задолженность в указанный период в документе «Просрочка» уже нет, там только должники. Насколько я понимаю, при полном и левом соединении, этот запрос должен возвращать NULL в поля которых не существует в документе просрочки, однако запрос тупо выкидывает из результата этих контрагентов, хотя во взаиморасчетах они есть.
Помогите пожалуйста понять, что я делаю не так.