Abierto
Cerca

Cambie o deshabilite el modo de compatibilidad. Cambiar o deshabilitar el modo de compatibilidad Configuración del modo de compatibilidad de extensión más

Los hombres comen" modificaciones al estándar Las configuraciones están siempre actualizadas.

Con la ayuda de extensiones, es posible realizar modificaciones sin salir de la configuración. Sin cambios(eso es sin quitar la cerradura).

Como ejemplo nosotros ampliemos la funcionalidad estándar“1C:Contabilidad 8”: agregue controles para verificar que los detalles del documento estén completos. Como resultado, el sistema emitirá un diagnóstico si los detalles se completan con valores "incorrectos".

Literalmente en 15 minutos Aprenderás técnicas que podrás utilizar para resolver diferentes problemas.

Además, en el segundo vídeo mostraremos mecanismo universal, basado en extensiones. Y habiendo desarrollado tal mecanismo una vez, se puede conectar a cualquier configuración estándar.

Sueños de propio imperecedero puede hacerse realidad :)

Entonces empecemos:

Video 1. Técnicas para trabajar con extensiones: usando el ejemplo de "1C: Contabilidad 8"

Después de estudiar el video, aprenderá:

  • Crear y conectar extensiones a la configuración
  • Realizar depuración extensiones
  • Mejorar los formularios estándar procesamiento/documentos usando extensiones
  • Interceptar eventos formularios de configuración estándar
  • Almacenamiento de datos no en las tablas de seguridad de la información (almacenamiento de configuraciones)
  • Utilice tratamientos como repositorio de algoritmos

También veremos mejoramiento composición de objetos de extensión y restricciones de extensión en las versiones actuales de la plataforma.

Video 2. Creando mecanismos universales usando extensiones.

En este vídeo mostraremos:

  • Conexión de una extensión en modo usuario ( sin configurador)
  • Ejemplo verificación universal relleno
  • Características de la implementación de extensiones: creación de formularios con selecciones arbitrarias y almacenar datos en extensiones

Costo del trabajo y opciones para traducciones de diferentes versiones.

Traducción 8.1 → 8.2.13 Traducción 8.2.13 → 8.2.16 Traducción 8.2.16 → 8.3.10
precio, frotar. * 54.000 rublos 12.000 rublos 76.800 rublos

Una lista de todos los cambios en las diferentes versiones de la plataforma está disponible en los siguientes enlaces:
Para la plataforma 8.2:
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Antes de comenzar a trabajar en la transferencia a 8.3, necesita:

Verifique el modo de bloqueo controlado. Si se utiliza "Automático", al migrar a 8.3, es posible que se requieran costos adicionales para cambiar al modo de bloqueo administrado.
Si está utilizando el modo de compatibilidad con 8.2.16 y superior, debe verificar si las tablas se han reestructurado
Determinar qué tipos de clientes se utilizan (cliente web ligero, pesado)
Determinar si hay máquinas que ejecutan Linux

Traducción de configuración 8.1 → 8.2.13

Costo del trabajo: 54.000 rublos.

Traducción de la configuración 8.2.13 → 8.2.16 (incluida la reestructuración)

Cambios clave:
Se ha cambiado el modo de almacenar constantes y configuraciones de registros de acumulación. Cada objeto tiene su propia tabla de base de datos.
Se ha rediseñado la implementación del mecanismo de bloqueo administrado.
Para el evento de registro tecnológico "TLOCK", la propiedad "Txt" se escribe solo en modo de compatibilidad con la versión 8.2.13
Se ha reducido la influencia del modo de depuración en la velocidad de funcionamiento en el modo 1C:Enterprise para el cliente ligero, el cliente pesado, el servidor y la conexión externa.
La ejecución de una consulta del formato “TipoValor(Campo1) = TipoValor(Campo2)” se ha optimizado si “Campo1” y “Campo2” contienen valores de un tipo de referencia.
Para los campos de formulario administrado que muestran atributos de un tipo complejo, la apertura de la lista de selección rápida se ha acelerado en los casos en que el tipo complejo incluye tipos de referencia con diferentes configuraciones de selección rápida.
Para el nuevo registro de información independiente y no periódica, el índice de dimensión está agrupado

Cambios que requieren cambios de configuración:

Cuando el modo de compatibilidad está deshabilitado, se requiere el parámetro "Período" del método del administrador del registro de información periódica "Get()". En el modo de compatibilidad con la versión 8.2.13 y la versión 8.1, el comportamiento no cambia (el método se puede utilizar sin especificar un parámetro, pero el resultado no está definido).
Cuando se utilizan los métodos “SetValue()” y “UseFromDataSource()” del objeto “DataLockElement” al mismo tiempo, se genera una excepción. En modo de compatibilidad con la versión 8.2.13, el comportamiento no ha cambiado (el valor establecido por el método “UseFromDataSource()” tiene prioridad).
No se admite almacenar valores de datos que no admitan la serialización. En modo de compatibilidad el comportamiento no ha cambiado.
Si la base de datos está basada en archivos, entonces se debe convertir la base de datos. Una vez que comience la conversión, no será posible trabajar con esta base de información con versiones anteriores de la plataforma 1C:Enterprise 8. Si el desarrollo se lleva a cabo utilizando un repositorio de configuración, debe hacer una copia del repositorio antes de convertir la base de datos.

IMPORTANTE. Para obtener el efecto de cambiar el modo de compatibilidad, debe realizar una reestructuración a través del configurador: "Administración → Pruebas y corrección → Reestructuración de tablas de la base de datos".

Primero es necesario realizar la reestructuración sobre una base de prueba y medir el tiempo de ejecución de esta operación.
Si está utilizando una versión del servidor 1C anterior a 8.2.19, por ejemplo, la versión 8.3, pueden ocurrir los siguientes errores al realizar la reestructuración:

En este caso, debe hacer lo siguiente:
Instale un servidor 1C independiente versión 8.2.19 e implemente la base de datos bajo investigación en él
Abra la base de datos en el configurador en el servidor 1C versión 8.2.19, cambie el modo de compatibilidad a "No usar"
Reestructurar tablas de la base de datos
Una vez completada la reestructuración, mueva la base de información al servidor 1C original versión 8.3

El costo de transferir la configuración del modo de compatibilidad 8.2.13 al modo 8.2.16 (modo no compatible cuando se usa la plataforma 8.2.16, 8.2.19 y modo de compatibilidad 8.2.16 cuando se usa la plataforma 8.3) es 12.000 rublos.

Se puede descargar un modelo de contrato de trabajo.

Traducción de configuración 8.2.16 → 8.3.10

El trabajo de traducción de la configuración incluye las siguientes modificaciones de configuración:

1. Eliminar los conflictos de nombres de propiedades. Cambiar los nombres de las variables para que coincidan con las nuevas propiedades que aparecieron en 1C:Enterprise 8.3.
2. Elimine los nombres de imágenes conflictivas. Cambiar el nombre de las imágenes con nombres que coincidan con los nombres de la biblioteca de imágenes.
3. Refinamiento del código al cambiar las propiedades de la estructura fija. Sustituir la indicación de las propiedades de una estructura fija por la recreación de una estructura fija o sustituir su uso por un tipo de “Estructura” similar.
4. Reemplazar la ubicación de valores no serializables en el almacenamiento temporal con código compatible con 1C:Enterprise 8.3.
5. Reemplazar el uso de llamar al método "Mostrar" para los detalles del formulario administrado con el uso de las propiedades "CurrentElement", "CurrentPage" y el método "Activar".
6. Reemplace los nombres de objetos de metadatos de más de 80 caracteres con nombres de 80 caracteres o menos para objetos de metadatos.
7. Renombrar métodos y propiedades, según metodología de migración a la versión 8.3.
8. Mejora de los mecanismos para trabajar con selecciones, formato condicional, agrupaciones y orden en listas dinámicas.
9. Refinamiento del código para consultas con la palabra clave “RESULTADOS GENERALES”, descargado en el
“Omitir Resultado de Consulta Por Agrupación”, con el fin de preservar la lógica de trabajo anterior.
10. Cambios en los nombres de clases de objetos COM. Reemplazando los nombres "V82.COMConnector" por "V83.COMConnector" y "V82.Application" por "V83.Application".
11. Rechazo en el código de programa del evento "Inicio de selección de la lista" para campos de entrada en el modo de selección de una lista
12. Rechazo en el código del programa de la propiedad "Botón ChoiceList" para los campos de entrada configurando la propiedad "Botón de lista desplegable".
13. Cambiar el código para tener en cuenta el cambio en el tipo de valor devuelto por el método de contexto global “SafeMode()”
14. Cambiar el código para tener en cuenta un cambio en el resultado de una consulta de constantes (al acceder al campo “Valor” de la tabla de constantes, si la constante almacena un valor del tipo “Value Storage”, “UniqueIdentifier” o “Referencia de tabla de fuente de datos externa”.
15. Reemplazar la propiedad de configuración “MainRole” por “MainRoles”
16. Rechazo de las propiedades “Usuario” y “Contraseña” para el objeto “InternetProxy” y sustitución por los métodos “Set()”, “Usuario()”, “Contraseña()”.
17. Refinamiento del código para soportar el comando “Mostrar en lista”, según el método de transición a la versión 8.3.
18. Refinamiento del código para mantener la lógica anterior de operación del sistema cuando el valor de retorno de la propiedad SystemInformation.OSVersion ha cambiado.
19. Refinamiento del código para mantener la lógica anterior del sistema al negarse a utilizar la enumeración del sistema OptionOpenWindow, que ya no está disponible en la versión 8.3.
20. Refinamiento del código teniendo en cuenta la negativa a utilizar ventanas modales.
21. Mejora del código para soportar el cliente web, es decir, rechazo de llamadas al servidor y apertura de ventanas en “Antes de cerrar”, rechazo de llamadas al servidor en “Al cerrar”.
22. Mejora del código para permitir utilizar correctamente la función RoleAvailable() al pasar la función como parámetro a un rol faltante.
23. Para una aplicación administrada: a partir de la versión 8.3.8 en los controladores de eventos de una aplicación administrada BeforeSystemShutdown, WhenSystemShutdown, así como en los controladores de eventos de un formulario administrado que está en modo de cierre, BeforeClosing, WhenClosing, Está prohibido abrir ventanas y realizar llamadas al servidor.. Es necesario mejorar la configuración para que los formularios se puedan cerrar correctamente, sin llamadas al servidor.
24. Conflicto de nombre de variable: no puede utilizar el nombre de variable FormParameters en un módulo de formulario. Por lo tanto, es necesario modificar todos los módulos de formularios administrados que utilizan variables denominadas FormParameters cambiando el nombre de estas variables.

El precio de estos trabajos es preliminar y válido para la mayoría de configuraciones. Antes de comenzar a trabajar al concluir un contrato, verificamos la configuración y Después de verificar, confirmamos el precio y las condiciones de trabajo.. La verificación es necesaria porque las configuraciones pueden ser muy diferentes, incluso reescritas en gran medida.

Costo del trabajo: 76.800 rublos.

Se puede descargar un modelo de contrato de trabajo.

El costo de transferir la configuración al modo de compatibilidad con 8.3.10 puede ser aumentó, Si:
La configuración utiliza formularios administrados
Es necesario abandonar el uso de la modalidad.
Es necesario mantener la funcionalidad de la configuración en el sistema operativo Linux.

Colegas, hola a todos.

El otro día se lanzó una prueba de Contabilidad Empresarial con el modo de compatibilidad para la plataforma 8.3.6 deshabilitado.
Esto significa que esta versión utiliza un nuevo motor que representa formularios de una manera nueva.
Puedes leer sobre esto en A través del espejo.

Junto con las estándar, también debes convertir tus propias extensiones a la nueva plataforma.
Durante el proceso de traducción, creé una pequeña lista de verificación o un recordatorio sobre lo que hay que hacer.

Memorándum:


1. Transfiera la extensión a una nueva plataforma.

Para hacer esto, cambie el modo de compatibilidad de extensión al modo de compatibilidad de configuración.
La versión de Contabilidad Empresarial tiene las siguientes propiedades:

En la extensión, puede establecer exactamente las mismas propiedades o borrar todas las casillas de verificación.
Sin casillas de verificación significa que la extensión no verificará estas propiedades al conectarse.
Luego, si estas propiedades cambian en la configuración principal, la extensión aún se iniciará:


2. Solucionar problemas de conexión

Para ello lanzamos la configuración en modo empresa y vemos si despega o no.
Los errores por los cuales no se pudo conectar la extensión se pueden ver en el registro
(Administración - Soporte y Mantenimiento - Libro de registro)
Nos interesan los eventos: “Sesión. Error al aplicar la extensión de configuración":

La mayoría de las veces, el problema de conexión se resuelve eliminando detalles u objetos innecesarios.

La principal dificultad es que la extensión no muestra todos los errores a la vez (por cierto, este problema se resolvió en 8.3.9).
Por lo tanto, es necesario ejecutar las configuraciones de forma secuencial después de corregir cada error.
Para que sea más cómodo iniciar el libro de registro, agréguelo a sus favoritos:



3. Actualizar formularios en la extensión.

Para hacer esto, en cada formulario modificado, haga clic en “Actualizar extensión de formulario”
Usando este comando, recargamos el formulario de configuración principal en la extensión.

En principio, funcionará sin esto, pero esto es necesario para que en la extensión el formulario se vea igual que en la configuración principal.
En la versión 3.0.44, casi todos los formularios han sufrido cambios, por lo que sería bueno incluir estos cambios en la extensión.


4. Adaptamos la forma a las normas del nuevo motor.

Te recomiendo que leas el artículo - Recomendaciones para adaptar formularios a 8.3.7.
Examina las características del nuevo motor y ofrece recomendaciones específicas sobre cómo garantizar que todo esté bien en la nueva plataforma.

Se me ocurrió el siguiente procedimiento:

  • Quitamos todas las decoraciones., que se utilizaron para la sangría.
    En su lugar, ahora se utilizan grupos.
  • A ver que todo pinta bien.
    Si algo sale mal, mira el artículo.
    Si todo va bien, seguimos adelante.
  • Comprobando las nuevas propiedades de la plataforma.“Combinado”, “Ancho máximo automático” y “Altura máxima automática”.
    Simplemente vea que estas propiedades están configuradas en los valores predeterminados de la plataforma y que el formulario no se separa debido a esto.

En este artículo, propongo considerar qué es una "extensión de configuración", cómo agregar una extensión o deshabilitarla. A partir de la versión 1C El 6 de agosto de 1977 se introdujo un nuevo mecanismo en la plataforma: extensiones de configuración. Primero, un poco de teoría.

En 1C, las extensiones son algo así como configuraciones paralelas que se combinan automáticamente con la configuración principal del proveedor. Además, en las extensiones puedes agregar tanto tus propios objetos como tomar prestados objetos de la configuración principal.

¿Para qué sirven las extensiones?

En primer lugar, se crean extensiones para facilitar la realización de cambios en el programa. Es decir, si los usuarios solicitan agregar alguna funcionalidad, antes de la aparición de las extensiones, los programadores tenían que eliminar la configuración del soporte total y cambiar la configuración estándar.

La eliminación del soporte total conlleva una serie de inconvenientes:

  • desaparece la posibilidad de actualización automática, lo que conlleva al menos un aumento del tiempo que lleva realizarla;
  • se requiere un especialista altamente calificado que atienda el programa;
  • Si se realizaron cambios en objetos estándar de una configuración estándar, durante una actualización pueden desaparecer, es decir, pueden ser reemplazados nuevamente por objetos estándar del proveedor.

Al usar extensiones, al realizar cambios, el programador no tocará la configuración estándar. Todos los cambios se realizarán mediante extensiones, que (como escribí anteriormente) también son configuraciones. De esta manera, la configuración principal seguirá siendo totalmente compatible.

Después de actualizar la configuración principal, si en la nueva versión hay cambios en un objeto que la extensión cambió previamente, los cambios aún se tomarán de la extensión. Es decir, las extensiones tienen mayor prioridad que la configuración principal.

Video: extensiones en 1C en 45 minutos.

Obtenga 267 lecciones en video sobre 1C gratis:

Un ejemplo de cómo agregar una extensión a 1C

Para mostrar qué es una extensión, es mejor dar un ejemplo de su creación en el configurador 1C.

En el configurador, vaya al menú “Configuración” y seleccione “Extensiones de configuración”. Se abrirá una ventana con una lista de extensiones (si las hay). Haga clic en el botón "Agregar" y agregue una nueva extensión. Ahora puedes abrir la configuración de la extensión:

Como puedes ver, la configuración de expansión tiene exactamente la misma estructura que la principal. Sólo que inicialmente está completamente limpio, sin objetos.

Recientemente escribí un artículo sobre cómo hacerlo tú mismo. Usando su ejemplo, quiero integrarlo usando una extensión.

Al procesar tengo un campo con un enlace al directorio "Organizaciones". Por eso necesito esta guía. Pero no crearemos un nuevo directorio de "Organizaciones", especialmente porque la plataforma no lo permitirá. Es imposible que una configuración de extensión contenga objetos con el mismo nombre que los objetos de la configuración principal.

Por lo tanto, tomaremos prestado el libro de referencia de la configuración principal:

Ahora hacemos clic derecho en “Procesamientos” y seleccionamos “Insertar procesamiento externo, reportar…” Así agregaremos un nuevo procesamiento a la configuración de la extensión. Si usa mi procesamiento, cámbiele el nombre inmediatamente, ya que la configuración principal ya tiene un procesamiento con el mismo nombre.

Bueno, el toque final. Quiero que mi procesamiento se refleje en el menú Administración. Para hacer esto, tomaremos prestado el subsistema del mismo nombre de la configuración principal. No olvides indicar en la tramitación que pertenece a este subsistema.

Esta es la estructura que se me ocurrió:

Veamos qué tenemos. Actualizamos la configuración de la base de datos y ejecutamos el programa en 1C: modo Enterprise, y vamos al menú "Administración". Sí, casi lo olvido, la configuración de la extensión debe estar cerrada, de lo contrario el programa no se iniciará:

Se lanzó una nueva versión de la plataforma 8.3.11, que le permite agregar y cambiar objetos de metadatos a través de la extensión. ¿Podemos realmente implementar ahora alguna mejora sin eliminar la configuración del soporte? ¿Vale la pena prometerle a un cliente montañas de oro sin consecuencias?

En primer lugar, debes ser consciente de las limitaciones que tienen las extensiones.

Limitación de los objetos creados.

Por el momento puedes crear:

  • Directorios
  • Documentación
  • Registros de información
  • Planes de intercambio

Puedes agregar detalles a:

  • Directorios
  • Documentación

¿Con qué terminamos? No se pueden agregar todos los tipos de objetos de metadatos. Los más comunes y populares, pero aún no todos. Además, no se pueden agregar nuevas dimensiones y recursos a los registros de información. Sólo puedes crear un registro completamente nuevo.

La funcionalidad de las extensiones depende del modo de compatibilidad de la configuración a la que se aplica la extensión.

Modo de compatibilidad 8.3.8- Solo puedes cambiar las formas de los objetos y sus módulos, agregar tus propios informes y procesamiento.

Modo de compatibilidad 8.3.10- puede cambiar módulos generales, módulos de objetos y administradores, roles, usar las directivas "Antes", "Después", "En lugar" para cualquier módulo.

Modo de compatibilidad "No usar"- Puede utilizar todas las funciones de las extensiones, incluida la adición de nuevos objetos.

Por el momento, el estándar UT 11.3 tiene el modo de compatibilidad 8.3.8. En UT 11.4, el modo de compatibilidad es 8.3.10, es decir, por ejemplo, para UT, la mayor parte de la funcionalidad de extensión no está disponible, incluida la creación de objetos de metadatos.

Esto parecería plantear la pregunta: ¿por qué no simplemente dejar de admitir la raíz, configurar el modo de compatibilidad en "No usar" y usar silenciosamente las extensiones? Al cambiar el modo de compatibilidad, el comportamiento de los formularios y los resultados de la consulta puede cambiar, es decir. comportamiento del sistema en su conjunto. Se recomienda encarecidamente que no cambie el modo de compatibilidad sin probarlo primero. Pero es obvio que parece posible probar completamente (o al menos probar parcialmente los documentos utilizados) una solución de aplicación completa. Por lo tanto, no deberías utilizar esta opción.

Al conectar una extensión a una configuración estándar y tomar prestados objetos estándar, la extensión controla el modo de compatibilidad de la configuración principal y los tipos de objetos prestados y sus detalles. Si las propiedades monitoreadas no coinciden, la extensión se desactiva y no funciona hasta que se elimina la causa. Es decir, con una actualización importante, existe una alta probabilidad de cambiar al menos una de las propiedades controladas y provocar que la extensión pierda funcionalidad.


Además, si las modificaciones son significativas, se reemplazan muchos procedimientos y funciones de la configuración estándar, será necesario monitorearlos cuidadosamente y, si es necesario, alinearlos con la configuración estándar, preservando los cambios realizados anteriormente.


En los casos anteriores, seguirá necesitando la ayuda de un programador y, posiblemente, un tiempo considerable para realizar modificaciones (pero aún menos que cuando se actualiza una configuración que se ha eliminado del soporte).

conclusiones

  • La nueva versión de la plataforma brindó nuevas oportunidades para usar extensiones, fue posible agregar objetos de metadatos, pero a pesar de esto, la funcionalidad tiene ciertas limitaciones.
  • El modo de compatibilidad de la configuración a la que se aplica la extensión limita en gran medida las capacidades de la extensión; no se recomienda cambiar el modo de compatibilidad.
  • Las actualizaciones importantes aún requieren la atención de los desarrolladores, ya que existe una alta probabilidad de cambiar las propiedades controladas.