Hacer que los “formularios administrados” sean un poco más manejables. Un nuevo mecanismo para colocar elementos en el formulario Por qué se necesitaba un nuevo mecanismo

El editor de formularios se utiliza para crear y editar formularios de objetos de solución de aplicación. El sistema utiliza las formas de los objetos para mostrar visualmente los datos del objeto mientras el usuario trabaja.

Cualquier forma representa una combinación de tres componentes:

  • cuadro de diálogo de formulario: una ventana que se mostrará en la pantalla;
  • módulo de formulario: un programa en un lenguaje integrado responsable de trabajar con controles de formulario y procesar eventos;
  • detalles del formulario: un conjunto de objetos que pertenecen al formulario, cuyos datos utiliza en su trabajo.

El propio editor de formulario proporciona la edición del diálogo del formulario, sus detalles y llama al editor de texto y módulo para editar el módulo de formulario.

La ventana del editor de formulario contiene tres pestañas que permiten editar los tres componentes del formulario.

Editar un cuadro de diálogo de formulario

El editor de formularios permite al desarrollador aprovechar al máximo una amplia gama de capacidades de diálogo. Enumeremos los principales:

Paneles, páginas, marcadores.

El editor de diálogo permite al desarrollador colocar controles especiales en el formulario que ayudan a darle al formulario su propio estilo reconocible, hacen que el acceso a los datos sea simple y claro y también ajustan una gran cantidad de información en un área limitada.

El editor le permite colocar varios paneles en un formulario, cada uno de los cuales puede contener varias páginas. Por ejemplo, un formulario de documento puede contener un panel con dos páginas: Productos y Adicionales:

El desarrollador tiene la capacidad de establecer un modo en el que las páginas se desplazarán dentro del panel o utilizar marcadores para cambiar entre páginas. El editor le permite definir gran número varias opciones para organizar y mostrar marcadores:

Por ejemplo, los marcadores se pueden colocar horizontalmente encima:

O puedes organizar los marcadores de la izquierda verticalmente:

Controles

El editor le permite colocar una gran cantidad de controles diferentes en el formulario. Puede colocar controles arrastrándolos o usando un cuadro de diálogo especial para insertar controles, que le permite configurar simultáneamente las propiedades deseadas del control seleccionado:

En el caso de que el formulario contenga una gran cantidad de controles, el desarrollador puede utilizar el modo de mostrar controles en una lista, lo que le permite navegar rápidamente hasta el control deseado:

El editor ofrece la posibilidad de especificar el orden en el que el usuario omitirá los controles del formulario al ingresar y editar datos. Es posible configurar un orden de recorrido automático o configurar manualmente el orden de recorrido en una lista especial de controles, o haciendo clic con el mouse directamente en el formulario:

Cuadrícula, alineación

El Editor de formularios tiene grandes capacidades para controlar la ubicación de los elementos en el formulario. En particular, admite el diseño de cuadrícula, donde los bordes y tamaños de los controles están alineados con la cuadrícula de diseño ubicada en el formulario. El desarrollador tiene la oportunidad de cambiar el paso de la cuadrícula de marcado y así lograr una ubicación más precisa de los controles:

El editor también admite el uso de líneas de alineación, que sirven para facilitar la alineación y la posición relativa de los controles del formulario. Por ejemplo, en la siguiente ilustración, las líneas de alineación se utilizan para colocar controles en la página Más:

El desarrollador tiene la capacidad de colocar la cantidad requerida de líneas de alineación horizontales o verticales en la página, así como también utilizar líneas de alineación invisibles. El editor crea líneas de alineación invisibles automáticamente después de que dos o más controles se alinean a lo largo de cualquiera de los límites. Por ejemplo, si dos campos mismo tamaño estaban alineados a la izquierda, se creará una línea de alineación invisible a lo largo de los bordes alineados a la derecha de esos campos.

La alineación de los controles también se puede realizar utilizando marcadores especiales que indican la dirección deseada de movimiento de los controles. Los marcadores aparecen cuando dos controles están muy cerca uno del otro.

Los controles de alineación azules indican la dirección deseada de movimiento del control para alinearlo con uno de los bordes del control adyacente:

Los controles de alineación rojos indican la dirección deseada para mover el control cuando se superpone a otro control:

También hay que decir que el editor admite operaciones de alineación, cambio de tamaño y ordenación de un grupo de controles:

Fijaciones

El editor de formularios le permite personalizar el comportamiento de los controles ubicados en el formulario, de modo que al cambiar el tamaño del formulario, se proporciona una percepción natural de la información: una parte de los elementos permanece en su lugar, la otra parte se mueve junto con el límites del formulario, y la tercera parte cambia su tamaño de acuerdo con el cambio del tamaño del formulario.

Para especificar este comportamiento de los elementos del formulario, el desarrollador puede describir enlaces: la dependencia de la posición de los bordes de los controles de la posición de los bordes del formulario. El borde de un control se puede ajustar al borde o centro de un formulario, o al borde o centro de otro control.

