Contactos

1c ordenando en una tabla

Para contabilizar el dinero y los bienes, en los negocios se utilizan ampliamente varias tablas. Casi todos los documentos son una tabla.

Una tabla enumera las mercancías que se enviarán desde el almacén. Otro cuadro muestra las obligaciones de pago por estos bienes.

Por lo tanto, en 1C, el trabajo con mesas ocupa un lugar destacado.

Las tablas de 1C también se denominan "partes tabulares". Directorios, documentos y otros los tienen.

La consulta, cuando se ejecuta, devuelve una tabla a la que se puede acceder de dos formas diferentes.

La primera selección, más rápida, es posible obtener filas a partir de ella solo en orden. El segundo es cargar el resultado de la consulta en una tabla de valores y luego acceder aleatoriamente a ella.

//Opción 1 – acceso secuencial a los resultados de la consulta

//obtiene la mesa
Seleccionar = Consulta.Ejecutar().Select();
// repasamos todas las líneas del resultado de la consulta en orden
Mientras que el bucle Select.Next()
Informe(Selección.Nombre);
Fin del ciclo;

//Opción 2: cargar en una tabla de valores
Solicitud = Nueva Solicitud ("SELECCIONE Nombre DEL Directorio.Nomenclatura");
//obtiene la mesa
Tabla = Consulta.Ejecutar().Descargar().
//además también podemos iterar a través de todas las líneas
Para cada fila del ciclo de la tabla
Informe(Cadena.Nombre);
Fin del ciclo;
//o acceder arbitrariamente a cadenas
Fila = Table.Find("Pala", "Nombre");

Una característica importante es que en la tabla que se obtiene del resultado de la consulta, todas las columnas estarán estrictamente escritas. Esto significa que al solicitar el campo Nombre del directorio de Nomenclatura, recibirá una columna del tipo Cadena con una longitud permitida de no más de N caracteres.

Tabla en el formulario (cliente pesado)

El usuario trabaja con la tabla cuando se coloca en el formulario.

Discutimos los principios básicos de trabajar con formularios en la lección sobre y en la lección sobre

Entonces, coloquemos la tabla en el formulario. Para hacer esto, puede arrastrar la tabla desde el panel Controles. De manera similar, puede seleccionar Formulario/Insertar control en el menú.

Los datos se pueden almacenar en la configuración; luego debe seleccionar la parte tabular existente (previamente agregada) del objeto de configuración cuyo formulario está editando.

Haga clic en el botón "..." en la propiedad Datos. Para ver la lista de partes tabulares, debe expandir la rama Objeto.

Cuando selecciona la parte tabular, el propio 1C agregará columnas a la tabla en el formulario. Las filas ingresadas por el usuario en dicha tabla se guardarán automáticamente junto con el libro/documento de referencia.

En la misma propiedad de Datos, puede ingresar un nombre arbitrario y seleccionar el tipo de Tabla de valores.

Esto significa que se ha seleccionado una tabla de valores arbitraria. No agregará columnas automáticamente ni se guardará automáticamente, pero puedes hacer lo que quieras con él.

Al hacer clic derecho en la tabla puede agregar una columna. En las propiedades de una columna, puede especificar su nombre (como referencia en el código 1C), el encabezado de la columna en el formulario, la conexión con el atributo de la parte tabular (este último, si no se selecciona una tabla arbitraria, sino una parte tabular).

En las propiedades de la tabla del formulario, puede especificar si el usuario puede agregar o eliminar filas. Una forma más avanzada es la casilla de verificación Ver sólo. Estas propiedades son cómodas de utilizar para organizar tablas destinadas a mostrar información, pero no a editarla.

Para administrar la tabla, debe mostrar un panel de comando en el formulario. Seleccione el elemento del menú Formulario/Insertar control/Barra de comandos.

En las propiedades de la barra de comandos, seleccione la casilla de verificación Autocompletar para que los botones del panel aparezcan automáticamente.

Tabla en formulario (cliente ligero/administrado)

En un formulario administrado, estas acciones se ven un poco diferentes. Si necesita colocar una parte tabular en el formulario, expanda la rama Objeto y arrastre una de las partes tabulares hacia la izquierda. ¡Eso es todo!

Si necesita colocar una tabla de valores, agregue un nuevo atributo de formulario y en sus propiedades especifique el tipo – tabla de valores.

