Menú
Está libre
registro
hogar  /  Educación/ Falta el elemento predefinido en los datos 1c 8.3. Configuración de elementos predefinidos

Falta el elemento predefinido en los datos 1c 8.3. Configuración de elementos predefinidos

Buen día.

Hoy hablaremos de una innovación en la plataforma 8.3 en cuanto a elementos predefinidos.

Introducción

Permítanme recordarles que antes, en la práctica, muy a menudo quería mirar un elemento de un libro de referencia para averiguar su nombre predefinido. Por ejemplo, ha creado dos contratistas predefinidos y los ha denominado IPSidorov y OOOMeteor. Y les cosieron algún tipo de lógica.

Cuando todo se depuró y funcionó, resultó que la tarea se estableció al revés y la lógica para el propietario único es necesaria para la LLC, y la lógica de la LLC es para el propietario único. “No hay problema”, decimos, y en modo empresarial cambiamos el nombre de los elementos. Es mucho más difícil ingresar al código. Pasa un año y se le asigna una nueva tarea: configurar algo más de lógica para IP Sidorov. Entras en el configurador, escribes la lógica, empiezas a comprobar y nada funciona, porque en el configurador IPSidorov, y en la empresa - OOO Meteor. El cerebro está roto y quiero destruir este rastrillo. La más simple e intuitiva es generar el nombre de un elemento predefinido en forma de lista. Aquí hay una emboscada, puede obtener el nombre del predefinido en 8.2 solo por el método. Y el método tiene sus propios inconvenientes, no se puede obtener en la solicitud. Aquellos. el primer inconveniente es obtener el nombre del predefinido por referencia al directorio.

El segundo inconveniente es cuando ya tenemos un elemento de directorio y necesitamos hacerlo predefinido. Creamos un elemento predefinido y obtenemos dos elementos en el directorio. Uno predefinido, otro en funcionamiento, al que se hace referencia en todos nuestros documentos. Reemplazar enlaces ciertamente ayuda, pero si la base de datos es grande, entonces es difícil.

Ahora en el caso

La primera es que el libro de referencia ahora tiene la propiedad "Actualizar datos predefinidos".

¿Qué nos aporta este campo? Si está configurado como "No actualizar automáticamente", al agregar un elemento predefinido, no lo veremos en la referencia de inmediato. Aquellos. los metadatos no tienen nada que ver con los datos. Y si no se crea en el directorio, al referirse a él por su nombre a través del administrador de directorios se producirá un error de sintaxis.

Muy interesante, pero ¿por qué? ¿Cómo creamos un artículo en la referencia? Y como desee, puede crearlo o puede vincularlo con uno existente. Ahora la búsqueda tiene el atributo "PredefinedDataName". Creamos un artículo de catálogo programáticamente como de costumbre a través de "References.Contractors.CreateElement ()" y completamos su atributo "PredefinedDataName" igual al nombre del artículo predefinido. O, si el elemento ya existe, obtenemos su objeto y nuevamente completamos el "PredefinedDataName" en él. Todo.

Y por ultimo un poco de almíbar

Estos nuevos accesorios no solo son de lectura / escritura, sino que también están disponibles en solicitudes. Así, puedes imponerle condiciones en consultas, determinar si está predefinido o no.

Gracias por la atención.

La idea misma de trabajar programáticamente con elementos predefinidos, en mi opinión, es muy correcta. Solo hay algunos matices que deben tenerse en cuenta al trabajar.

Primero, debe comprender claramente por sí mismo que hay elementos predefinidos en la configuración y hay elementos predefinidos en la base de datos (IB). Los elementos de seguridad de la información técnicamente predefinidos son los elementos más comunes de los diccionarios, en los que el atributo "PredefinedDataName" especifica a qué elemento de configuración predefinido corresponden. Ya no son diferentes de los elementos ordinarios. Por consiguiente, cualquier elemento IB ordinario se puede hacer predefinido, cualquier ordinario predefinido. Para hacer esto, simplemente ingrese el valor deseado en los accesorios. "PredefinedDataName".

Periódicamente, esta propiedad resulta no ser el valor que proporcionó el desarrollador. Como resultado, se producen errores en el trabajo de 1C. Desde la crítica, en la que el trabajo es en principio imposible, hasta la no crítica, en la que se viola la lógica de los algoritmos.

