Автоматическая регистрация компоненты comcntr.dll

Содержание:

Печать в PDF в фоновом режиме через регламентные задания 1с 8.2 с помощью Yoksel.dll на х64 сервере +17 –

Была поставлена задача автоматической рассылки документов на почтовые ящики ответственных лиц.
Был опробован виртуальный принтер PDFСreator — результат отрицательный.
Фоновый режим рассылки документов сервером осуществлен с помощью внешней компоненты Yoksel.dll, которая была зарегистрирована на х32 1с-сервере с помощью команды regsvr32 Yoksel.dll
Ниже приведенные процедуры созданы в общем модуле.
Ссылки на документы, печатные формы которых необходимо разослать ответственным лицам накапливаютя в регистре сведений рдУведомлениеГотовности.
В процедурах показана сама идея автоматического формирования PDF-документов на сервере 1с. Если 1с-сервер х64, то в кластер вносится х32 1с сервер и создается рабочий процесс, в который автоматически перекочевывает фоновое задание и Йоксель запускается и работает физически на х32 сервере.

Печать в PDF в фоновом режиме через регламентные задания 1с 8.2 с помощью Yoksel.dll на х64 сервере +17 –

Была поставлена задача автоматической рассылки документов на почтовые ящики ответственных лиц.
Был опробован виртуальный принтер PDFСreator — результат отрицательный.
Фоновый режим рассылки документов сервером осуществлен с помощью внешней компоненты Yoksel.dll, которая была зарегистрирована на х32 1с-сервере с помощью команды regsvr32 Yoksel.dll
Ниже приведенные процедуры созданы в общем модуле.
Ссылки на документы, печатные формы которых необходимо разослать ответственным лицам накапливаютя в регистре сведений рдУведомлениеГотовности.
В процедурах показана сама идея автоматического формирования PDF-документов на сервере 1с. Если 1с-сервер х64, то в кластер вносится х32 1с сервер и создается рабочий процесс, в который автоматически перекочевывает фоновое задание и Йоксель запускается и работает физически на х32 сервере.

Не удается зарегистрировать модуль comcntr dll

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

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

Upd
. Дополнение: если на Windows-сервере 64-бит стоит Сервер 1С Предприятие 64-бит (в дистрибутиве windows64.rar),
то такой проблемы не будет. Уставщик позволяет поставить COM-коннектор без установки самого севера. Это полезно, когда приложение реализовано на платформе 8.3, а COM-соединение нужно к базам на 8.2.

За дополнение спасибо
brix8x
.

Приведен алгоритм настройки системы, со скрином к каждому действию.

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

5. Старт сервера 1С. (обязательно:)

Вызываем консоль

Регистрируем компоненту. Компонента отсутствует, если установлен только сервер 1С. Почему-то 1С публикует ее только в составе клиента.

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

В ветке Components добавляем новую компоненту comcntr.dll

ВАЖНО!!! После установки нужно немного изменить свойства. Эта тонкость нигде не описана, без нее у меня не работало!

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

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

Сделать это, используя “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.
Ве

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

Если «веб морда» расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С — это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

Регистрация компоненты

Если программе при её установке не удалось зарегистрировать актуальную библиотеку comcntr.dll, пользователю придётся выполнить манипуляцию самостоятельно, активировав требуемые для работы программы компоненты из каталога инсталлированной версии утилиты. Для выполнения манипуляции изначально требуется узнать разрядность операционной системы ПК, на котором установлена программа. Для этого необходимо зайти в «Свойства» компьютера, кликнув по соответствующей пиктограмме на рабочем столе, где в поле «Тип системы» будет прописана искомая информация. Дальше потребуется активизировать командную консоль с привилегиями администратора, где задать следующие директивы:

  1. В 32-разрядной системе прописывается маршрут C:/Program Files (X86)/1cv8/номер релиза/bin>regsvr32 comcntr.dll.
  2. На устройствах, работающих на ОС, с разрядностью 64 бита, применяется установка C:/Windows/SysWOW64>regsvr32 «C:/Program Files (X86)/1cv8/ / bin/ comcntr.dll».