El editor admite una amplia variedad varios tipos enlaces y puede mostrarlos gráficamente:

Separadores

Los separadores son controles especiales que le permiten redistribuir el espacio de un formulario sin cambiar su tamaño. En el modo 1C:Enterprise, el separador tiene la capacidad de ser "agarrado" por el mouse y movido dentro del formulario dentro de sus límites, teniendo en cuenta la posibilidad de ubicación de otros controles y la orientación del separador:

Cuando mueve un separador, todos los controles vinculados al separador cambiarán de tamaño o se moverán de acuerdo con los anclajes establecidos:

ActiveX

El editor le permite colocar controles ActiveX en un formulario, que el desarrollador puede configurar y posteriormente administrar utilizando el lenguaje integrado:

Editar un módulo de formulario

Para editar el módulo de formulario, el configurador llama al editor de texto y módulos. Este editor proporciona al desarrollador una amplia variedad de opciones para crear y modificar el texto del módulo.

Editar detalles del formulario

La edición de los detalles del formulario se realiza en la lista, lo que le permite crear nuevos detalles, cambiar los existentes y eliminar detalles innecesarios:

Si un formulario tiene un atributo principal que determina el comportamiento del formulario diferente al estándar, se resalta en negrita. El desarrollador puede colocar el cursor sobre el atributo deseado y, usando el comando de menú, ir inmediatamente al cuadro de diálogo del formulario, al elemento de control que corresponde al atributo seleccionado.

Información adicional

Puede familiarizarse con el uso del editor de formularios en modo real tiempo. Para hacer esto, puede descargar el video de demostración "Ejemplo de desarrollo de un minisistema comercial", que muestra el proceso de desarrollo de un minisistema comercial utilizando este editor para crear formularios de documentos "Factura de recibo", "Factura de gastos" e informe. formularios "Análisis de ventas" y "Análisis de ventas por período".

Y objeto de transferencia de datos para estructurar el código, forma controlada en el entorno 1C 8.2.

Introducción

Comencemos con una breve descripción del concepto de "formulario administrado" y conceptos relacionados de la plataforma 1C. Es posible que los conocedores de plataformas quieran saltarse esta sección.

En 2008 estuvo disponible nueva versión plataforma 1C: Enterprise 8.2 (en adelante, la Aplicación Administrada), que cambia por completo toda la capa de trabajo con la interfaz. Esto incluye la interfaz de comando, los formularios y el sistema de ventanas. Al mismo tiempo, no sólo está cambiando el modelo de desarrollo interfaz de usuario en la configuración, pero también propone una nueva arquitectura para separar la funcionalidad entre la aplicación cliente y el servidor.
La aplicación administrada admite los siguientes tipos de clientes:

  • Cliente pesado (modo de inicio regular y administrado)
  • Cliente ligero
  • cliente web
Una aplicación administrada utiliza formularios creados en nueva tecnología. ellos son llamados Formularios administrados. Para facilitar la transición, las formas anteriores (las llamadas Formas regulares) también son compatibles, pero su funcionalidad no está desarrollada y solo están disponibles en el modo de inicio de cliente pesado.
Las principales diferencias de los formularios administrados para un desarrollador:
  • Descripción declarativa, no “píxel por píxel” de la estructura. La ubicación específica de los elementos la realiza automáticamente el sistema cuando se muestra el formulario.
  • Toda la funcionalidad del formulario se describe como detalles Y equipos. Los detalles son los datos con los que trabaja el formulario y los comandos son las acciones a realizar.
  • El formulario se ejecuta tanto en el servidor como en el cliente.
  • En el contexto del cliente, casi todos los tipos de aplicaciones no están disponibles y, por lo tanto, es imposible cambiar los datos en la base de datos.
  • Para cada método o variable de formulario, se debe especificar directiva de compilación, definiendo la ubicación de ejecución (cliente o servidor) y el acceso al contexto del formulario.
Enumeremos las directivas para compilar métodos de formulario:
  • &EnCliente
  • &En el servidor
  • &EnServidorSin Contexto
  • &OnClientOnServerSin contexto
Ilustremos lo anterior. La captura de pantalla muestra un ejemplo de un formulario administrado y su módulo en modo de desarrollo. Encuentre la descripción declarativa, accesorios, directivas de compilación, etc.

Todas las discusiones posteriores se centrarán en el lado derecho de la ilustración, sobre cómo estructurar el código del módulo y qué principios le permitirán implementar una interacción cliente-servidor efectiva.

Definamos el problema

Han pasado varios años desde que se utiliza activamente la nueva versión de la plataforma 1C y tanto 1C como sus numerosos socios han lanzado muchas soluciones (configuraciones).
Durante este tiempo, ¿los desarrolladores han desarrollado una comprensión común de los principios de la interacción cliente-servidor al crear formularios y ha cambiado el enfoque de implementación? módulos de software en nuevas realidades arquitectónicas?

