1c en los parámetros de selección, establezca el nombre del grupo. Establezca parámetros de selección y asociaciones de parámetros de selección para objetos de metadatos. DescripcióndeTiposInventario = NuevaDescripcióndeTipos(Matriz)

Con el fin de abrir el formulario de selección con selección en 1s 8.2(formularios regulares), necesitamos realizar algunas acciones. Lo conseguiremos primero. Después de eso, configuraremos la selección y la abriremos mediante programación; aquí hay un ejemplo de código:

Selección en el formulario en el campo de entrada 1C 8.2 con varios valores

En el ejemplo anterior vimos cómo configurar la selección en el formulario de selección por valor específico. Ahora veamos una situación en la que necesita sustituir varios valores; esto podría ser, por ejemplo, una matriz o un resultado de una consulta descargado. Esta es una selección en el campo de entrada 1c. con múltiples significados.

Primero, obtenemos el formulario de selección, pasamos "Elemento" (propietario) en los parámetros y configuramos el indicador del modo de selección. Luego creamos una lista de valores y un array, notamos que como selección al configurar el tipo de comparación en la lista, un objeto solo puede estar presente con el tipo Lista de valores. Agregamos elementos a la matriz, luego cargamos esta matriz en la Lista de valores, que posteriormente configuramos en la selección. Además, no olvide habilitar la bandera para usar esta selección y establecer el Tipo de comparación.

Configuración de la selección en el campo de entrada del formulario en 1C 8.3, evento Inicio de selección

Ahora consideremos selección en el campo de entrada en en una forma manejable en 1C 8.3. Busquemos en el formulario el elemento que nos interesa, en el que estableceremos la selección, en nuestro caso este es el campo “Organización”. Encontramos el evento “Inicio de Selección”, hacemos clic en la lupa y nos encontramos en el procedimiento. Vemos el parámetro Datos de selección, este parámetro es del tipo ValueList. Para limitar la selección a los elementos necesarios, debemos completar la Lista de valores. Podemos seleccionar elementos solo en el servidor, por lo que creamos un procedimiento con la directiva de compilación &OnServer. En este procedimiento, complete los Datos de Selección.

/
Desarrolladores /
Convenciones de codificación

Configuración de opciones de selección y asociaciones de opciones de selección para objetos de metadatos

1. Como regla general, las restricciones de la lógica empresarial, como las restricciones de selección, deben ser las mismas para todas las formas en las que se edita un objeto en particular. Por lo tanto, se recomienda establecer los parámetros de selección y las conexiones entre los parámetros de selección en las propiedades de los objetos de metadatos (en los detalles de directorios, documentos, etc.).

2. Sin embargo, puede haber casos en los que las restricciones de selección dependan del escenario operativo específico. En tales casos, los parámetros de selección se pueden especificar localmente, de una forma específica.

Por ejemplo, la configuración contiene

  • directorio Empleados, que contiene detalles Organización Y Tipo de empleado(enumeración con valores Básico/a tiempo parcial);
  • documento Orden de recepción, que contiene accesorios Organización Y Empleado; mientras que para los accesorios Empleado documento Orden de recepción Se especifica la conexión del parámetro de selección. Selección.Organización con accesorios Organización.

Se requiere implementar la capacidad de seleccionar solo empleados clave dependiendo del valor de la opción funcional. SeleccioneSoloDeEmpleadosConceptos Básicos. Para esto es necesario

  • en forma de documento Orden de recepción implementar atributos de formulario adicionales Tipos de empleados,
  • luego para el campo del formulario Empleado Se puede establecer un enlace de parámetro de selección. Selección.Tipo de Empleado con detalles del formulario Tipos de empleados,
  • en este caso los detalles del formulario Tipos de empleados cumplimentado en base al análisis de la opción funcional.

(Al mismo tiempo, prepárese para los accesorios. Empleado documento Orden de recepción enlace para el parámetro de selección Selección.Tipo de Empleado no hay posibilidad, porque accesorios Tipo de empleado en el documento Orden de recepción no existe.)

Luego configurando la conexión para el parámetro. Selección.Organización en propiedades de utilería Empleado documento Orden de recepción y conexiones para el parámetro Selección.Tipo de Empleado en el campo del formulario del documento Orden de recepción conducirá al hecho de que en el modo 1C:Empresas Ambos enlaces de parámetros de selección funcionarán. Así, al seleccionar un empleado en el formulario de orden de contratación, la selección en la lista de empleados vendrá determinada tanto por la organización cumplimentada en el documento como por el tipo de empleado, que se determinará en función de la opción funcional.

Buenas tardes.

Hoy hablaremos sobre cómo abrir formularios de selección mediante programación en la nueva interfaz administrada.

Anteriormente en " aplicación regular"Escribimos así:

formulario = Directorio.nomenclatura.GetSelectionForm();

resultSelection = form.openModalNO();

Entre estos operadores podríamos cambiar las propiedades del formulario, por ejemplo, establecer la selección. Podríamos especificar una forma específica por su nombre. podría cambiarlo apariencia, accediendo a las propiedades del elemento del formulario por su nombre mediante un punto (form.Button1.Visibility = False;)

