Entrega y soporte de configuración
- Concepto de entrega y soporte de configuración
- Configuración de entrega y generación de archivos de distribución y actualización
- Especificaciones de fusión de módulos
- Especificación de opciones de soporte
- Configuraciones basadas en varias configuraciones de proveedores admitidas
- Especificaciones de comparación y fusión de configuraciones durante la actualización
- Recomendaciones para personalizar configuraciones de proveedores
- Creación de archivos de distribución y actualización
Concepto de entrega y soporte de configuración
Propósito
Consideremos un escenario típico: un proveedor lanza una configuración estándar. Un cliente compra la configuración y la personaliza según sus necesidades. Luego, el proveedor lanza una nueva versión y el cliente desea integrar sus personalizaciones con los cambios del proveedor. La integración manual sería muy lenta porque requiere crear una lista de cambios y luego replicarlos en la última versión de la configuración. Replicar los cambios del proveedor en la configuración del cliente también es ineficiente. La función de entrega y soporte de configuración automatiza en gran medida este proceso, dejando algunas decisiones al cliente.
Escenario de actualización genérico
La siguiente tabla resume las opciones de actualización disponibles para cada objeto de metadatos.
|
Cliente |
Proveedor |
Regla de actualización |
|
| 1 | Cambiado | Sin cambios | Obtener de la configuración del cliente |
| 2 | Cambiado | Cambiado | ? |
| 3 | Sin cambios | Sin cambios | Obtener de la configuración del cliente |
| 4 | Sin cambios | Cambiado | Obtener de la configuración del proveedor |
Tenga en cuenta que los escenarios 1, 3 y 4 rara vez requieren modificaciones de sus reglas de actualización. El escenario 2 es más complicado porque la selección automática de reglas no tiene sentido, pero la plataforma puede encontrar todas las propiedades de los objetos cambiados, dejando la elección final de la regla de actualización al cliente.
Implementación del escenario de actualización en 1C:Enterprise
Conceptos genéricos
En 1C:Enterprise cualquier configuración puede basarse en una o varias configuraciones de proveedores compatibles. Puede utilizar una configuración creada utilizando el comando Configuración – Distribuir configuración – Crear paquete de distribución y archivo de actualización de configuración como una configuración de proveedor. Este comando crea un archivo de configuración .cf. Tenga en cuenta que los archivos creados utilizando el comando Configuración – Guardar configuración en archivo no se pueden utilizar como configuraciones de proveedores. Para convertir una configuración de proveedor en un archivo de base de datos de información (.1cd) o un archivo de volcado de base de datos de información (.dt), cargue el archivo .cf creado como se describe anteriormente en su base de datos de información (que puede estar vacía) utilizando el siguiente comando: Configuración – Cargar configuración desde archivo. Luego puede utilizar las herramientas estándar de la plataforma para crear un archivo .dt.
Hay dos formas de agregar soporte de proveedor a su configuración:
- Comience con una configuración creada como se describe anteriormente y personalícela cuando sea necesario. Su configuración personalizada se basará en la configuración de proveedor compatible. Alternativamente, puede utilizar los siguientes comandos: Configuración – Cargar configuración desde archivo y Administración – Restaurar base de datos de información.
- Comience con una configuración personalizada y ejecute el comando Configuración – Comparar y fusionar con configuración desde archivo. Seleccione una configuración de proveedor para comparar y, si su configuración aún no se basa en esta configuración de proveedor, se le pedirá que agregue soporte de proveedor.
Hay dos modos de soporte disponibles:
- La configuración de proveedor original nunca se cambia. Este modo solo está disponible para el primer método de agregar soporte, y las nuevas configuraciones de proveedores tienen este modo de forma predeterminada. No se permiten cambios en los objetos de configuración y no se pueden agregar nuevos objetos a la configuración.
- La configuración tiene soporte y se permiten cambios en la configuración. Para cambiar a este modo, abra la configuración de soporte utilizando el comando Configuración – Soporte – Opciones de soporte y haga clic en el botón Habilitar modificación.
Puede actualizar su configuración utilizando archivos de la nueva versión de la configuración de proveedor o utilizando archivos de actualización de configuración .cfu. Puede actualizar cualquier versión de configuración utilizando archivos .cf (incluida la degradación a una versión anterior). Durante la creación de un archivo de actualización, un proveedor especifica las versiones de configuración que se pueden actualizar utilizando este archivo. Las versiones de configuración que no se especifican explícitamente, tanto anteriores como posteriores, no se pueden actualizar con archivos .cfu porque los archivos de actualización solo incluyen las diferencias entre versiones de configuración específicas.
Ejemplo:
Si la última versión de configuración es la 4 y se crea una actualización para la versión 2, no se puede utilizar para actualizar la versión 1 y la versión 3. Esta limitación es necesaria para el procesamiento correcto de cambios que se anulan entre sí. Si un proveedor aumentó la longitud de un atributo de cadena en la versión 3 y volvió a la longitud original en la versión 4, este cambio no se incluye en la actualización de la versión 2 a la versión 4 porque la longitud de la cadena es la misma en ambas versiones. Si se aplica este archivo de actualización a la versión 3, la longitud de la cadena no se revertirá, lo cual es incorrecto.
Los archivos de actualización de configuración tienen un tamaño pequeño porque solo almacenan los cambios y porque utilizan compresión de datos. Están optimizados para la descarga a través de canales de baja velocidad, pero proporcionan menos flexibilidad de actualización que los archivos .cf. El resto del proceso de actualización es idéntico para ambos tipos de archivos, .cfu y .cf.

Figura 1. Interacción entre configuraciones de cliente y proveedor
Actualización de configuraciones
Si una configuración de cliente incluye una configuración compatible sin personalización permitida, la actualización es un proceso estricto y completamente automatizado. El usuario ejecuta el comando Configuración – Soporte – Actualizar configuración y confirma la actualización, y luego la configuración se actualiza.
Si un cliente cambia la configuración al modo en el que se permiten cambios, la configuración se actualiza utilizando la función estándar de comparación y fusión de configuraciones, que en este caso proporciona funcionalidad adicional: se involucran tres configuraciones. Estas incluyen la configuración del cliente, la configuración anterior del proveedor (que se almacena en la configuración del cliente) y la nueva configuración del proveedor. 1C:Enterprise analiza los cambios automáticamente y asigna las reglas de actualización según la Tabla 1. Si una propiedad fue cambiada tanto por el proveedor como por el cliente (escenario 2 en la Tabla 1), 1C:Enterprise no puede determinar la regla de actualización y deja la decisión al cliente. Estas propiedades están marcadas en negrita. Puede seleccionar la casilla de verificación Mostrar solo las propiedades que se cambiaron dos veces para ver solo las propiedades que requieren la selección manual de las reglas de actualización. Después de la fusión, la configuración del proveedor almacenada en la configuración del cliente se actualiza a la nueva versión.
Modificación del algoritmo de actualización utilizando reglas de soporte
El cliente puede modificar el algoritmo de actualización estableciendo reglas de soporte para cada objeto de metadatos. Pueden necesitarlo si desean realizar todas las modificaciones de objetos futuros ellos mismos y ya no están interesados en las nuevas versiones de objetos proporcionadas por el proveedor. En particular, este escenario se puede utilizar si desean eliminar el objeto de su configuración. Hay tres reglas de soporte disponibles para los objetos de metadatos:
- No se permiten cambios en el objeto del proveedor. El objeto del proveedor no se puede personalizar. El propósito principal de esta regla se describe a continuación, pero también se puede utilizar para evitar cambios accidentales en el objeto. Durante la actualización, los objetos que tienen esta regla se reemplazan con sus nuevas versiones de la configuración del proveedor.
- Se permiten cambios en el objeto del proveedor sin romper el soporte. Es la regla predeterminada. Utiliza el algoritmo de actualización descrito anteriormente.
- Soporte cancelado para el objeto del proveedor. El objeto nunca se actualiza. Si desea eliminar un objeto, primero debe establecer esta regla de soporte.
La siguiente tabla amplía la Tabla 1 con las reglas de soporte de los objetos de metadatos.
Tabla 2. Reglas de actualización predeterminadas.
| Cliente | Proveedor | Regla de soporte | Regla de actualización | |
| 1 | Cambiado | No cambiado | Cualquiera | Obtener de la configuración del cliente |
| 2 | Cambiado | Cambiado | No se permiten cambios en el objeto del proveedor | Sin actualización |
| Se permiten cambios en el objeto del proveedor sin romper el soporte | Obtener de la configuración del proveedor | |||
| Soporte cancelado para el objeto del proveedor | Obtener de la configuración del cliente | |||
| 3 | No cambiado | No cambiado | Cualquiera | Obtener de la configuración del cliente |
| 4 | No cambiado | Cambiado | No se permiten cambios en el objeto del proveedor | Obtener de la configuración del proveedor |
| Se permiten cambios en el objeto del proveedor sin romper el soporte | Obtener de la configuración del proveedor | |||
| Soporte cancelado para el objeto del proveedor | Obtener de la configuración del cliente |
Restricción de la personalización utilizando reglas de entrega
Un proveedor puede restringir la personalización de sus configuraciones utilizando reglas de entrega para objetos de metadatos individuales. Esta función está diseñada para evitar modificaciones que cambien la lógica de la configuración hasta el punto en que el soporte posterior ya no tenga sentido. Las siguientes reglas de entrega están disponibles:
- Se permiten cambios
- No se recomiendan cambios
- No se permiten cambios
La siguiente figura describe las reglas de soporte (tanto predeterminadas como disponibles para los clientes) que coinciden con varias reglas de entrega.

Figura 2. Correspondencia entre reglas de entrega y soporte
Configuración de entrega y generación de archivos de distribución y actualización
Configuración de entrega y generación de archivos de distribución y actualización
Este artículo describe la generación de kits de distribución de soluciones aplicadas.
Las configuraciones se pueden entregar en los siguientes formatos de archivo:
- Archivo de configuración (.cf), que contiene un kit de distribución de configuración
- Archivo de infobase (.1cd), que contiene una infobase lista para usar, ya sea vacía o llena de datos iniciales predefinidos
- Archivo de infobase con datos de demostración y el archivo de volcado de infobase correspondiente (.dt)
Para crear una configuración que se pueda utilizar como una configuración de proveedor, prepare versiones específicas de estos archivos basados en el archivo de kit de distribución de configuración (.cf) que se crea utilizando el método descrito más adelante en este artículo. La creación de otros tipos de archivos de distribución se describe al final de este artículo.
Especificación de la configuración de entrega
La configuración de entrega define las reglas de soporte para los clientes, incluidas las reglas de entrega para los objetos de metadatos. Tenga en cuenta que las reglas de entrega se especifican para los objetos de metadatos que pertenecen al primer nivel del árbol de objetos, como catálogos, documentos o registros. Los objetos subordinados, como atributos, secciones tabulares, formularios o plantillas, utilizan las reglas definidas para sus objetos principales. Las siguientes reglas de entrega están disponibles:
- Se permiten cambios
- No se recomiendan cambios
- No se permiten cambios
La regla seleccionada define las reglas de soporte que se pueden seleccionar en el lado del cliente. Para más detalles, consulte Concepto de entrega y soporte de configuración.
También puede especificar reglas de entrega para los módulos de objetos seleccionando o desmarcando las casillas de verificación Incluir textos de módulo de objeto. Si los textos del módulo no se entregan, los clientes no pueden ver ni editar el script del módulo. Esto se puede utilizar para proteger la propiedad intelectual o para garantizar la integridad lógica de la configuración.
Puede seleccionar la casilla de verificación El archivo de distribución se puede utilizar para actualizaciones en la configuración de entrega. Como se describe en la sección Concepto de entrega y soporte de configuración, los archivos de actualización de configuración (.cfu) y los archivos de configuración completos (.cf) se pueden utilizar para actualizar las configuraciones de los proveedores. Si desmarca la casilla de verificación, el archivo .cf resultante no se puede utilizar para actualizar configuraciones. Es posible que desee utilizar esta opción si la nueva versión de la configuración requiere un procesamiento de base de datos complicado.
Por ejemplo, cambiar un atributo de catálogo de una cadena a una referencia a otro catálogo requiere una actualización de dos niveles. Primero, debe agregar un nuevo atributo de tipo de referencia y llenarlo en función del valor del atributo antiguo, luego eliminar el atributo antiguo y cambiar el nombre del nuevo. Esta actualización no se puede realizar en una única reestructuración de base de datos con pre y postprocesamiento. Para la actualización, debe crear una versión de configuración intermedia donde se agregue el nuevo atributo y el antiguo aún no se haya eliminado, y escribir los procesadores de datos correspondientes. Este escenario es propenso a errores humanos, incluso si el proceso de actualización se describe detalladamente en la documentación. Al seleccionar la casilla de verificación El archivo de distribución se puede utilizar para actualizaciones se elimina el error humano. Todo el procedimiento de actualización podría verse así:
- Generar el archivo de actualización de configuración para actualizar desde las versiones anteriores a la versión intermedia.
- Generar el archivo de actualización de configuración para actualizar desde la versión intermedia a la última versión.
- Generar el archivo de configuración con la casilla de verificación El archivo de distribución se puede utilizar para actualizaciones desmarcada.
Un cliente que posee una versión de configuración anterior no puede cambiar el orden de actualización. Incluso si obtienen el archivo de configuración para la última versión, no pueden usarlo para actualizar su configuración.
Tenga en cuenta que este método carece de flexibilidad. Si se desmarca la casilla de verificación, el cliente no puede retroceder a futuras versiones de configuración a la versión actual. Por defecto, la casilla de verificación El archivo de distribución se puede utilizar para actualizaciones está seleccionada.
Estructura de directorio estándar para archivos de distribución y actualización
El procedimiento de entrega de la configuración se adhiere a reglas específicas para la ubicación de los archivos de distribución y el soporte de diferentes versiones. Para especificar el directorio raíz para los archivos de distribución y actualización, en el cuadro de diálogo Crear archivos de distribución y actualización de configuración, haga clic en Directorio de archivos de distribución. Por defecto, los archivos se almacenan en subdirectorios con el nombre de sus números de versión (la propiedad Versión de la configuración). Esto simplifica la preparación de los archivos de actualización (como se describe más adelante en este artículo). Tenga en cuenta que el directorio raíz no se almacena dentro de la configuración y se cambiará si el archivo de configuración .1cd se mueve a otro equipo.
Creación de archivos de distribución y actualización
Puede crear archivos de distribución y actualización simultáneamente o uno a la vez desde el cuadro de diálogo Crear archivos de distribución y actualización de configuración. Pero solo puede crear un solo archivo de actualización a la vez. Para crear varios archivos de actualización para actualizar una configuración desde varias versiones, repita el procedimiento de creación de actualización varias veces. El archivo de distribución solo se puede crear una vez, pero tenga en cuenta que deshabilitar la creación del archivo de distribución no acelera la creación del archivo de actualización. En una configuración grande, puede llevar mucho tiempo, lo que también depende del número de versiones que se pueden actualizar con el archivo de actualización.
Si selecciona la casilla de verificación Crear archivo de actualización de configuración, especifique una o varias versiones anteriores que se pueden actualizar utilizando este archivo. Los archivos de actualización no son acumulativos: un archivo diseñado para actualizar de la versión 4 a la versión 6 no se puede utilizar para actualizar la versión 5, a menos que esta versión se haya especificado explícitamente en la etapa de generación del archivo (para obtener más información, consulte Concepto de entrega y soporte de configuración). Para seleccionar archivos de configuración de versiones anteriores, puede hacer clic en Agregar y seleccionar un archivo, o puede hacer clic en Agregar desde versiones anteriores para ejecutar una búsqueda automática de versiones de configuración almacenadas en el disco duro, siempre que los archivos se almacenen en la estructura de directorios descrita anteriormente en este artículo. El comando Agregar también le permite especificar archivos de distribución de diferentes configuraciones (deben ser archivos de distribución, no archivos de configuración regulares).
Creación de archivos de distribución en otros formatos
El archivo de distribución .cf generado se puede utilizar como base para archivos de distribución que tienen otros formatos. Por ejemplo, puede crear un archivo de infobase (.1cd) que contenga datos de demostración. Puede preparar una infobase de demostración utilizando una configuración obtenida al volcar la infobase del entorno donde creó el paquete de distribución. Las configuraciones no tienen que ser idénticas, pero tampoco deben tener diferencias significativas que requieran actualizaciones complicadas de datos y configuración de la base de datos.
En Designer, abra el archivo de infobase que contiene datos de demostración. En el menú Configuración, haga clic en Cargar configuración desde archivo, confirme la sustitución de la configuración actual y actualice la configuración de la base de datos. Puede utilizar la infobase resultante como archivo de distribución. Para preparar un archivo de volcado de configuración (.dt), en esta infobase, en el menú Administración, haga clic en Volcar infobase.
Especificaciones de la fusión de módulos
Mapeo
1C:Enterprise fusiona módulos por procedimientos. Genera el mapeo de procedimientos automáticamente, dejándole la opción de corregirlo manualmente. Veamos las reglas de generación de mapeo.
Un módulo de 1C:Enterprise consta de tres áreas:
- Área de declaración de variables
- Área de procedimientos y funciones
- Área del programa principal
Las áreas de declaración de variables se mapean automáticamente, al igual que las áreas del programa principal, y no se puede cambiar ese mapeo. Los procedimientos y funciones se mapean en función de sus nombres, pero un procedimiento nunca se mapea a una función, incluso si tienen nombres idénticos.
Para cambiar el mapeo de procedimientos y funciones manualmente, establezca la regla “Priorizar la fusión…” para el módulo. Esto agrega el botón que abre la configuración detallada. En la ventana de configuración, además de editar el mapeo, puede establecer una regla de fusión para cada procedimiento y previsualizar el resultado de la fusión del módulo.
Fusionar módulos durante la actualización de la configuración
La regla “Fusionar…” nunca se establece automáticamente durante la actualización de la configuración. Puede establecerla manualmente. Si lo hace, tenga en cuenta lo siguiente:
- Para clientes:
Verifique la asignación de procedimientos y funciones. Realice correcciones manuales si es necesario. Es especialmente importante si ha cambiado el nombre de alguno de los procedimientos o funciones proporcionados en un módulo del proveedor. Recuerde que la fusión de módulos no puede ser completamente automatizada y siempre requiere correcciones manuales. - Para proveedores:
Tenga en cuenta que es posible el siguiente problema. Una función exportada se mueve a otro módulo en una nueva versión de una configuración estándar, un cliente editó estos módulos anteriormente y seleccionaron la regla “Fusionar…” para fusionar estos módulos. Después de la actualización, el procedimiento podría estar presente en ambos módulos, lo que podría provocar errores de configuración. También recuerde que los procedimientos no se pueden asignar automáticamente a funciones. Para manejar esto, recomendamos lo siguiente:- Evite mover procedimientos y funciones exportados entre módulos. Cuando no se pueda evitar, cambie el nombre de los procedimientos y funciones.
- Evite convertir un procedimiento en una función, o viceversa. Cuando no se pueda evitar, cambie el nombre del procedimiento o función convertido.
Especificar opciones de soporte
Modos de soporte de la configuración
1C:Enterprise cuenta con dos modos de soporte de configuración: soporte completo y soporte que permite la edición. El modo de soporte completo implica que los clientes siempre trabajan con una copia exacta de la última versión de la configuración del proveedor. La principal ventaja de este modo es la actualización de la configuración completamente automatizada, y la desventaja es que la configuración no se puede personalizar según las necesidades del usuario. Podría preguntarse por qué alguien preferiría una actualización automática en lugar de obtener nuevas configuraciones del proveedor manualmente. Hay dos razones:
- Verificación integrada de la versión de la configuración. Los clientes no pueden cargar otra configuración por error, lo que los protege de posibles pérdidas de datos.
- La opción de realizar actualizaciones mediante archivos .cfu, que tienen un tamaño pequeño y, por lo tanto, se pueden descargar rápidamente incluso a través de canales de baja velocidad.
Modo de soporte inicial
El modo de soporte inicial depende del método utilizado para habilitar el soporte. Hay dos métodos disponibles. Primero, un cliente compra un paquete de distribución de configuración del proveedor y lo instala como una nueva base de datos de información, o un cliente carga la configuración del proveedor en su configuración utilizando el comando Cargar desde archivo en Designer. En estos escenarios, el modo de soporte inicial es el soporte completo.
Segundo, un cliente fusiona su configuración con el paquete de distribución del proveedor. En este escenario, el modo de soporte inicial es el soporte que permite la edición.
Ver el modo de soporte y cambiar entre modos
Para ver el modo de soporte actual, en el menú Configuración, haga clic en Opciones de soporte. Esto abre el cuadro de diálogo Opciones de soporte donde puede ver el modo de soporte y realizar otras operaciones relacionadas con el soporte. La primera línea del cuadro de diálogo describe el modo de soporte actual. También hay un botón que permite la edición de la configuración. Una vez cambiado al modo que permite la edición, la configuración no se puede volver al modo de soporte completo. Tenga en cuenta que para editar la configuración del proveedor no es necesario desactivar completamente el soporte, es suficiente cambiar al modo de soporte que permite la edición.
Otras opciones de gestión de soporte
El cuadro de diálogo de opciones de soporte también proporciona las siguientes opciones: desactivar el soporte (el botón Desactivar soporte), hacer una copia de seguridad de la última versión de la configuración del proveedor (el botón Guardar en archivo), especificar los idiomas de soporte de la configuración, especificar reglas de soporte para objetos individuales y abrir el cuadro de diálogo para comparar y fusionar con la configuración del proveedor.
Idiomas de soporte de la configuración
Además de la comparación completa de configuraciones, 1C:Enterprise proporciona la opción de comparar configuraciones por idioma. Supongamos que se están comparando dos configuraciones (por ejemplo, una configuración de proveedor se compara con una configuración de cliente). La primera configuración incluye los idiomas inglés y alemán, mientras que la segunda solo incluye inglés. Si selecciona la comparación solo por idioma inglés, las líneas que son idénticas en inglés se consideran idénticas, incluso si incluyen alemán. Hay una ventana de diálogo donde puede especificar los idiomas de comparación. También puede especificar los idiomas predeterminados en las opciones de soporte. Los idiomas predeterminados se utilizan para la comparación con la configuración del proveedor y para las actualizaciones de configuración.
Especificación de reglas de soporte de objetos
Las reglas de soporte de objetos se describen en detalle en Concepto de entrega y soporte de configuración. Puede especificar reglas de soporte para objetos individuales desde la ventana de diálogo de opciones de soporte o desde la ventana de diálogo de comparación y fusión con la configuración del proveedor.
Tenga en cuenta la regla “No se permiten cambios en objetos de proveedor”. Esta regla solo se puede establecer para objetos idénticos (objetos de proveedor que no son modificados por el cliente). Por eso, la regla solo se puede establecer en la ventana de diálogo de comparación y fusión con la configuración del proveedor. Si intenta establecer esta regla en la ventana de diálogo de opciones de soporte, recibirá un mensaje de error.
Eliminación de objetos de proveedor
Para eliminar un objeto de proveedor, debe establecer la regla “Soporte cancelado para objeto de proveedor” para este objeto y todos sus objetos subordinados. En la ventana de diálogo de opciones de soporte, puede establecer esta regla de forma recursiva (para un objeto y todos sus objetos subordinados a la vez). Se admite establecer una regla para un grupo de objetos, así como establecer una regla para un grupo de objetos con sus objetos subordinados.
Especificidades del desarrollo compartido
Todas las configuraciones de soporte se almacenan en la raíz de la configuración. Para actualizar las opciones de soporte o actualizar una configuración, es suficiente bloquear el objeto raíz en el repositorio. Pero recomendamos encarecidamente bloquear toda la configuración para actualizarla.
Revertir a objetos de proveedor
Para revertir a un objeto de proveedor, utilice la ventana de diálogo de comparación y fusión con la configuración del proveedor. Tenga en cuenta lo siguiente: si un objeto de proveedor es eliminado por el cliente y luego ese objeto se copia de una configuración de proveedor a la configuración del cliente, el objeto copiado, al ser lógicamente idéntico al eliminado, tiene un ID interno diferente. Y si la configuración de la base de datos todavía almacena la versión anterior del objeto, no se puede asignar al nuevo objeto durante la actualización de la configuración de la base de datos y se pueden perder algunos datos durante la actualización. Por lo tanto, si desea restaurar un objeto eliminado que aún está presente en la configuración de la base de datos, no fusione su configuración con una configuración de proveedor. En su lugar, revierta a la configuración de la base de datos.
Configuraciones basadas en varias configuraciones de proveedor admitidas
Descripción general
Considere el siguiente escenario. Un cliente necesita una solución integrada que incluya dos funcionalidades muy diferentes, como la gestión de almacenes y la gestión de recursos humanos. No pueden encontrar una sola solución que se ajuste a sus necesidades, pero hay soluciones que implementan una de las funcionalidades exactamente como ellos quieren disponibles en el mercado. Por lo tanto, compran dos soluciones y las fusionan en una sola configuración. Por supuesto, combinar dos configuraciones originales en una, especialmente si son proporcionadas por diferentes proveedores, es una tarea compleja que siempre requiere correcciones manuales a la fusión automática. En particular, si ambas configuraciones de origen tienen objetos con funcionalidades similares, deben fusionarse en un solo objeto sin pérdida de funcionalidad. Dado que los métodos para resolver esta tarea están fuera del alcance de este artículo, solo discutiremos el soporte de la configuración resultante.
Probablemente, un cliente desea seguir siendo elegible para el soporte del proveedor, pero ¿cuál de los dos proveedores eligen? Por supuesto, pueden elegir la configuración que sea más importante, o una más grande, o una más compleja, e integrar los cambios que provienen de otra configuración de proveedor manualmente. Pero 1C:Enterprise proporciona la opción de obtener soporte de ambas configuraciones de proveedor.
Soporte de objetos mapeados
Una actualización de configuración solo afecta a los objetos de configuración del cliente que provienen de la configuración del proveedor. El resto de los objetos se consideran agregados por el cliente y no afectan el proceso de actualización. Por lo tanto, la actualización no hace ninguna diferencia entre los objetos agregados por el cliente y los objetos que provienen de otra configuración del proveedor.
La configuración también puede incluir objetos fusionados que provienen de ambas configuraciones (lo que mapea los objetos de origen entre sí). Consideremos sus opciones de soporte.
Para cada configuración del proveedor, 1C:Enterprise solo analiza sus enlaces a objetos del cliente. Por lo tanto, si un objeto de configuración del cliente también está vinculado a otra configuración del proveedor, esto no introduce cambios en los procesos de entrega y soporte. Si un cliente actualiza un objeto de la primera configuración del proveedor, la segunda configuración del proveedor identifica esto como cambios del cliente. Es por eso que es posible tener un solo objeto compatible con dos o más configuraciones del proveedor. Por supuesto, es necesario vigilar de cerca el objeto durante cada actualización y realizar correcciones manuales, pero la función de fusión automática sigue siendo útil aquí porque al menos proporciona un informe que enumera los cambios introducidos por una nueva versión de la configuración del proveedor.
No es necesario mantener un objeto compatible con ambos proveedores. En su lugar, se puede tener el objeto compatible en una sola configuración, preferiblemente aquella cuya funcionalidad es más compleja o más difícil de integrar. Alternativamente, se puede desactivar el soporte para ambas configuraciones del proveedor y realizar todos los últimos cambios en el objeto manualmente.
Disponibilidad de objetos mapeados
Si una configuración se basa en varias configuraciones de proveedores admitidas, hay al menos un objeto mapeado disponible: el objeto de configuración raíz. La mayoría de sus propiedades solo afectan ligeramente la funcionalidad de la configuración y sus valores pueden ser cambiados por el cliente. Las propiedades significativas incluyen el módulo de aplicación y posiblemente el módulo de conexión externa. El cliente debe decidir cómo se admiten estos módulos y la actualización de estos módulos siempre lleva tiempo, independientemente de la opción de soporte seleccionada. Esta es una de las razones por las que se recomienda mantener todas las implementaciones de funcionalidad en módulos comunes, dejando solo llamadas de procedimiento en los módulos de aplicación y conexión externa. Seguir esta recomendación simplifica significativamente el proceso de actualización.
Reglas de entrega y soporte
Para mantener un objeto mapeado compatible con ambas configuraciones del proveedor, establezca la regla “Cambios permitidos sin romper el soporte” en las opciones de soporte para ambas configuraciones.
Si desea que un objeto mapeado sea compatible con una sola configuración del proveedor, establezca la regla “Cambios permitidos sin romper el soporte” para esa configuración y establezca la regla “Soporte cancelado para objeto del proveedor” para la otra configuración. Por supuesto, solo puede hacerlo si las reglas de soporte establecidas por los proveedores permiten estas opciones. Si ambos proveedores establecen la regla “Cambios no permitidos”, no se puede crear un objeto mapeado compatible con ambas configuraciones del proveedor.
Habilitar el soporte
Hay dos formas de habilitar el soporte de una configuración del proveedor: primero, crear una configuración a partir de un kit de distribución del proveedor, y segundo, fusionar su configuración con la configuración distribuida con la opción “habilitar soporte”. Obviamente, si su configuración incluye dos configuraciones de proveedores, debe utilizar el segundo método para al menos una de las configuraciones.
Especificaciones de comparación y fusión de configuraciones durante la actualización
Mapeo de objetos
Reglas de mapeo
Al fusionar configuraciones, 1C:Enterprise crea el mapeo de objetos de metadatos basado en sus propiedades de Nombre e ID de objeto interno. El algoritmo de mapeo a utilizar depende de la opción de comparación seleccionada. Antes de continuar describiendo estas opciones, discutamos cómo se pueden cambiar los ID de objeto interno.
Los ID internos nunca se cambian dentro de una sola configuración. No se cambian al exportar configuraciones a archivos .cf o .dt (incluidos archivos de distribución .cf y archivos de actualización .cfu). No se cambian en el proceso de desarrollo compartido (cuando se mueven objetos entre la configuración y el repositorio). Sin embargo, siempre se cambian al copiar objetos, y esto incluye copiar objetos en el proceso de fusión.
Por ejemplo, crea una nueva configuración y luego, en el menú Configuración, haz clic en Comparar y fusionar con la configuración de un archivo. 1C:Enterprise detecta que la configuración actual está vacía y te solicita cargar toda la configuración desde un archivo, como si usaras el comando Cargar configuración desde archivo. Si aceptas, se conservan todos los ID de los objetos. Si rechazas y realizas una fusión regular, se cambian todos los ID de los objetos, aunque la configuración resultante sea lógicamente idéntica a la original.
Ahora pasemos a los algoritmos de asignación de objetos. Hay tres algoritmos disponibles:
- Comparación de configuraciones que no están relacionadas entre sí. La asignación se basa en los nombres de los objetos. Los objetos que no se pueden asignar por nombre se asignan por ID interno.
- Comparación de configuraciones relacionadas entre sí (diferentes versiones de una misma configuración). Por ejemplo, la comparación de una configuración base con una configuración de base de datos o con una configuración de repositorio se incluye en esta categoría. La asignación se basa solo en los ID de los objetos, se ignoran los nombres de los objetos.
- Comparación con la configuración del proveedor. La asignación se basa en los ID de los objetos, pero los ID no tienen que ser idénticos.
Veamos en detalle el tercer algoritmo, pero primero hagamos algunas aclaraciones sobre los dos primeros algoritmos. Hay varias formas de iniciar la comparación de configuraciones. Por ejemplo, puedes usar el comando Configuración – Comparar y fusionar con la configuración de un archivo, o el comando Configuración – Configuración de base de datos – Comparar y fusionar con la configuración de la base de datos, o abrirlo desde el cuadro de diálogo de opciones de soporte. En cada uno de estos escenarios, la plataforma selecciona automáticamente el algoritmo de asignación.
También tienes el comando de comparación universal Configuración – Comparar configuraciones, que te solicita seleccionar cualquier par de configuraciones (por ejemplo, una configuración de base de datos y alguna versión de configuración del repositorio). Si seleccionas un par de configuraciones que obviamente están relacionadas entre sí, el algoritmo de asignación se selecciona automáticamente. De lo contrario, se habilita la casilla de verificación Determinar coincidencia por nombres de objetos, que te permite seleccionar entre dos algoritmos.
Ten en cuenta que para que la plataforma seleccione el algoritmo automáticamente, además de seleccionar un par específico de configuraciones, también debes seleccionarlas en el orden correcto, la configuración base debe ir primero. Puedes usar esta función si deseas cambiar el algoritmo para un determinado par de configuraciones: simplemente cambia su orden.
Ahora veamos la comparación con la configuración del proveedor. Puede tener una de las dos opciones de soporte: cambios de objetos permitidos o no permitidos. En el último caso, la actualización se realiza cargando toda la configuración del proveedor y los ID de los objetos no se cambian, como se describe anteriormente en este artículo. En el primer caso, se permiten correcciones manuales durante la fusión y los nuevos objetos adquieren nuevos ID. Pero en este escenario, los objetos no se pueden asignar por nombre porque, de lo contrario, los objetos cuyos nombres son cambiados por el cliente perderían sus vínculos con los objetos del proveedor. Por lo tanto, la plataforma utiliza el siguiente algoritmo: para cada objeto del proveedor, almacena un par de ID de objetos (el ID del objeto del proveedor y el ID del objeto de la configuración admitida) y luego genera la asignación utilizando solo esos pares. Una vez creados, los pares nunca se cambian, lo que garantiza la integridad lógica de la configuración. Si se encuentra un objeto nuevo en una configuración del proveedor, un cliente puede copiar el objeto durante la actualización o puede asignarlo a algún objeto de configuración del cliente, y una vez que lo haga, esta asignación no se puede cambiar.
Dependencia del rendimiento de la comparación de configuraciones en la asignación de objetos
La comparación de configuraciones grandes es una operación larga, especialmente en el modo de actualización de la configuración del proveedor, que incluye tres comparaciones: la antigua configuración del proveedor, la nueva configuración del proveedor y la configuración del cliente se comparan entre sí. En general, el rendimiento de la comparación mejora significativamente si se cumplen las siguientes dos condiciones:
- La asignación no incluye pares de objetos con ID diferentes.
- Los objetos no asignados no incluyen pares de objetos con ID idénticos.
Uno puede explicar fácilmente por qué seguir estas reglas optimiza el rendimiento. Las versiones de configuración del proveedor siempre se comparan rápidamente porque se crean a partir de una única configuración como archivos de entrega o actualización y se preservan los ID de objeto. El rendimiento de la comparación depende del historial de cambios en las versiones de configuración del proveedor. Después de habilitar cambios en la configuración del cliente, la comparación aún se realiza rápidamente porque los objetos mapeados tienen ID idénticos. Pero una vez que un proveedor agrega un nuevo objeto en una actualización, el objeto se le asigna un nuevo ID después de la actualización y el rendimiento de todas las comparaciones posteriores de la configuración del cliente con la configuración del proveedor se reduce significativamente.
Nota sobre habilitar el soporte
Los especialistas en implementación a menudo preguntan cuál es la forma correcta de habilitar el soporte. Tienen las siguientes opciones: habilitar el soporte en una configuración del proveedor instalada desde un kit de distribución, o fusionar una configuración del cliente con la configuración del proveedor distribuida y al mismo tiempo habilitar el soporte. No hay mucha diferencia entre estas opciones. Lógicamente, ambas formas dan el mismo resultado. El rendimiento de la actualización es inicialmente mejor en el primer escenario, pero solo hasta que el proveedor agregue al menos un objeto, lo cual probablemente sucederá en la próxima versión de la configuración del proveedor. Después de eso, el rendimiento es el mismo para ambos escenarios.
Eliminación de objetos del proveedor
Consideremos escenarios que involucran la eliminación de objetos del proveedor.
Eliminación por parte del cliente
Para eliminar un objeto del proveedor, el cliente debe deshabilitar el soporte para este objeto y todos sus objetos subordinados. En las actualizaciones posteriores, el objeto se excluye de la fusión.
Eliminación por parte del proveedor
Cuando fusionas configuraciones, siempre tienes la opción de eliminar objetos de la configuración base. Por defecto, esta opción solo está disponible en el modo “actualización de configuración del proveedor”. En otros modos, puedes habilitarlo seleccionando la casilla de verificación Permitir eliminación de objetos de configuración base en el cuadro de diálogo de comparación y fusión de configuraciones.
Por defecto, la configuración de marcas de eliminación para objetos del proveedor se realiza según las siguientes reglas. Si un cliente cambió el objeto del proveedor (en comparación con la versión anterior de la configuración del proveedor), la marca de eliminación no se establece de forma predeterminada. Si el objeto es idéntico al objeto del proveedor, se establece la marca de eliminación. Una vez que haces clic en Ejecutar, la plataforma verifica la integridad de referencia para los objetos que tienen marcas de eliminación establecidas tanto automáticamente como manualmente. Si se encuentran referencias irresolubles a un objeto que tiene una marca de eliminación, se muestra la lista de referencias en una nueva ventana. A diferencia de las referencias no resueltas que se encuentran cuando se niega copiar un objeto de una configuración del proveedor (o de cualquier otra configuración involucrada en la fusión), estas referencias no te permiten eliminar el objeto y continuar con la fusión.
Recomendaciones para personalizar configuraciones del proveedor
Cuando personalices una configuración estándar para las necesidades de un usuario específico, piensa en las futuras actualizaciones. La función de soporte de configuración disponible en 1C:Enterprise simplifica en gran medida el proceso de actualización, pero si introduces cambios significativos en la configuración del proveedor, la integración de las actualizaciones que vienen con la nueva versión de la configuración del proveedor a la configuración personalizada requiere trabajo manual.
Las recomendaciones enumeradas en este artículo se basan en el análisis de varios escenarios de actualización y ayudan a simplificar el procedimiento de actualización. Algunas de las recomendaciones se explican en detalle en otros artículos, mientras que esta lista proporciona un resumen.
- Recomendamos que no desactive el soporte de objetos. En su lugar, establezca la regla “Cambios permitidos sin romper el soporte”. Desactivar el soporte solo tiene sentido si planea continuar el desarrollo del objeto usted mismo o si desea eliminar el objeto.
- Recomendamos que no elimine objetos del proveedor incluso si no planea utilizarlos en su lógica empresarial. Los algoritmos de configuración del proveedor pueden utilizar estos objetos para fines internos y eliminarlos puede afectar la integridad lógica de su configuración.
- Orden de los objetos de metadatos. Cuando fusiona configuraciones con árboles de objetos de metadatos significativamente diferentes con la regla “Orden de la configuración del proveedor”, no se garantiza la preservación del orden de los objetos de metadatos. Si ese orden es importante, después de la fusión de actualización, fusiona su configuración con la configuración del proveedor utilizando el cuadro de diálogo de opciones de soporte. Esto restaura el orden de los objetos de metadatos.
- Mapeo de objetos. Durante la actualización, puede asignar objetos del cliente a nuevos objetos de la configuración del proveedor. Pero preste especial atención a este procedimiento porque no podrá cambiar ese mapeo en el futuro.
- Agregar objetos subordinados. Si necesita agregar un atributo, formulario o plantilla a un objeto (por ejemplo, a un catálogo), esto no implica desactivar el soporte para el catálogo. La función de soporte incluye la preservación de los atributos agregados. Pero recuerde que agregar objetos subordinados no siempre es tan fácil. Por ejemplo, agregar una dimensión a un registro introduce un cambio significativo en su funcionalidad.
- Actualización de una configuración sujeta a desarrollo compartido. Recomendamos que bloquee todos los objetos de la configuración antes de la actualización. Los objetos que no están bloqueados no se actualizan. Bloquear el objeto raíz es necesario para la actualización.
- Edición de una configuración al especificar la configuración de actualización. Recomendamos que no utilice esta opción. Primero, la actualización del resultado de la comparación después de editar la configuración llevará tiempo. En segundo lugar, si la edición incluye agregar un nuevo objeto que requiere actualización, la plataforma no establece reglas de actualización predeterminadas para este objeto. Si la edición de la configuración es absolutamente necesaria, una vez que termine la edición, cierre la ventana de comparación de configuración y ejecute nuevamente el comando de actualización de configuración. A diferencia de presionar el botón “Actualizar”, esta operación garantiza que se establezcan todas las reglas de actualización de objetos.
- Recomendamos que no cambie el nombre de objetos de metadatos, procedimientos o funciones sin una buena razón. Recuerde que un nombre utilizado en un módulo para acceder a un cierto objeto puede generarse dinámicamente y encontrar todas las instancias de ese nombre puede ser una tarea compleja. Además, cambiar un gran número de módulos hace que las actualizaciones posteriores sean más complejas.
- Localización de textos de módulos. Recomendamos que edite los parámetros de la función NStr() utilizando la herramienta Editar textos de interfaz, en lugar de hacer correcciones directamente en los módulos. Cuando edita cadenas directamente en la función NStr(), es posible que encuentre algunas plantillas complejas que representan caracteres especiales, por lo que es mejor dejar las actualizaciones de plantillas a la plataforma.
- Fusionar propiedades complejas. Recuerde que fusionar propiedades complejas, como formularios, plantillas o interfaces, con la regla “Actualizar priorizando…” es un proceso complejo y siempre requiere verificaciones manuales. Recomendamos que utilice las herramientas que proporcionan informes visuales sobre las diferencias en propiedades complejas. A veces tiene sentido evitar la actualización y hacer correcciones manuales en lugar de un formulario del proveedor.
- Edición de módulos comunes. Cuando desarrolle procedimientos universales personalizados, recomendamos que los almacene en nuevos módulos en lugar de en módulos del proveedor. Si necesita incluirlos en módulos del proveedor, recuerde que puede especificar reglas de actualización individuales para cada procedimiento.
- Al igual que con la modificación de módulos, recomendamos que agregue nuevos procedimientos y funciones en lugar de editar los existentes. Si no puede hacerlo (por ejemplo, necesita editar un controlador de eventos), declare un nuevo procedimiento para alojar el nuevo script y luego agregue la llamada al procedimiento al controlador.
- Análisis de los cambios realizados por el proveedor. Si bien el informe de comparación proporciona información detallada sobre los cambios, su análisis puede llevar mucho tiempo. Recomendamos que lea las notas de parche, esto le ayudará a seleccionar la estrategia de actualización óptima para objetos específicos.
- No actualice objetos copiándolos y pegándolos. Esto afecta el soporte de la configuración y también puede afectar la integridad lógica de su configuración y causar pérdida de datos.
- Lea otros artículos de la base de conocimientos relacionados con la entrega y actualización de la configuración. Comprender los principios de entrega y actualización agiliza el desarrollo de su configuración.
Creando archivos de distribución y actualización
Puede crear los siguientes archivos de distribución y actualización en Designer:
- Archivo de configuración (.cf), que almacena el paquete de distribución de la configuración
- Archivo de actualización (.cfu), que almacena la actualización de la configuración (para una o varias versiones anteriores)
Estructura estándar de directorios de distribución y actualización
El procedimiento de entrega de la configuración se adhiere a reglas específicas para la ubicación de los archivos de distribución y soporte de diferentes versiones. Para especificar el directorio raíz de los archivos de distribución y actualización, en el cuadro de diálogo Crear archivos de distribución y actualización de configuración, haga clic en Directorio de archivos de distribución. Por defecto, los archivos se almacenan en subdirectorios con nombres basados en sus números de versión (la propiedad Versión de la configuración). Esto simplifica la preparación de los archivos de actualización (como se describe más adelante en este artículo). Tenga en cuenta que el directorio raíz no se almacena dentro de la configuración y cambiará si el archivo de configuración .1cd se mueve a otro equipo.
Creación de archivos de distribución
Los archivos de distribución se crean en el directorio de archivos de distribución especificado si selecciona la casilla de verificación Crear archivo de distribución en el cuadro de diálogo Crear archivos de distribución y actualización de configuración.
¡Atención! No cree archivos de entrega en la configuración que se admite a sí misma.
Nota. Si, a pesar de esta recomendación, ha creado archivos de entrega para una configuración que se admite a sí misma, envíe solo el nuevo archivo de configuración (.cf) a los usuarios. Esta es la única forma de realizar correctamente la actualización de la configuración admitida.
Creación de archivos de actualización de configuración
Puede crear archivos de distribución y actualización simultáneamente desde el cuadro de diálogo Crear archivos de distribución y actualización de configuración si selecciona tanto la casilla de verificación Crear archivo de distribución como la casilla de verificación Crear archivo de actualización de configuración. Pero solo puede crear un archivo de actualización a la vez. Para crear varios archivos de actualización para actualizar una configuración desde diferentes versiones, repita el procedimiento de creación de actualización varias veces, cada vez con un directorio de archivo de distribución diferente.
Si selecciona la casilla de verificación Crear archivo de actualización de configuración, especifique uno o varios archivos de versiones anteriores que se pueden actualizar con este archivo. Los archivos de actualización no son acumulativos: un archivo diseñado para actualizar de la versión 4 a la versión 6 no se puede utilizar para actualizar la versión 5, a menos que esta versión se haya especificado explícitamente en la etapa de generación del archivo (para obtener más información, consulte Concepto de entrega y soporte de configuración).
Para seleccionar archivos de configuración de versiones anteriores, puede hacer clic en Agregar y seleccionar un archivo, o puede hacer clic en Agregar desde versiones anteriores para ejecutar una búsqueda automática de las versiones de configuración almacenadas en el disco duro, siempre que los archivos se almacenen en la estructura de directorios descrita anteriormente en este artículo.
El comando Agregar también le permite especificar archivos de distribución de diferentes configuraciones (deben ser archivos de distribución, no archivos de configuración regulares). La plataforma crea actualizaciones para estas configuraciones.
Actualización de configuraciones mediante archivos de actualización .cfu
Para actualizar una configuración, en el menú Configuración, apunte a Soporte y haga clic en Actualizar configuración. Esto abre el cuadro de diálogo Actualización de configuración.
En este cuadro de diálogo, seleccione la fuente de actualización.
Una vez que haya pasado por el asistente de actualización de configuración y haga clic en Finalizar, la plataforma muestra el cuadro de diálogo con los parámetros principales de la configuración actual y la configuración del proveedor. Para obtener más detalles, consulte la documentación de la plataforma.
Nota. Cuando realiza una actualización utilizando un archivo .cfu, la plataforma realiza una verificación de versión basada en el ID interno que cambia con CUALQUIER cambio en la configuración, incluso deshabilitar el soporte se considera un cambio.


