Lenguaje de expresión del sistema de composición de datos (1Cv8). Esquema de diseño de datos (1C SKD) Campo calculado 1S SKD

Examinamos con cierto detalle la configuración de los informes implementados sobre la base del sistema de control de acceso. Ahora veamos configuraciones más sutiles y detalladas para las opciones de informes. La ventana de configuración "avanzada" de la opción de informe se abre mediante el comando "Más" - "Otro" - "Cambiar opción de informe".

La ventana para cambiar la versión del informe se divide en dos partes:

1. Estructura del informe.

2. Configuración del informe.


La sección de estructura de opciones de informe es similar a la pestaña "Estructura" de la configuración de informe estándar. El propósito y la configuración de las agrupaciones se analizan en detalle en la Parte 1 del artículo.

La tabla de estructura de variantes del informe, además de la columna propiamente dicha con agrupaciones, contiene varias columnas adicionales:

La sección de configuración de opciones de informe brinda al usuario amplias oportunidades para configurar el informe según sus necesidades. Coincide casi por completo con la configuración de informes estándar analizada en la Parte 1. Veamos todas las pestañas de la sección y observemos las diferencias.

La sección de configuración consta de las siguientes pestañas:

1. Parámetros. Contiene parámetros ACS disponibles para el usuario.

El parámetro SKD es un valor utilizado para obtener datos del informe. Puede ser un valor de condición para seleccionar o verificar datos, así como un valor auxiliar.


La tabla de parámetros se presenta en el formato “Parámetro” - “Valor”. Si es necesario, puede cambiar los valores de los parámetros. Al hacer clic en el botón "Propiedades del elemento de configuración personalizada" se abre la configuración personalizada del elemento.


En esta ventana, puede seleccionar si el elemento se incluirá en la configuración del usuario (es decir, visible para el usuario al configurar un informe), configurar el modo de presentación y edición del elemento (acceso rápido en el encabezado del informe, normal en el configuración del informe e inaccesible).

Las propiedades de los elementos de configuración personalizada también tienen campos agrupables, márgenes, selecciones y elementos de apariencia condicional.

2. Campos personalizados. Contiene campos que son generados por el propio usuario en base a los datos seleccionados por el informe.


El usuario puede agregar dos tipos de campos:

  • Nuevo campo de selección...
  • Nuevo campo de expresión...

Los campos de selección le permiten calcular un valor en función de una condición determinada. La ventana de edición del campo de selección contiene un título de campo y una tabla en la que se especifica la selección, el valor y la presentación del campo. La selección es una condición, dependiendo de cuál se sustituirá el valor deseado.


Por ejemplo, calculemos una estimación del número de ventas. Supondremos que si se venden menos de 10 unidades de un producto, vendimos poco, y si se venden más de 10 unidades, vendimos mucho. Para ello estableceremos 2 valores del campo calculado: el primero será con la selección “Número de mercancías Menor o igual a “10””, el segundo con la selección “Número de mercancías Mayor que “10” ””.

Los campos de expresión le permiten calcular un valor utilizando algoritmos arbitrarios. Pueden utilizar las funciones del lenguaje de consulta y el lenguaje de programación integrado 1C. La ventana de edición del campo de expresión contiene dos campos para expresiones de registros detallados y resumidos. Los registros totales son agrupaciones configuradas en el área “Estructura del Informe”; deben utilizar funciones agregadas (“Suma”, “Mínimo”, “Máximo”, “Cantidad”).

Por ejemplo, calculemos el porcentaje de descuento promedio. El porcentaje de descuento promedio se calcula mediante la fórmula: [Importe de ventas sin descuento] - [Importe de ventas con descuento] / [Importe de ventas sin descuento]. Es importante recordar que el monto de las ventas sin descuento puede ser cero, por lo que utilizamos el operador SELECT para verificar. Obtenemos las siguientes expresiones:

· Para entradas detalladas:

Elección

Cuando [Monto de ventas sin descuento] = 0

Entonces 0

En caso contrario [Importe de ventas sin descuento] - [Importe de ventas con descuento] / [Importe de ventas sin descuento]

Fin

· Para actas resumidas:

Elección

Cuando Monto([Monto de ventas sin descuento]) = 0

Entonces 0

De lo contrario Suma([Importe de ventas sin descuento]) - Suma([Importe de ventas con descuento]) / Suma([Importe de ventas sin descuento])

Fin

Como se mencionó anteriormente, en la expresión de registros totales utilizamos la función agregada “Suma”.

3. Campos agrupables. Contiene campos por los cuales se agruparán los resultados de la variante del informe. Los campos agrupados se configuran por separado para cada grupo, pero puede configurar campos agrupados generales para una opción de informe si selecciona la raíz "Informe" en el árbol de estructura. Puede agregar un campo del resultado del informe, un campo personalizado o seleccionar un campo automático, luego el sistema seleccionará los campos automáticamente. Esta pestaña también le permite cambiar el orden de los campos agrupados.


4. Campos. Contiene los campos que se generarán como resultado de la variante del informe. Los campos se configuran por separado para cada grupo, pero puede configurar campos comunes para una opción de informe si selecciona la raíz "Informe" en el árbol de estructura. Puede agregar un campo del resultado del informe, un campo personalizado o seleccionar un campo automático, luego el sistema seleccionará los campos automáticamente. Esta pestaña también le permite cambiar el orden de los campos.

Los campos se pueden agrupar para resaltar lógicamente cualquier parte del informe o para especificar una disposición especial de las columnas. Al agregar un grupo, la columna “Ubicación” se activa y le permite seleccionar una de las opciones de ubicación:

  • Automático: el sistema coloca los campos automáticamente;
  • Horizontal: los campos se colocan horizontalmente;
  • Vertical: los campos están dispuestos verticalmente;
  • En una columna separada: los campos se encuentran en columnas diferentes;
  • Juntos: los campos están ubicados en una columna.


5. Selección. Contiene selecciones utilizadas en la variante del informe. La configuración de selecciones se analizó en detalle en la parte 1 de este artículo. Los filtros se configuran por separado para cada grupo, pero puede configurar filtros generales para una opción de informe si selecciona la raíz "Informe" en el árbol de estructura.


6. Clasificación. Contiene los campos de clasificación utilizados en la variante del informe. La configuración de campos de clasificación se analizó en detalle en la Parte 1 de este artículo. La clasificación se configura por separado para cada grupo, pero puede configurar campos de clasificación generales para una opción de informe si selecciona la raíz "Informe" en el árbol de estructura.


7. Registro condicional. Contiene elementos de diseño condicionales utilizados en la variante del informe. La configuración de la apariencia condicional se analizó en detalle en la Parte 1 de este artículo. La apariencia condicional se configura por separado para cada grupo, pero puede establecer elementos generales de apariencia condicional para una opción de informe si selecciona la raíz "Informe" en el árbol de estructura.


8. Configuraciones adicionales. Contiene configuraciones de diseño de informes adicionales. Le permite seleccionar la apariencia general del informe, la ubicación de los campos, agrupaciones, detalles, recursos, totales, configurar la configuración del gráfico, controlar la visualización del título, los parámetros y la selección, determinar la posición de los recursos y fijar el encabezado y la agrupación. columnas de la versión del informe.


En conclusión, me gustaría señalar que la configuración del informe no solo se puede guardar como una opción de informe, sino que también se puede cargar en un archivo (menú "Más" - "Guardar configuración"). Para descargar, debes seleccionar “Cargar configuración” y seleccionar el archivo guardado. Así, podemos transferir configuraciones de variantes de informes entre diferentes bases de datos que tengan la misma configuración.


En base a esto, podemos resumir que el usuario no sólo puede personalizar de forma independiente el informe para adaptarlo a sus necesidades, sino también guardar su configuración y utilizarla en el futuro si es necesario.

A la luz del próximo lanzamiento 8.2.14, intentaré describir algunas funciones nuevas del sistema de composición de datos.

Abra el diagrama de diseño de datos, preferiblemente en un informe externo, para facilitar la edición.

Agregamos un conjunto de datos del tipo consulta y escribimos, ya sea manualmente o usando el diseñador de consultas, una consulta simple:

1. Configure una solicitud en el sistema de control de acceso.

2. Configurar campos calculados en el sistema de control de acceso.

3. Configure el diseño de datos en la pestaña de configuración.

4. Inicie 1C Enterprise 8.2.14. Abra el informe. Formamos, recibimos.

Descripción de las nuevas funciones en sí:

1. La fecha actual()