Para agregar columnas, use el menú contextual en este atributo de formulario, seleccione Agregar columna de atributo.

Luego arrastre también la tabla hacia la izquierda.

Para que una tabla tenga una barra de comandos, en las propiedades de la tabla, seleccione los valores en la sección Uso – Posición de la barra de comandos.

Subir una tabla a Excel

Cualquier tabla 1C ubicada en el formulario se puede imprimir o cargar en Excel.

Para hacer esto, haga clic derecho en un espacio vacío en la tabla y seleccione Lista.

En un cliente (ligero) administrado, se pueden realizar acciones similares usando el elemento del menú Todas las acciones/Lista de visualización.

La tabla de valores en la plataforma 1C 8.3 (8.2) es una colección universal de valores que un desarrollador puede utilizar durante el desarrollo de software para implementar sus algoritmos. Esencialmente, una tabla de valores 1C es un conjunto dinámico de valores que tienen columnas y columnas.

Artículos sobre otras colecciones universales de valores en 1C.

Aprenda a programar en 1C en el lugar de mi libro "Programación en 1C en 11 pasos"

  1. El libro está escrito en un lenguaje claro y sencillo, para principiantes.
  2. Aprenda a comprender la arquitectura 1C;
  3. Comenzarás a escribir código en lenguaje 1C;
  4. Dominar técnicas básicas de programación;
  5. Consolide sus conocimientos con la ayuda de un libro de problemas;

Una excelente guía para desarrollar una aplicación 1C administrada, tanto para desarrolladores novatos como para programadores experimentados.

  1. Lenguaje de presentación muy accesible y comprensible.
  2. El libro se envía por correo electrónico en formato PDF. ¡Se puede abrir en cualquier dispositivo!
  3. Comprender la ideología de una aplicación 1C administrada
  4. Aprenda a desarrollar una aplicación administrada;
  5. Aprenda a desarrollar formularios 1C administrados;
  6. Podrás trabajar con los elementos básicos y necesarios de los formularios gestionados.
  7. La programación bajo una aplicación administrada quedará clara

Código promocional para un 15% de descuento - 48PVXHeYu


Si esta lección te ayudó a resolver algún problema, te gustó o te resultó útil, entonces puedes apoyar mi proyecto donando cualquier cantidad:

Puedes pagar manualmente:

Yandex.Dinero - 410012882996301
Dinero Web - R955262494655

Únete a mis grupos.

Saludos a todos los lectores de infostart. Este artículo estará dedicado a la cuestión de la creación de una tabla de valores arbitraria en forma de una aplicación administrada mediante programación.

Características de la tarea.

Cualquiera que haya programado en una aplicación normal se ha enfrentado muchas veces a la tarea de obtener una tabla de valores arbitraria en un formulario. Una tabla de valores arbitraria es una tabla cuyo número y tipo de columnas no se conocen de antemano. Es decir, podría haber 3 columnas, o tal vez 6, o tal vez 8. En una aplicación normal, todo es simple: puede colocar el elemento "Tabla de valores" en el formulario de procesamiento y luego transferir la tabla de valores creada. ​a este elemento mediante programación. Luego con un simple comando:

Elementos de formulario.TableField.CreateColumns();

obtenga una tabla de valores ya preparada en el formulario. Parecería que podría ser más sencillo.

Todo esto estaba en la aplicación normal. En una aplicación gestionada todo ha cambiado. No es tan fácil crear una tabla arbitraria. Ahora necesita parametrizar rígidamente la tabla de valores en el formulario o crearla mediante programación (describa, bueno, esto, de hecho, es la esencia de la aplicación administrada en sí). Esto es lo que intentaremos hacer: crear mediante programación una tabla de valores arbitraria en un formulario controlado.

La solución del problema.

Lo primero que debemos hacer es determinar cómo aparecerá la tabla en el formulario. Lo principal es que no es necesario crear ningún elemento de formulario durante el procesamiento. Lo crearemos programáticamente, como toda la tabla. Es decir, la tabla se describirá y creará en el momento de abrir el formulario o utilizar un botón, dependiendo de quién la necesite.

