Contactos

Obtenga los datos de la estructura 1C. Valores de árboles de colección universal

La estructura y la correspondencia son un tipo de tabla que tiene dos columnas: una clave y un valor. La columna "clave" almacena un elemento indexado para el que se realiza la búsqueda. El elemento de búsqueda en sí está en el campo "Valor". ¿Qué mecanismo es mejor usar desde el punto de vista del rendimiento de la búsqueda? Realizaremos una serie de experimentos.

Cree un libro de referencia de bienes y llénelo con 20,000 artículos. A continuación, utilizando un procedimiento simple, escribimos los datos de todos estos elementos en la estructura y el cumplimiento. En el primer experimento, escribiremos un enlace al enlace para la conformidad y el nombre de las estructuras. En la segunda medida, como clave, usaremos a los fumadores para ambas clases. En el tercero para la estructura clave, fue elegido por nemósito, de conformidad, un campo numérico.

A continuación se muestra la lista de procedimientos para buscar el valor de la clave para la conformidad y la estructura.

El procedimiento para la recepción de la situación (para refuerzo, clave) si la reelección, luego devuelve la búsqueda [clave]; De lo contrario, el valor es \u003d indefinido; Estructura de escritorio. Propiedad (clave, valoración); Reembolso del valor; Extrudresses

Para la primera experiencia, se obtuvieron los siguientes resultados:

Como vemos, con un margen bastante grande gana el cumplimiento. El tiempo de búsqueda para la estructura se muestra aproximadamente 1/4 veces más lento.

Después del segundo experimento, la situación cambió radicalmente:

El tiempo de búsqueda para la conformidad con el parámetro del tipo "cadena" en la tecla pierde la estructura casi dos veces.

Durante el tercer experimento, el liderazgo nuevamente capturó el cumplimiento.

Más de seis veces la correspondencia ha enfriado a esta tarea más rápido.

De esta manera, es posible sacar conclusiones que para buscar valores para una vista de cadena, la estructura es la más adecuada, ya que este tipo de datos se especializa solo para claves de cuerdas. Sin embargo, con la posibilidad de usar otros tipos para la clave, como el "número" o "enlace", los mejores resultados se muestran coincidentes. Responda con confianza por qué no es posible que sea posible, ya que el sistema para experimentos más profundos permanece cerrado.

Tal vez, muchos de ustedes tienen la tarea de verificar la presencia de un elemento específico en el formulario, o está en el área de diseño el parámetro deseado. Desafortunadamente, métodos estándarPermitiendo esta tarea, la plataforma no proporciona.

Para los valores de tipo "estructura", el método "Propiedad ()" está disponible:

Estudio de prueba \u003d nueva estructura; Estación de prueba. Insertar ("prueba-divulgable", "valor de prueba"); Hay reconocimientoNiestlich \u003d Station Station ("Testkey"); // como resultado, la variable "Hay un muestreo" contendrá el valor de la verdad

Si intentamos aprender a aprender sobre la existencia de cualquier elemento del formulario o parámetro en el área de diseño (como ejemplo), causará el siguiente error:

Por información detallada El error muestra que la colección de elementos. formulario gestionado (Elementos "variables") no tiene el método "Propiedad ()". Lo mismo se aplica a las colecciones absolutas que admiten la plataforma.

Para algunas colecciones, como el "Columnochnogope", "Buscar ()" Método "Find ()" está disponible para su uso, como el primer parámetro al que el nombre predicado del elemento de búsqueda. Los métodos devuelven el elemento encontrado o "indefinido", si no se encuentra ningún valor. Por lo tanto, utilizando el método, puede negar la presencia de una propiedad en particular para aquellas colecciones que admiten trabajar con él.

Pero qué hacer si la colección no admite el trabajo con métodos similares descritos anteriormente. En tales casos, se necesita una forma completamente diferente de trabajar con estos tipos de datos.

Hoy, el artículo hablará sobre un enfoque universal que le permita determinar la presencia de la propiedad de cualquier tipo de datos 1c: Enterprise 8.x.

Cómo implementarlo