Consideremos la estructura del código (módulo de formulario) en varias formas de una configuración típica y trata de encontrar patrones.
Por estructura nos referimos a secciones de código (la mayoría de las veces son bloques de comentarios) asignadas por el desarrollador para agrupar métodos y directivas de compilación para estos métodos.
Ejemplo 1:
Sección de controladores de eventos Método - en el cliente Método - en el servidor Método - en el cliente Sección de procedimientos y funciones de servicio Funciones de control de entradas auxiliares
Ejemplo 2:
Procedimientos y funciones del servicio Documentos de pago Valores Manejadores de eventos
Ejemplo 3:
Procedimientos de servicio en el servidor Procedimientos de servicio en el cliente Procedimientos de servicio en el servidor sin contexto Manejadores de eventos de encabezado Manejadores de eventos de comando
Ejemplo 4:
Procedimientos de propósito general Manejadores de eventos de formulario Procedimientos del subsistema de “información de contacto”
Esencialmente, falta la estructura del código o, para decirlo suavemente, es similar a la que había en Forms 8.1:

  • Palabras no informativas “General, Servicio, Auxiliar”.
  • Intentos tímidos de separar los métodos de cliente y servidor.
  • Los métodos a menudo se agrupan por elementos de la interfaz "Trabajar con parte tabular Productos, Información de contacto".
  • Disposición arbitraria de métodos y grupos de códigos. Por ejemplo, los controladores de eventos pueden estar en la parte superior en un formulario, en la parte inferior en otro, no resaltados en absoluto en un tercero, etc.
  • Y no olvidemos que todo esto está dentro de una configuración.
  • Sí, hay configuraciones en las que las palabras “General, Servicio, Auxiliar” siempre están en el mismo lugar pero...
¿Por qué necesitas una estructura de código?
  • Simplificación del mantenimiento.
  • Simplifica el aprendizaje.
  • Registrar principios generales/importantes/exitosos.
  • ...tu opción
¿Por qué no ayuda el estándar de desarrollo existente de 1C?
Veamos los principios publicados en los discos ITS y en varias "Guías para desarrolladores..." que se recomiendan al escribir un formulario administrado.
  • Minimizar el número de llamadas al servidor.
  • Computación máxima en el servidor.
  • Las llamadas al servidor no contextuales son más rápidas que las contextuales.
  • Programa pensando en la comunicación cliente-servidor.
  • etc.
Son consignas absolutamente ciertas, pero ¿cómo implementarlas? ¿Cómo minimizar el número de llamadas, qué significa programar en modo cliente-servidor?

Patrones de diseño o sabiduría generacional

La interacción cliente-servidor se ha utilizado en diversas tecnologías de software durante décadas. La respuesta a las preguntas planteadas en la sección anterior se conoce desde hace mucho tiempo y se resume en dos principios básicos.
  • Fachada Remota(en adelante Interfaz acceso remoto)
  • Objeto de transferencia de datos(en adelante denominado Objeto de transferencia de datos)
Unas palabras de Martin Fowler, su descripción de estos principios:
  • Cada objeto potencialmente destinado al acceso remoto debe tener interfaz de baja granularidad, lo que minimizará el número de llamadas necesarias para realizar un trámite específico. ... En lugar de solicitar una factura y todos sus elementos por separado, debe leer y actualizar todos los elementos de la factura en una sola solicitud. Esto afecta a toda la estructura del objeto...Recuerde: interfaz de acceso remoto no contiene lógica de dominio.
  • ...si fuera una madre cariñosa, definitivamente le diría a mi hijo: "¡Nunca escribas objetos de transferencia de datos!" En la mayoría de los casos, los objetos de transferencia de datos no son más que conjunto de campo hinchado... El valor de este repugnante monstruo radica únicamente en la posibilidad transmitir múltiples piezas de información a través de la red en una sola llamada- una técnica que es de gran importancia para los sistemas distribuidos.
Ejemplos de plantillas en la plataforma 1C.
La interfaz de programación de aplicaciones disponible para el desarrollador cuando desarrolla un formulario administrado contiene muchos ejemplos de estos principios.
Por ejemplo, el método OpenForm(), una típica interfaz "aproximada".
Parámetros de apertura = Nueva estructura ("Parámetro1, Parámetro2, Parámetro3", Valor1, Valor2, Valor3); Formulario = OpenForm(Nombre del formulario, Parámetros de apertura);
Compárese con el estilo adoptado en v8.1.
Formulario = GetForm(Nombredelformulario); Formulario.Parámetro1 = Valor1; Formulario.Parámetro2 = Valor2; Formulario.Open();

En el contexto de un formulario administrado, existen muchos "Objetos de transferencia de datos". Puedes seleccionar sistémico Y definido por el desarrollador.
Los de sistema modelan un objeto de aplicación en el cliente, en forma de uno o más elementos de datos de formulario. Es imposible crearlos fuera de la conexión con los detalles del formulario.

  • Estructura de formularios de datos
  • Colección de formularios de datos
  • Estructura de formulario de datos con colección
  • DatosFormasÁrbol