В качестве «номер релиза» и в первом, и во втором случае выступает код текущего релиза, соответствующий номеру эксплуатируемой платформы программы. После введения команд достаточно нажать клавишу Enter, после чего на экране должно появиться окно с надписью «Успешное выполнение…», что будет свидетельствовать о корректности выполнения манипуляций. Дальше потребуется зарегистрировать компоненты comcntr.dll на сервере:

  1. Для начала пользователю необходимо через позицию «Администрирование» в меню «Пуск» зайти в раздел «Службы компонентов», с последующим вызовом задачи «Создать» в реестре «Приложения COM».
  2. Через команду «Создать» активируем позицию «Приложение», после чего исполнителю работ развернётся «Мастер установки приложений COM», где посредством нажатия «Далее» открывается консоль «Установка или создание нового приложения».
  3. В открывшемся окне выбираем задачу «Создать новое приложение», после чего в следующей вкладке задаём название создаваемого компонента, параллельно отметив в консольном окне «Способ активации» позицию «Серверное приложение».
  4. После подтверждения команд кнопкой «Далее» пользователю откроется консоль под названием «Учётная запись», где надо отметить позицию «Текущий пользователь», что позволит после перехода в следующее окно и нажатия кнопки «Готово» завершить процесс.
  5. В результате программа вернёт пользователя в исходную позицию, а именно в раздел «Службы компонентов», где во вкладке «Приложения COM» будет присутствовать новый компонент с заданным ему ранее именем.
  6. Теперь потребуется открыть ветку сформированного модуля, перейти в раздел «Компоненты», посредством нажатия на позиции правой клавишей манипулятора, выбрать задачу «Создать», и щёлкнуть по строке «Компонент».
  7. В развернувшемся окне «Мастер установки компонентов COM» путём нажатия кнопки «Далее» осуществляется переход к разделу «Установка новых компонентов», где активируется обусловленная задача.
  8. Дальше потребуется через кнопку «Добавить» выбрать компоненты библиотеки comcntr.dll в папке bin, после чего последовательно нажать «Далее» и «Готово». Новая компонента будет отображаться в реестре «Службы компонентов».
  9. Нажав на названии новой компоненты надо зайти в её «Свойства», где в разделе «Безопасность» отметить позицию CreatorOwner, предварительно сняв галочку в окошке напротив надписи «Принудительная проверка доступа для приложений». Подтверждаются изменения кнопкой «ОК».

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

Справляемся с проблемой

Заканчиваем с теорией и переходим к практике – пробуем исправить ошибку «2147221164 (0x80040154): Класс не зарегистрирован».

Регистрируем библиотеку comcntr.dll

Ошибка может проявиться, если не зарегистрирована библиотека comcntr.dll. Решаем ее следующим образом. Вызываем строку «Выполнить» (кликнув ПКМ по кнопке «Пуск») и вводим regsvr32.exe «C:Program Files(86)1cv828.3.XX.XXXXbincomcntr.dll». Нажимаем ОК и, если все прошло корректно, то мы увидим сообщение об успешной регистрации библиотеки.

Создаем новое приложение СОМ+

Если библиотека зарегистрирована, но проблема остается, то кликаем ПКМ по кнопке «Пуск» (для ОС Windows 10) и вызываем «Панель управления». Затем входим в раздел «Система и безопасность», после чего переходим в «Администрирование». Появляется окно, в котором мы ищем строку «Службы компонентов» и открываем ее двойным щелчком ЛКМ. В новой консоли два раза кликаем ЛКМ по папке «Компьютер» и затем «Мой компьютер». Перед нами появляется список папок. ПКМ нажимаем на «Приложения СОМ+» и выбираем «Создать»→«Приложение».

Создаем новое COM+ приложение