Se puede distinguir condicionalmente tres tipos de errores:
1. "Falta un elemento predefinido en los datos";

3. Indicación inválida elemento predefinido;

1. "Falta un elemento predefinido en los datos" - o La ausencia de un elemento predefinido descrito en la configuración en los datos IB.

Este es el tipo de error más fácil de depurar y corregir. Su simplicidad es que la plataforma informa bastante correctamente sobre esta situación "Falta un elemento predefinido en los datos" y está bastante claro cómo solucionarlo.

Al acceder al elemento faltante en el código "Directories.Types of ContactInformation.EmailContactPerson" se muestra el mensaje

Al acceder a un elemento en la solicitud "VALOR (Directory.Types of ContactInformation.EmailContactPerson)", se muestra el siguiente mensaje:

Este error ocurre si un elemento se describe en la configuración, pero el elemento no está asociado con él en la base de datos.

Para empezar, aclaremos que esta situación no siempre es incorrecta. Es muy posible utilizar datos predefinidos en algún tipo de lógica de programa, que para la mayoría de los usuarios puede que no se utilicen. En este caso, para no abarrotar el libro de referencia para todos los usuarios de la configuración, es lógico definir elementos predefinidos en la configuración, pero no crearlos en todos los sistemas de seguridad de la información, sino solo para aquellos sistemas de seguridad de la información en que se utiliza la lógica de configuración requerida. En este caso, el programador puede especificar la propiedad "No actualizar datos predefinidos" para el libro de referencia y crear elementos mediante programación al acceder a la funcionalidad del módulo. O para permitir al usuario vincular de forma independiente los elementos predefinidos del módulo a los elementos habituales que tiene.

Tampoco se usa creación automática elementos predefinidos cuando se opera en modo RIB. Dado que los nuevos elementos deben transferirse desde la base central y no crearse en nodos con diferentes UID.

Aquellos. a veces es un error referirse a un artículo que no coincide, en lugar de la presencia misma de dicho artículo.

Debe analizar por qué no se creó el elemento. Quizás debería crearse cuando se ejecuta algún modo del programa. Por ejemplo, después de realizar un intercambio en el RIB. O tal vez simplemente se eliminó accidentalmente.

Si la lógica prevé completar elementos predefinidos no automáticamente, sino en un modo separado, entonces antes de usar la llamada por nombre " Directorios.Tipos de contactoInformación.EmailContactPerson"para evitar una excepción, es aconsejable verificar que el elemento ya esté en la base de datos. Si el elemento está ausente, informe al usuario y explique qué modo debe ejecutar para completar el elemento. Para tal verificación, puede ejecutar una consulta sobre los datos.

Solicitud = Nueva solicitud; Query.Text = "SELECT | Tipos de información de contacto. Enlace | DE | Directorio. Tipos de información de contacto AS Tipos de información de contacto | DÓNDE | Tipos de información de contacto. PredefinedData Name =" " EmailContactoPersona"" "; ElementNoNo.VD = Request.Run (). Empty ();

Si esto sigue siendo un error en los datos de la base de datos, entonces es necesario enlazar a un elemento predefinido del elemento IB. Aquellos. Es necesario explicar al sistema qué elemento de seguridad de la información debe abordarse. código de programa sobre nombre de pila... Técnicamente, la vinculación es solo especificar el nombre de un elemento predefinido en una propiedad "PredefinedDataName"Elemento IB. Para instalarlo, simplemente ejecute el código:

2. "El elemento predefinido no es único" - h elementos predefinidos advoi:

Esta situación consiste en el hecho de que varios elementos IB están ligados a un elemento predefinido. En este caso, al referirse a un nombre predefinido, el elemento se seleccionará al azar. Esta situación siempre está mal. Su dificultad radica en el hecho de que la plataforma no se comunica al respecto de ninguna manera. Es solo que los algoritmos comienzan a funcionar incorrectamente.

El marco informará el error "El elemento predefinido no es único" solo cuando intente editar un elemento duplicado.

Hasta que nadie necesite editar el elemento, nadie sabrá sobre el error.

Estos duplicados se pueden crear, por ejemplo, si el RIB se utiliza para el libro de referencia y el modo "Actualizar automáticamente" se especifica en las propiedades para datos predefinidos. En este caso, cuando se realiza el intercambio, se creará una instancia de los datos predefinidos cuando se actualice la configuración. Una segunda instancia de elementos predefinidos con el mismo nombre se transferirá desde la base de datos central durante el intercambio.

Además, estos duplicados surgirán al utilizar el procesamiento de intercambio entre configuraciones en el caso de que diferentes elementos de seguridad de la información correspondan a elementos predefinidos en diferentes bases de datos. En este caso, ya existe una copia de los datos predefinidos en la base de datos, la segunda vendrá al cargar datos con un UID diferente. Si está realizando transferencias de datos, debe decidir qué elementos de la base de datos se consideran primarios y utilizarlos en la base de datos subordinada. En la base subordinada, es necesario reemplazar el uso de elementos antiguos con elementos de la base principal.

Estos errores en la base de datos se pueden detectar mediante una consulta del tipo:

SELECCIONE Tipos de información de contacto .Nombre de datos predefinidos, CANTIDAD (DIFERENTES CLASES DE INFORMACIÓN DE CONTACTO. Enlace) COMO Número predefinido del directorio. Tipos de información de contacto COMO Tipos de información de contacto.

Esta consulta devolverá una lista de elementos predefinidos con más de un elemento IB asociado.

Si existen tales elementos, es necesario eliminar la conexión con el predefinido para uno de ellos. Aquellos. es necesario determinar sin ambigüedades para el sistema a qué elemento IS debe hacer referencia el código del programa al utilizar este nombre. Para hacer esto, solo necesita ejecutar el código.

3. Indicación no válida de un elemento predefinido.

El error radica en el hecho de que el elemento predefinido corresponde al elemento incorrecto, que es proporcionado por la lógica del programa. Estos errores son los más difíciles de diagnosticar. A diferencia de los dos primeros tipos, no puede verificar automáticamente la configuración en busca de estos errores. Solo se pueden identificar analizando la lógica del trabajo. En caso de duda, puede comprobar si se está utilizando el artículo correcto.

Para hacer esto, simplemente ejecute uno de los comandos.

// Definición de un elemento IB que está vinculado al Informe predefinido requerido (Directories.Types of ContactInformation.EmailContactPerson) // Determine el elemento predefinido al que está vinculado el Informe seleccionado (ReferenceOnItem.Name of PredefinedData)

Si se encuentran tales errores, es necesario eliminar el enlace incorrecto con el elemento anterior y agregar un enlace con el nuevo elemento. El código de operación es similar al código de corrección de los dos primeros tipos de errores.

Bueno, brevemente sobre los errores cuando trabajo programático o en modo configurador:

"El elemento predefinido no pertenece a<Имя справочника>" - se produce un error al intentar escribir un elemento predefinido con un nombre que no coincide con el nombre en el co-configurador.

"Los objetos no predefinidos no pueden tener entradas de tipo subconto predefinidas" - se produce un error cuando intenta convertir un elemento predefinido del plan de cuentas en indefinido. Para eliminar errores, es necesario desmarcar la marca "Predefinido" para cada línea del subcontrato del elemento.

"Los objetos no predefinidos no pueden tener registros predefinidos de tipos principales de cálculos"- se produce un error cuando intenta hacer que un elemento predefinido de un gráfico de tipos de cálculo no esté definido. Para eliminar errores, es necesario borrar el indicador "Predefinido" para cada línea del tipo principal de cálculo del elemento.

"Los elementos predefinidos no son únicos"- se muestra un error en el configurador al actualizar base de información para una versión de configuración sin modo de compatibilidad 8.3.4. Es necesario comprobar los duplicados y eliminarlos antes de actualizar.

"El nombre del elemento predefinido no es único" - el error ocurre si hay varios elementos predefinidos con el mismo nombre en la configuración al actualizar a la plataforma8.3.6.2332 y posteriores. Es necesario eliminar duplicados en la configuración.

Para trabajar con datos predefinidos, recomiendo procesar. Ella sabe cómo realizar cualquier acción con datos predefinidos, y también puede verificar la configuración en su conjunto para detectar la presencia de errores de los dos primeros tipos (elementos duplicados y faltantes) en todos los objetos de seguridad de la información (libros de referencia, planes de cuentas, PVC , PVR).

Manejo sencillo para trabajar con valores predefinidos.

Le permite hacer coincidir elementos IB con elementos predefinidos en la configuración.

Le permite verificar la configuración general para detectar la presencia de elementos duplicados (varios elementos IB vinculados a un elemento predefinido - un error) y elementos faltantes (elementos predefinidos que no están asociados con elementos IB - un error). Tal Los elementos pueden surgir durante intercambios o fallas y dar lugar a errores en la configuración.

Puede simplemente ver los valores actuales, puede realizar los cambios necesarios.

Procedimiento de operación:

1. Empezamos a procesar.

2. Seleccionamos el tipo (libro de referencia, plan de cuentas, PVC, PVR).

3. Seleccionamos el directorio del tipo seleccionado en sí.

4. Todos los elementos predefinidos disponibles en el IB y descritos en la configuración aparecen en la sección tabular de procesamiento.

Si hay varios elementos en la base de datos vinculados a una propiedad predefinida, o algunos de los elementos descritos en la configuración no tienen asignados elementos IB, el sistema le informará al respecto cuando seleccione un libro de referencia. Los elementos duplicados y faltantes aparecen en la parte superior de la lista y están resaltados en naranja.

5. Establecemos nuevos valores para los elementos predefinidos requeridos.

En este caso, las líneas están marcadas en rojo, por lo que un elemento predefinido desaparece de la configuración. Líneas azules para las que cambia un elemento predefinido, líneas verdes para las que aparece un elemento predefinido.
Con una gran cantidad de duplicados, es conveniente seleccionar con el mouse todas las líneas innecesarias e indicar para todas las seleccionadas el enlace de deshacer con el botón "Unmatch" (desde la versión 1.3.1)

6. Realizamos la reasignación pulsando el botón "Reasignar elementos".

Comprobando duplicados(error "El elemento predefinido no es único"):

Cuando presiona el botón "Verificar duplicados", el procesamiento verificará todos los directorios, planes de cuentas, PVC y PVR y mostrará una lista de tablas con elementos duplicados indicando el número de elementos duplicados.

Después de eso, es necesario verificar por separado los objetos para los que se encontraron errores.

Comprobando perdido(error "Falta un elemento predefinido en los datos"):

Cuando hace clic en el botón "Verificar faltante", el procesamiento verificará todos los libros de referencia, planes de cuentas, PVC y PVR y mostrará una lista de elementos predefinidos que no están asociados con los datos de IB.

Requiere la plataforma 8.3.3 o superior para su uso.

Versátil, se puede utilizar con cualquier configuración.

Detectar idioma Afrikáans Albanés Árabe Armenio Azerbaiyán Vasco Bengalí Bielorruso Búlgaro Catalán Chino (Simp) Chino (Trad) Croata Checo Danés Holandés Inglés Esperanto Estonio Filipino Finlandés Francés Gallego Georgiano Alemán Griego Gujarati Haitiano Criollo Hebreo Hindi Húngaro Islandés Indonesio Irlandés Italiano Japonés Canarés Coreano Lao Latino Letón Lituano Macedonio Malayo Maltés Noruego Persa Polaco Portugués Rumano Ruso Serbio Eslovaco Esloveno Español Swahili Sueco Tamil Telugu Tailandés Turco Ucraniano Urdu Vietnamita Galés Yiddish Afrikaans Albanés Árabe Armenio Azerbaiyán Vasco Bengalí Bielorruso Búlgaro Catalán Chino (Simp) Chino (Trad) Croata Checo Danés Holandés Inglés Esperanto Estonio Filipino Finlandés Francés Gallego Georgiano Alemán Griego Gujarati Haitiano Criollo Hebreo Hindi Húngaro Islandés Indonesio Irlandés Italiano Japonés Kannada Coreano Lao Latino Letón Lituano Macedonio Malayo Maltés Noruego Persa Polaco Portugués Rumano Ruso Serbio Eslovaco Esloveno Español Swahili Sueco Tamil Telugu Tailandés Turco Ucraniano Urdu Vietnamita Galés Yiddish