Contactos

Usando selecciones en SCD. Uso de selecciones en DCS Cómo funciona el autocompletado de campos disponibles en el esquema de composición de datos

¡Buenos días mis lectores! Hoy continuaremos analizando los conceptos básicos del sistema de diseño. En esta serie de artículos, aprendió qué es un sistema de control de acceso y se familiarizó con los componentes principales de un sistema de control de acceso. También analizamos los datos de entrada para crear un informe y aprendimos las etapas principales de la ejecución de un informe en un sistema de control de acceso. Además, muchos tuvieron la oportunidad de poner a prueba sus conocimientos superando un breve examen. Ahora puede echar un vistazo al contenido del artículo y ver qué se trata en él.

Conjunto de datos: consulta.

  1. A diferencia de una consulta normal, no existe una cláusula RESULTADOS en la consulta de composición de datos. En cambio, los totales se generan en la pestaña "Recursos". En esta pestaña, selecciona los campos para los cuales desea obtener expresiones finales. Y en la pestaña “Configuración” se indica en qué apartado se obtendrán los resultados, es decir, aquí se crean las agrupaciones adecuadas y en base a ellas se calculan los recursos. Puedes leer más sobre esto en el artículo.
  2. El siguiente punto se refiere a la configuración de selección. Hay dos posibilidades de ejecución.
    1. A través de la configuración de la opción de informe. Esto se puede hacer en la pestaña "Configuración" - "Selección". Si utilizamos esta opción, entonces es la más flexible, ya que podemos especificar diferentes tipos de comparaciones que incluso el usuario puede elegir. Además, al utilizar esta opción, las condiciones de filtrado se imponen en la propia consulta. Si el informe se basa en una consulta por lotes que utiliza tablas temporales, la selección afectará a todas las tablas de la consulta por lotes donde aparece el campo de selección.
    2. A nivel de solicitud. Si usamos una consulta, no podremos usar nada más que la operación de igualdad.
      La excepción es el caso cuando necesitamos realizar un filtrado "duro" de los datos según un valor determinado. Digamos, por valor de enumeración. En la pestaña “Parámetros” podemos establecer una condición. Si habilitamos el indicador “Limitar disponibilidad”, el usuario no podrá cancelar esta condición.
  3. También es más correcto aplicar la clasificación en el nivel de configuración de las opciones del informe.
    1. Si especifica un campo de clasificación en la solicitud, entonces el usuario especificará otro campo al configurar su versión del informe, entonces nuestra configuración realizada en el nivel de solicitud tendrá la prioridad más baja. Primero se realizará la clasificación establecida por el usuario en la configuración de la variante del informe. Por lo tanto, si necesita configurar la clasificación "por defecto", usamos la configuración de la opción de informe en el Configurador.
    2. ¿Qué sucede si necesita configurar una clasificación "dura" en un informe para que el usuario no pueda cambiarlo? Luego configuramos la clasificación a nivel de consulta y en la pestaña "Conjuntos de datos" configuramos una limitación de campo. Seleccione el conjunto de datos requerido y marque la casilla en la columna "Limitación de campo" - "Pedidos".