Далее действуем следующим образом.

  1. В открывшемся Мастере нажимаем «Далее» и, когда в следующем окне нам предложат действие на выбор, кликаем «Создать новое приложение».
  2. В соответствующей строке присваиваем новому приложению имя, которое будет понятно не только нам, но и другим пользователям при дальнейшей работе, например 1CV8_ComConnect. Здесь же выбираем способ активации – «Серверное приложение».

    Вводим имя нового приложения 1CV8_ComConnect

  3. Теперь проводим процедуру удостоверения. В поле «Указанный пользователь» при помощи функции «Обзор» ищем учетную запись, под которым будем запускать сервер 1С версии 8.3. (Для примера обозначим ее как User1CV83).Ищем пользователя при помощи функции «Обзор»

    Конкретные шаги выбора пользователя

  4. Пропускаем процедуры, предлагаемые в следующих окнах, и нажимаем кнопку «Готово». Мастер закрывается.
  5. Возвращаемся в окно «Службы компонентов» и раскрываем ветку нашего только что созданного приложения. Разворачиваем узел «Роли», в которой кликаем на пункт CreatorOwner. ПКМ щелкаем по строке «Пользователи» и создаем нового пользователя. Снова выбираем ту учетную запись, под которой будет запускаться сервер 1С (это та самая User1CV83, о которой шла речь выше).
  6. Переходим в ветку приложения 1CV8_ComConnect и кликаем ПКМ на узел «Компоненты». Создаем новый компонент.
  7. В открывшемся Мастере делаем выбор пункта «Установка новых компонентов» и, когда появляется следующее окно, определяем нужную нам библиотеку dll (она находится по пути C:Program Files (x86)1cv81bin). Завершаем работу Мастера.
  8. У нас появился компонент 1CV81.ComConnect.1. Кликаем по нему ПКМ и открываем пункт «Свойства».  Во вкладке «Безопасность» находим перечень «Явно установленные для выделенных объектов роли» и ставим флажок напротив CreatorOwner.

Мы рассмотрели соединение с базой из программы 1С:Предприятие версии 8.3. Если планируется устанавливать коннект с БД 8.1 из версии 1С 8.2, то нужно добавить нового пользователя. Переходим по пути 1CV8_ComConnect → Роли → CreatorOwner → Пользователи и добавляем новую учетную запись User1CV82, под которой будет производиться запуск сервера 1С версии 8.2.

Если спокойно и внимательно следовать алгоритму, то исправление ошибки на деле окажется простым и быстрым. Благодаря вышеописанным действиям программа 1С версий 8.2 и 8.3 сможет обратиться за информацией к библиотеке comcntr.dll и ошибка «2147221164 (0x80040154): Класс не зарегистрирован» больше не возникнет.

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

Из информационного выпуска 1С № 16872 от 08.07.2013г. стало известно об относительно скором необходимом переходе на редакцию 1С:Бухгалтерия 3.0. В данной публикации будут разобраны некоторые особенности перевода нетиповой конфигурации 1С:Бухгалтерия 2.0 на редакцию 3.0, которая работает в режиме «Управляемое приложение».
Публикация будет дополняться по мере подготовки нового материала. Публикация не является «универсальной инструкцией».

Update 3. Права доступа. 14.08.2013
Update 4. Добавлен раздел 0. Дополнен раздел 4. Добавлен раздел 7. Внесены поправки, актуализирована информация. 23.11.2013.

1 стартмани

Автокликер для 1С

Внешняя обработка, запускаемая в обычном (неуправляемом) режиме для автоматизации действий пользователя (кликер). ActiveX компонента, используемая в обработке, получает события от клавиатуры и мыши по всей области экрана в любом приложении и транслирует их в 1С, получает информацию о процессах, текущем активном приложении, выбранном языке в текущем приложении, умеет сохранять снимки произвольной области экрана, активных окон, буфера обмена, а также, в режиме воспроизведения умеет активировать описанные выше события. Все методы и свойства компоненты доступны при непосредственной интеграции в 1С. Примеры обращения к компоненте представлены в открытом коде обработки.

1 стартмани

03.04.2017   
31863   
76   
slava_1c   

65
   

Часто встречающиеся ошибки 1С и общие способы их решения Промо

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

ActiveX компонент DynamicWrapperX 2.2 расширенный. Работает в том числе под 64-разрядной Windows 10 +16 –1

DynamicWrapperX — это ActiveX компонент (СОМ-сервер), созданный по мотивам DynamicWrapper, как попытка более полной реализации идеи. Он предоставляет возможность в скриптах на JScript и VBScript регистрировать в качестве методов объекта и затем вызывать функции, экспортируемые dll-библиотеками, в частности функции Windows API. Версия 1 работает под Windows 98. С версии 2 также возможна регистрация функции по её адресу в памяти и регистрация машинного кода функции, представленного в виде хекс-строки. Этот компонент не является модификацией оригинального кода DynamicWrapper, он написан с нуля на языке ассемблера GoAsm. Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.