Devuelve la fecha del sistema. Al redactar un diseño, en todas las expresiones que están presentes en el diseño, la función CurrentDate() se reemplaza con el valor de la fecha actual.

2. EXPRESIÓN COMPUTADA()

Sintaxis:

CalcularExpresión(<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Descripción:

La función está diseñada para evaluar una expresión en el contexto de alguna agrupación.

La función tiene en cuenta la selección de agrupaciones, pero no tiene en cuenta selecciones jerárquicas.

La función no se puede aplicar a una agrupación en la selección de grupo de esa agrupación. Por ejemplo, en la selección del grupo Nomenclatura, no puede utilizar la expresión CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Pero dicha expresión se puede utilizar en la selección jerárquica.

Si el registro final precede al registro inicial, se considera que no existen registros para calcular datos detallados y calcular funciones agregadas.

Al calcular expresiones de intervalo para un total general (el parámetro Agrupación está establecido en GrandTotal), se supone que no hay registros para calcular datos detallados y calcular funciones agregadas.

Al generar una expresión para la función CalculateExpression, el compositor de diseño, si la expresión de orden contiene campos que no se pueden usar en la agrupación, reemplaza la función CalculateExpression con NULL.

Opciones

<Выражение>

Tipo: Cuerda. La expresión que se va a evaluar.

<Группировка>

Tipo: Cuerda. Contiene el nombre de la agrupación en cuyo contexto se evaluará la expresión. Si se utiliza una cadena vacía como nombre de agrupación, el cálculo se realizará en el contexto de la agrupación actual. Si se utiliza la cadena GrandTotal como nombre del grupo, el cálculo se realizará en el contexto del total general. De lo contrario, el cálculo se realizará en el contexto del grupo principal con el mismo nombre.

Por ejemplo:

Suma(Ventas.SumTurnover)/Calcular(“Suma(Ventas.SumTurnover)”, “Total”)

En este ejemplo, el resultado será la relación entre el importe del campo Sales.SumTurnover del registro de agrupación y el importe del mismo campo en todo el diseño;

<ОбластьВычисления>

Tipo: Cuerda. El parámetro puede tomar los siguientes valores:

  • GeneralTotal: la expresión se calculará para todos los registros de agrupación.
  • Jerarquía: la expresión se evaluará para el registro jerárquico principal, si lo hay, y para toda la agrupación si no hay ningún registro jerárquico principal.
  • Agrupación: la expresión se evaluará para el registro de agrupación de agrupación actual.
  • Agrupación sin recursos: al calcular una función para un registro de grupo por recurso, la expresión se evaluará para el primer registro de grupo de la agrupación original.

Al calcular una función CalcularExpresión() con el valor Agrupación sin recursos para registros de grupo que no son agrupaciones de recursos, la función se calcula de la misma manera que se calcularía si el valor del parámetro fuera igual al valor de Agrupación.

El generador de diseño de composición de datos, al generar un diseño de composición de datos al generar un campo de recurso mediante el cual se realiza la agrupación en el diseño, coloca una expresión en el diseño que se calcula utilizando la función CalcularExpresión(), que indica el parámetro Agrupación sin recursos. Para otros recursos, las expresiones de recursos habituales se colocan en la agrupación de recursos.

<Начало>

Tipo: Cuerda. Indica desde qué registro debe comenzar el fragmento, en qué funciones de expresión agregadas deben calcularse y desde qué registro obtener valores de campo fuera de las funciones agregadas. El valor puede ser uno de los siguientes:

<Конец>

Tipo: Cuerda. Indica a qué registro se debe continuar el fragmento, en el que se deben calcular las funciones agregadas de la expresión. El valor puede ser uno de los siguientes:

  • Primero. Es necesario obtener el primer registro de agrupación. Después de la palabra entre paréntesis, puede especificar una expresión, cuyo resultado se utilizará como desplazamiento desde el comienzo de la agrupación. El valor resultante debe ser un número entero mayor que cero. Por ejemplo, Primero(3): recibe el tercer registro desde el principio de la agrupación.

Si el primer registro está fuera de la agrupación, entonces se considera que no existen registros. Por ejemplo, si hay 3 registros y desea obtener el Primero (4), se considera que no hay registros.

  • Último. Necesita obtener el último registro de agrupación. Después de la palabra entre paréntesis, puede especificar una expresión, cuyo resultado se utilizará como desplazamiento desde el final de la agrupación. El valor resultante debe ser un número entero mayor que cero. Por ejemplo, Último(3): recibe el tercer registro desde el final del grupo.

Si el último registro está fuera de la agrupación, entonces se considera que no existen registros. Por ejemplo, si hay 3 registros y desea obtener el último (4), se considera que no hay registros.

  • Anterior. Necesita obtener el registro de agrupación anterior. Después de la palabra entre paréntesis, puede especificar una expresión, cuyo resultado se utilizará como un desplazamiento hacia atrás del registro de agrupación actual. Por ejemplo, Anterior(2): obtener el anterior del registro anterior.

Si el registro anterior va más allá de la agrupación (por ejemplo, para el segundo registro de agrupación necesita obtener Anterior(3), entonces se obtiene el primer registro de agrupación.

Al recuperar el registro anterior para un total de agrupación, se considera que se obtiene el primer registro.

  • Próximo. Necesita obtener el siguiente registro de agrupación. Después de la palabra entre paréntesis, puede especificar una expresión, cuyo resultado se utilizará como un desplazamiento hacia adelante desde el registro de agrupación actual. Por ejemplo, Siguiente(2): obtener el siguiente del siguiente registro.

Si el siguiente registro va más allá de la agrupación, entonces se considera que no hay registros. Por ejemplo, si hay 3 registros y se recibe Next() para el tercer registro, entonces se considera que no hay registros.

Cuando se recibe el siguiente registro del total de la agrupación se considera que no existe ningún registro.

  • Actual. Necesita obtener el registro actual.

Al recuperar un total de agrupación, se obtiene el primer registro.

  • Valor límite. La necesidad de obtener un registro por el valor especificado. Después de la palabra LimitingValues ​​​​entre paréntesis, debe indicar la expresión con cuyo valor desea iniciar el fragmento, el primer campo de orden.

El primer registro cuyo valor del campo de pedido sea mayor o igual al valor especificado se devolverá como registro. Por ejemplo, si el campo Período se utiliza como campo de orden y tiene los valores 01/01/2010, 01/02/2010, 01/03/2010 y desea obtener el Valor límite (Fecha y hora (2010 , 1, 15)), entonces se obtendrá un registro con la fecha 01/02.

<Сортировка>

Tipo: Cuerda. Enumera expresiones, separadas por comas, que describen las reglas de ordenamiento. Si no se especifica, el orden se realiza de la misma manera que para la agrupación para la cual se evalúa la expresión. Después de cada expresión, puede especificar las palabras clave Ascendente (para ordenar en orden ascendente), Descendente (para ordenar en orden descendente) y AutoOrder (para ordenar los campos de referencia según los campos mediante los cuales desea ordenar el objeto referenciado). La palabra Orden automático se puede utilizar tanto con la palabra Ascendente como con la palabra Descendente.

<ИерархическаяСортировка>

Tipo: Cuerda. Igual que la opción Ordenar. Se utiliza para organizar registros jerárquicos. Si no se especifica, el compositor de diseño genera el orden de acuerdo con el orden especificado en el parámetro Ordenar.

<ОбработкаОдинаковыхЗначенийПорядка>

Tipo: Cuerda. Especifica la regla para determinar el registro anterior o siguiente en caso de que haya varios registros con el mismo valor de orden:

  • Por separado significa que se utiliza una secuencia de registros ordenados para determinar los registros anterior y siguiente. Valor por defecto.
  • Juntos significa que los registros anterior y siguiente se determinan en función de los valores de las expresiones de orden.

Por ejemplo, si la secuencia resultante está ordenada por fecha:

fecha Nombre completo Significado
1 01 de enero de 2001 Ivanov M. 10
2 02 de enero de 2001 Petrov s. 20
3 03 de enero de 2001 Sidorov R. 30
4 04 de enero de 2001 Petrov s. 40

Si el valor del parámetro es Por separado, entonces:

§ la entrada anterior a la entrada 3 será la entrada 2.

§ si el fragmento de cálculo se define como Actual, Actual (respectivamente, los parámetros Inicio y Fin), entonces para el registro 2 este fragmento constará de un registro 2. La expresión CalculateExpression(“Suma (Valor)”, Actual, Actual) ser igual a 20.

Si el valor del parámetro es Juntos, entonces:

§ la entrada anterior a la entrada 3 será la entrada 1.

§ si el fragmento de cálculo se define como Actual, Actual (respectivamente, los parámetros Inicio y Fin), entonces para el registro 2 este fragmento constará de los registros 2 y 3. La expresión CalculateExpression(“Suma (Valor)”, Actual, Actual) será igual a 50.

Al especificar un valor de parámetro igual a Juntos, en los parámetros Inicio y Fin no puede especificar un desplazamiento para las posiciones Primero, Último, Anterior y Siguiente.

CalcularExpresión(“Suma(SumaRotación)”, “Primero”, “Actual”)

Si desea obtener el valor de agrupación en la línea anterior, puede utilizar la siguiente expresión:

CalcularExpresión(“Tasa”, “Anterior”)

Lista nuevo funciones:

CalcularExpresiónConGroupArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

La función devuelve una matriz, cada elemento del cual contiene el resultado de evaluar una expresión para agruparla por el campo especificado.

CalcularExpresiónConGroupValueTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

La función devuelve una tabla de valores, cada fila de la cual contiene el resultado de evaluar expresiones para agruparlas por el campo especificado.

Valor lleno(<Выражение>) – Devuelve Verdadero si el valor es distinto del valor predeterminado de este tipo, distinto de NULL, distinto de una referencia vacía, distinto de Indefinido. Los valores booleanos se comprueban en busca de NULL. Se comprueba que las cadenas no contengan caracteres que no sean espacios en blanco.

Formato(<Выражение>, <Форматная строка>): recibe una cadena formateada del valor pasado. La cadena de formato se establece de acuerdo con la cadena de formato del sistema 1C:Enterprise.

Subcadena(<Выражение>, <Начальные символ>, <ДлинаПодстроки>): esta función está diseñada para extraer una subcadena de una cadena.

Longitud de la línea(<Выражение>) – La función está diseñada para determinar la longitud de una cadena. Parámetro: expresión de cadena

Línea(<Выражение>) – Si se pasa una matriz como parámetro, la función devuelve una cadena que contiene representaciones de cadena de todos los elementos de la matriz, separados por los caracteres “; “. Si se pasa una tabla de valores como parámetro, la función devuelve una cadena que contiene las representaciones de cadena de todas las filas de la tabla de valores, con las representaciones de celda de cada fila separadas por los caracteres “; “, y las líneas son un símbolo de avance de línea. Si algún elemento tiene una representación de cadena vacía, entonces se muestra la cadena en lugar de su representación.<Пустое значение>.

Inicie sesión en el sitio como estudiante

Inicie sesión como estudiante para acceder a los materiales escolares.

Sistema de composición de datos 1C 8.3 para principiantes: contando los resultados (recursos)

El propósito de esta lección será:

  • Redactar un informe que muestre una lista de productos (directorio de alimentos), su contenido calórico y sabor.
  • Agrupa productos por color.
  • Obtenga información sobre cómo resumir (recursos) y campos calculados.

Crear un nuevo informe

Como en lecciones anteriores, abrimos la base de datos " fiambres"en el configurador y crea un nuevo informe a través del menú" Archivo"->"Nuevo...":

Tipo de Documento - informe externo:

En el formulario de configuración del informe, escriba el nombre " Lección 3" y presione el botón " Diagrama de composición de datos abiertos":

Deje el nombre del esquema predeterminado y haga clic en el botón " Listo":

Agregar una solicitud a través del constructor

En la pestaña " conjunto de datos" haga clic verde signo más y seleccione " Agregar conjunto de datos - Consulta":

En lugar de escribir el texto de la solicitud manualmente, lo ejecutamos nuevamente. constructor de consultas:

En la "pestaña" Mesas"arrastrar la mesa" Alimento" de la primera columna a la segunda:

Seleccione de la tabla " Alimento"campos que solicitaremos. Para ello, arrastre y suelte los campos" Nombre", "Gusto", "Color" Y " Contenido calórico" de la segunda columna a la tercera:

Resultó así:

Presiona el botón " DE ACUERDO" - el texto de la solicitud se generó automáticamente:

Crear configuraciones de presentación de informes

Ir a la pestaña " Ajustes" y haga clic en varita mágica, llamar diseñador de configuración:

Seleccione el tipo de informe " Lista..." y presione el botón " Más":

Arrastre desde la columna de la izquierda hacia la derecha los campos que se mostrarán en la lista y haga clic en " Más":

Arrastre desde la columna de la izquierda al campo de la derecha " Color" - Pasará agrupamiento líneas en el informe. Haga clic en " DE ACUERDO":

Y aquí está el resultado del trabajo del diseñador. Jerarquía de nuestro informe:

  • el informe en su conjunto
  • agrupando "Color"
  • entradas detalladas: líneas con nombres de alimentos

Guarde el informe (botón disquete) Y sin cerrar Inmediatamente abriremos el configurador en modo usuario. Resultó así:

Cambiar el orden de las columnas

pero vamos cambiemos el orden columnas (flechas arriba y abajo) para que se parezca a la siguiente figura:

Guardemos el informe y volvamos a abrirlo en modo usuario:

Genial, eso es mucho mejor.

Resumamos el contenido calórico.

Sería bueno resumir el contenido calórico de los alimentos por grupo. Para ver la suma del contenido calórico de todos los productos, digamos, blancos o amarillos. O descubra el contenido calórico total de todos los productos de la base de datos.

Para ello existe un mecanismo de cálculo de recursos.

Ir a la pestaña " Recursos"y arrastra el campo" Contenido calórico"(vamos a resumirlo) de la columna de izquierda a la derecha.

En este caso, en el campo, seleccione la expresión de la lista desplegable " Cantidad (calorías)", ya que el total será la suma de todos los elementos incluidos en el total:

Guardamos y generamos un informe:

Ahora tenemos resultados para cada uno de los grupos y para el informe en su conjunto.

Resumámoslo (promedio) en términos de calorías.

Ahora hagamos que aparezca en otra columna. promedio Contenido calórico de los productos por grupos y en el informe en su conjunto.

No puede tocar la columna "Calorías" existente: el total ya se muestra en ella, por lo que creemos otro campo, que será una copia exacta del campo "Calorías".

Para crear dicho campo "virtual", usaremos el mecanismo campos calculados.

Ir a la pestaña " Campos calculados" y presione verde Signo de más:

En una columna " Ruta de datos"escribimos el nombre del nuevo campo ( sin problemas, sin espacios). Que se llame " Contenido calórico promedio", y en la columna " Expresión"escribimos el nombre de un campo existente a partir del cual se calculará el nuevo campo. Escribimos allí " Contenido calórico". Columna " Título" se completará automáticamente.

Hemos agregado un nuevo campo (" Contenido calórico promedio"), pero no aparecerá en el informe por sí solo; deberá volver a llamar diseñador de configuración("varita mágica") o agregue este campo a mano.

Vamos a hacerlo segundo forma. Para hacer esto, vaya a la pestaña " Ajustes", seleccionar " Informe"(después de todo, queremos agregar el campo completo al informe), seleccione la pestaña en la parte inferior" Campos seleccionados"y arrastra el campo" Contenido calórico promedio"de la columna de izquierda a derecha:

Resultó así:

Guardamos y generamos un informe:

Ha aparecido el campo y vemos que sus valores son los valores del campo "Calorías". ¡Excelente!

Para hacer esto, usaremos nuevamente el mecanismo que ya conocemos. recursos(resumiendo). Ir a la pestaña " Recursos"y arrastra el campo" Contenido calórico promedio"de la columna de izquierda a derecha:

Además, en la columna " Expresión"elegir" Promedio (calorías promedio)":

Guardamos y generamos un informe:

Vemos que para los grupos, es decir, para cada color, y para el informe en su conjunto, el valor medio se calculó de forma absolutamente correcta. pero están presentes entradas adicionales para productos individuales (no grupos) que me gustaría eliminar del informe.

¿Sabes por qué aparecieron (valores no por grupo)? Porque cuando agregamos el campo " Contenido calórico promedio"en la configuración del informe, en el segundo paso seleccionamos el informe completo y este nuevo campo entró en el elemento " Detallado registros".

Arreglemos el error. Para hacer esto, regrese a la pestaña " Ajustes", seleccionar " Entradas detalladas" primero desde arriba (paso 2) y luego " Entradas detalladas"desde abajo (paso 3), vaya al marcador" Seleccionado campos" y veremos en su columna derecha el elemento " Auto".

Elemento " Auto" - este no es un solo campo. Estos son varios campos que caen aquí automáticamente según la configuración de nivel superior.

Para ver cuáles son estos campos, haga clic en el elemento " Auto" bien botón y seleccione " Expandir":

Elemento " Auto" ampliado a los siguientes campos:

Y aquí está nuestro campo" Contenido calórico promedio"que vino aquí desde el punto " Informe" cuando lo arrastramos allí. Sólo vamos a eliminar marque la casilla junto a este campo para eliminar su salida.

Una de las herramientas de desarrollo más convenientes y únicas de 1C es el sistema de composición de datos (DCS). Pocos sistemas de información permiten a los desarrolladores crear informes sin escribir código. Este mecanismo fue desarrollado para simplificar y acelerar el desarrollo de formularios de informes y brindar más oportunidades a los usuarios para trabajar con los datos de salida. Esto último es muy valorado por los usuarios avanzados, quienes gracias a esto pueden personalizar el informe de forma independiente según sus propias necesidades, sin esperar las acciones de los desarrolladores.

Creando un informe en 1C a través de SKD

El proceso de elaboración de un informe utilizando ACS se puede dividir en las siguientes etapas:

  1. Creando una solicitud. Puede escribir una solicitud manualmente o prescindir del código utilizando una interfaz conveniente;
  2. Configuración del informe. Seleccionar campos, totales, agrupaciones, parámetros, diseño de informes;
  3. Después de esto, todo lo que tenemos que hacer es conectar el informe resultante a la configuración de cualquier forma disponible.

A pesar de la posibilidad de que los usuarios personalicen los informes en el sistema de control de acceso, estos deben crearse a través del configurador.

Veamos un ejemplo de creación de un informe externo en un sistema de control de acceso:


Ahora vamos a 1C, abrimos nuestro informe para asegurarnos de que las acciones tomadas sean correctas. Todos los datos se reflejan, las agrupaciones se pueden contraer y ampliar. Como puede ver, el sistema de control de acceso le permite recibir informes completos sin escribir código, con la excepción de requisitos no estándar. Teniendo en cuenta que la mayoría de los informes tienen una estructura similar, el conocimiento del sistema de control de acceso reducirá significativamente el tiempo de desarrollo de estos objetos.

Este mecanismo se ha vuelto muy popular debido a que admite amplias capacidades de generación de informes. Además, no sólo los desarrolladores pueden utilizarlos, sino también los usuarios normales.

capacidades SCA

Hay situaciones en las que hemos hecho un informe, y luego viene un usuario y pide hacer una pequeña modificación. Por ejemplo, en lugar de nombres de productos, muestre números de artículo. SKD permite a los usuarios realizar dichas modificaciones de forma independiente utilizando el botón "Más" - "Cambiar opción...".


La ventana que se abre es similar a la ventana de configuración del informe en el configurador y también tiene funciones similares. Para resolver la tarea, el usuario debe ir a la pestaña “Campos” y cambiar el campo “Nomenclatura”. Este campo de edición se abre al hacer doble clic y el botón "Seleccionar..." estará disponible.


La ventana que se abre nos da la oportunidad de seleccionar cualquier valor que aparecerá en el campo “Nomenclatura”. Algunos campos tienen un signo más a la izquierda: el desarrollador ha colocado enlaces en estos campos, lo que significa que podemos ver sus detalles. Abrimos “Nomenclatura” y vemos el artículo que necesitamos. Selecciónelo y selecciónelo.


La ventana para cambiar las opciones del informe contiene muchas funciones útiles del sistema de composición de datos. Por ejemplo, el usuario puede cambiar de forma independiente el orden de las agrupaciones, agregar selecciones o aplicar un diseño condicional. Completamos la edición y generamos un informe; como puede ver, ahora se muestra toda la gama de productos en forma de artículos.


El mecanismo SKD 1C:Enterprise 8.3 también ha ampliado la funcionalidad para los desarrolladores. Al desarrollar el informe, utilizamos solo 2 pestañas: "Conjuntos de datos" y "Configuración", pero hay muchas más en el ACS. Para utilizar todas las funciones del sistema de composición de datos, es necesario comprender para qué sirve cada una de las pestañas:

  1. Conjuntos de datos: todas las consultas involucradas en la generación del informe se enumeran aquí;
  2. Conexiones de conjuntos de datos: se utilizan para crear conexiones entre diferentes consultas desde la primera pestaña;
  3. Campos calculados: una lista de campos agregados que no provienen de la solicitud. Se utiliza con mayor frecuencia en los casos en que, según los valores de varios campos, es necesario obtener 1 valor de la solicitud;
  4. Recursos. En 1C, este es el nombre de los campos cuyos resultados necesita conocer. Los recursos respaldan diversas operaciones aritméticas: suma, cantidad, máximo y otras;
  5. Opciones. Se utilizan si para generar un informe es necesario que el usuario ingrese ciertos datos: fecha, divisiones o nomenclatura, por ejemplo;
  6. Diseños. Diseñado para casos en los que los usuarios desean ver un informe con un diseño exclusivo. Puede crear un lugar separado para las firmas o una nueva parte superior del informe; todo esto se puede hacer aquí;
  7. Diagramas anidados. Son necesarios cuando su informe debe contener datos de otros informes;
  8. Ajustes. La sección declara los campos que se mostrarán, agrupa y configura la apariencia del informe.


La cantidad de posibilidades incorporadas por los desarrolladores al mecanismo ACS es grande, pero muchas de ellas se utilizan muy raramente. Incluso los programadores experimentados de 1C pueden no utilizar algunas funciones después de años de trabajo. Para empezar a trabajar con éxito en el sistema de control de acceso, basta con conocer los conceptos básicos y las configuraciones de uso frecuente. En casos raros, la documentación vendrá al rescate.

CalcularExpresión Es una función ACS bastante difícil de entender y los ejemplos de aplicación en la información de referencia son bastante escasos. Este artículo analiza ejemplos que seguramente serán útiles para todos los desarrolladores:

  1. total acumulado en agrupación;
  2. total acumulado en una tabla cruzada;
  3. obteniendo el valor anterior;
  4. Salida PM en una línea.

1. Obtención de un indicador en base devengado

Obtengamos la cantidad de bienes como un total acumulado a nivel de agrupación. Para hacer esto, cree un campo calculado (consulte la Figura 1).
En la pestaña "Recursos", configure la función para el campo calculado:
CalcularExpresión("Suma(Cantidad de facturación)", "Primero", "Actual")
que sumará el número de productos desde el primer registro hasta el actual (ver Figura 2).

Si es necesario obtener la cantidad total acumulada de un artículo a nivel de registros detallados, configuramos la función CalculateExpression para el campo calculado en la pestaña "Campos calculados" (ver Figura 3).
Dependiendo del nivel de obtención del total acumulado, creamos una agrupación (ver Figura 4): a nivel de recursos - agrupación por bienes, a nivel de control remoto - agrupación de registros detallados.
Figura 4. Agrupaciones de informes con totales acumulados

2. Obtener el valor del indicador de la fila anterior.

Consigamos el tipo de cambio de la fecha y de la fecha anterior. Para hacer esto, cree un campo calculado y escriba la siguiente expresión en el campo de expresión (ver Figura 5):
CalcularExpresión("Tasa", "Anterior", "Anterior")
que tomará el valor anterior del tipo de cambio para la fila actual, el último parámetro de la función limita la recepción de datos.
Como estamos trabajando a nivel de registros detallados, inmediatamente vamos a la pestaña "Configuración" y creamos una agrupación: registros detallados.

3. Obtención de un indicador como total acumulado en una tabla cruzada

Obtengamos la cantidad de bienes en forma devengada por período. Para hacer esto, cree un campo calculado (consulte la Figura 1). En la pestaña "Recursos", especificamos la siguiente expresión para el campo calculado (ver Figura 6):
CalcularExpresión("Suma(Cantidad de facturación)", "Período", "Primero", "Actual")
que a nivel de agrupación calculará la cantidad de bienes en el intervalo desde la primera línea hasta la actual en el contexto del período de cada artículo.
En la pestaña "Configuración", cree una tabla agrupando por elemento en una fila y agrupando por período en una columna (consulte la Figura 7).

4. Generar datos tabulares en una línea

En el artículo se analizan los métodos para mostrar datos tabulares en una línea, incluido el método que utiliza la función CalculateExpression.

gastrogurú 2017