La conversión de objetos de transferencia de datos del sistema a tipos de aplicaciones y viceversa se realiza mediante los siguientes métodos:
  • ValorEnFormDatos()
  • FormularioDatosValor()
  • Copiar datos del formulario()
  • ValorEnFormAtributos()
  • ValorAtributosForm()
A menudo se utiliza la conversión explícita al adaptar una solución existente. Los métodos pueden esperar (usar características) parámetros de entrada, como ValueTable en lugar de FormDataCollection, o el método se ha definido en el contexto de un objeto de aplicación y no está disponible para una llamada directa desde el formulario.
Ejemplo 1C v8.1:
// en el cliente en el contexto del formulario FillUserCache(DepartmentLink)
Ejemplo 1C v8.2:
// en el servidor en el contexto del formulario ProcessingObject = Form AttributesValue("Object"); ProcessingObject.FillUserCache(DepartmentRef); ValueВFormAttributes(ProcessingObject, "Objeto");

Los objetos de transferencia de datos, cuya estructura la determina el desarrollador, son un pequeño subconjunto de los tipos disponibles tanto en el cliente como en el servidor. Muy a menudo, se utilizan los siguientes como parámetros y resultados de los métodos de una interfaz "gruesa":

  • Tipos primitivos (cadena, número, booleano)
  • Estructura
  • Correspondencia
  • Formación
  • Enlaces a objetos de la aplicación (identificador único y representación de texto)
Ejemplo: el método acepta una lista de pedidos para cambiar de estado y devuelve una descripción de los errores al cliente.
&OnServerWithoutContext Función ServerChangeOrderStatus(Orders, NewStatus) Errores = Nueva coincidencia(); // [pedido][descripción del error] Para cada pedido del ciclo de pedidos StartTransaction();

Pruebe DocOb = Order.GetObject();

…. otras acciones, posibles no sólo con la orden... Excepción CancelTransaction();
  • Errores.Insert(Orden, ErrorDescription()); intento final;
  • Identificación clara de la interfaz de acceso remoto, ¿qué métodos de servidor se pueden llamar desde el cliente y cuáles no?
  • Los nombres de los métodos de interfaz remota comienzan con el prefijo "Servidor". Esto le permite ver inmediatamente la transferencia de control al servidor mientras lee el código y simplifica el uso de la ayuda contextual. Tenga en cuenta que la recomendación oficial (ITS) sugiere nombrar métodos con sufijos, por ejemplo, ChangeOrderStatusOnServer(). Sin embargo, repitamos, no todos los métodos del servidor se pueden llamar desde el cliente y, por lo tanto, la accesibilidad lógica es más importante que la ubicación de compilación. Por lo tanto, con el prefijo “Servidor” marcamos sólo los métodos disponibles para el cliente; llamemos al método de ejemplo ServerChangeOrderStatus(). Legibilidad.
  • Cuestión de gustos, aceptamos el pedido cuando el módulo comienza con los procedimientos de creación de un formulario en el servidor y métodos de acceso remoto. Mantenibilidad. Debe haber una ubicación clara para agregar código nuevo. Punto importante
Las plantillas de métodos creadas automáticamente por el configurador se agregan al final del módulo. Dado que los controladores de eventos para elementos de formulario suelen crearse automáticamente, el bloque correspondiente se ubica en último lugar, para no arrastrar cada controlador a otro lugar del módulo.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор="formas."/> // <Описание> // // "Fecha="

///////////////////////////////////////////////// // /////////////////////////// // VARIABLES DEL MÓDULO ///////////////// // ////////////////////////////////////////////// //// ////////// // EN EL SERVIDOR //******* EVENTOS EN EL SERVIDOR ******* &En el procedimiento del servidor cuando se crea en el servidor (fallo, procesamiento estándar) / /Insertar el contenido del handler Fin del Procedimiento //******* INTERFAZ DE ACCESO REMOTO ******* //******* LÓGICA DE NEGOCIO EN EL SERVIDOR ******* ///////// ///////////////////////////////////////// /////// //////////////////// // MÉTODOS COMUNES DE CLIENTE Y SERVIDOR /////////////// /////// //////////////////////////////////////////// ///// //////// // EN EL CLIENTE //******* LÓGICA DE NEGOCIO EN EL CLIENTE ******* //********* EQUIPO * ****** //******* EVENTOS DEL CLIENTE ******* /////////////////////////// ///// ////////////////////////////////////////////// // / / PRINCIPALES OPERADORES DEL PROGRAMA
Preguntas relacionadas
  • Opciones de implementación de la interfaz de acceso remoto. Asincronía, nivel de detalle...
  • Almacenamiento en caché. 1C tomó una decisión arquitectónica fallida al introducir el almacenamiento en caché solo en el nivel de llamar a métodos de módulos comunes y no proporcionar capacidades de control (tiempo de relevancia, reinicio bajo demanda).
  • Llamadas implícitas al servidor. No se olvide de las características tecnológicas; muchas operaciones "inofensivas" en el cliente provocan que la plataforma contacte al servidor.

