Contactos

Elimina errores de conexión mediante conexión COM. Solución de problemas de errores de conexión COM Gestión de clases COM

Cómo registrar el componente com-connection comcntr.dll 1C 8 en Windows x32 (x86) / x64.

La respuesta a esta pregunta es relevante en el contexto de configurar intercambios entre bases de datos 1C mediante una conexión directa. Una de las opciones para instalar/registrar el componente com-connection se proporciona en la página: Describe la opción para instalar el componente al instalar/reinstalar los componentes de la plataforma 1C: Enterprise desde el paquete de instalación estándar. Pero también sucede que, por alguna razón misteriosa, el componente com aún no se registra durante la operación anterior.

Existe una opción alternativa para esto usando la línea de comando del sistema operativo. De cara al futuro y para protegerse de errores al registrar los componentes comcntr.dll a través de la línea de comando, similar a la que se muestra en la captura de pantalla

Para evitar el error "Se cargó el módulo comcntr.dll, pero falló la llamada a DllRegisterServer, código de error 0x80070005", ejecute el símbolo del sistema con derechos de administrador

En un sistema con profundidad de bits x32 (x86) para la plataforma 1C: Enterprise 8.2

C:\Archivos de programa (x86)\1cv82\<номер_релиза>\bin> regsvr32 comcntr.dll

Dónde<номер_релиза>- el número de la versión actualmente utilizada de la plataforma 1C 8.

Para la plataforma 1C: Enterprise 8.3, la línea de comando para registrar el componente com se verá así:

C:\Archivos de programa (x86)\1cv8\<номер_релиза>\bin> regsvr32 comcntr.dll

En la siguiente pantalla, como guía para el caso de registrar comcntr.dll en el sistema operativo x86, el valor<номер_релиза> - "8.3.9.1818"

Ahora considere la opción para un sistema con profundidad de bits x64 para la plataforma 1C: Enterprise 8.2, una opción alternativa:

C:\Windows\SysWOW64>regsvr32 "C:\Archivos de programa (x86)\1cv82\<номер_релиза>\bin\comcntr.dll"

Para Windows x64, registrar una conexión com 1C 8.3 puede verse así:

C:\Windows\SysWOW64>regsvr32 "C:\Archivos de programa (x86)\1cv8\<номер_релиза>\bin\comcntr.dll"

Sin embargo, si el material anterior no ayudó, se propone consultar publicaciones alternativas: Registro del componente comcntr.dll en una versión de 64 bits de Microsoft Windows y Registro del componente comcntr.dll para una conexión COM con 1C 8 en un sistema operativo de 32 bits

© www.. Todos los derechos reservados. Queda prohibido el uso de textos e imágenes de esta página sin el permiso escrito del propietario. Al utilizar materiales de esta página, es obligatorio indicar un enlace a esta página.


A menudo sucede que necesita obtener datos de diferentes bases de datos que, lo cual no es nada raro, funcionan en diferentes plataformas. También puede ser un intercambio regular de datos entre bases de datos. También puede haber algún procesamiento de transferencia de datos único. También pueden ser informes que recopilan datos de diferentes bases de datos y generan el resultado requerido en la salida.
En cada uno de estos casos, es necesario conectarse de una base de datos a otra mediante una conexión COM. Aquí, en la etapa de conexión, a menudo acechan varios problemas. Este artículo cubrirá algunos de los errores y cómo solucionarlos. Aquí se enumerarán errores específicos al conectarse entre ciertas plataformas, pero las soluciones pueden ser igualmente apropiadas al conectarse entre plataformas en otras variaciones.

Situación uno. Al intentar conectarse a través de una conexión COM a la base de datos de origen, se muestra un mensaje de error. Algo como: "Error al llamar al constructor (COMObject): -2147221164(0x80040154): Clase no registrada".
Para resolver este error, lo primero que debe hacer es registrar la biblioteca cliente-receptor. Además, para diferentes versiones de clientes de la misma versión de la plataforma, es necesario registrar su biblioteca. Es decir, para diferentes ensamblajes de la plataforma versión 8.3, debe volver a registrar la versión de la biblioteca de la plataforma deseada. Para la versión 8.2 de la plataforma, el mismo enfoque.
La biblioteca está registrada de la siguiente manera. El símbolo del sistema se inicia desde el Administrador, el comando está escrito en él

Regsvr32 "[Ruta de la biblioteca]\bin\comcntr.dll,