Parámetros de la tabla virtual.

  • La construcción de tablas virtuales de registros contables, registros de acumulación y registros de información depende de una fecha determinada. Puede ser una fecha o un intervalo, como en el caso de una tabla de saldos y facturación. La SDS se crea de tal forma que si el informe se basa en una tabla virtual, entonces es necesario dejar que el usuario elija para qué intervalo o en qué fecha generar el informe. SKD agrega automáticamente los parámetros de período necesarios al diagrama de diseño.
  • Si en la consulta se selecciona una tabla virtual de saldos o una tabla virtual de registros de información, automáticamente se agrega un parámetro llamado “Período”.
  • Si en la solicitud se selecciona una tabla virtual de saldos y facturación o una tabla virtual de facturación, se añaden automáticamente los parámetros “Inicio del período” y “Fin del período”.
  • ¿Qué hacer si necesitas obtener saldos al final del período? Hay dos maneras:
    1. Vaya a la pestaña “Parámetros” y en el parámetro “Período” en la columna “Expresiones” escriba lo siguiente:
      &Fin del período. También habilitaremos el indicador "Limitar disponibilidad".
    2. Nos deshacemos por completo del parámetro "Período" y lo reemplazamos con el parámetro "Fin del período". Configuremos un parámetro de tabla virtual opcional:
      • Vaya a la pestaña "Conjuntos de datos" y haga clic en el botón "Creador de consultas...".
      • En la pestaña "Composición de datos" en la esquina superior izquierda, haga clic en el botón para abrir el cuadro de diálogo "Opciones de tabla virtual" (este es un botón cuadrado gris con la imagen de un engranaje en el fondo de una mesa pequeña).
      • En el campo “Periodo” del cuadro de diálogo escribimos: &Fin del Periodo.
      • Ahora en el texto de la solicitud del conjunto de datos en los parámetros de la tabla virtual, aparece este parámetro entre llaves:
Registro de acumulación. Bienes restantes. Restante(((&EndPeriod) ), ) COMO Restante

Las llaves indican una extensión del lenguaje de consulta de composición de datos. Esto también indica que este parámetro es opcional. Esto significa que si no está definido en el esquema de composición de datos, entonces los saldos se obtendrán a la fecha actual.

Extensión del lenguaje de consulta.

Estas son instrucciones especiales que están entre llaves en el cuerpo de la solicitud. Estas instrucciones indican los campos y parámetros que se pueden manipular al configurar una versión del informe. Los datos de las llaves estarán presentes en el diagrama de diseño incluso si la casilla de verificación Autocompletar está desactivada.

Cuando se crea un conjunto de datos de consulta, de forma predeterminada, los campos disponibles del esquema de composición de datos se completan automáticamente en función de la consulta creada (la casilla de verificación "Autocompletar" está seleccionada en la pestaña "Conjuntos de datos").

¿Cómo funciona el autocompletado de los campos del esquema de composición de datos disponibles?

    1. Los campos de la lista de selección de consultas y sus campos secundarios pasan a estar disponibles.
    2. Si seleccionamos del registro de acumulación, incluso los campos de registro no incluidos en la solicitud estarán disponibles en los campos de composición de datos. Pero estos campos sólo están disponibles para su selección (en expresiones condicionales)
      y no se pueden utilizar como campos de salida.
    3. Los parámetros de las tablas virtuales “Periodo”, “Inicio de Periodo” y “Fin de Periodo” pasan a ser
      disponible para su selección.
    4. Si se especifica una condición "dura" en el texto de la solicitud, este parámetro también se agregará a la pestaña "Parámetros".

Si la casilla de verificación Autocompletar está desactivada, los campos del esquema de composición de datos se borran, pero los parámetros encerrados entre llaves en el texto de la solicitud permanecen.

¿Cómo completar usted mismo los campos del esquema de composición de datos?

Desmarque la casilla de verificación "Autocompletar" en la pestaña "Conjuntos de datos".

Haga clic en el botón "Creador de consultas...". Creemos la siguiente solicitud:

SELECCIONE Restos. Nomenclatura AS Nomenclatura, permanece. Cantidad AS Cantidad Registro Acumulación. Bienes restantes. Restante(((&EndPeriod) ), ) COMO Restante

En la pestaña "Tablas" podemos configurar los parámetros de la tabla virtual para todas las tablas.

Ahora en la pestaña "Diseño de datos", seleccione la pestaña "Campos". Aquí configuramos los campos de selección que
se presentará en el diagrama de diseño.

El campo "Y..." significa que los registros secundarios se incluirán en la selección.
campos de tipo complejo, como directorios y documentos, etc. Si el campo es como un número, será imposible poner una bandera en el campo "Y...".

Seleccionemos dos campos “Nomenclatura” y “Cantidad”. Para el campo "Nomenclatura", establezca la bandera "I...",
para que se seleccionen los registros secundarios. Obtendrá la siguiente consulta:

SELECCIONE Restos. Nomenclatura AS Nomenclatura, permanece. Cantidad AS Cantidad (SELECCIONAR Nomenclatura. * , Cantidad) Registro de acumulación. Bienes restantes. Restante(((&EndPeriod) ), ) COMO Restante

En la nueva solicitud, entre llaves, apareció otra sección SELECT: este es el texto de extensión que indica los campos que estarán disponibles en el diseño. El campo “Nomenclatura.*” indica que el campo “Nomenclatura” y sus detalles secundarios, como “Código”, “Nombre”, etc., estarán disponibles. Entonces, nosotros mismos completamos los campos de diseño.

Pero ahora no podemos usar campos en las condiciones de diseño. Si va a la pestaña “Configuración” y selecciona la pestaña “Selección”, no podrá establecer condiciones para ninguno de los campos que seleccionamos en el párrafo anterior. ¿Por qué?

La imposición de condiciones a los parámetros de la tabla virtual también se debe especificar en la pestaña "Composición de datos" del Diseñador de consultas. En la esquina superior izquierda, haga clic en el botón para abrir el cuadro de diálogo "Parámetros de la tabla virtual"
(Este es un botón cuadrado gris con la imagen de un engranaje en el fondo de una mesa pequeña). En el campo “Condición” del cuadro de diálogo escribimos: Nomenclatura. Ahora en el texto de la solicitud del conjunto de datos en los parámetros de la tabla virtual, aparecerá este parámetro de “Nomenclatura” entre llaves:

Registro de acumulación. Bienes restantes. Saldos(((&Fin del Periodo) ), ((Nomenclatura) )) Saldos AS

En el lenguaje de consulta habitual, especificar un parámetro tiene este aspecto: Nomenclatura = &Nomenclatura. Pero en la extensión del lenguaje de consulta está escrito de manera diferente. Sólo se indica el nombre del campo. Aquí no especificamos la operación de igualdad, desigualdad o jerarquía, ya que el propio usuario seleccionará la operación deseada en su configuración.

En la pestaña "Composición de datos" del Generador de consultas, vemos otra pestaña, "Condiciones". Es necesario indicar en la extensión del lenguaje de consulta las condiciones para la cláusula WHERE. Seleccione el campo "Cantidad". Este campo ahora está disponible en las condiciones de la pestaña “Configuración” - “Selección”. Y aparecieron nuevas líneas en el texto de la solicitud, entre llaves.

(DÓNDE Queda. Cantidad)

Si se especifica la selección por el campo de cantidad, esta oración se insertará en la solicitud final. Donde el tipo de condición y valor de comparación se determinará configurando la opción de informe.

Entonces, creo que es suficiente material por hoy. Si hay algún punto que no quede claro no dudes en preguntar, porque por eso es posible comentar. Este material estará preparado para ser fijado pronto, así que suscríbete a las actualizaciones en nuestro sitio web para no perdértelo.

Y en esta serie de lecciones veremos las funciones del lenguaje de expresión SKD, hablaremos sobre las características del sistema de diseño y también analizaremos la configuración básica de los campos de diseño. ¡Buena suerte para comprender este difícil material!

Al final del artículo quiero recomendarte uno gratuito de Anatoly Sotnikov. Este es un curso de un programador experimentado. Le mostrará por separado cómo crear informes en el sistema de control de acceso. ¡Solo necesitas escuchar atentamente y recordar! Recibirá respuestas a las siguientes preguntas:
  • ¿Cómo crear un informe de lista simple?
  • ¿Para qué sirven las columnas Campo, Ruta y Título en la pestaña "Campos"?
  • ¿Cuáles son las limitaciones de los campos de diseño?
  • ¿Cómo configurar roles correctamente?
  • ¿Cuáles son las funciones de los campos de diseño?
  • ¿Dónde puedo encontrar la pestaña de composición de datos en una consulta?
  • ¿Cómo configurar parámetros en el sistema de control de acceso?
  • Se vuelve aún más interesante...
¿Quizás no debería intentar navegar por Internet usted mismo en busca de la información necesaria? Además, todo está listo para usar. ¡Empieza ya! Todos los detalles sobre lo que hay en las lecciones en video gratuitas están en la página del autor. fabricante de software http://www..pngfabricante de software 2015-12-07 14:51:12 2018-06-12 13:14:13 Sistema de composición de datos (DCS). Parte 2.

¡Atención! Esta es una versión introductoria de la lección, cuyos materiales pueden estar incompletos.

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: conectar conjuntos de datos

  • Escriba un informe que muestre a los clientes y sus productos favoritos. Cada cliente tiene un color favorito y cada producto tiene su propio color; en función de estos colores, debe determinar el "favorito" del producto. Por ejemplo, si el color favorito de Andrey es el rojo, entonces una de sus comidas favoritas serán los tomates (son rojos).
  • Aplique dos conjuntos de datos en el informe. El primer conjunto son datos de la tabla del directorio "Clientes". El segundo son datos de la tabla del directorio "Alimentos".
  • Implementar conexión entre estos dos conjuntos, para que el informe contenga sólo los productos favoritos de cada cliente.

Crear un nuevo informe

Abra la base de datos "Gastronom" en el configurador y cree un nuevo informe a través del menú principal:

Tipo de documento - "Informe externo":

En forma de nuevo informe, indique el nombre “Lección 6” y haga clic en el botón “Abrir diagrama de composición de datos”:

Deje el nombre del esquema predeterminado:

Agregar el primer conjunto de datos

En el diagrama que se abre, vaya a la pestaña "Conjuntos de datos" y seleccione "Agregar conjunto de datos - Consulta" usando el signo más verde:

Llame al constructor de la solicitud:

Indicamos la tabla "Clientes" y los campos que se deben obtener de la solicitud:

Agregar un segundo conjunto de datos

Agregue un segundo conjunto de datos:

Selecciónelo (DataSet2) y vuelva a llamar al constructor de consultas:

Indicamos la tabla del directorio "Alimentos" y los campos que se deben obtener de la solicitud:

El texto de la solicitud resultante fue:

Tenga en cuenta que actualmente tenemos dos conjuntos de datos en el informe: Conjunto de datos1 y Conjunto de datos2. Cada uno tiene su propio texto y datos de solicitud.

Hacer que los nombres sean más descriptivos

Para mayor claridad, cambiemos el nombre de DataSet1 a Clientes y DataSet2 a Alimentos.

Hazlo haciendo doble clic en cada uno de los conjuntos:

Podemos utilizar los datos de cada conjunto en nuestro informe. Accederemos a estos datos a través de campos.

Actualmente, el conjunto “Clientes” tiene los siguientes campos: “Nombre” y “Color Favorito”, y el conjunto “Comida” tiene: “Nombre” y “Color”.

Vemos que los nombres se superponen y podemos confundirnos fácilmente. Entonces, cambiemos los nombres de los campos para que sean más significativos.

Seleccione el conjunto "Clientes" y cambie los nombres de los campos de esta manera:

Luego seleccione el conjunto "Comida" y cambie los nombres de los campos de esta manera:

Llamando al constructor de configuraciones

Finalmente, vaya a la pestaña "Configuración" y haga clic en la varita mágica para abrir el diseñador de configuración:

Tipo de informe: "Lista...":

Seleccione campos para el informe de ambos conjuntos:

¿Ves por qué era tan importante cambiar los nombres de los campos? En la etapa de configuración de composición de datos, no vemos de qué conjuntos provienen estos campos. Sólo vemos sus nombres.

Comprobando el informe

Guardamos el informe y lo generamos en modo usuario:

Sí. Está bien, pero no realmente. Se ha producido la llamada unión cruzada de dos conjuntos (debe estar muy familiarizado con esto por las uniones en consultas que estudiamos en módulos anteriores). Cada registro de la tabla Clientes tiene un registro correspondiente de la tabla Alimentos.

Pero de todos estos registros, debemos dejar solo aquellos cuyo campo “Color favorito del cliente” sea igual al campo “Color de comida”:

Conectamos dos conjuntos de datos.

Para hacer esto, conectaremos dos conjuntos de datos (Clientes y Alimentos) usando los campos Color favorito del cliente y Color de comida.

Vaya a la pestaña "Enlaces de conjunto de datos" y haga clic en el botón más para agregar un nuevo enlace:

Configuramos los parámetros como en la siguiente figura:

Voy a dar una explicación.

Fuente y receptor de la comunicación. Bueno, aquí todo está claro. Indicamos el primer conjunto (Clientes) y el segundo conjunto (Alimentos) de datos. Me gustaría llamar especialmente la atención sobre el hecho de que la comunicación se llevará a cabo según el principio unión exterior izquierda(lo cubrimos en el tema de solicitudes en módulos anteriores). En base a esto, debe elegir qué conjunto será la fuente y cuál el receptor.

Fuente de expresión. Indicamos aquí una expresión o simplemente un campo del conjunto de datos de origen (especificamos el campo ClientFavoriteColor del conjunto de Clientes aquí).

Expresión del receptor. Indicamos aquí una expresión o simplemente un campo del conjunto de datos del receptor (aquí indicamos el campo ColorFood del conjunto de Alimentos).

Por lo tanto, esta conexión dejará de la lista anterior solo aquellas filas para las cuales el campo Color favorito del cliente es igual al campo Color de comida.

Guardemos el informe y ejecútelo en modo usuario:

¡Excelente!

Haré una explicación sobre el campo " Condición de comunicación", sobre el cual los programadores novatos a menudo golpean sus lanzas.

La condición de conexión es un campo auxiliar. Puedes escribir expresiones allí. que involucran campos solo del conjunto de datos especificado en la fuente del enlace.

En este caso, para todas las filas de la fuente del enlace, esta expresión (condición del enlace) se verificará antes de realizar el enlace. Y si esta expresión es VERDADERA, entonces se intentará establecer vínculos entre esta fila y las filas del receptor de vínculos. Si la expresión es FALSA, no se realizarán tales intentos.

En mi último artículo ya escribí que 1C es una plataforma paradójica. El sistema de composición de datos es una de estas paradojas. SKD está diseñado para diseñar informes complejos e implica reemplazar la programación de informes "manual" con el diseño en un conjunto de herramientas multifuncional. La capacidad de utilizar sistemas de control de acceso apareció en la octava versión, pero tardó mucho en aparecer la versión 8.2 para que 1C pudiera utilizarla en sus productos estándar. Por un lado, ACS es un conjunto de herramientas multifuncional con el que se pueden crear informes muy complejos sin una sola línea de código. Sin embargo, el sistema de control de acceso tiene una barrera de entrada bastante alta; aprenderlo y comenzar a utilizarlo completamente “sobre la marcha” es muy difícil, porque la interfaz no es del todo intuitiva y los manuales de uso más completos están disponibles sólo en el sitio web. forma de literatura pagada.

En el proceso de mi estudio de SKD, surgió un problema. Es necesario obtener datos de una tabla de valores de terceros utilizando un lenguaje de consulta y luego operar estos datos como con datos similares de tablas de bases de datos (operaciones de reducción, agrupación, etc.). En el formato clásico, crearíamos una consulta que recibe información de la tabla pasada a la consulta como parámetro.

Solicitud = Nueva solicitud (
"ELEGIR
| Tabla.Nomenclatura,
| Mesa.Almacén
|DESDE
| &TK AS Tabla");
Solicitud.SetParameter("TZ", TZ);

Pero con SKD no todo es tan sencillo. Desgraciadamente, es imposible realizar la operación descrita anteriormente en el sistema de composición de datos. Sin embargo, el sistema ha implementado la capacidad de cargar tablas de valores externas.

Aquí vale la pena hacer una breve digresión y hablar de Datasets. Los conjuntos de datos son fuentes de información de las cuales el sistema de gestión de datos recibe datos que luego compila en un informe. Los conjuntos de datos se dividen en tipos, principalmente utilizando el tipo "Consulta", en cuyo cuerpo el programador escribe una consulta a la base de datos. El tipo "Objeto" se utiliza para cargar datos de objetos externos. En ambos casos, la salida es un determinado conjunto de campos obtenidos como resultado de ejecutar una solicitud o cargar un objeto externo. Posteriormente, estos campos se pueden manipular en la pestaña "Configuración", junto con configuraciones detalladas para la estructura del informe. Para interconectar diferentes conjuntos, el ACS brinda la posibilidad de indicar conexiones entre conjuntos de datos en la pestaña del mismo nombre. Estas conexiones son un análogo directo de la unión izquierda en una consulta clásica. Sin embargo, se debe tener en cuenta que las consultas en cualquier conjunto de datos no “conocen” la existencia de otros conjuntos de datos, en última instancia, las relaciones entre los conjuntos de datos afectarán el diseño de los datos de acuerdo con la estructura especificada en el “; Pestaña Configuración”.

Detallemos el problema con un ejemplo. Existe un informe estándar: Nómina para la organización de la configuración ZiK 8. Es necesario que los tipos de cálculos del informe se agrupen en ciertos grupos. Las correspondencias entre vista de cálculo y grupo se almacenan en una tabla de valores externa. Para cargarlo en el esquema de diseño de datos principal, creamos un "objeto de conjunto de datos" con el nombre "Grupos" (Figura 2). Hacemos una conexión con el "conjunto de datos de consulta" - "Acumulaciones" por tipo de cálculo (Figura 3). En el "conjunto de datos de solicitud" - "Acumulaciones" hay información para grupos, eliminamos todas las entradas. Posteriormente, en la pestaña “Configuración” podemos utilizar el campo “Grupo”, cuyo valor se carga desde una fuente de datos externa (Figura 4). En la función de generación de informes, complementamos la carga de datos externos.

Función GenerateReport(Resultado = Indefinido, Datos de descifrado = Indefinido, OutputInReportForm = True) Exportar

//obteniendo o formando la tabla requerida de valores de “Grupos” y escribiéndola en la variable del mismo nombre

ExternalData = New Structure();//crea y completa la estructura de datos externos
DatosExternos.Insertar(Grupos);

UserPanelValue = TypicoReports.GetUserPanelSettingValuesofObject(ThisObject);
Configuración predeterminada = ConfiguraciónComposer.GetSettings();
TípicoReports.GetAppliedSetting(EsteObjeto);
SpecificReports.GenerateTypicalReport(EsteObjeto, Resultado, Datos de descifrado, OutputToReportForm, ExternalData);
ConfiguracionesLinker.LoadSettings(Configuración predeterminada);
Resultado de devolución;

Función final

Si estuviéramos haciendo un informe desde cero, el código de inicio de generación del informe se vería así:

ExternalDataSets = nueva estructura;
ExternalDataSets.Insert("Grupos", Grupos); //Grupos - la tabla de valores deseada
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //nuestro diseño con diagrama de flujo de datos
Configuración = DataCompositionScheme.DefaultSettings;
DiseñoLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Configuración);
Procesador de composición de datos = nuevoProcesador de composición de datos;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = Nuevo documento tabular;
OutputProcessor = Nuevo OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Leer 9660 una vez



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