En los formularios regulares, la ubicación de los elementos se dibuja de forma totalmente manual. Para facilitar este proceso, la plataforma ofrece varios mecanismos:

- alineación de elementos- proporciona controles automáticos de centrado o "presión" según las pautas de cada uno, o alineando los tamaños de los controles:

- neto- a través de las Opciones se puede configurar la visualización de la cuadrícula para una alineación manual precisa de los elementos:

La respuesta correcta es la segunda. Este es un panel para alinear y unificar los tamaños de elementos.

Pregunta 10.79 del examen 1C: Plataforma Profesional.

  1. Nada cambiará
  2. El elemento "Inscripción1" se desplazará horizontalmente y su borde derecho se alineará con el borde derecho del elemento "Inscripción2"
  3. El elemento "Inscripción2" se desplazará horizontalmente y su borde derecho se alineará con el borde derecho del elemento "Inscripción1"
  4. Ambos elementos se moverán a la línea de alineación del borde derecho del formulario.

La respuesta correcta es la segunda. Las etiquetas estarán alineadas a la derecha.

Pregunta 10.82 del examen 1C: Plataforma Profesional. ¿Qué sucede cuando haces clic en el botón de la barra de comandos marcado en la imagen?

  1. Todas las inscripciones tendrán el mismo tamaño horizontalmente.
  2. Nada cambiará
  3. Las etiquetas cambiarán. El eje de simetría vertical de cada elemento de control coincidirá con el eje de simetría vertical de la forma, es decir centrando cada control horizontalmente
  4. Las etiquetas se desplazarán horizontalmente. Los controles no se moverán entre sí dentro del grupo, es decir. centrar, por así decirlo, un elemento en su conjunto
  5. Las etiquetas se desplazarán verticalmente. Los controles no se moverán entre sí dentro del grupo, es decir. centrar, por así decirlo, un elemento en su conjunto

La respuesta correcta es la cuarta. Todos los controles seleccionados se centrarán alrededor de su línea central común.

Pregunta 10.83 del examen 1C: Plataforma Profesional. ¿Qué sucede cuando haces clic en el botón de la barra de comandos marcado en la imagen?

  1. Todas las inscripciones tendrán el mismo tamaño verticalmente. Se tomará como muestra el elemento de control "Inscripción1".
  2. Nada cambiará
  3. Todas las inscripciones tendrán el mismo tamaño verticalmente. Se tomará como muestra el elemento de control "Inscripción3".
  4. Cada etiqueta estará centrada verticalmente.
  5. Habrá una distribución uniforme de inscripciones en dirección vertical. Los controles "Inscripción1" e "Inscripción3" permanecerán en su lugar y el elemento "Inscripción2" se moverá en la dirección deseada. Al mover un elemento, el ajuste a la cuadrícula de diseño no se tiene en cuenta
  6. Habrá una distribución uniforme de inscripciones en dirección vertical. Los controles "Inscripción1" e "Inscripción3" permanecerán en su lugar y el elemento "Inscripción2" se moverá en la dirección deseada. Cuando mueve un elemento, se ajustará a la cuadrícula de marcado si el modo para su uso está configurado

La respuesta correcta es la primera. Se estandarizará la altura de los elementos.

Pregunta 10.86 del examen 1C: Plataforma Profesional. ¿Qué sucede si hace clic en el botón de la barra de comandos cancelado en la imagen?

  1. Todas las inscripciones tendrán el mismo tamaño vertical y horizontalmente. Se tomará como muestra el elemento de control "Inscripción1".
  2. Todas las inscripciones tendrán el mismo tamaño vertical y horizontalmente. Se tomará como muestra el elemento de control "Inscripción3".
  3. Nada cambiará
  4. Las etiquetas se alinearán automáticamente
  5. Todas las etiquetas tendrán un fondo transparente.

La respuesta correcta es la número cuatro, el botón en sí se llama "Alinear automáticamente"

Pregunta 10.90 del examen 1C: Plataforma Profesional. Deshabilite el modo de alineación usando líneas de alineación en un formulario creado previamente:

  1. esta prohibido
  2. Poder. Para hacer esto, en la paleta de propiedades del formulario, debe deshabilitar la propiedad "Usar líneas de alineación".
  3. Poder. Para hacer esto, seleccionando el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", debe deshabilitar la propiedad "Usar líneas de alineación".
  4. Poder. Para hacer esto, en la paleta de propiedades del formulario, debe deshabilitar la propiedad "Usar líneas de alineación" o, seleccionando el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", deshabilitar la propiedad "Usar líneas de alineación".

La respuesta correcta es la segunda. Las líneas de alineación (marcadas con una flecha) están deshabilitadas por la propiedad del formulario correspondiente:

Pregunta 10.92 del examen 1C: Plataforma Profesional. Al alinear elementos de formulario, es posible que se muestre una cuadrícula de diseño:

  1. Líneas continuas
  2. Puntos de tablero de ajedrez
  3. Puntos ubicados en la intersección de líneas de marcado.
  4. Las respuestas 1 y 2 son correctas
  5. Las respuestas 2 y 3 son correctas
  6. Las respuestas 1, 2 y 3 son correctas

La respuesta correcta es la quinta. La ubicación de los puntos está controlada por la opción Tablero de ajedrez en los Parámetros del sistema (ver captura de pantalla en la publicación).

Pregunta 10.95 del examen 1C: Plataforma Profesional.

  1. Un marcador de alineación especial que muestra el desplazamiento de los controles. Se ofrece mover el elemento de control seleccionado hacia la izquierda
  2. Un marcador de alineación especial que muestra el desplazamiento de los controles. El elemento de control seleccionado se ofrece para moverlo hacia abajo.
  3. Un marcador de alineación especial que muestra la superposición de controles. Se ofrece mover el elemento de control seleccionado hacia la izquierda
  4. Un marcador de alineación especial que muestra la superposición de controles. El elemento de control seleccionado se ofrece para moverlo hacia abajo.

La respuesta correcta es la primera. El margen inferior se desplaza hacia la derecha con respecto al superior, por lo que se propone moverlo hacia la izquierda.

Pregunta 10.96 del examen 1C: Plataforma Profesional. ¿Puedo usar líneas de alineación para cambiar el tamaño y mover controles de formulario?

  1. esta prohibido
  2. Sí, si los controles están adjuntos a estas líneas.
  3. Es posible si los controles están adjuntos a estas líneas, pero solo muévalos
  4. Es posible si los controles están adjuntos a estas líneas, pero solo cambiar el tamaño
  5. tu puedes, siempre

La respuesta correcta es la segunda. Los elementos unidos a la misma cuerda tensora se pueden mover juntos.

Pregunta 10.97 del examen 1C: Plataforma Profesional. En la figura el círculo rojo marca:

  1. Un marcador de alineación especial que muestra el desplazamiento de los controles. El elemento de control seleccionado se ofrece para moverse hacia la izquierda y hacia arriba.
  2. Un marcador de alineación especial que muestra el desplazamiento de los controles. El elemento de control seleccionado se puede mover hacia la derecha y hacia abajo.
  3. Un marcador de alineación especial que muestra la superposición de controles. El elemento de control seleccionado se ofrece para moverse hacia la izquierda y hacia arriba.
  4. Un marcador de alineación especial que muestra la superposición de controles. El elemento de control seleccionado se puede mover hacia la derecha y hacia abajo.

La respuesta correcta es la cuarta. Donde señalan las flechas, debes moverte allí.

Pregunta 10.98 del examen 1C: Plataforma Profesional. En la figura el círculo rojo marca:


Pregunta 10.110 del examen 1C: Plataforma Profesional. ¿Cómo puedo usar el botón de la barra de comandos que se muestra en la figura para alinear las tres etiquetas a la derecha?

  1. Primero, seleccione el control “Inscripción1” haciendo clic sobre él con el botón izquierdo del mouse y presionando simultáneamente la tecla. Luego presione el botón indicado
  2. Simplemente haga clic en el botón indicado
  3. Usando este botón no puedes alinear las etiquetas, ya que pertenecen a paneles diferentes
La respuesta correcta es la tercera. La alineación funciona dentro de un solo panel.

Pregunta 10.115 del examen 1C: Plataforma Profesional. Para mostrar una cuadrícula de diseño en un formulario existente, es suficiente:

  1. En la paleta de propiedades del formulario, establezca la propiedad "Usar cuadrícula"
  2. Al seleccionar el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", configure la bandera "Usar cuadrícula"
  3. Al seleccionar el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", configure la bandera "Cuadrícula de visualización"
  4. Al seleccionar el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", configure la bandera "Mostrar cuadrícula" y luego, en la paleta de propiedades del formulario, configure la propiedad "Usar cuadrícula"
  5. Al seleccionar el elemento del menú principal "Herramientas-Opciones", en la pestaña "Formulario", configure las banderas "Mostrar cuadrícula" y "Usar cuadrícula"

La respuesta correcta es la cuarta; para el formulario también puedes especificar la opción de mostrar o no.

Implementado en la versión 8.3.7.1759.

Para que quede claro de qué hablamos en este artículo es necesario hacer una pequeña explicación.

Una característica de los formularios administrados es que el desarrollador no da forma directamente a la apariencia del formulario. El desarrollador sólo crea una descripción del formulario utilizando algunas reglas lógicas. Según estas reglas, la plataforma genera de forma independiente una representación visual del formulario. Además, esta representación visual depende del tamaño de la ventana en la que se muestra el formulario. El mismo formulario mostrado en una ventana estrecha o en una ventana ampliada a pantalla completa tendrá una apariencia visual diferente.

Entonces, esa parte de la plataforma que forma la representación visual del formulario se llama Mecanismo para colocar elementos en la forma..

¿Por qué se necesitaba un nuevo mecanismo?

En primer lugar, el mecanismo anterior, lamentablemente, tenía deficiencias. El más significativo de ellos fue que muchos cambios en las propiedades de los elementos del formulario realizados en el cliente requerían una llamada al servidor. Y cualquier acceso al servidor provoca una ralentización.

En segundo lugar, evaluamos la experiencia del uso de formularios administrados y descubrimos una serie de necesidades críticas que debían abordarse.

Y en tercer lugar, queríamos incorporar en el nuevo mecanismo oportunidades para el desarrollo futuro.

Cambios importantes

El funcionamiento del mecanismo anterior se puede representar esquemáticamente de la siguiente manera:

El desarrollador crea un árbol de elementos de formulario en el configurador y establece las propiedades de los elementos. En el momento en que la solución de la aplicación necesita mostrar el formulario al usuario, sucede lo siguiente. Primero, en el servidor, la plataforma crea descripción de la forma visual. Luego esta descripción se transmite al cliente. y en el cliente visualizador forma la imagen que verá el usuario.

La acción principal que se realizó en el servidor al crear una descripción de la forma visual fue calcular la longitud de las líneas. Esto se refiere a todo tipo de títulos, inscripciones, etc. Conociendo las longitudes de las líneas, ya puedes calcular la disposición de los elementos en el formulario.

Dado que esta operación se realizó en el servidor, hubo dos aspectos negativos. En primer lugar, para el cálculo no utilizamos las fuentes que se utilizarán en el cliente, sino las instaladas en el servidor. Y pueden diferir, especialmente cuando se trata de diferentes plataformas (Windows, Linux). O incluso es posible que las fuentes necesarias no estén instaladas en el servidor. En segundo lugar, para calcular las longitudes utilizamos el motor de rasterización de fuentes que hay en el servidor. Y puede que no funcione exactamente como el mecanismo para representar cadenas de texto que existe en el cliente en un navegador de Internet, por ejemplo. Como resultado, los formularios podrían aparecer con textos “truncados” o, por el contrario, con inscripciones demasiado anchas.

Otro problema era que no había adaptación al tamaño de la ventana en la que se mostraría el formulario al cliente. De hecho, en el servidor, la descripción del formulario se creó basándose en el tamaño de ventana mínimo posible, y el éxito de su visualización dependía de qué tan bien "pueda" estirarse.

En el nuevo mecanismo, dividimos la generación de una descripción de un formulario visual, que anteriormente se realizaba íntegramente en el servidor, en dos partes, servidor y cliente:

La parte del servidor se ha vuelto significativamente más pequeña. No realiza ningún cálculo. En el servidor sólo se crea una descripción "en blanco", que no contiene las longitudes exactas de los campos de texto y no se permiten elementos de adaptabilidad en ella. El servidor maneja la visibilidad de los elementos, pero solo la que está determinada por las opciones funcionales y la que establece el usuario. Pero aquí no se puede hacer otra cosa, porque las opciones funcionales en sí están disponibles sólo en el servidor. Y el cambio interactivo de la configuración por parte del usuario dará lugar en cualquier caso a una llamada al servidor.

El resultado es una especie de “producto semiacabado” de representación visual de la forma, que se transfiere al cliente.

Las modificaciones necesarias a la descripción del formulario visual se realizan por cuenta del cliente. Se calculan las longitudes de las líneas, los elementos de capacidad de respuesta relacionados con el tamaño de la pantalla del cliente y se calcula la visibilidad. Después de esto, como antes, el visualizador comienza a funcionar, lo que crea la forma final que ve el cliente.

Debido a que el cálculo de las longitudes de las cadenas se realiza en el cliente, pudimos deshacernos de los "espacios" innecesarios y descuidados entre los elementos. Y trabajar la visibilidad en el cliente sin acceder al servidor permitió acelerar el trabajo de los formularios. Porque activar/desactivar la visibilidad de los elementos del formulario es una de las operaciones más comunes.

Algunas características nuevas

Elementos de interfaz responsivos

El nuevo mecanismo para colocar elementos en el formulario no sólo mejora las capacidades que estaban disponibles antes, sino que también agrega nuevas capacidades. Por ejemplo, adapta la apariencia del formulario al tamaño de la pantalla del cliente. Hay varias formas de hacer esto.

En primer lugar, se realiza un ajuste automático de líneas, ajustando la altura de los títulos y decoraciones. Puedes ver cómo funciona esto en la figura:

Si hay líneas largas en el formulario que se pueden dividir en palabras individuales, dichas líneas se ajustan si es necesario. En consecuencia, la altura del formulario aumenta porque su parte inferior "se mueve" hacia abajo.

Como resultado, el formulario tendrá un aspecto normal incluso en pantallas estrechas. Además, este mecanismo funciona dinámicamente, lo que significa que puede comprimir el formulario en tiempo real y líneas largas se ajustarán junto con él. El ajuste automático funciona para títulos de elementos, títulos de grupos, decoraciones de texto y texto en botones que parecen.

Hiperenlace El segundo elemento de la adaptabilidad es cambiar la orientación de los grupos. Los grupos y el formulario en su conjunto tienen una nueva opción de orientación - “ Horizontalmente si es posible

" En esta opción, si la pantalla del cliente permite colocar elementos en horizontal, estos se colocan en horizontal. De lo contrario, se ubican verticalmente.

El tercer elemento de adaptabilidad es la determinación automática del número de columnas de un interruptor o interruptor de palanca. Anteriormente, a menos que hubiera instrucciones especiales, el número de columnas se establecía al máximo y se mostraba en una línea. Ahora, en la misma situación, se analiza el ancho del formulario y se establece el número de columnas para que el interruptor/interruptor se vea bien en la pantalla.

Alineación horizontal y vertical Anteriormente, esta posibilidad no existía y para implementar una alineación no estándar fue necesario inventar varios "trucos". Ahora se puede especificar el formulario y el grupo, cómo se deben alinear sus elementos vertical y horizontalmente. Por ejemplo, en la imagen siguiente, un grupo de botones muestra tres posibles opciones de alineación:, Izquierda Y Centro:

En esta imagen, los botones están colocados en un grupo regular que se extiende horizontalmente. La ubicación de los botones dentro de un grupo está controlada por la propiedad del grupo. Posición HorizontalSubordinados.

Control de alineación externo

Por ejemplo, tiene un formulario que contiene campos Subdivisión, grupos DIRECCIÓN Y Teléfono. El mecanismo anterior alineó los campos de estos grupos como se muestra en la figura de la izquierda. Los campos del formulario estaban alineados entre sí y los campos de cada grupo estaban alineados entre sí.

Ahora tiene la oportunidad de configurar la alineación de un extremo a otro para los grupos, como resultado de lo cual, por ejemplo, todos los campos del formulario se alinearán por igual. Esta opción se muestra en la imagen de la derecha.

Además, puede gestionar la alineación de un extremo a otro para cada grupo por separado. Por lo tanto, puede, por ejemplo, desactivar la alineación de un extremo a otro de un grupo. Teléfono, y luego el formulario se verá como el que se muestra en la imagen de la derecha.

Alinear elementos y títulos

Otra novedad que ha aparecido es la posibilidad de controlar la posición relativa de elementos y títulos. Tanto en todas las formas como en grupos individuales. Por ejemplo, puede "estirar" títulos y elementos hacia diferentes bordes del formulario, o viceversa, "tirarlos" uno hacia el otro, alineando los títulos a la derecha y los elementos a la izquierda.

Limitar el ancho máximo de los elementos.

Anteriormente, si le decías a un elemento que se estirara, el elemento se estiraría tanto como pudiera. Por ejemplo, pantalla completa. Para algunos elementos esto fue bueno (como un campo HTML), pero para otros elementos puede que no sea tan bueno. Por ejemplo, para campos numéricos. Porque los datos numéricos, o botones que controlan el campo, terminaron en algún lugar muy a la derecha.

Ahora los elementos tienen propiedades booleanas, con las que puede configurar el modo de estiramiento automático en ancho o alto. En este modo, la plataforma determina de forma independiente hasta qué límites se puede extender el campo. Si el modo automático está desactivado, la plataforma se comportará igual que antes. Si especifica un ancho/alto de campo específico, se utilizará. Y si especifica un valor de 0, el elemento se estirará lo más posible.

Controlar el espacio entre elementos.

También es posible controlar el espaciado horizontal y vertical entre elementos. Por ejemplo, en la siguiente figura, el grupo de la izquierda tiene un espaciado vertical aumentado, mientras que el grupo de la derecha tiene un espaciado vertical reducido.

Deshabilitar el estiramiento de forma

Hemos implementado otro modo nuevo de operación del formulario, que desactiva el estiramiento vertical de sus elementos. Este modo será útil para formularios que contengan una pequeña cantidad de elementos.

Deshabilitar el desplazamiento en las páginas

Para formularios que contienen una gran cantidad de elementos, también cambiamos ligeramente el comportamiento. Ahora el desplazamiento vertical no aparece en las páginas. El desplazamiento vertical ahora puede realizarse en el formulario mismo o dentro de elementos del formulario, como una tabla, un documento de hoja de cálculo, etc. Y la página del formulario siempre estará en altura completa. Esto debería facilitar la experiencia del usuario, porque una gran cantidad de desplazadores en un formulario a menudo puede resultar confuso y confuso.

Reanudar

En este artículo de revisión, enumeramos solo las características principales proporcionadas por el nuevo mecanismo para colocar elementos en el formulario. Pero no menos importante, en nuestra opinión, es que este mecanismo contiene una reserva importante para el desarrollo futuro.

Ajustes