1 стартмани

Суть ошибки и методология её устранения

Если при попытке взаимодействия с платформой 1C возникает ошибка, заключающаяся в модуле COM, то причину неисправности стоит искать в библиотеке comcntr.dll, которая по умолчанию должна присутствовать в папке bin, имеющейся в составе эксплуатируемой программы. Зачастую регистрация библиотеки происходит на автоматических началах, совместно с инсталляцией платформы в систему эксплуатируемого компьютерного устройства. Кроме автоматической регистрации, программа, при установке и подключении к внешней базе данных, самостоятельно активизирует команду regsvr32.exe/n/i: user «адрес к папке bin/ comcntr.dll». Соответственно, если при попытке выполнить корректное соединение у пользователя возникают проблемы, значит, утилите не удалось автоматически по каким-то причинам, техническим или программным, зарегистрировать актуальный модуль библиотеки.

Для начала стоит попытаться устранить неисправность, запустив приложение от имени администратора. Для этого потребуется, кликнув по пиктограмме программы правой кнопкой манипулятора, вызвать ниспадающее меню, в котором выбрать позицию «Запуск от имени администратора». Дальше необходимо попробовать в этом режиме проверить настройки приложения согласно описанному в первом пункте статьи регламенту: иногда этот вариант борьбы с неисправностью даёт положительный результат, ошибка самоустраняется, и не появляется в последующем даже при работе программы в стандартном режиме. В ином случае, если работа 1C и дальше ограничивается отсутствием модуля COM, единственно правильным методом урегулирования прецедента будет регистрация отвечающей за функционирование программы библиотеки comcntr.dll в ручном формате.

Часто встречающиеся ошибки 1С и общие способы их решения Промо

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

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе

Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии

Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

Перенос объектов 1С Промо

Простой и наглядный перенос объектов между любыми базами 1С 8 с предварительным анализом на возможные различия в данных (через файл, через интернет, через буфер обмена). Интерактивная настройка правил обмена на стороне источника и получателя.
В обработке есть удобный обзор по подсистемам, поиск и обработка данных по заданному фильтру. Сравнение объектов, поиск ссылок.
Конструктор кода по созданию объектов, написание скриптов и отладка мини-функций в УФ.
Отключение/включение регламентных заданий. Регистрация/снятие с регистрации объектов в планах обмена. И многое другое.
Инструменты администратора в одной обработке.

1 стартмани

Минимизация количества 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. Например, информационные вызовы могут выполняться с изменяемой частотой

Суть и причины проблемыEnumCalendarInfoExEx

Как известно, 8 апреля 2014 «Майкрософт» прекратила поддержку Windows XP, которая проводилась на протяжении 12 лет. Компания перестала выпускать обновления безопасности для данной ОС заявив, что клиентам пора подумать о переходе на более современную систему.

Поддержка WinXP была прекращена ещё в 2014 году

Тем не менее множество пользователей остались верны зарекомендовавшей себя Win XP. Пользователей не смутили массовые заявления Майкрософт слабости её функционала и ошибках отсутствия файлов в библиотеке DLL KERNEL32.DLL. Многие намерены работать с ней в дальнейшем.

Кроме Win XP на компьютерах таких пользователей часто установлены другие продукты от Microsoft. Одним из них является популярный MS Office, функционалом которого (Ворд, Эксель и др.) пользуются миллионы россиян. Наиболее часто используется MS Office 2010, но бывает и Офис 2007 версии, поддержка которого также была прекращена 10 октября 2017 года.

При запуске программ, входящий в указанный пакет «Офис» (Ворд, Эксель, Аутлук и др), на Вин XP, пользователя встречает сообщение «Точка входа в процедуру EnumCalendarInfoExEx не найдена».

Причиной дисфункции является одно из обновлений «MS Office», предназначенное для работы с более современными ОС. Наиболее часто это обновление KB4462157 от 18 января 2019 года. Также это могут быть обновления KBB4461614, KBB4461579, KB2863821, KB4461522. Данные обновления предназначены для более современных ОС, и после их установки компоненты пакета МС Офис на Виндовс XP перестают работать.