Propongo escribir una función universal para determinar la disponibilidad de la propiedad en cualquier tipo de valor y luego proceda a usarlo en un pequeño ejemplo.

El trabajo del enfoque propuesto se basa en el uso del método "Rellene ()" y variable con el tipo "estructura". La siguiente lista proporciona el código de software para esta función:

// Variables: // // 2. Impassia - tipo variable "Cadena" que contiene una propiedad deseada // Cambios de funciónConductancia (variable, virusing) Si la estructura de [virusing] \u003d nula, entonces devuelve las mentiras; De lo contrario el retorno de la verdad; Terminó; Funcionamiento final

En principio, todo está claro a partir de comentarios sobre la listado. El único momento, a qué llamar la atención es que si se encuentra la propiedad, y su valor es nulo, entonces la función seguirá diciendo que no hay tal propiedad. En tales casos, necesita crear un cheque adicional.

Ejemplo práctico

Como ejemplo en configuración de prueba Agregue un documento de documento con varios detalles. Los elementos del formulario correspondientes se agregan a su forma.

En el campo "Nombre del elemento", se ingresa el nombre del elemento de formulario. En el botón Buscar, la función creada por nosotros ha creado anteriormente. Después de ejecutar el comando, el programa notifica al usuario sobre el éxito de la búsqueda. La siguiente lista proporciona el código del controlador de comandos y el procedimiento de búsqueda de propiedades llamadas.

& Comblete Find Procedimiento de comando (EQUIPO) Si la tolerancia a la variable (elementos, un error) luego se advierte ("elemento" "+ elemento +" "" ¡Encontrado! "); De lo contrario, una advertencia ("elemento" "" + elemento + "" "" ¡Extraviado!"); Terminó; país final // Función universal para verificar la presencia de propiedades en el valor de cualquier tipo de datos // Variables: // 1. Variable: variable de cualquier tipo para el que es necesario verificar la disponibilidad de la propiedad // 2. IMPAICIA - TIPO VARIABLE "STRING" que contiene la propiedad deseada // & Cambios de la función COMBLETE CONDUCCIÓN (VARIABLE, VIRIFICA) // Inicializar la estructura para la prueba de clave (el valor de la variable "Imaging") y el valor de NULL Estructura "nueva estructura; Estructuración. Inserto (imágenes, null); // Rellene la estructura creada desde el valor transmitido de la variable Llenando (estructura pervertido, variable); // Si el valor de la estructura de la estructura permanece nulo, la propiedad deseada no se encontró, y viceversa. Si las estructuras de [Impalsia] \u003d NULL, entonces devuelven las mentiras; De lo contrario el retorno de la verdad; Terminó; Funcionamiento final

Configuración de prueba que puede descargar el enlace.

Resumir

El enfoque descrito en el artículo le permite verificar la presencia de una propiedad en colecciones de cualquier tipo. Elementos de formulario, colección de metadatos, parámetros de diseño y muchos otros. El efecto negativo en la productividad no tiene. Funciona en cualquier versión de la plataforma.

PD Por Alcom Declare, doy un código de programa usando el GUID "a.

// Función universal Para verificar la presencia de propiedades en el valor de cualquier tipo de datos // Variables: // 1. Una variable: una variable de cualquier tipo para el que es necesario verificar la presencia de la propiedad // 2. Implass: una variable de "cadena" de tipo que contiene la propiedad // / cambio deseado Cambios de la función de cambio (variable, virusing) // Inicializar la estructura para una prueba de clave (el valor de la variable "Imaging") y el valor de un GUID arbitrario "Una prueba de GUID \u003d una nueva sípa única; estructurasProwdance \u003d nueva estructura; Supprusión de estructuración. Rellene la estructura creada del valor transmitido de la variable de fileteado (estructuración, variable); // si el valor de la estructura de la estructura es nulo A la izquierda, entonces la propiedad deseada no se encuentra, y por el contrario. Si la estructura de [virus) \u003d cheque de GUID, devuelve una mentira; De lo contrario, el regreso de la verdad; terminó; finalfunction

Que es este artículo

Este artículo continúa el ciclo de los artículos "Primeros pasos en el desarrollo para 1C". Aborda los principios de trabajar con colecciones universales. Después de leer el artículo, aprenderás:

  • ¿Cuáles son las colecciones universales cuando y en qué casos deben usarse?
  • ¿Qué es común a todas las colecciones universales? ¿Qué técnicas se pueden usar para trabajar con todos ellos?
  • ¿Qué es una matriz, cómo y cuándo usarlo? ¿Qué métodos tiene?
  • ¿Por qué usar la estructura? ¿Cuál es su diferencia con el macizo?
  • ¿En qué casos usan la lista de valores? ¿Cómo mostrarlo en el formulario?
  • Cumplimiento: ¿qué es y cuándo usarlo? ¿Cuáles son las ventajas con respecto a la estructura?
  • ¿Cuál es la tabla de valores? ¿Cómo describir su estructura? ¿Cómo agregar / eliminar líneas? ¿Cómo llevarlo al formulario?
  • Árbol de valores - ¿Para qué se usa? ¿Cómo llenar y emitir? ¿Cómo trabajar con él?

Aplicabilidad

El artículo discute la plataforma 1C: Enterprise 8.3 de la edición urgente.

Como en 1C trabajando con colecciones universales.

El conjunto de valores es un cierto contenedor en el que generalmente se pueden contener cualquier número de elementos. En este caso, cualquier restricción dura en el tipo de datos a menudo no se superpone.

En la colección universal puede agregar valores. Todos los valores en la colección se pueden evitar. Estas colecciones se utilizan principalmente para cualquier procesamiento en algoritmos. Esos. Esta es algunas estructuras dinámicas que existen durante la operación del algoritmo.

Es importante entender que las colecciones no se almacenan en la base de datos (sobre el tipo de almacenamiento de datos de valores que se pueden guardar casi cualquier tipo de datos).

Existe diferentes tipos Colecciones universales: matriz, estructura, cumplimiento, matriz fijo, tabla de valores, Piezas de mesa etc. Pero todas las colecciones tienen un comportamiento similar.

La colección se puede crear como resultado de una función de cualquier función (la función devuelve la recopilación universal como el valor).

Puede obtener una nueva colección manualmente contactando al constructor y creando una instancia de la clase.

Por ejemplo: Nuestra masiva \u003d nueva matriz;

Los diseñadores para muchas colecciones universales son parametrizadas.

Entonces, en el diseñador para puede especificar el número de elementos en las mediciones respectivas. Esos. Puede declararse inmediatamente multidimensional. .

La descripción del diseñador correspondiente está en el asistente de sintaxis.

Por lo tanto, utilizando los parámetros del constructor, puede establecer inmediatamente el comportamiento deseado de este objeto.

Pero los parámetros son opcionales, el desarrollador no puede especificarlos y continuar determinando el comportamiento de la matriz ya que parece necesario.

Casi cualquier colección universal se puede crear utilizando un constructor (la excepción son partes tabulares que actúan como objetos de configuración).

Para colecciones universales hay tales conceptos generalesComo índice y número. Cada elemento de la colección tiene un índice. En este caso, el índice comienza con cero.

Para referirse al elemento. NashimassivPuede usar la apelación al índice, ya que este índice se indica en corchetes.

Por ejemplo, Nashimassiv. Nota, en este caso, el sistema devuelve un elemento de matriz con un índice 3, y para que este sea el cuarto elemento de la matriz.

Para algunas colecciones también hay el concepto del número de línea. El número de fila comienza con una unidad. Por ejemplo, para la parte de la tabla hay una propiedad como número de línea. Es importante tener en cuenta que si conocemos el número de línea y desea ponerse en contacto con el índice, entonces, como un índice, debe usar un valor de línea más pequeño por unidad.

El concepto del número de línea está lejos de todas las colecciones, pero principalmente en aquellas que se pueden mostrar en la interfaz de usuario.

Para todas las colecciones, evitando los elementos de la colección se utiliza. El bypass es posible de dos maneras: ciclo para y ciclo para cada uno de.

Para la mayoría de las colecciones universales, los métodos son aplicables: Cantidad, índice, agregue, inserte, elimine y encuentre.

La cantidad es una función que devuelve la cantidad de elementos de la colección. Se puede utilizar antes del ciclo. ParaSegún lo presentado en la figura.

El método del índice no existe en todas las colecciones, sino solo aquellas en los elementos de los cuales se pueden referirse. Como ejemplo, puedes traer Tablas de satimentos.

Mesas- Esta es una cierta colección de filas, en las líneas puede contener diferentes columnas con diferentes tipos valores.

Cada línea es una entidad independiente. Puede obtener un enlace a él, a través de esta línea, puede acceder a los valores de los altavoces en esta fila.

El método de índice le permite determinar qué índice corresponde a esta cadena (es decir, la posición actual de la línea en la tabla). Los valores del índice comienzan con cero.

Los métodos para agregar nuevos valores a esta colección existen prácticamente de cualquier colección universal. La figura muestra cómo llenar la matriz con valores de 0 a 10 de dos maneras.

Para agregar un elemento a una matriz, podemos usar el método. Agregar, Especifique el valor agregado entre paréntesis. El valor se agregará al final de la lista, es decir,. La matriz aumentará constantemente debido a la última posición.

Otro método que le permite agregar valores a la colección - MÉTODO Insertar. Se diferencia del método. Agregarlo que puede especificar en qué lugar necesita para insertar el elemento agregado.

Sintaxis: Insertar (,)

El primer parámetro indica el índice en el que se insertará el nuevo valor. Esos. Por ejemplo, podemos especificar que cada valor debe insertarse en el principio de la lista (el segundo método en la figura anterior).

Para eliminar elementos de la colección, se utiliza el método. Borrar. En el método de eliminación, está indicado por el índice, qué elemento eliminaremos.

Sintaxis: Eliminar ()
Ejemplo de uso: Nashmassiv. Eliminar (5);

Cabe señalar que para aquellas colecciones donde las líneas representan una entidad independiente (por ejemplo, para Mesas), También podemos usar el método de índice para luego eliminar esta cadena.

Casi todas las colecciones tienen un valor del valor del valor. Encontrar. El método se transmite al valor que queremos encontrar. En algunas colecciones puedes poner alguna restricción.

Por ejemplo, en ZAVIEWYpuede especificar esas líneas, esas columnas en las que desea buscar.

Si se encuentra el valor, este método devuelve un índice o una cadena específica. Si no se encuentra el valor, se devuelve el valor del tipo. Indefinido. Aplicado a las devoluciones de la matriz. Índiceo valor Indefinido.

Ejemplo de uso: Tierra única \u003d Nashimassiv.night (8);

Las colecciones universales se pueden limpiar muy rápidamente, es decir,. Eliminar absolutamente todos los artículos. Este método utiliza Claro ()¿Qué elimina los elementos de la matriz, las cuerdas? Mesasu otros datos de colecciones.

Métodos adicionales para la matriz

Método Vurban Devuelve el número de elementos menos uno. Esos. Si usamos el ciclo Para, en lugar del método, podemos usar inmediatamente el método. La frontera().

En particular, la variable del número de masivas podría determinarse lo contrario:

Cantidad masiva \u003d nashimassiv.v.vgrai ();
Luego, al describir el ciclo en sí, no se debe tomar de esta variable.

Método Instalación le permite asignar un valor a una matriz en el índice.

Sintaxis: Establecer (,)

Ejemplo: Nashmassiv.shorestall (2.8);

Opción alternativa: Nashmassiv \u003d 8;

Puedes usar el método para la matriz. RecibirPara leer el valor del índice sin referirse al uso de corchetes.

Sintaxis: Recibir()

Ejemplo: Single-Inxisted \u003d Nashimassiv. Vierta (2);

Opción alternativa: Single-inxisted \u003d deshabilitado;

Estructura de colección universal

La estructura, así como una matriz, puede tener un número ilimitado de elementos, pero el contenido del elemento es diferente de la matriz.

La estructura es una colección, cada valor de donde consiste en un par. El primer elemento del par se llama. Clave. El segundo elemento de la pareja - Valor.

Clave- Este es un tipo de datos estrictamente de cadena que describe el valor. Por ejemplo, Clave"Código" puede corresponder al valor 113; ClaveValor "Nombre" "Vasya". El valor de la restricción de tipo de datos no se superpone.

La estructura es muy conveniente de usar si queremos crear una cierta lista de parámetros. Si esto Estructurallamada Fotograma, luego recurre a sus dos valores, seremos los siguientes: Fuera deficiente Código y pendiente.

Dicha apelación es mucho más conveniente que si todos los parámetros se determinaran en la matriz y se convirtieron en el índice.

La estructura hace que el código del programa sea legible (comprensible). La estructura se usa con bastante frecuencia, mucho más a menudo que una matriz.

Se utiliza para describir algunos parámetros que a menudo existen lo suficiente. un gran número de En todos los algoritmos.

Además, la estructura se aplica si el procedimiento y la función contienen una gran cantidad de parámetros transmitidos.

Luego es mucho más conveniente registrar todos los parámetros en la estructura y lo es y transmitirlo. Esos. Los parámetros de "embalaje" de los procedimientos y funciones se producen.

Por separado, se debe tener en cuenta que como Claveen la estructura puede que no haya absolutamente ninguna cadena. Realizó ciertas limitaciones.

Clavedebe actuar como un identificador. Esto significa que en Claveno debe haber huecos y no puede comenzar con los números.

Permisible Clave Con letra o subrayado. De este modo, Clavedebe cumplir con los requisitos para crear identificadores.

Nota, más bordado difiere de la matriz. En la estructura hay un método. InsertarEn la matriz hay dos métodos para la inserción: Insertar(en una posición determinada) y Agregar(al final de la lista). En la matriz, todos los elementos se ordenan.

La estructura es un tipo de conjunto desordenado. Es por eso que para la estructura solo hay el método de inserción.

El valor se inserta no en una posición específica, sino al conjunto especificado. Para la estructura, una apelación de índice es inaceptable para otras colecciones universales.

Los elementos estructurales también se mencionan por la clave nombrada. Sin embargo, el ciclo de cada uno de los trabajos y para la estructura, pero no debe confiar en el orden de los elementos estructurales.

La estructura se crea de la misma manera que otras colecciones universales utilizando el nuevo diseñador, especificando la estructura del tipo de datos.

Como una matriz, el constructor de la estructura puede tener parámetros. Esos. Es posible describir la estructura de la estructura con el constructor.

A diferencia de una matriz donde simplemente puede especificar el número de elementos para todas las dimensiones, en la estructura es posible establecer el contenido en sí.

Por ejemplo: Sobresaliente \u003d nueva estructura ("código, nombre", 133, "Vasya");

Sobre la coma, primero se enumeran los nombres de las llaves, y luego, en consecuencia, en la misma secuencia de parámetros.

Para agregar a la estructura del nuevo valor hay un método. Insertarque inserciones nueva pareja (Clave y valor).

Por ejemplo: Fuera deficiente. Para sostener ("membresía", 3);

Para la estructura, se caracteriza a otro método, que se usa con bastante frecuencia. Este es un método Propiedad.

Con este método, puede entender, y si hay un elemento de este tipo en esta estructura en la que la clave tiene un nombre de este tipo.

Si hay un elemento de este tipo, el sistema devolverá el valor de la verdad, de lo contrario, una mentira.

Por ejemplo, expresión Fuera deficiente Software ("Membresía") Será igual al valor de la verdad. Este método se usa con bastante frecuencia al analizar la estructura.

En cuanto a cualquier colección universal, está permitido apelar a las propiedades de la estructura por índice. Pero el índice para la estructura es un valor de cadena.

Por ejemplo: Notificar (sobresaliente ["MemberView"]);

Sin embargo, no debe olvidar que la estructura no es un conjunto de objetos ordenado, por lo que la apelación al índice 0, 1, 2 es inaceptable.

Lista de valores de recolección universal

Lista de deslizamientoses una lista lineal de elementos de cualquier tipo de datos.

Cada elemento consta de varios valores. Esquemáticamente, la lista de valores se puede representar como una lista con cuatro columnas.

Primera columna - Marcos. Tiene un tipo de datos booleano y permite al usuario o coloca las casillas de verificación, o para dispararles.

Otra columna es una imagen que de alguna manera puede representar visualmente este elemento, es decir, Poner en conformidad con esta línea cualquier imagen.

La tercera columna es el valor auto-almacenado, es decir, Este es cualquier tipo de datos, y en diferentes líneas puede ser diferente.

La cuarta columna es una representación, es decir,. Esta es una cierta descripción de cadena de este valor. La vista se mostrará cuando vea este artículo. Al mismo tiempo, si no se especifica la representación, el sistema intentará obtener presentaciones para el elemento contenido en esta posición.

Lista de deslizamientos- Este es el objeto con el que el usuario puede funcionar visualmente. Esos. Lista de deslizamientosse puede mostrar.

El usuario puede realizar alguna acción con ella. Además, Lista de deslizamientosse puede emitir de forma independiente usando métodos, es decir, Muestre en la pantalla en alguna rama del algoritmo (con la excepción del código del servidor) para que el usuario seleccione algún tipo de línea o coloque cualquier casilla de verificación.

Encontrar Lista de deslizamientosen el asistente de Sawax. Constructor Listagestiano parametrizado (no puede especificar algunos valores predeterminados).

Hay métodos tales como:

  • Insertar (,);
  • Agregar ();
  • Número();
  • Índice().

Hay métodos especiales, por ejemplo, Descarga (). Esto crea una matriz que copia la lista de valores. Por ejemplo:

Massivelamientos \u003d Listattzen. Información de video ();

También hay un método inverso:
Listar pipovets.Alipputs (elementos masivos);

Hay métodos de búsqueda:
Contenido encontrado (); Encontrar el atritador ().

Hay un método de copia:
Copiar la Escritura \u003d Listtipovence .copy ();
Este método Diseñado para hacer algún tipo de modificación con una copia.

Hay métodos:
Clasificación ();
SortPopserts ().

Métodos Elija el elemento (,)y Mixlements ()llame a un cuadro de diálogo modal que detiene la ejecución del algoritmo hasta que el usuario cierre esta ventana.

Para utilizar estos métodos en las propiedades de configuración. Modo de uso de la modalidad. debe ser configurado en valor Usar.

Un ejemplo de un código llamado desde el módulo de aplicación controlado:

Visualización de este código en modo de usuario (Cuadro de diálogo modal).

Debajo Lista de deslizamientosse utiliza como un tipo de datos asequible para los detalles del formulario. Crea un nuevo accesorios para el formulario de formación, determinamos el tipo para ello. Lista de deslizamientosy lo muestra en el formulario.

Crear un nuevo equipo VentanaPodeks, Transferimos a la forma y determinamos el manejador de acción para ello.

En el modo de usuario, cuando hace clic en el formulario de procesar un botón, llenará los regalos, aparecerá la lista completa.

Si lo desea, puede editar la lista: Algunos elementos agregan, algunos - Eliminar.

Cumplimiento universal de la colección

Esta colección es muy similar a Estructura. Además, como la estructura, la correspondencia es conjuntos de valores que consisten en una clave y el significado mismo.

La principal diferencia es que cualquier tipo de datos se puede indicar como una clave que para el valor. En vista de este particular, es necesario referirse al valor de la conformidad por índice, el valor de la clave se especifica como el valor del índice.

Como clave, puede haber un tipo de datos diferente de la cadena. Las propiedades y los métodos de trabajo con la correspondencia son prácticamente los mismos que la estructura.

El constructor de conformidad, en contraste con la estructura, no contiene la capacidad de especificar los parámetros.

Ejemplo de uso:

El cumplimiento se usa convenientemente cuando necesita asociar dos estructuras. Por ejemplo, cada línea de la parte tabular debe estar asignando una cadena de la tabla de valores.
En este caso, se usa una cadena de la parte de la tabla como una clave de conformación y se especifica el valor correspondiente.

Al insertar elementos a la colección, además del método. Insertar (,) Hay otra forma de insertar el valor: este es el uso de un operador de asignación convencional.

Por ejemplo: Cuestiones correspondencia \u003d nuevo cumplimiento;
Cumplimiento \u003d 999;

Esos. Si el elemento en la colección no estaba presente, se agregará utilizando la declaración de asignación, y si está presente, se actualizará.

Esta es la diferencia a partir de la estructura.

Valores de la tabla de colección universal

Mesases una tabla con un número arbitrario de filas y un número arbitrario de columnas. En la intersección, se pueden almacenar los valores de cualquier tipo de datos. Si es necesario, la columna se puede escribir, es decir, determinar en qué columna se almacena el tipo de datos.

Puede dejar la inepitis altavoces, luego en una columna en diferentes líneas se pueden almacenar valores de diferentes tipos.

Diferencia Mesasde una matriz bidimensional:

  • este objeto con el que se puede operar el usuario (se puede mostrar la tabla de valores, el usuario puede llenarlo en el futuro, se pueden leer los datos ingresados);
  • construcción de índices para una búsqueda rápida;
  • clonación, llenado cierto valor Todas las columnas, descargando todas las columnas en una matriz.

Mesasutilizado como un cierto tampón de almacenamiento. Mesasdevoluciones y aceptadas como parámetro por muchos métodos del sistema. A la tabla de valores es posible construir una consulta.

Entonces, Mesasconsiste en un conjunto de filas y un conjunto de columnas. Ambas líneas y columnas son colecciones.

Esos. Dentro de la colección Mesashay dos colecciones más. Consulte el asistente de sintaxis y encuentre Tablas de satimentos.

Tipos de datos compatibles: ella misma Mesasque consiste en líneas. Cada línea está representada por el tipo de datos. HilosLo que tiene sus propias propiedades y sus métodos. Disponible Colección de mesas de colostambién posee ciertas propiedades.

MOMENTO IMPORTANTE! El procedimiento que forma. Tablas de satimentos, Debe cumplirse y naster.

Antes de empezar a trabajar con TablillaEs necesario determinar qué columnas estarán contenidas en ella (es decir, crearlas). Sintaxis:

Agregar ()
(Opcional)
Tipo: Fila.
(Opcional)
Tipo: Descripción
(Opcional)
Tipo: Fila.
(Opcional)
Teclea un número.

Por ejemplo:

Para llamar a este procedimiento, usaremos el comando.

En descripción Mesascomo elementos de la colección, es Riptablitsy.

A diferencia de las columnas que consisten solo en propiedades (nombre, tipo, título, ancho), en Bailbreadurashay ambas propiedades (contacto con el nombre de la columna) y los métodos (puede recibir y establecer el valor para trabajar con los propietarios).

Agregar nueva cadena La tabla necesita usar el método o Agregar ()ya sea Insertar (). En el segundo caso, debe especificar qué posición debe establecer la cadena deseada.

Para asignar el valor de la columna, apelamos a través del punto mediante el nombre de la columna o por el índice (usando corchetes).

Para rellenar Mesasse pueden utilizar los siguientes métodos:

Claro () - para eliminar todas las líneas de Mesas.

Llenando (,) - Le permite llenar todas las columnas o columnas seleccionadas con un valor.
Zagocolonka (,) - Carga la columna de la matriz.
Descarga () - Descarga la columna en la matriz.

Los dos últimos métodos son convenientes de usar cuando necesita transferir la columna de una tabla de valores a otra.

Dupdo (,) - Permite sobre la base de tabla existente Crear nuevo Tablas de satimentosAl mismo tiempo, especifique no todas las filas y todos los altavoces, pero solo algunos de ellos. Valor de retorno - Mesas.

Puedes copiar la estructura Mesas. Hay un método correspondiente para esto. Copiando colecciones (). Nos vamos a vaciar Tablas de satimentos con la estructura requerida.

EN ZAVIEWYhay un método Salir (). Puede especificar la columna en la que los valores numéricos deben resumirse. En relación con el código mostrado anteriormente en el marcador, puede calcular el valor: Tz.itog ("cantidad").

EN ZAVIEWYhay una oportunidad para agrupar (colapsar) valores numéricos con los mismos valores de ciertas columnas utilizando el método Colapso (,).

En relación con el código mostrado anteriormente en el marcador, puede calcular el valor: Tz. Interruptor ("Drinado", "Sembro").

Tablas de satimentospuede mostrar en la pantalla de usuario para que se puedan realizar acciones con ella. Pero a diferencia Listagestiade código de software Es imposible simplemente llamar a la tabla en la pantalla.

Para mostrar Tablas de satimentosen la pantalla, cree un formulario de accesorios y asigne un tipo de datos. Mesas.

Después de eso, la tabla resultante debe mostrarse.

En el módulo de la forma al final del algoritmo compuesto anteriormente (en el procedimiento para crear las convenciones) se debe agregar:
SignificationRendAnfors (TK, Mesa);

Valores de árboles de colección universal

colección Universal, que es muy similar a Tablas de satimentos. La diferencia de la tabla es que las cadenas de árboles pueden subordinarse entre sí, es decir. Se puede formar cierta jerarquía.

También también se puede reflejar en la pantalla. El árbol de valores consiste explícitamente en una colección de filas y colecciones de columnas. En el árbol hay tales dos propiedades como cuerdas y columnas.

Dado que las líneas pueden subordinarse entre sí, el padre se puede especificar para cada línea, así como los golpes subordinados a él.

Crea el comando de árbol apropiado y su procedimiento de procesamiento.

Crear en el que una línea de padres y dos subordinados.

Crea el requisito del formulario. Dren(Tipo de datos - Ware).

Para estos detalles, cree columnas año y mes.

Mueve el artículo correspondiente Drenen forma.

Al final Procedimientos WoodersServer () Añado:

SignificandoRendensefores (grueso, rendimiento);

Compruebe lo que sucedió en el modo de usuario.

Usa el botón Agregarpuedes agregar nuevas líneas. También pueden formar una jerarquía.

Para obtener todos los elementos del árbol de valores, tendremos que usar la recursión, es decir,. Desafía el propio procedimiento. Por ejemplo, el procesamiento de los árboles de los valores puede parecerse a esto:

En esto estamos completando nuestro primer conocido con las colecciones universales.

En el siguiente artículo, consideramos el uso de qué mecanismo importante, el desarrollador puede simplificar la referencia al directorio del código del programa.

Estructura en el lenguaje de programación 1c 8.3 y 8.2 - un conjunto de pares "clave" y "valor". El campo "clave" tiene un tipo de cadena, "valor" puede tomar cualquier tipo de datos. Generalmente se utiliza para el almacenamiento y la transmisión entre procedimientos para un conjunto de cualquier parámetro.

La estructura en el lenguaje de programación 1C se puede crear de dos maneras utilizando el nuevo diseño.

La primera manera:

Estructura \u003d nueva estructura;
Estructura. Para mantener ("keyaparameter1", "los valores del parámetro No. 1");
Estructura. Para mantener ("Keyaparameter2", "Valores del parámetro No. 2");

La segunda forma:

Estructura \u003d nueva estructura ("Keyaparameter1, Keyaparameter2", "Valores del parámetro No. 1", "Valores de parámetros No. 2");

Ambos métodos crearán una estructura que se puede ver en la captura de pantalla de la depuración:

Obtenga 267 tutoriales de video para 1C gratis:

El cambio

Puede agregar o cambiar la estructura utilizando el método "Pegar ()".

Estructura. Para mantener ("Nombre Wniscu", sin sentido);

Si desea cambiar el valor de la llave anterior, ingrese su nombre. Si agregue nueva llaveAgregue un nombre único relativo a todas las teclas de estructura.

Para eliminar el elemento de cobro, debe usar el método de eliminación donde transferir el nombre de la clave:

Estructura. Liberar ("Nombre Wniscu");

También es posible limpiar todos los objetos de la colección:

Estructura. Para por favor ();

Avance de la estructura

Para pasar por la colección de la estructura, debe usar el diseño "para cada estación de claves de la estructura del ciclo".

Por ejemplo:

Para cada estación de claves de la estructura del ciclo.
...... // Proceso, por ejemplo, cambia los valores
Endcycle;

Cada ciclo se verá que los siguientes campos estarán disponibles:



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