Ahora tenemos una interfaz administrada y aquí todo es diferente. El problema está en dividir el código en partes de servidor y cliente. Podemos acceder a los objetos y sus metadatos solo en el servidor y debemos abrir formularios en el cliente.

Entonces empecemos.

1. El caso más simple es cuando no necesitamos gestionar la selección (configurar selecciones, pasar parámetros al formulario de selección abierto).

Dado que los formularios solo se pueden abrir en el cliente, este será un código del lado del cliente. Usaremos la función IntroduzcaValor(<Значение>, <Подсказка>, <Тип>) . En realidad, todo queda claro a partir de su descripción. Devuelve la bandera de si el usuario realizó una selección; en el primer parámetro pasamos el contenedor al que se devolverá el valor de la selección, en el segundo texto que se mostrará en el título de la ventana de selección, en el tercer array de tipos.

A continuación se muestra un ejemplo de uso:

Selección variableTMC;

ArrayTypes = Nueva matriz;

DescripcióndeTiposTMC = NuevaDescripcióndeTipos(Array);

Si EnterValue(Seleccionar inventario, "Seleccionar artículo", Descripción de tipos de inventario) Entonces

//Procesando el valor seleccionado

terminara si;

Agregaré que si asignamos algún valor a nuestra variable contenedora antes de seleccionarla, será el valor predeterminado. En este caso, no es necesario formar una matriz de tipos; el tipo se tomará del valor que se encuentra en el contenedor.

2. A veces, antes de seleccionar un valor, necesitamos establecer algunas selecciones y parámetros de selección. Por ejemplo, necesitamos seleccionar un acuerdo de contraparte. El primer método nos abrirá todos los documentos, pero debemos seleccionar por propietario.

Hay dos métodos para abrir formularios: Formulario abierto Y Formulario abiertoModal. En el primer método, abriremos el formulario y el fragmento de código desde el que abrimos el formulario continuará ejecutándose sin recibir el resultado de la selección. El resultado de la selección, dependiendo del método de llamada, se colocará en el campo de entrada o se recibirá en el procedimiento predefinido "Procesamiento de selección".

En nuestro caso, necesitamos introducir el valor seleccionado en una determinada variable y continuar procesando teniendo en cuenta el valor seleccionado, sin transferir el control a otros procedimientos. Por lo tanto nos conviene Formulario abiertoModal.

Haré una reserva de inmediato de que esta es una mala manera para una interfaz web, porque... Las ventanas modales se abren en una nueva ventana del navegador que normalmente está bloqueada. Pero si le explica al usuario de antemano qué es qué, creo que solucionará este problema))

Entonces, veamos la descripción del procedimiento, tiene 4 parámetros. En el primero indicamos una línea con la ruta completa al formulario "Directorio. Contratos de Contratistas. Formulario de Selección". En el segundo indicamos los parámetros de selección, más sobre ellos a continuación. En el tercero, el propietario, este es un formulario o campo de selección que recibirá el resultado de la selección, no lo completamos. El cuarto parámetro tampoco se utiliza en nuestro caso.

Entonces, para una selección simple, la siguiente línea servirá:

&EnCliente

Procedimiento Comando1(Comando)

res = OpenFormModal("Directorio. Contratos de Contratistas. Formulario de Selección");

Fin del Procedimiento

Pero este es un análogo completo del método número 1, y veremos un formulario para seleccionar todos los contratos, sin seleccionar por propietario. Aquellos. Esto sólo se puede hacer si queremos especificar el nombre del formulario de selección.

Para configurar la selección, el segundo parámetro nos ayudará.

El segundo parámetro es de tipo "Estructura". Como elementos de estructura, puede especificar los parámetros del formulario agregados en la pestaña "parámetros" del formulario de selección. Su procesamiento debe estar descrito en el procedimiento. Cuando se creó en el servidor en el módulo del formulario de selección. Esto no es bueno para nosotros, porque... Necesito modificar la configuración. También puede pasar una estructura de selección con la tecla "selección" en la estructura de parámetros. Luego, todos los campos de la estructura de selección se utilizarán para seleccionar la lista de elementos y no estarán disponibles para que el usuario los vea ni los modifique.

En mi ejemplo, dibujé un campo de selección en el procesamiento que se refiere al atributo del formulario de procesamiento. "contraparte" con tipo de datos " DirectoryLink.Contrapartes". y escribió el siguiente código:

&EnCliente

Procedimiento Comando1(Comando)

Selecciones = Nueva Estructura("Propietario", Contraparte);

SelectionParameters = Nueva Estructura("Selección", Selección);

res = OpenFormModal("Directorio. Contratos de Contratistas. Formulario de Selección", Parámetros de Selección);

Fin del Procedimiento

Esto suele ser suficiente para resolver la mayoría de los problemas y no requiere ninguna intervención de configuración. Sin embargo, en el formulario de selección en el procedimiento “Cuando se crea en el servidor”, es posible que se pierda su selección. Por lo tanto, antes de utilizar este método, revisa este procedimiento en el formulario de selección que abres. Los desarrolladores corruptos pueden configurar fácilmente su selección "por defecto", olvidándose de comprobar que la selección se pasa en los parámetros de apertura.

Eso es todo por hoy, gracias por su atención.




Arriba