Подключение внешнего соединения

  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. Пример
    КомСоединитель = Новый COMОбъект(“V83.ComConnector”);
    ВнешнееСоединение = КомСоединитель.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. Экспериментальные данные
  1. Пример
    КомСоединитель = Новый COMОбъект(“V83.ComConnector”, ИмяКомпьютера);
    ВнешнееСоединение = КомСоединитель.Connect(СтрокаСоединения);
  2. Выполнение метода Connect (создание внешнего соединения)
  3. Создание сеанса — 1 сек
  4. Инициализация сеанса — сек
  5. ПередНачаломРаботыСистемы (только для Automation-сервера)
  6. ПриНачалеРаботыСистемы
  7. Инициализация параметров сеанса
  8. Подгрузка нужных метаданных

Регистрация ComConnector (comcntr.dll) в Windows 32 и 64 разрядной

Для доступа к информационной базе из внешней программы используется COM объект COMConnector. В зависимости от версии платформы используется V82.COMConnector или V83.COMConnector. При установке платформы 1С, в операционной системе автоматически регистрируется класс COMConnector. Если по каким либо причинам регистрация не прошла, то его можно зарегистрировать вручную.

Пример по работе с базой 1С через COM соединение можно посмотреть в другой статье.Если COMConnector не зарегистрирован в Windows, то при программном создании объекта будет появляться ошибка:Ошибка при вызове конструктора (COMObject): -2147221164(0x80040154): Класс не зарегистрирован.

Регистрацию можно выполнить с помощью командной строки. Для того чтобы открыть командную строку в Windows 7 или Windows 10 нужно в строке поиска в меню «ПУСК» набрать cmd. Для Windows 8 в «Стартовом окне» в поиске набрать cmd. Запустить cmd.exe с правами администратора.

cd c:\program filescd \

с:cd..

Windows (x64)

C:\Windows\SysWOW64\regsvr32 «C:\Program Files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»

c:\Windows\System32>c:\Windows\System32>cd c:\Windows\SysWOW64c:\Windows\SysWOW64>c:\Windows\SysWOW64>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll» …Деинсталяцияc:\Windows\SysWOW64>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll» /u

Windows (x32)

C:\Windows\System32\regsvr32 «C:\Program Files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»

c:\Windows\System32>c:\Windows\System32>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll»…Деинсталяцияc:\Windows\System32>regsvr32 «c:\program files (x86)\1cv8\8.3.9.2233\bin\comcntr.dll» /u

После успешного выполнения появится оповещение:

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию

Если «веб морда» расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С — это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана

Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.

Инструкция

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

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

3. Создаем новое приложение, правой кнопкой по  «Приложения COM+» — «Создать» — «Приложение»

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

должно полчуить так

 

5. Раскрываем «1cv8», правой кнопкой по «Компоненты» — «Создать» — «Компонент».

6. Выбираем вариант «Установка новых компонентов», находим нашу библиотеку comcntr.dll

Находится она в катлоге BIN установленной платформы, у меня например путь такой 

«C:\Program Files (x86)\1cv8\8.3.10.2168\bin\comcntr.dll» 

должны получить следующую картину 

7. Правой кнопкой по «V83.COMConnector.1» — «Псевдоним…», меняем наименование с «CopyOf.V83.COMConnector.1» на «V83.COMConnector_8.3.9.2033». Данное действие проделываем для всех нужных версий платформ.

8. Открываем «regedit» через пуск или команду «Выполнить», нажимаем F3 и указываем для поиска строку с наименованием созданой нами обертки, например «V83.COMConnector_8.3.9.2033». Или использум для поиска CLSID созданной обертки.

9. Ищем значение в ветке «HKEY_LOCAL_MACHINE» у меня путь такой HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{553567A1-0481-4CD0-9F5C-393DD90DB0C3}\ выглядеть должно так

В ветке «InprocServer32» меняем значение у меня, «C:\Program Files (x86)\1cv8\8.3.10.2168\bin\comcntr.dll» на путь к нужной версии длл, в данном случае «C:\Program Files (x86)\1cv8\8.3.9.2033\bin\comcntr.dll». 

Данное дейстие проделываем для всех созданных оберток.

Все готово) Для подключения к конкретной версии базы, в 1С теперь нужно использовать следующую конструкцию

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector