26.12.2019

1s conversión de datos 2.0. Siempre hay múltiples soluciones.


Migrar datos entre diferentes configuraciones no es una tarea trivial. Como siempre, hay varias soluciones, pero no todas son óptimas. Tratemos de comprender los matices de la transferencia de datos y elijamos una estrategia universal para resolver tales problemas.

El problema de la migración de datos (se trata únicamente de productos de la empresa 1C) de una solución a otra no surgió ayer. La compañía 1C es muy consciente de las dificultades que enfrentan los desarrolladores al crear migraciones, por lo que hace todo lo posible para ayudar con las herramientas.

Durante el desarrollo de la plataforma, la empresa introdujo una serie de herramientas universales, así como tecnologías que simplifican la transferencia de datos. Están integrados en todo. soluciones estándar y se resolvió en general el problema de las migraciones entre configuraciones idénticas. La victoria se confirma una vez más por la estrecha integración de las soluciones estándar.

Con las migraciones entre soluciones no estándar, la situación es algo más complicada. Una amplia gama de tecnologías permite a los desarrolladores elegir de forma independiente la mejor manera de resolver un problema desde su punto de vista.

Consideremos algunos de ellos:

  • intercambio a través de archivos de texto;
  • uso de planes de intercambio;
  • etc.

Cada uno de ellos tiene sus pros y sus contras. En resumen, la principal desventaja será la verbosidad. La implementación independiente de los algoritmos de migración conlleva importantes costos de tiempo, así como un largo proceso de depuración. Ni siquiera quiero hablar sobre el apoyo adicional de tales decisiones.

La complejidad y el alto costo de mantenimiento llevaron a la empresa 1C a crear una solución universal. Tecnología que te permite simplificar al máximo el desarrollo y soporte de migraciones. Como resultado, la idea se implementó en forma de una configuración separada: "Conversión de datos".

Conversión de datos: solución estándar, autoconfiguración. Cualquier usuario con una suscripción ITS:Prof puede descargar este paquete de forma totalmente gratuita desde el sitio de soporte al usuario o el disco ITS. La instalación se realiza de forma estándar, como todas las demás soluciones estándar de 1C.

Ahora un poco sobre los pros de la solución. Comencemos con lo más importante: la versatilidad. La solución no está adaptada a determinadas configuraciones/versiones de la plataforma. Funciona igualmente bien tanto con configuraciones estándar como con configuraciones autoescritas. Los desarrolladores obtienen una tecnología universal y un enfoque estandarizado para crear nuevas migraciones. La versatilidad de la solución permite preparar migraciones incluso para plataformas distintas a 1C:Enterprise.

La segunda ventaja en negrita son las ayudas visuales. Las migraciones simples se crean sin programación. ¡Sí, sí, sin una sola línea de código! Solo por esto, vale la pena dedicar tiempo a aprender la tecnología una vez y luego usar habilidades invaluables repetidamente.

La tercera ventaja que destacaría es la ausencia de restricciones en la distribución de datos. El propio desarrollador elige el método de entrega de datos a la configuración del receptor. Hay dos opciones disponibles listas para usar: carga en un archivo xml y conexión directa a la base de datos (COM/OLE).

Arquitectura de aprendizaje

Ya sabemos que la conversión de datos puede hacer maravillas, pero aún no está claro cuáles son las ventajas técnicas. Lo primero que debe aprender es que cualquier migración de datos (conversión) se basa en reglas de intercambio. Reglas de intercambio: un archivo xml normal con una descripción de la estructura en la que se cargarán los datos desde IB. El procesamiento del servicio que realiza la carga/descarga de datos analiza las reglas de intercambio y realiza la carga en función de ellas. Durante la descarga, ocurre el proceso inverso.

La configuración “KD” es una especie de constructor visual con el que el desarrollador crea reglas de intercambio. No sabe cómo cargar datos. El procesamiento de servicio externo adicional incluido en el kit de distribución de CD es responsable de esto. Hay varios de ellos (XX en el nombre del archivo es el número de versión de la plataforma):

  • MDXXExp.epf- el procesamiento le permite cargar una descripción de la estructura de la base de datos en un archivo xml. La descripción de la estructura se carga en el CD para su posterior análisis y creación de reglas de cambio.
  • V8ExchanXX.epf- carga/descarga datos de la base de datos de acuerdo con las reglas de intercambio. En la mayoría de las configuraciones típicas, el procesamiento está disponible desde el primer momento (consulte el elemento de menú "Servicio"). El procesamiento es universal y no está vinculado a ninguna configuración o regla específica.

Bien, ahora en base a todo lo anterior, definamos las etapas del desarrollo de una nueva conversión:

  1. Definición de tareas. Es necesario comprender claramente qué datos deben transferirse (desde qué objetos de configuración) y, lo que es más importante, dónde transferirlos.
  2. Elaboración de una descripción de estructuras de configuración (Fuente/Receptor) para su posterior carga en el CD. La tarea se resuelve mediante el procesamiento del servicio MDXXExp.epf.
  3. Cargando descripciones preparadas de estructuras en IS.
  4. Creación de reglas de cambio utilizando medios visuales de CD.
  5. Carga/descarga de acuerdo con las reglas de conversión de datos creadas mediante el procesamiento V8ExchanXX.epf.
  6. Depuración de reglas de intercambio (si es necesario).

La conversión más sencilla

Para la demostración, necesitamos dos configuraciones implementadas. Decidí detenerme en la opción: "Gestión comercial" 10ª edición y una pequeña solución escrita por mí mismo. La tarea será transferir datos desde la configuración típica de UT. Para abreviar, llamaremos a la solución autoescrita "Receptor" y a la gestión comercial "Fuente". Comencemos a resolver el problema transfiriendo los elementos del directorio "Nomenclatura".

En primer lugar, echemos un vistazo al esquema de conversión de datos y volvamos a leer la lista de acciones que deben realizarse. Luego lanzamos la configuración "Fuente" y abrimos el servicio que procesa MD82Exp.epf en él.

La interfaz de procesamiento no brilla con una gran cantidad de configuraciones. El usuario solo necesita especificar los tipos de objetos de metadatos que no entrarán en la descripción de la estructura. En la mayoría de los casos, no es necesario cambiar esta configuración porque no tiene ningún sentido particular descargar movimientos en registros de acumulación (como ejemplo).

Es más correcto formar el movimiento durante la tenencia de documentos en el receptor. Todos los movimientos se realizarán por el propio documento después de la transferencia. El segundo argumento en defensa de la configuración predeterminada es reducir el tamaño del archivo subido.

Algunos documentos (especialmente en configuraciones típicas) forman movimientos en múltiples registros. Descargar toda esta economía hará que el archivo XML resultante sea demasiado grande. Esto puede dificultar el transporte y la carga posteriores en la base del receptor. Cuanto más grande es el archivo de datos, más RAM se requiere para procesarlo. Durante mi práctica, me encontré con archivos de carga indecentemente grandes. Dichos archivos se negaron por completo a ser analizados por medios estándar.

Entonces, dejamos todas las configuraciones predeterminadas y cargamos la descripción de la configuración en un archivo. Repetimos el mismo procedimiento para la segunda base.

Abra el CD y seleccione en el menú principal “Directorios” -> “Configuraciones”. El directorio almacena descripciones de las estructuras de todas las configuraciones que se pueden usar para crear conversiones. Cargamos la descripción de la configuración una vez y luego podemos usarla repetidamente para crear diferentes conversiones.

En la ventana del directorio, presione el botón “ Agregar” y en la ventana que aparece, seleccione un archivo con una descripción de la configuración. Marque la casilla "Cargar a nueva configuración" y haga clic en el botón "Realizar carga". Realizamos acciones similares con la descripción de la estructura de la segunda configuración.

Ahora todo está listo para crear las reglas de intercambio. En el menú principal del CD, seleccione "Referencias" -> "Conversiones". Adición de un nuevo elemento. En la ventana para crear una nueva conversión, debe especificar: la configuración de origen (seleccione UT) y la configuración del receptor (seleccione "Receptor"). A continuación, abra la pestaña "Avanzado" y complete los siguientes campos:

  • nombre del archivo de reglas de intercambio: las reglas de intercambio creadas se guardarán con este nombre. El nombre del archivo se puede cambiar en cualquier momento, pero es mejor configurarlo ahora. Esto ahorrará tiempo en el futuro. Nombré las reglas para la demostración: "rules-ut-to-priemnik.xml".
  • nombre - el nombre de la conversión. El nombre puede ser absolutamente cualquier cosa, me limité a “Demo. UT al Receptor”.

Eso es todo, haga clic en "Aceptar". Inmediatamente, aparece una ventana frente a nosotros que nos pide que creemos todas las reglas automáticamente. Aceptar una oferta tan tentadora le dará al maestro el comando para analizar automáticamente la descripción de las configuraciones seleccionadas y generar reglas de intercambio de forma independiente.

Pongamos el punto "y" de inmediato. El maestro no podrá generar nada grave. Sin embargo, no debe descartarse esta posibilidad. Si necesita establecer un intercambio entre configuraciones idénticas, los servicios de un asistente serán de gran ayuda. Para nuestro ejemplo, es preferible el modo manual.

Echemos un vistazo más de cerca a la ventana "Configuración de reglas de intercambio". La interfaz puede parecer un poco confusa - un gran número de pestañas rellenas de controles. De hecho, no todo es tan difícil, te empiezas a acostumbrar a esta locura después de unas horas de trabajar con la aplicación.

En este escenario nos interesan dos pestañas: “Reglas de conversión de objetos” y “Reglas de carga de datos”. En el primero, tenemos que configurar reglas de coincidencia, es decir. comparar objetos de dos configuraciones. En el segundo, determine los posibles objetos que estarán disponibles para que el usuario los descargue.

En la segunda mitad de la pestaña "Reglas de conversión de objetos" hay un panel adicional con dos pestañas: "Conversión de propiedades" y " Conversión de valor". El primero seleccionará las propiedades (requisitos) del objeto seleccionado, y el segundo es necesario para trabajar con valores predefinidos (por ejemplo, elementos de diccionario predefinidos o elementos de enumeración).

Genial, ahora vamos a crear reglas de conversión para directorios. Puede realizar esta acción de dos maneras: use el asistente de sincronización de objetos (haga clic en "") o agregue coincidencias para cada objeto manualmente.

Para ahorrar espacio, utilizaremos la primera opción. En la ventana del asistente, desmarque la casilla " Documentación” (solo nos interesan los directorios) y ampliar el grupo “ Libros de referencia". Nos desplazamos con cuidado por la lista y observamos los nombres de los directorios que se pueden comparar.

En mi caso, hay tres directorios de este tipo: Nomenclatura, Organizaciones y Almacenes. También existe un directorio de Clientes que realiza la misma carga semántica que “ contrapartes"desde la configuración" Utah". Es cierto que el maestro no pudo compararlos debido a sus excelentes nombres.

Podemos arreglar este defecto nosotros mismos. Encuentra en la ventana Asignaciones de objetos» manual « Clientela”, y en la columna “Fuente” seleccione el libro de referencia “Contrapartes”. Luego marque la casilla en la columna "Tipo" y haga clic en el botón "Aceptar".

El asistente de sincronización de objetos le pedirá que cree automáticamente reglas para convertir las propiedades de todos los objetos seleccionados. Las propiedades coincidirán por nombre, y para nuestra demostración esto será suficiente, estamos de acuerdo. La siguiente pregunta será una propuesta para crear reglas de carga. Pongámonos de acuerdo.

La base para las reglas de cambio está lista. Elegimos los objetos para la sincronización y las reglas para convertir propiedades y cargar reglas se crearon automáticamente. Guardemos las reglas de intercambio en un archivo, luego abramos la "Fuente" de IB (en mi caso, es UT) y comencemos el procesamiento del servicio en él. V8Exchan82.epf.

En primer lugar, en la ventana de procesamiento, seleccione las reglas de intercambio que creamos. Respondemos afirmativamente a la pregunta de cargar las reglas. El procesamiento analizará las reglas de intercambio y construirá un árbol del mismo nombre para los objetos disponibles para descargar. Para este árbol, podemos establecer todo tipo de filtros o nodos de intercambio, cambiando los que necesitamos para seleccionar datos. Queremos subir absolutamente todos los datos, por lo que no es necesario instalar filtros.

Después de completar el proceso de carga de datos a un archivo, vaya a IB " Receptor". También abrimos el procesamiento en él. V8Exchan82.epf, solo que esta vez vamos a la pestaña “Cargando datos”. Seleccione el archivo de datos y haga clic en el botón "Cargar". Todo, los datos fueron transferidos exitosamente.

Tareas del mundo real

La primera demostración podría ser engañosa. Todo parece bastante simple y lógico. Actualmente, esto no es verdad. EN trabajo de verdad surgen problemas que son difíciles o completamente imposibles de resolver solo con medios visuales (sin programación).

Para no decepcionarme con la tecnología, he preparado algunas tareas reales. Definitivamente los encontrarás en el trabajo. No parecen tan triviales y te hacen ver la conversión de datos desde un nuevo ángulo. Considere cuidadosamente los ejemplos presentados y siéntase libre de usarlos como fragmentos cuando resuelva problemas reales.

Tarea número 1. Completa los detalles que faltan

Supongamos que necesitamos transferir el directorio “ contrapartes". El receptor tiene un libro de referencia similar "Clientes" para esto. Es completamente adecuado para el almacenamiento de datos, pero tiene accesorios " Organización”, permitiéndole separar las contrapartes por pertenencia a la organización. Por defecto, todas las contrapartes deben pertenecer a la organización actual (se puede obtener de la constante del mismo nombre).

Hay varias soluciones al problema. Consideraremos la opción de rellenar los accesorios” Organización“justo en la base” Receptor", es decir. en el momento de la carga de datos. La organización actual se almacena en una constante, por lo que no hay barrera para obtener este valor. Abramos la regla de conversión de objetos (en lo sucesivo, FRP) “ Clientela” (doble clic en el objeto) y en el asistente de configuración de reglas, vaya a la sección “Controladores de eventos”. En la lista de manejadores encontramos “ Después de cargar”.

Describamos el código para obtener la organización actual con la subsiguiente asignación al atributo. En el momento en que se activa el controlador "Después de cargar", el objeto estará completamente formado, pero aún no se escribirá en la base de datos. Nadie nos prohíbe cambiarlo a nuestra discreción:

Si NO es Object.ThisGroup, entonces Object.Organization = Constants.CurrentOrganization.Get(); Terminara si;

Antes de rellenar los accesorios " Organización» es necesario comprobar el valor del atributo « Este grupo". Para la guía" Clientela» la bandera jerárquica está configurada, por lo que es necesario verificar un grupo. Del mismo modo, se realiza el llenado de cualquier detalle. Asegúrese de leer la ayuda para otras opciones de controlador " Después de cargar". Por ejemplo, entre ellos hay un parámetro " Rechazo". Si se le asigna el valor "Verdadero", el objeto no se escribirá en la base de datos. Por lo tanto, es posible limitar los objetos para escribir en el momento de la carga.

Tarea número 2. Detalles en el registro de información

En el manual " contrapartes"Configuración UT, hay detalles" Comprador" Y " Proveedor". Ambos accesorios son de tipo “ booleano” y se utilizan para determinar el tipo de contraparte. en IB" Receptor”, en el libro de referencia “ Clientela“No hay detalles similares, pero hay un registro de información” Tipos de Clientes". Realiza una función similar y puede almacenar múltiples etiquetas para un solo cliente. Nuestra tarea es transferir los valores de los detalles a registros separados del registro de información.

Desafortunadamente, los medios visuales por sí solos tampoco pueden hacer frente aquí. Comencemos poco a poco, cree un nuevo PCO para el registro de información " Tipos de Clientes". No mencione nada como fuente. Rechazar la creación automática de reglas de carga.

El siguiente paso es crear las reglas de carga. Vaya a la pestaña correspondiente y haga clic en " Agregar". En la ventana para agregar reglas de carga, complete:

  • método de muestreo. Cambiar a “Algoritmo arbitrario”;
  • regla de conversión Seleccione el registro de información “Tipos de clientes”;
  • Código (nombre) de la regla. Lo escribimos como “Subiendo Especies Cliente”;

Ahora necesita escribir el código para seleccionar datos para cargar. Aquí es donde el parámetro “ Muestreo de datos". En él, podemos colocar una colección con un conjunto de datos preparado. parámetro " Muestreo de datos” puede tomar diferentes valores: resultado de la consulta, selección, colecciones de valores, etc. Lo inicializamos como una tabla de valores con dos columnas: cliente y tipo de cliente.

A continuación se muestra el código del controlador de eventos " Antes de procesar". Inicializa el parámetro “ Muestreo de datos” seguido de completar los datos del directorio “ contrapartes". Aquí vale la pena prestar atención a completar la columna " Tipo de cliente". En “UT” tenemos características del tipo “Boolean”, y en el destinatario, una enumeración.

En esta etapa, no podemos llevarlos al tipo deseado (no está en la UT), por lo que por ahora lo dejaremos en forma de cadenas. No tienes que hacer esto, pero quiero mostrarte de inmediato cómo convertir a un tipo faltante en la fuente.

Obtención de datos = NewValueTable(); Selección de datos.Columnas.Agregar("Cliente"); Selección de datos.Columnas.Add("TipoCliente"); Selección de datos del directorio = Directorios.Contratistas.Select(); Mientras se obtiene DataFromCatalog.Next() Loop If FetchingDataFromCatalog.ThisGroup Entonces Continuar; Terminara si; Si DataFetchFromCatalog.Buyer Entonces NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Comprador"; Terminara si; Si DataFetchFromCatalog.Provider Entonces NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Proveedor"; Terminara si; FinCiclo;

Guarde la regla de carga de datos y regrese a la página “ Reglas de conversión de objetos". Agreguemos para el registro de información “ Tipos de Clientes” Reglas de conversión de propiedad: cliente y tipo de cliente. Dejamos la fuente vacía, y en el controlador de eventos “Antes de descargar” escribimos:

//Para la propiedad "Cliente" Value = Source.Client; //Para la propiedad “CustomerType” If Source.Customer = "Buyer" Then Expression = "Enumerations.CustomerTypes.Buyer" ElseIf Source.Customer = "Supplier" Then Expression = "Enumerations.CustomerTypes.Supplier"; Terminara si;

En el listado, los detalles se completan en función de la selección de datos realizada. Pasamos el cliente simplemente como enlace, y escribimos el tipo de cliente en el parámetro " Expresión". Los datos de este parámetro serán interpretados en el receptor, y al ejecutarse, el atributo será llenado con el valor correcto de la enumeración.

Eso es todo, las reglas de intercambio están listas El ejemplo considerado resultó ser bastante universal. A menudo se usa un enfoque similar cuando se transfieren datos de configuraciones creadas en la plataforma 7.7. Un ejemplo sorprendente de esto es la transferencia de detalles periódicos.

Tarea número 3. Trucos tabulares

A menudo, hay tareas que requieren publicar filas de una parte tabular en varias. Por ejemplo, en la configuración inicial, los servicios y bienes se registran en una sección tabular, mientras que el almacenamiento de estas entidades se separa en el receptor. Una vez más, el problema no se puede resolver por medios visuales. Aquí conviene tomar como base la solución del segundo problema.

Creamos una regla de carga de datos, especificamos un algoritmo arbitrario y escribimos una consulta en el controlador "Antes de cargar" para obtener datos de la sección tabular.

Para ahorrar espacio, no daré el código (siempre puede consultar el código fuente) de la solicitud; no hay nada inusual en él. Clasificamos la muestra resultante y colocamos los resultados ordenados en el parámetro ya familiar " Muestreo de datos". Nuevamente, es conveniente usar una tabla de valores como colección:

Obtención de datos = NewValueTable(); //Aquí habrá una sección tabular más Data Selection.Columns.Add("Products"); //Aquí también habrá una sección tabular Data Selection.Columns.Add("Services"); Seleccionando Datos de.Columnas.Agregar(“Enlace”);

Tarea número 4. Transferencia de datos a una operación

Si una organización utiliza varios sistemas de contabilidad, tarde o temprano habrá una necesidad de migración de datos con la posterior formación de publicaciones.

En la configuración " PA"hay un documento universal" Operación” y es ideal para formar más alambres. Aquí hay solo un problema: el documento está hecho de manera astuta y no es tan fácil transferir datos a él.

Puede encontrar un ejemplo de dicha conversión en el código fuente del artículo. La cantidad de código resultó ser bastante grande, por lo que no tiene sentido publicarlo para el artículo. Permítanme decir que la carga nuevamente usa un algoritmo arbitrario en las reglas para cargar datos.

Tarea número 5. Sincronización de datos a través de múltiples atributos

Ya hemos cubierto algunos ejemplos, pero hasta ahora no hemos hablado sobre la sincronización de objetos durante la migración. Imaginemos que necesitamos transferir contrapartes y algunas de ellas probablemente estén en la base de datos del receptor. ¿Cómo transferir datos y evitar duplicados? En este sentido, CD ofrece varias formas de sincronizar los objetos transferidos.

El primero es por identificador único. Muchos objetos tienen un identificador único que garantiza la unicidad dentro de una tabla. Por ejemplo, en el manual " contrapartes” no puede tener dos elementos con el mismo ID. El CD hace un cálculo para esto, y para todos los PSP creados, la búsqueda por identificador se habilita inmediatamente de forma predeterminada. Durante la creación de la PSP, debería haber notado el icono de lupa junto al nombre del objeto.

Sincronizar por un identificador único es un método confiable, pero está lejos de ser siempre apropiado. Al fusionar directorios “ contrapartes” (de varios sistemas diferentes) es de poca ayuda.

En tales casos, es más correcto sincronizar objetos según varios criterios. Es más correcto buscar contrapartes por TIN, KPP, Nombre o dividir la búsqueda en varias etapas.

La conversión de datos no limita al desarrollador en la definición de los criterios de búsqueda. Consideremos un ejemplo abstracto. Supongamos que necesitamos sincronizar directorios “ contrapartes” a partir de diferentes bases de información. Preparemos un PCP y en la configuración de las reglas para convertir un objeto, marque la casilla " Continúe buscando en los campos de búsqueda si el objeto receptor no se encuentra por ID". Con esta acción, definimos inmediatamente dos criterios de búsqueda: por un identificador único y campos arbitrarios.

Tenemos derecho a elegir los campos nosotros mismos. Habiendo anotado el TIN, KPP, Nombre, indicaremos inmediatamente varios criterios de búsqueda. ¿Cómodo? Bastante, pero de nuevo, esto no es suficiente. ¿Y si queremos cambiar el criterio de búsqueda? Por ejemplo, primero buscamos un montón de TIN + KPP, y si no encontramos nada, comenzamos a probar suerte con el nombre.

Es muy posible implementar tal algoritmo. En el controlador de eventos Campos de búsqueda” podemos especificar hasta 10 criterios de búsqueda y para cada uno de ellos definir su propia composición de los campos de búsqueda:

Si SearchOptionNumber = 1 entonces SearchPropertyNameString = “TIN, KPP”; ElseIfSearchVariantNumber = 2 ThenSearchPropertyNameString = “Nombre”; Terminara si;

Siempre hay múltiples soluciones.

Cualquier tarea tiene varias soluciones, y la transferencia de datos entre diferentes configuraciones no es una excepción. Cada desarrollador tiene derecho a elegir su propia ruta de solución, pero si tiene que desarrollar constantemente migraciones de datos complejas, le recomiendo que preste atención a la configuración "". Deje que al principio tenga que invertir recursos (tiempo) en capacitación, pero se verá recompensado con creces en el primer proyecto más o menos serio.

En mi opinión, la empresa 1C pasa inmerecidamente por alto el tema del uso de la conversión de datos. Durante todo el tiempo de existencia de la tecnología, solo se ha publicado un libro sobre ella: “1C: Enterprise 8. Conversión de datos: intercambio entre soluciones de aplicación”. El libro es bastante antiguo (2008), pero aún así es conveniente familiarizarse con él.

Todavía se requiere conocimiento de la plataforma

» es una herramienta universal, pero si planea usarla para crear migraciones de datos a partir de configuraciones desarrolladas para la plataforma 1C:Enterprise 7.7, tendrá que dedicar tiempo a familiarizarse con el lenguaje incorporado. La sintaxis y la ideología del idioma es muy diferente, por lo que hay que dedicar tiempo a aprender. El resto del principio sigue siendo el mismo.

1. Introducción.

2. Lo que necesita: configuración 1C: conversión de datos 2. * y procesamiento desde el paquete. Como ejemplo de tareas, tomamos las configuraciones 1C: Trade Management 11 y 1C: BP 3.*.

Por lo tanto, para desarrollar reglas para cargar datos en 1C, necesitará la configuración de 1C: Conversión de objetos 2, así como el procesamiento incluido en el paquete.

Por ejemplo, ya implementamos la base de conversión y la lanzamos.

Escribiremos el desarrollo de reglas de intercambio entre la configuración 1C: Gestión comercial 11 y 1C: Contabilidad empresarial 3 (reglas de intercambio UT / BUH).

3. Necesitaremos Procesamiento para descargar la estructura e intercambio de metadatos.

Lo primero que debe obtener para el desarrollo son archivos con una estructura de metadatos. Esto se hace mediante el procesamiento de descarga de la estructura de metadatos incluido en el paquete de conversión de objetos.

En realidad, en el directorio de configuración desempaquetado para configuraciones en formularios administrados estamos interesados ​​en procesar MD83Exp.epf. Si la descarga debe realizarse desde configuraciones en formularios regulares, se utiliza el procesamiento MD82Exp.epf. Esto es si, por ejemplo, necesita obtener una estructura de configuraciones tales como 1C: UT 10, 1C: Gestión planta manufacturera 1.3, 1C: Automatización integrada 1.1, 1C: Zup 2.5 y así sucesivamente.

Además, para cargar y descargar datos en 1C usando nuestras reglas, necesitará el procesamiento de "Intercambio universal de datos en formato XML" V8Exchan83.epf para configuraciones en formularios administrados como 1C: Trade Management 11. *, 1C BP 3, 1C : ERP 2. * y similares. Y en consecuencia V8Exchan83.epf - para configuraciones en formularios regulares.

4. Carga de la estructura de metadatos de configuración 1C: Trade Management 11.3 y 1C: Enterprise Accounting 3.0.*

Comencemos descargando la estructura de metadatos de la configuración 1C: Contabilidad empresarial 3.
Procesamiento abierto MD83Exp.epf

En la forma de procesamiento hay ajustes adicionales, donde podemos habilitar o deshabilitar la opción de descargar registros y movimientos en 1C. También se puede elegir dónde se realizará la descarga: en el servidor 1C o "en el cliente". Especifique el nombre del archivo donde se descargará la estructura de datos. De igual forma, descargamos la estructura de metadatos de configuración Trade Management 11.

Ahora necesita cargar la configuración en la base de datos de conversión. Se puede acceder a este elemento tanto desde la lista de configuraciones como desde la lista de conversiones. Vamos a arrancar desde el escritorio:

En el cuadro de diálogo, cargue la estructura BP:

Y de manera similar - la estructura del Departamento de Comercio.

Cuando se complete la descarga, aparecerá un cuadro de diálogo donde puede especificar un nombre conveniente para usted.

6. Crear reglas para convertir a 1C en ejemplo específico tareas.

A continuación, vaya a "Establecer reglas de objetos", donde creamos una nueva configuración.
En el cuadro de diálogo para crear una conversión, seleccione la configuración de "origen" y la configuración de "destino" (que ha cargado previamente) y haga clic en Aceptar.

Ya que en este artículo tenía planeado mostrar la creación “desde cero” y “sin basura”, les recuerdo que no creamos nada automáticamente. Sin prototipos.

No haremos nada en este cuadro de diálogo, simplemente haga clic en "Cerrar".

Vamos a crear reglas para descargar no un documento en uno, sino un tipo en otro, por ejemplo, el documento Ventas de bienes y servicios de UT 11 con los directorios necesarios para el documento Recepción de bienes y servicios en BP 3.

Entonces, creamos un nuevo PKO (la regla para convertir objetos en 1C)

Seleccione la fuente Realización de Bienes de Servicios y el receptor de Recepción de Bienes de Servicios y haga clic en Aceptar.
En este caso, aparecerá un cuadro de diálogo, donde nuevamente rechazamos la creación automática de las PKC (Reglas de conversión de propiedad). A continuación, seleccionamos solo los necesarios.

Pero a la propuesta de crear un PVD (reglas de carga de datos), respondemos “Sí”.

Se crean VDP, que se reflejarán en el procesamiento del intercambio XML universal para la selección:

También se crearán reglas de conversión de datos con reglas de conversión de propiedades vacías.

Además, está claro que por defecto se propone buscar el FSP por el identificador interno del objeto. Esto se indica con una lupa cerca del PKO. Nosotros haremos nuestra propia búsqueda, y la haremos por número de documento y fecha al inicio del día.

Eliminando la búsqueda de UIO:

Ahora comencemos a hacer coincidir las propiedades necesarias (requisitos) del objeto. Para hacer esto, haga clic en "Sincronización de propiedades" (etiqueta "1" en la pantalla). Eliminamos la creación recursiva de reglas ("2"). Eliminamos todos los detalles marcados ("3"). Y elegiremos por nosotros mismos lo que necesitamos.

Por ejemplo, elige lo que necesitas:

Llamo su atención sobre el hecho de que convertiremos el PKS de la contraparte en la organización y la organización en la contraparte, y también compararemos algunos detalles que no coinciden en nombre, por ejemplo, "Moneda" y "Documento". divisa".

Donde vemos que aún no hay reglas de conversión.

Comencemos por los detalles para recorrer y describir. Primero, configuramos la búsqueda del documento como escribí anteriormente, descargamos y buscamos el documento al comienzo de la fecha, y cambiaremos la numeración. Reemplazaremos los primeros tres caracteres con nuestro prefijo "UTB". Y como en BP y UT la numeración es de 11 caracteres cada uno, hacemos un número compuesto: nuestro prefijo y 8 caracteres de la fuente. Ejemplo de captura de pantalla a continuación.

Siempre descargamos documentos que no han sido realizados y sin movimiento. Suponemos que los documentos se mantendrán en el receptor después de que el usuario los verifique.

Para hacer esto, el PCS, habiendo establecido cómo no se mantiene, 0 o 1, se usa como un booleano.

Usando la moneda como ejemplo, creamos una regla para convertir un objeto para el PCS. Al mismo tiempo, consideramos que hay monedas en ambas bases, y deben estar sincronizadas por código. Por lo tanto, no crearemos todos los PCS en el CSP de monedas, sino que solo agregaremos el Código para la búsqueda. Aquellos. de la propuesta de crear un PCS para el objeto, nos negamos.

La Regla de Conversión creada fue sustituida en el PQS del documento por el SCS. Y la regla predeterminada en sí misma la ofrece un identificador único. Lo arreglamos, hacemos una búsqueda en el código y configuramos la propiedad para no crear un nuevo objeto.

Como resultado, obtenemos la opción:

Además, por analogía, creamos para el resto de los detalles de PKO y PKS. Además, configuramos la búsqueda de una organización por contraparte y viceversa por TIN. Así es como se ve con detalles mínimos (puede agregar si es necesario).

Para Acuerdos PKO de contrapartes, buscamos Contraparte PKS, nombre y propietario.

Veamos cómo especificar el valor deseado en el tipo de enumeración en el PCS. Por ejemplo, el atributo "Tipo de operación". Aquí puede utilizar varias condiciones y valores de sustitución. Por ejemplo, necesitamos que el "tipo de operación" siempre se descargue "Bienes", en este caso basta con escribir el valor deseado en la "frente" como una cadena.

A continuación se muestra cómo configurar sin dificultad y en la mayoría de los casos PKS para Multiplicidad de liquidación, Tasa de liquidación, Cuentas.

Para Nomenclatura PKO, dejamos la búsqueda por identificador único interno. Pero prestaré atención a cómo puedes redefinir tu grupo. Por ejemplo, acordamos que se descargará una nueva nomenclatura desde la configuración 1C: Trade Management 11, pero es necesario que la nomenclatura esté recogida en un grupo específico “NuestroGrupo”.

Para implementar esta tarea, creamos otro PKO. Llamémoslo "Padre de nomenclatura", que indicaremos en el PDN del padre en la regla de conversión.

Establecemos dos búsquedas: por nombre, donde el nombre de nuestro grupo está codificado, y la propiedad obligatoria del atributo "Este grupo" en verdadero.

Como hemos decidido que toda la nomenclatura cae en nuestro grupo, no hace falta descargar los grupos de UT 11 al descargar, para ello, en el PKO de Nomenclatura, en el manejador de eventos “Before Unloading”, pondremos un filtro que no es necesario descargar los grupos “Falla = Origen”. Este grupo;".

En la Implementación de Bienes y Servicios DRP (reglas de carga de datos), agregaremos un filtro para que los documentos marcados para su eliminación no se carguen. Para ello, en el PDP en los manejadores de eventos "BeforeUnloading" escribiremos el filtro "Rejection = Object.DeletionMark;".


Guarde las reglas desarrolladas en un archivo.


7. Resumiendo: carga y descarga de datos utilizando las reglas de intercambio de datos desarrolladas.

Abrimos en 1C: Trade Management 11 el procesamiento "Intercambio universal de datos en formato XML" V8Exchan83.epf.

La descarga ha pasado, ahora con el mismo procesamiento estamos cargando en 1C: Enterprise Accounting 3.


Descarga completa. Verifiquemos que esté cargado. Entonces, el documento está cargado, como queríamos: tenemos la Organización cargada en la contraparte y la contraparte en la organización. Todas las cuentas están descargadas e instaladas. Obtuvimos el número de documento con nuestro prefijo y al comienzo del día. Se han rellenado todos los datos que se han registrado.

Comprobamos la carga de la nomenclatura. Vemos que todo salió como lo planeamos.


Hemos creado y completado los detalles como pretendíamos. Hay muchas sutilezas en la conversión y algunas cosas simples pero necesarias que ayudan a escribir con precisión la conversión. Y esto le permite minimizar los errores, no estropear los datos existentes y deshacerse de la basura innecesaria. Este es uno de los más ejemplos simples. También puede convertir un objeto en muchos, o viceversa, muchos en uno.

Ahora hay conversión de datos 3, resuelve otros problemas. Por lo tanto, también se necesita la conversión 2. Buena suerte a todos en el aprendizaje y el dominio.

Por supuesto, si eres programador y este es tu trabajo principal, puedes intentar escribir la conversión tú mismo. Pero si no, entonces debe valorar su tiempo en su campo de actividad y pedir a los profesionales que completen esta tarea.

Configuración especializada "1C: conversión de datos 2.0"

El lanzamiento de la octava versión de la plataforma 1C:Enterprise se ha convertido en un paso significativo en el desarrollo de sistemas de automatización. Al diseñar la plataforma 1C:Enterprise 8, se tuvo en cuenta la vasta experiencia en el uso de soluciones basadas en la plataforma 1C:Enterprise 7.7: el lenguaje integrado de la plataforma y las configuraciones típicas se rediseñaron seriamente, la estructura de almacenamiento y acceso a datos se cambió, se crearon nuevas soluciones industriales que aprovechan las ventajas de la nueva plataforma. El uso de construcciones de lenguaje anteriores en la nueva plataforma se ha vuelto inapropiado.

Para facilitar la solución de este problema (transferencia de datos de la versión 7.7 a la versión 8), 1C ha lanzado una configuración especializada "Conversión de datos 2.0". Fue creado para ayudar a los especialistas a resolver varios problemas de transferencia de datos. 1C ha publicado reglas preparadas para transferir datos de configuraciones del mismo tipo, por ejemplo, de 1C: Contabilidad 7.7 a 1C: Contabilidad 8, pero usuarios de configuraciones estándar no estándar o modificadas al cambiar a la plataforma 1C: Enterprise 8 tendrá que crear reglas de transferencia de datos por su cuenta.

Con toda la variedad de métodos privados para resolver problemas de transferencia de datos, la gama de problemas a resolver permanece prácticamente sin cambios:

Sincronización información de contexto(crear nuevos, actualizar elementos existentes de directorios, eliminar, guardar o cambiar la jerarquía, ramificar datos, transferir el historial de cambios de valores de detalles periódicos);

Sincronización de documentos y operaciones (creación, modificación de documentos o transformación de un tipo de documento en otro, fusión o reproducción);

Creación de condiciones iniciales suficientes para los registros contables para el mantenimiento actividad económica(traslado de mercancías sobrantes, etc.).

Las estructuras de almacenamiento de datos en 1C:Enterprise de diferentes versiones y/o configuraciones son diferentes, por lo que la transferencia de datos no es solo copiar archivos o tablas, sino convertirlos. Para que la transformación sea inequívoca y correcta, es necesario crear y configurar reglas para la transferencia de datos. Es posible crear y configurar reglas para transferir datos entre diferentes bases de datos si se conoce la estructura de almacenamiento de datos en las bases de datos de origen y destino. La descripción de la estructura de metadatos de configuración debe ser unificada. La configuración de Data Conversion 2.0 se usa para crear y configurar reglas de transferencia de datos basadas en descripciones de estructura de metadatos de configuración de origen y destino.

El proceso de transferencia de datos entre bases de datos consta de los siguientes pasos:

  • 1. Creación de archivos de descripción de metadatos.
  • 2. Creación de Configuraciones en "Conversión de Datos".
  • 3. Creación de la propia conversión.
  • 4. Creación consistente de reglas de conversión de datos.
  • 5. Creación consistente de reglas de carga de datos.
  • 6. El procedimiento real para descargar y cargar datos de una configuración a otra.

Porque el uso de esta configuración especializada es uno de los más efectivos en este momento formas de resolver problemas de este tipo, y además, una fuente de información muy útil con fines educativos experiencia personal, luego para desarrollar un mecanismo de intercambio de datos entre el IS "Server: Rent Calculation" y "1C: Enterprise Accounting" para LLC "LLC", se eligió un método basado en el uso de la configuración "Data Conversion 2.0".

La conversión de datos 2.0 y 2.1 es una configuración tecnológica 1C implementada en las versiones de la plataforma desde la 8.1 hasta la 8.3.

La tarea principal de la herramienta es escribir reglas de intercambio entre las soluciones de aplicación 1C 8 y 7. La versión actual de conversión de datos hoy es 3.0.

La conversión de datos es una configuración muy útil, con ella puede resolver no solo el problema de transferir información de una base de datos a otra, sino también, por ejemplo, convertir información dentro de una base de datos.

La configuración es muy conveniente de usar cuando .

La conversión de datos será útil para cualquier programador: tener las habilidades para crear reglas de intercambio es una gran ventaja para las habilidades profesionales.

Para aprender a trabajar con la configuración, la mejor solución es tareas practicas. Intente idear tareas para usted, por ejemplo: transferir cualquier información de una base de datos a otra, convertir un documento de ventas en un documento de recibo, "conducir" los saldos contables actuales en un documento de "entrada de saldo" y otras tareas.

Será muy útil comprender las reglas "típicas" del intercambio 1C 8.3, allí a menudo puede encontrar ejemplos interesantes de la implementación de tareas.

Para comprender los conceptos básicos, necesitará materiales, considérelos a continuación.

Instrucciones en video para convertir

Para conocer los aspectos básicos de la configuración del intercambio de datos en 1C usando la configuración de "Conversión de datos 1C", vea el video para ver un ejemplo:

Materiales, libros de texto para estudiar 1C Data Conversion 2.0

No hay demasiados materiales y documentación en la red, he intentado recopilar los materiales más importantes e interesantes:

0. En primer lugar, recomiendo el curso de video gratuito de Ilya Leontiev, está disponible en enlace.

1. En primer lugar, recomendaría utilizar la ayuda integrada en la configuración. Está muy bien escrito y bien implementado técnicamente:

2. La segunda fuente de información más importante es el sitio http://www.mykod.info/ (el sitio estaba cerrado), especializado solo en conversión de datos. Allí puede descargar una gran cantidad de materiales de conversión.

3. Por separado, me gustaría destacar el libro de texto del manual de capacitación - (autora - Olga Kuznetsova).


2023
newmagazineroom.ru - Estados contables. UNVD. Salario y personal. Operaciones de divisas. Pago de impuestos. IVA. primas de seguro