Por ejemplo, regsvr32 "c:\Program Files (x86)\1cv8\8.3.5.1119\bin\comcntr.dll" y se ejecuta el comando. Al mismo tiempo, es mejor cerrar todas las aplicaciones 1C abiertas. Tras el registro exitoso, se mostrará un mensaje de éxito. Si aparece un mensaje de error, deberá verificar la ruta donde se encuentra la biblioteca y todos los derechos.
También puede poner este comando en un archivo cmd y ejecutarlo con derechos de administrador.

Si se produce un error de este tipo al intentar conectarse a la base de datos en la plataforma 7.7, debe verificar en el registro el registro del conector 7.7. La sección HKEY_CLASSES_ROOT debe contener las ramas que se muestran en la imagen:

Para el registro correcto del conector 7.7, debe ejecutar 1C Enterprise 7.7 una vez como administrador.

Situación dos. Al intentar establecer una conexión COM, se produce un error con un mensaje que indica que la versión del cliente de la base de datos de origen no coincide. En este caso, el problema se resuelve registrando la versión correcta de la biblioteca comcntr.dll, como se describe anteriormente.

Situación tres. Al intentar conectarse a través de una conexión COM a la base de datos de origen en la plataforma 1C 7.7, no se generan errores, pero el procesamiento "duro" se "cuelga". Cuando se elimina la tarea, la conexión a través de la consola de administración del servidor 8.x permanece y no se restablece mediante ningún truco, excepto reiniciar el servicio del servidor 1C. Este fenómeno ocurre cuando se intenta conectarse desde una base de datos en la plataforma 8.x a una base de datos en la plataforma 7.7 desde una sesión de servidor. Aquí no se dan razones claramente definidas para este comportamiento del programa. Una recomendación es utilizar una llamada de conexión desde la sesión del cliente (y OnClient).

Situación cuatro. Al intentar conectarse a través de una conexión COM a la base de datos de origen en la plataforma 1C 7.7, no se generan errores, pero tampoco se produce la conexión. En este caso, como en otros, resulta útil el registro manual de los componentes COM.

1. Vaya a Panel de control → Herramientas administrativas → Servicios de componentes.
2. Vaya a la rama Computadoras → Mi PC → Aplicaciones COM+.


3. En el menú contextual, seleccione Crear → Aplicación. Se abre el Asistente de instalación de aplicaciones COM+. Seleccione "Crear una nueva aplicación".

4. Es mejor escribir el nombre de la nueva aplicación para que quede claro de qué se trata: V8_ComConnector, el método de activación es "aplicación de servidor".

5. En el siguiente paso, configure el "Usuario actual". Haga clic en "Siguiente". En la rama de la aplicación creada, vaya a la rama "Roles", abra la función "CreatorOwner" y luego, en la sección "Usuarios", cree un usuario, la cuenta con la que se ejecuta el servidor 1C.
6. En la rama de la aplicación creada, vaya a la rama "Componentes" y cree un componente: Crear - Componente Seleccione "Instalar nuevos componentes" y en el cuadro de diálogo seleccione la DLL deseada (en este ejemplo: [Ruta de la biblioteca]\ bin\comcntr.dll).
7. En el menú contextual, seleccione "Propiedades". En la ventana que se abre, vaya a la pestaña "Seguridad".
8. Quite la casilla de verificación "Comprobación de acceso forzado para aplicaciones". Marque la casilla junto a "Hacer cumplir la política de restricción de software". Establecer nivel de restricción: "Ilimitado"


9. Haga clic en "Aceptar".

Actualizador-1s. Resolución de problemas con la com-library para conexión externa a la base de datos.

2018-10-05T16:32:35+00:00

Updater-1s en su trabajo utiliza la biblioteca común de 1s para la conexión externa a bases de datos.

En la mayoría de los casos, no hay problemas con esta biblioteca: el actualizador registra y utiliza automáticamente la biblioteca de la versión 1c requerida, pero ocasionalmente hay casos (principalmente en sistemas operativos de servidor) en los que es necesario "bailar con una pandereta".

Cómo entender que tenemos problemas con COM

Para hacer esto, presione el botón "Verificar configuración" mientras mantiene presionada la tecla "Shift" en el teclado:

Durante el funcionamiento normal de COM, el informe se verá así:

Si hay problemas con COM, se producirá este error o uno similar:

También puedes escribir algo como " No se pudo crear una conexión de software a 1C".

Sí, según la prueba, tenemos problemas con COM.

En primer lugar, ¿de qué tipo de biblioteca estamos hablando? esta biblioteca comctr.dll, que se encuentra en la carpeta bin de una plataforma específica 1c:

Esta biblioteca se instala y registra automáticamente en el sistema cuando se instala la plataforma.

Además, antes de conectarse a la base de datos a través de una conexión externa, el actualizador registra adicionalmente en el sistema una biblioteca de la versión de plataforma requerida usando el comando:

regsvr32. exe /n/i:usuario

Entonces, ¿qué podemos hacer?

Paso #0

En primer lugar, nos aseguramos de que realmente tengamos una versión profesional de la plataforma, porque para la versión básica de la plataforma no debería funcionar una conexión externa a las bases de datos (esta es una limitación de la plataforma).

Para entender qué plataforma tenemos (básica o profesional), ejecutemos esta.

Si la licencia de la plataforma aún no es profesional, sino básica, entonces todos los demás pasos no tienen sentido. La conexión externa a bases de datos no nos funcionará (debido a limitaciones de la plataforma). No queda más que montar las bases.

Paso 1

Si tiene UAC habilitado, puede hacerlo haciendo clic derecho en el acceso directo del actualizador y seleccionando la opción "Ejecutar como administrador".

A continuación, seleccione la base y haga clic en el botón "Verificar configuración". Si el error desapareció y ya no se reproduce incluso cuando el actualizador se inicia normalmente (sin derechos de administrador), felicidades, el problema está resuelto. Si no, seguimos adelante.

Paso 2

En la versión de 32 bits del sistema operativo, intentamos ejecutar el comando

regsvr32 /n/i:usuario "ruta a la carpeta bin\comcntr.dll"

En una versión del sistema operativo de 64 bits, el comando será algo como este:

C:\Windows\SysWOW64\regsvr32/n/i:usuario "ruta a la carpeta bin\comcntr.dll"

Estos comandos se ejecutan desde nombre de usuario con derechos de administrador. Y con UAC habilitado, ejecute cmd a través de "Ejecutar como administrador" o ejecutando el mismo archivo por lotes escrito.

Si el comando de registro no ayudó, primero debe eliminar el registro de la biblioteca comcntr.dll ejecutando el mismo comando de llamada regsvr32 con el modificador /u

Si esto no ayuda, intente reinstalar la plataforma 1C en el modo Fix y luego registre la biblioteca, como se describe anteriormente.

Paso 3

Parece que el actualizador no puede registrar el componente COM debido a la configuración de seguridad de su servidor.
En este caso:

  1. Vaya al Panel de control - Herramientas administrativas - Servicios de componentes.
  2. Vaya a la rama Computadoras - Mi PC - Aplicaciones COM+.
  3. En el menú contextual, seleccione Crear - Aplicación. Se abre el Asistente de instalación de aplicaciones COM+.
  4. Haga clic en Siguiente".
  5. Seleccione "Crear una nueva aplicación".
  6. Introduzca el nombre "V83COMConnector". Configure el interruptor "Aplicación de servidor". Haga clic en Siguiente".
  7. En el siguiente paso, configure el "Usuario actual". Haga clic en Siguiente".
  8. Pulsamos "Finalizar".
  9. En la rama V83COMConnector que aparece, vaya a la subrama Componentes.
  10. En el menú contextual, seleccione Crear - Componente. Se abre el Asistente de instalación de componentes COM+.
  11. Haga clic en Siguiente".
  12. Seleccione "Instalar nuevos componentes".
  13. Escoge un archivo<каталог 1С>\bin\comcntr.dll.
  14. Haga clic en "Siguiente" - "Finalizar".
  15. Pasemos a la rama V83COMConnector.
  16. Seleccione "Propiedades" en el menú contextual. En la ventana que se abre, vaya a la pestaña "Seguridad".
  17. Desmarque "Aplicar verificación de acceso para aplicaciones". Marque la casilla "Aplicar política de restricción de software". Establezca el nivel de restricción en "Ilimitado".
  18. Pulsamos "OK".

Después de eso, el actualizador debería poder registrar de forma independiente componentes de todas las versiones de la plataforma, y ​​no solo la que registramos en el componente.

Etapa 4

Sucede que sólo ayuda la reinstalación de la plataforma (en este caso, el componente está registrado correctamente).

Paso #5

Si el problema comenzó a ocurrir inmediatamente después de actualizar la plataforma 1c, lo más probable es que a la nueva versión de la plataforma 1c le falte algún paquete de servicio o actualización para su sistema operativo. Por tanto, si es posible, los ponemos todos, si no, actuamos selectivamente en función de esto.



¿Te gustó el artículo? Compártelo