La creación de una tabla en el formulario se produce a través de la descripción de la tabla de valores como atributo:
SelectionTypeArray = Nueva matriz; Matriz de SelectionType.Add(Type("Tabla de valores")); ChoiceTypeDescription = Nueva descripción de tipo (ChoiceTypeArray); Matriz de detalles = Nueva matriz; Matriz de atributos.Add(Nuevos atributos de formulario ("Tabla de programación", Descripción del tipo de selección, "", "TZN")); Ahora tenemos que crear una tabla de valores del programa que contenga los datos. Si la tabla de valores se obtiene de una consulta, entonces todo está más o menos en orden. Si la tabla se crea manualmente, entonces el significado de las columnas que contendrán números o fechas se puede crear a través de la “Descripción de tipos”. La cuestión es que las columnas de la tabla de valores deben tener algún tipo. Si, por ejemplo, se espera que el usuario complete datos en estas columnas de forma interactiva, entonces no puede agregar una columna de la tabla de valores simplemente con un nombre; debe tener un tipo. Tenga en cuenta que esto es muy importante porque... Transferiremos estos tipos a la tabla del formulario.
Creamos una tabla que contiene varias columnas:
CD = NewDateQualifiers(DateParts.Time); ArrayKD = Nueva matriz; ArrayCD.Add(Tipo("Fecha")); DescripciónTiposHora = Nuevos tipos de descripción(ArrayCD,CD); TZ = Nueva tabla de valores;
TK.Columns.Add("Con", DescripciónTiposHora);
TK.Columns.Add("Antes", DescripciónTiposHora);
TK.Columns.Add("Nombre");
TK.Columns.Add("Nota"); // Nombre completo y Nota - filas A continuación, llenaremos nuestra tabla de programa TK con los datos necesarios. Recibimos una tabla TK que contiene los valores necesarios y está lista para ser transferida al atributo de formulario creado. Para cada columna de TK.Ciclo de columnas

Matriz de atributos.Add(Nuevos atributos de formulario(Column.Name, Column.ValueType,"ScheduleTable"));
Fin del ciclo;
CambiarDetalles(ArrayDetails);
SelectionFieldsTable = Elements.Add("TZN", Type("FormTable"));
SelectionFieldsTable.DataPath = "ScheduleTable";
SelectionFieldTable.Display = TableDisplay.List;

Esta es una combinación simple y nuestra mesa está lista.

Para cada columna de TK.Ciclo de columnas

NewElement = Elements.Add(Column.Name, Type("FormField"), SelectionFieldTable);
NewElement.View = FormFieldView.InputField;
NewElement.DataPath = "ScheduleTable." + Columna.Nombre;
NuevoElemento.Ancho = 10;
Fin del ciclo;

Diseño condicional, si lo necesitamos, también lo escribimos manualmente, el menú de comandos, manualmente. Los manejadores de mesa también están escritos a mano. Por ejemplo, para agregar un controlador de eventos para la tabla "Selección":

Tabla de SelectionFields.SetAction("Selection","TZNSelection");

Para procesar este evento, se prescribe un procedimiento separado en forma de trámite:

&EnCliente
Procedimiento TKNSelection(TK, fila seleccionada, campo, procesamiento estándar)
//comandos del controlador EndProcedure

Tenga en cuenta que los controladores de tablas se activan en el cliente y, por lo tanto, deben tener un comando de puntero del compilador.

&EnCliente

Bueno, lo último que quería agregar es que después de todos estos pasos, asegúrese de recordar pasar la tabla terminada al atributo del formulario:

ValueВFormAttributes(TdR, "ScheduleTable");

Esto es lo que tenemos como resultado:


Y aquí está el manejo del evento "Selección":



Epílogo.

Espero que el artículo ayude a aquellos programadores de 1C que están comenzando a crear tablas en un formulario mediante programación.

Puede descargar un procesamiento que crea mediante programación una tabla de valores y la muestra en un formulario manejable con comentarios que le ayudarán a crear sus propias tablas.

tabla de valores 1C

Tabla de valores 1C Se utiliza para el almacenamiento y procesamiento de datos en línea. Con una gran cantidad de filas, la velocidad de recuperación de datos disminuye drásticamente. Muchos programadores subestiman la importancia de utilizar índices cuando buscan información en una tabla de valores. Tengo la intención de mostrarles que el uso de índices acelera el trabajo con especificaciones técnicas ( tabla de valores 1C) antes 100 veces.

Entonces, con fines de prueba, creé un pequeño código que funciona de manera similar a esto.

  • Se extraen 20 mil filas de la parte tabular del documento "Implementación" a la tabla de valores. Se llama T1.
  • Hice una copia de la misma tabla de valores, una segunda tabla, la llamé T2. Entonces, obtuvimos 2 tablas de valores, T1 y T2, cada una con 20 mil filas.
  • A continuación, en un ciclo del 1 al 5, hacemos cinco pasadas. El pasaje es el siguiente:
  • En el bucle (que está anidado en el bucle del 1 al 5), se iteran todas las filas de la tabla de valores T1, las 20 mil filas.
  • Para cada fila T1 actual, extraemos de la tabla de valores T1 el valor en la columna "Cantidad": este es un número.
  • Buscamos una fila en la tabla de valores T2 que contenga en la columna “Cantidad” el mismo número que se extrajo en el paso anterior.
  • Medimos el tiempo de cada pase en milisegundos y lo mostramos en la pantalla.

En otras palabras, revisando todas las filas de una tabla de valores 1C y recordando el valor de la columna "Cantidad", buscamos una fila con la misma cantidad en otra tabla de valores. Se utiliza el método de tabla de valores "Buscar". De una sola vez, la operación de búsqueda se realiza 20 mil veces. Sólo hay cinco pases. Son necesarios para promediar los resultados experimentales.

A continuación verá una tabla con los resultados de las pruebas. La segunda columna muestra el tiempo de ejecución de cada una de las cinco pasadas en una ejecución normal no optimizada, y debajo de la columna está el tiempo total de ejecución de la prueba de 279641 milisegundos, o aproximadamente 279 segundos. La tercera columna muestra el tiempo de ejecución de la misma prueba, pero con la opción de búsqueda optimizada. usando un índice en una tabla de valores. Para mayor claridad, agregué a la tabla el tiempo dedicado a crear el índice (la primera línea debajo del título), es muy pequeño, solo 0,047 segundos. El tiempo total de ejecución de la prueba en la segunda opción es 2781 milisegundos, o 2,78 segundos.

Entonces, en la primera opción tenemos - 279 segundos, en la segunda opción - 2,78 segundos. ¡La diferencia es 100 veces! Además, ¡dicha aceleración se logra agregando solo UNA LÍNEA DE CÓDIGO!

Tiempo de ejecución, milisegundos
Ejecución de prueba no. Opción 1, regular Opción 2, óptima
hora de crear el índice - 47
1 46531 563
2 55516 547
3 60969 531
4 58688 562
5 57937 531
Tiempo Total 279641 2781
Tiempos de aceleración: 100,5541172

Aquí está el código de ejemplo completo:

Procedimiento knIndexTableValuesPressing(Elemento) // crear una consulta para recuperar datos Solicitud = Nueva Solicitud; Pedido. Texto = "SELECCIONE PRIMERO 20000 | ProductosVentas.Enlace, | ProductosVentas.NúmeroLínea, | ProductosVentas.Cantidad, | ProductosVentas.Monto, | ProductosVentas.Producto |DESDE | Documento.Ventas.Productos COMO ProductosVentas"; // coloca los datos seleccionados en la tabla de valores T1 T1 = Solicitud. Ejecutar(). Descargar(); // crea una tabla de valores T2 copiando el contenido de la tabla de valores T1 T2 = T1. Copiar() ; StartAddIndex = GetTimeInMillisegundos(); T2. Índices. Agregar("Cantidad"); // ESTA ES LA LÍNEA MÁS IMPORTANTE, AÑADIR UN ÍNDICE EN LA COLUMNA "SUM" ConAddIndex = GetTimeInMillisegundos(); Para reportar ( "Tiempo de adición del índice"+ (CondIndexAdding - StartIndexAdding) + "ms"); Para reportar ( "Total de filas en nuestra tabla de valores: "+T2. Cantidad() ) ; // organizamos un ciclo de cinco pases, en esencia ejecutamos la prueba cinco veces Para recuento = 1 a 5 Inicio del ciclo = GetTimeInMillisegundos(); // recuerda la hora de inicio Encontradouna vez = 0; Para cada página del ciclo T1 // iterar por todas las filas de la tabla T1 Manejo de interrupciones de usuario() ; // busca una fila en la tabla T2 en la que la columna sea "Cantidad" // coincide con el valor actual "Suma" de la tabla T1 Cadena encontrada = T2. Buscar (Suma de páginas, "Suma"); // Si se soluciona una coincidencia (cadena encontrada), aumenta el contador de cadenas encontradas Si se encuentra una cadena<>Indefinido Entonces FoundOnce = FoundOnce + 1; Terminara si ; FinCiclo; // obtenemos el tiempo de finalización del ciclo de búsqueda en las filas de la tabla T1 Fin = GetTimeInMillisegundos(); // informa el número de pase de prueba, el número de coincidencias encontradas y el tiempo de ejecución en milisegundos Informe ("Pasaje No." + Sch); Informe ("Horas encontradas:" + Horas encontradas); Para reportar ( "Tiempo de espera "+ Cadena (Fin-Inicio) + "milisegundos"); FinCiclo; // sal para hacer el siguiente pase Fin del Procedimiento


El ejemplo está comentado y debe quedar claro. Lo principal está en la fila. T2.Indices.Add("Suma"); Informamos a 1C que vamos a realizar una operación de búsqueda en la columna "Cantidad" en la tabla de valores T1 y requerimos que se cree un índice en esta columna. El sistema crea un índice y luego lo usa automáticamente para todas las operaciones de búsqueda usando la columna "Cantidad". Cabe señalar que el índice creado es válido sólo para buscar en la columna "Cantidad", ya que fue creado para esta columna. Si necesitamos otras columnas para buscar, debemos crear los índices apropiados, indicando los nombres de las columnas deseadas.

Podemos crear múltiples índices en la misma tabla si vamos a buscar valores para diferentes columnas. Los índices se almacenan en la colección de índices de la tabla de valores 1C., que se desprende del código: TK.Indexes.Add(ColumnName)

Si necesitamos buscar por una combinación de valores de columnas, por ejemplo, simultáneamente por las columnas “Cantidad” y “Cantidad”, debemos crear un índice compuesto: T2.Indices.Add("Cantidad, Monto") Este índice se utilizará cuando busquemos un valor en una tabla usando el método FindRows(). Por ejemplo:

Matriz de cadenas encontradas = T2.FindStrings (nueva estructura ("Cantidad, importe", cantidad buscada, suma buscada));

Utilizado en el texto de ejemplo.
Atentamente, Degtyarev Roman.

¿Cómo aprender a programar en 1C desde cero?

¿Cómo trabajar como programador 1C y ganar hasta 150.000 rublos al mes?

REGISTRATE GRATIS

CURSO DE 2 SEMANAS

"PROGRAMACIÓN EN 1C PARA PRINCIPIANTES"

El curso se enviará por correo electrónico. Conviértete en programador completando tareas paso a paso.

Para participar sólo necesitas un ordenador e Internet

Acceso gratuito al curso:

Sp-force-hide (mostrar: ninguno;).sp-form (mostrar: bloque; fondo: #eff2f4; relleno: 5px; ancho: 270px; ancho máximo: 100%; radio de borde: 0px; -moz-border -radio: 0px; -webkit-border-radius: 0px; familia de fuentes: Arial, "Helvetica Neue", sans-serif; repetición de fondo: sin repetición; posición de fondo: centro; tamaño de fondo: automático;) .sp-form input (pantalla: bloque en línea; opacidad: 1; visibilidad: visible;).sp-form .sp-form-fields-wrapper (margen: 0 auto; ancho: 260px;).sp-form .sp -form-control (fondo: #ffffff; color del borde: #cccccc; estilo del borde: sólido; ancho del borde: 1 px; tamaño de fuente: 15 px; relleno izquierdo: 8,75 px; relleno derecho: 8,75 px; borde -radio: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; alto: 35px; ancho: 100%;).sp-form .sp-field label (color: #444444; fuente- tamaño: 13px; estilo de fuente: normal; peso de fuente: negrita;).sp-form .sp-button (radio-borde: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; color de fondo: #f4394c; color: #ffffff; ancho: 100%; peso de fuente: 700; estilo de fuente: normal; familia de fuentes: Arial, "Helvetica Neue", sans-serif; sombra de cuadro: ninguna; -moz-box-shadow: ninguno; -webkit-box-shadow: ninguno; fondo: gradiente lineal (hacia arriba, #e30d22, #f77380);).sp-form .sp-button-container (alineación de texto: centro; ancho: automático;)

(Este artículo pertenece a la serie de artículos 1C desde cero; programación 1C desde cero; tabla de valores 1C)

En el último artículo hablé sobre la creación. tablas de valores 1s y formas de acceder a los datos que contiene.

Ampliemos este conocimiento para que sea más conveniente trabajar con la tabla de valores. Comencemos con algunas propiedades útiles de la tabla de valores.

1. Iterar a través de las filas de la tabla de valores usando índices de fila (números de fila)

Método TablaValor.Cantidad()- devuelve el número de filas de la tabla de valores.

Les recuerdo que si el método TablaValor.Cantidad() mostró que hay 5 filas en la tabla, entonces los índices (números) de estas filas son: 0, 1, 2, 3, 4.

Supongamos que tenemos tabla de valores 1C con la columna "Apellido del Cliente"

Si queremos iterar sobre todas las filas de una tabla de valores usando un índice de fila, debemos usar un encabezado de bucle, como en el siguiente ejemplo. En él mostramos el contenido de la columna “Apellido del cliente” para cada línea, es decir, de hecho, imprimimos la columna completa con los apellidos de los clientes.
Entonces:

For RowNumber = 0 By OurTable.Quantity() - 1 Loop // aquí se iteran las filas CurrentLastName = OurTable[RowNumber].CustomerLastName; // "Apellido del cliente" es el nombre de la columna que contiene el apellido del cliente Report(CurrentLastName); Fin del ciclo;

Tenga en cuenta que aumentamos el contador de bucle a un valor igual al número de filas de la tabla menos uno: NuestraTabla.Cantidad() - 1

Averigüemos qué significa el código: NuestraTabla[Número de fila]. Este es el acceso a una fila específica de la tabla de valores por su índice (número).

En el siguiente ejemplo mostraré cómo NuestraTabla[Número de fila] nos devuelve un objeto que tiene tipo "FilaTablaValor".
En una variable adicional pongo el resultado de acceder a la línea por número: TableRow = NuestraTabla[Número de fila]

Luego, habiendo recibido un objeto: una fila de una tabla de valores en forma de variable Tabla de filas, podemos trabajar por separado con este objeto de cadena. El siguiente ejemplo hace lo mismo que el ejemplo anterior, sólo que el ejemplo inferior utiliza una variable "extra" Tabla de filas

For RowNumber = 0 By OurTable.Quantity() - 1 Loop // aquí se iteran las filas TableLine = OurTable[RowNumber].CustomerLastName; // obtiene la fila actual de la tabla de valores por su índice (número) CurrentLastName = TableLine.ClientLastName; // "Apellido del cliente" es el nombre de la columna que contiene el apellido del cliente Report(CurrentLastName); Fin del ciclo;

Si dentro del bucle escribimos el siguiente código: Informe (TableRow)- este código NO mostrará datos de la fila actual de la tabla de valores (por ejemplo, el apellido del cliente, etc.).

Todo es correcto, porque la variable Tabla de filas representa un objeto y se accede a los datos a través de las propiedades y métodos de este objeto, y si escribe Informe (TableRow), luego se mostrará información sobre el tipo de variable. Tabla de filas: ValorTableRow.

Por ejemplo, código Fila de la tabla. Apellido del cliente solo significa acceso a los datos almacenados en la columna "Apellido del cliente" de la fila del objeto actual. Esto es lo que usamos en el ejemplo para mostrar los apellidos de todos los clientes almacenados en la tabla de valores. Recorriendo todas las líneas y mostrando estos mismos nombres en pantalla uno por uno.

2. Recorra las filas de la tabla de valores utilizando el bucle de recopilación "For Each..."

Para iterar sobre cadenas tablas de valores 1C Podemos usar otra versión del bucle. Este es un bucle especial para iterar a través de los elementos de los objetos de la colección. La tabla de valores 1c es la llamada recopilación. En este caso, una colección de cadenas.

Y cualquier colección en 1C se puede iterar mediante un bucle:

Para cada uno de los ciclos... acción dentro del ciclo EndCycle

Mostremos todos los nombres de los clientes de todas las filas de la tabla iterando a través de la colección de filas en la tabla de valores:

Para cada TableRow de OurTable Loop Report(TableRow.CustomerLastName); Fin del ciclo

Al recorrer la colección, no necesitábamos un contador de números de fila (índice). La forma especial del ciclo ayudó a prescindir de un contador. A una variable arbitraria Tabla de filas Cada vez que pasa el bucle, se asigna automáticamente un objeto de fila de la tabla de valores.

Así en Tabla de filas A medida que se ejecuta el bucle, todas las filas de nuestra tabla de valores caen en fila. Y todo lo que hacemos es que para cada línea que se nos pasa, mostramos el contenido de la columna "Apellido del cliente" usando la construcción Informe(TableRow.ClienteApellido);

3.Y ahora: repetición del material.

Entonces, La tabla de valores 1C es una colección de cadenas.. Alguien reunió cadenas, las amontonó y resultó ser una colección completa de cadenas, a la que llamaron tabla de valores.

Sólo que esta es una colección de algo más que cadenas de texto ordinarias. Esta es una colección de objetos de tipo Valores de tabla de fila. Y este objeto de fila independiente almacena datos para cada columna de la fila actual. Almacena el apellido del cliente, su altura o cualquier otra cosa que sea necesaria.

Puede acceder a una fila de la tabla de valores por su índice, que comienza en cero. Usando código MiCuartaFila = MiTabla- obtenemos la cuarta fila de la tabla de valores, ya que la numeración de las filas comienza desde cero: 0, 1, 2, 3.

Determinamos el número de líneas usando el método. MiTabla.Cantidad(). No olvides los paréntesis al final, ya que llamamos al método sin parámetros.

Recordemos que podemos iterar por todas las filas de la tabla de valores usando un bucle en el que enumeramos los índices de las filas (de cero a (Número de filas menos uno)), o podemos usar un bucle iterando por colecciones. .

Última cosa: Al iterar sobre una colección, ¿cómo obtengo el número de fila de la tabla de valores?
Puede obtener el número de la fila actual llamando al método Index() para la tabla de valores, a la que le pasamos un objeto de fila.

El siguiente ejemplo mostrará los números de todas las filas en la tabla de valores 1C:

Para cada fila de la tabla del informe de bucle OurTable (OurTable.Index(TableRow)); Fin del ciclo

Los materiales continuarán en los siguientes artículos.....

Degtyarev romano.

¿Cómo aprender a programar en 1C desde cero?

¿Cómo trabajar como programador 1C y ganar hasta 150.000 rublos al mes?

REGISTRATE GRATIS

CURSO DE 2 SEMANAS

"PROGRAMACIÓN EN 1C PARA PRINCIPIANTES"

El curso se enviará por correo electrónico. Conviértete en programador completando tareas paso a paso.

Para participar sólo necesitas un ordenador e Internet

Acceso gratuito al curso:

Sp-force-hide (mostrar: ninguno;).sp-form (mostrar: bloque; fondo: #eff2f4; relleno: 5px; ancho: 270px; ancho máximo: 100%; radio de borde: 0px; -moz-border -radio: 0px; -webkit-border-radius: 0px; familia de fuentes: Arial, "Helvetica Neue", sans-serif; repetición de fondo: sin repetición; posición de fondo: centro; tamaño de fondo: automático;) .sp-form input (pantalla: bloque en línea; opacidad: 1; visibilidad: visible;).sp-form .sp-form-fields-wrapper (margen: 0 auto; ancho: 260px;).sp-form .sp -form-control (fondo: #ffffff; color del borde: #cccccc; estilo del borde: sólido; ancho del borde: 1 px; tamaño de fuente: 15 px; relleno izquierdo: 8,75 px; relleno derecho: 8,75 px; borde -radio: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; alto: 35px; ancho: 100%;).sp-form .sp-field label (color: #444444; fuente- tamaño: 13px; estilo de fuente: normal; peso de fuente: negrita;).sp-form .sp-button (radio-borde: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; color de fondo: #f4394c; color: #ffffff; ancho: 100%; peso de fuente: 700; estilo de fuente: normal; familia de fuentes: Arial, "Helvetica Neue", sans-serif; sombra de cuadro: ninguna; -moz-box-shadow: ninguno; -webkit-box-shadow: ninguno; fondo: gradiente lineal (hacia arriba, #e30d22, #f77380);).sp-form .sp-button-container (alineación de texto: centro; ancho: automático;)



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