1c selección de forma controlada. ¿Cómo abrir un formulario de lista con alguna selección? Selección de configuración en el configurador

Código 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Aceptado";
DirectoryList.Selection.Status.Set();

Para 1C 8.2:
Hay varias formas de abrir un formulario de lista con alguna selección preestablecida. Veámoslos en orden:

1. El primer método es que al abrir el formulario, puede configurar el parámetro Formulario de selección y abrir el formulario de lista con este parámetro. El parámetro Selección representa la estructura. Los nombres de los elementos corresponden a los nombres de los campos mediante los cuales se realiza la selección, y los valores contienen los valores de selección. Esta es una opción de extensión de formulario administrada por lista dinámica. Es decir, existe para formularios cuyo atributo principal es un atributo de tipo Lista Dinámica, por ejemplo, formularios de lista y formularios de selección.

Al abrir el formulario, la selección se realizará en función del campo especificado.
Código 1C v 8.2 UP // Por ejemplo, en el siguiente ejemplo, se abre una lista de facturas con la selección mediante el campo Número igual a 333.
Valor de selección = Nueva estructura ("Número", "333");
SelectionParameters = Nueva estructura ("Selección", SelectionValue);

OpenForm("Documento. Factura de recibo. Formulario de lista", Opciones de selección);

// Por ejemplo, el siguiente ejemplo abre una lista de facturas
// con selección por parte del campo Contratista igual a “OJSC Horns and Hooves”.
Valor de selección = Nueva estructura ("Contraparte", "OJSC Horns and Hooves");
SelectionParameters = Nueva estructura ("Selección", SelectionValue);
OpenForm("Documento. Factura de recibo. Formulario de lista", Opciones de selección);

2. Puede abrir un formulario de lista sin parámetros:
Código 1C v 8.2 UE OpenForm ("Documento. Recibo Factura. Formulario de lista");

Y luego, en el manejador de eventos del formulario para la lista de facturas When CreatedOnServer, escribe código que crea una selección en la lista dinámica, que es el atributo principal del formulario:
Código 1C v 8.2 UP y OnServer

Elemento de selección = List.Selection.Elements.Add(Type("Elemento de selección de composición de datos"));
SelectionElement.LeftValue = NewDataCompositionField("Número");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccesible;
SelectionElement.RightValue = "000000001";
Fin del Procedimiento

&En el servidor
Procedimiento cuando se crea en el servidor (fallo, procesamiento estándar)
Elemento de selección = Lista.Selección.Elementos.Agregar(Tipo
(“Elemento de selección de composición de datos”));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.Más;
SelectionElement.Use = Verdadero;
SelectionElement.RightValue = 150000;
Fin del Procedimiento

Ventajas este método es esa vista de comparación para la selección, puede configurar no solo Igual, como en el primer caso, sino también Más, Menos, etc.

Pero este método también tiene un inconveniente muy importante: con esta selección, el formulario siempre se abrirá. Desde donde la llamaron. Por tanto, este formulario no debe designarse como el principal. Y si, sin embargo, es el principal, antes de instalar la selección, es necesario proporcionar algún tipo de análisis de dónde se abre este formulario. Por ejemplo, analizar los parámetros del formulario.

3. Finalmente, la condición de selección se puede colocar en una consulta personalizada que selecciona datos para una lista dinámica. Por ejemplo, necesitamos abrir una lista de facturas que contienen el artículo resaltado en la lista de artículos.

Para ello, en forma de lista de elementos, cree un comando y el botón correspondiente Recibo de facturas.

Completemos el controlador de ejecución para este comando de la siguiente manera:
Código 1C v 8.2 UP &OnClient
Procedimiento ReciboFacturas(Comando)

ListaForma = GetForm("Documento.Factura.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Fin del Procedimiento

En este controlador, recibimos el formulario para la lista de facturas y pasamos el enlace al artículo actual en la lista de artículos al parámetro de formulario FilterByProduct y abrimos el formulario con este parámetro.

Luego crearemos un formulario para la lista de documentos: Recibo Factura y crearemos un atributo de formulario FiltrarPor Producto, que usaremos como parámetro del formulario al abrirlo. Ahora abramos la paleta de propiedades del atributo principal del formulario Lista. Establecer el indicador ArbitraryRequest y en la línea Configuración de lista haga clic Abierto.

En el campo Solicitud, ingrese el siguiente texto de solicitud:
Código 1C v 8.2 ARRIBA SELECCIONAR
Documento Recibo Factura Número,
Documento Recibo Factura.Fecha
DE
Documento.ReciboInvoice AS DocumentoReciboInvoice
DÓNDE
Documento Recibo Factura.Productos.Producto = &Producto

En la solicitud, utilizamos el parámetro Artículo, que recibirá un enlace a la línea actual en la lista de artículos, contenida en el parámetro del formulario de lista de facturas Filtrar por artículo. Para hacer esto, en el controlador de eventos del formulario de lista OnOpen, escribiremos código para establecer el valor del parámetro de solicitud de Producto:
Código 1C v 8.2 ARRIBA
&EnCliente
Procedimiento de apertura (fallo)

List.Parameters.SetParameterValue("Producto", FilterByProduct);

Fin del Procedimiento

Aquí Lista.Opciones es una lista de parámetros de solicitud de lista dinámica para el atributo Lista. El valor del parámetro Producto se establece igual al valor del parámetro de formulario FilterByProduct.

Como resultado, al hacer clic en el botón Recibir facturas en forma de lista de artículos, recibiremos una lista solo de aquellas facturas que contienen los artículos resaltados en este momento en la lista de nomenclatura.

Información extraída del sitio.

Selección en formularios administrados en 1C 8.3

El artículo analizará las opciones para instalar la selección en formularios administrados 1C 8.3. La selección de una lista dinámica se puede establecer de forma estática o dinámica, en interfaz de usuario o configurador. Consideraremos todas las opciones de selección a continuación.

  • Selección de configuración en el configurador

Selección de configuración en modo usuario

Una lista dinámica, a diferencia de una tabla o árbol de valores, es una solución más adecuada para implementar formularios que contengan listas, porque La lista dinámica proporciona la más amplia gama de herramientas para trabajar con selección, agrupación de campos y clasificación. Esta selección se puede configurar cuando se trabaja en modo usuario o en el configurador, el principio es el mismo.

Para configurar la selección en modo empresarial, debe llamar al comando "Personalizar lista".

Se abrirá una ventana.


La pestaña "selección" presenta una lista de campos que están en la lista actual. Seleccione los campos de la lista por los que filtraremos. Esto se puede hacer haciendo doble clic o arrastrando y soltando.


Configuramos el tipo y valor de comparación, hacemos clic en "Finalizar edición", la selección está configurada.


Cuando configura la selección en modo empresarial, los llamados campos de selección rápida se crean automáticamente en el formulario de lista.


Para que la plataforma 1C cree automáticamente campos de selección rápida, al desarrollar un formulario en el configurador, debe especificar un grupo de configuraciones de usuario.


Esta selección se guardará solo para el usuario actual, lo que permite una personalización flexible de la lista dinámica. Sin embargo, si la tarea es realizar una selección fija para una lista específica para todos los usuarios del sistema, podremos solucionarlo únicamente a través del configurador.

Selección de configuración en el configurador

Trabajando en el configurador, podemos establecer dos tipos de selección de lista dinámica: fija y dinámica. La selección fija se puede configurar una vez, la dinámica o programática se puede configurar dependiendo de los datos del sistema.

El principio de configurar una selección fija en el configurador no es diferente de configurarla en el modo de usuario descrito anteriormente. Para configurar la selección, debemos abrir la configuración de la lista dinámica.


Se abrirá una ventana.


La selección se establece de la misma manera que en el modo de usuario.

La opción "Incluir en la configuración del usuario" determina si la selección establecida en el configurador estará disponible en el modo de usuario a través del elemento del menú "Personalizar lista".


Selección dinámica (software)

A menudo existe la necesidad de configurar la selección mediante programación, por ejemplo, al abrir un formulario de selección, cuando necesitamos abrir un formulario controlado con selección. Se pasa un parámetro al formulario y la selección se establece en función de este parámetro. Un ejemplo común de esto es la selección de elementos del directorio por propietario.

Métodos

Si la configuración que se está desarrollando contiene el subsistema BSP “Funcionalidad básica”, la selección de software en la lista dinámica se puede instalar utilizando el método estándar:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

Firma de este método:

Lista dinámica Tipo: DynamicList: la lista en la que desea establecer la selección.

Nombre del campo Tipo: Cadena: el campo mediante el cual desea establecer la selección.

ValorDerecho Tipo: Arbitrario – Valor de selección (Opcional. Valor predeterminado: Indefinido. Nota: Si pasa Indefinido, el valor no se cambiará).

Ver Comparación Tipo: Tipo de comparación de composición de datos – Condición de selección.

Actuación Tipo: Cadena: representación de un elemento de composición de datos (Opcional. Valor predeterminado: Indefinido. Si se especifica, solo se imprime el indicador de uso con la representación especificada (no se imprime ningún valor). Se debe pasar una cadena vacía para borrar para que el valor se imprima nuevamente).

Uso Tipo: booleano: marca para usar esta selección (Opcional. Predeterminado: Indefinido).

Modo de visualización Tipo: ItemDisplayModeDataCompositionSettings: cómo se muestra esta selección al usuario. Valores posibles:

  • Modo de visualización de elementos Configuración de diseño de datos. Acceso rápido: en grupo Ajustes rápidos encima de la lista.
  • Modo de visualización de elementos Configuración de diseño de datos Normal: en la configuración de la lista (en el submenú Más).
  • ElementDisplayModeDataCompositionSettings.Inaccessible: evita que el usuario cambie esta selección.

IdentificadorConfiguración de usuario Tipo: Cadena: identificador único para esta selección (Se utiliza para comunicarse con la configuración del usuario).

Para eliminar un valor de selección, debe utilizar el método estándar:

ServidorCliente de Propósito General. EliminarGroupElementsSelectionDynamicList()

Firma de este método:

Lista dinámica Tipo: DynamicList: atributo de formulario para el que desea establecer la selección.

Nombre del campo Tipo: Cadena: nombre del campo de diseño (no se usa para grupos).

Actuación Tipo: Cadena: representación de un campo de diseño.

Si no hay ningún BSP en el sistema, la selección se puede configurar de forma independiente utilizando el objeto Campo de composición de datos.

Elemento de selección = List.Selection.Elements.Add(Type("Elemento de selección de composición de datos")); Elemento de selección.LeftValue = NewDataCompositionField("Nombre"); Elemento de selección. Tipo de comparación = Tipo de comparación de composición de datos. Igual; Selección Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Elemento de selección opcional RightValue = "Ivanov";

Esta selección seleccionará filas en las que el valor "Nombre completo" = "Ivanov".

Para utilizar “Y”, “O”, “NO” lógico, se pretende utilizar el tipo de datos DataCompositionSelectionElementGroup.

Grupo de selección = List.Selection.Elements.Add(Type("Grupo de elementos de selección de composición de datos")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Elemento de selección = Grupo de selección. Elementos. Add(Type("Elemento de selección de composición de datos")); Elemento de selección.LeftValue = NewDataCompositionField("Nombre"); Elemento de selección. Tipo de comparación = Tipo de comparación de composición de datos. Igual; Elemento de selección.RightValue = "Ivanov"; Elemento de selección = Grupo de selección. Elementos. Add(Type("Elemento de selección de composición de datos")); Elemento de selección.LeftValue = NewDataCompositionField("Nombre"); Elemento de selección. Tipo de comparación = Tipo de comparación de composición de datos. Igual; SelectionElement.RightValue = "Petrov";

Esta selección seleccionará filas en las que el valor "Nombre completo" = "Ivanov" o "Petrov".

La selección en una lista dinámica también se puede realizar cambiando el texto de la solicitud de lista dinámica. Esta opción funciona cuando la lista dinámica se realiza mediante una "solicitud personalizada".


Para hacer esto, agregue la condición “DÓNDE ESTÁ LA VERDAD” al texto de la consulta...


Como puede ver, este enfoque es más compacto en términos de escritura de código. Cómo condiciones más difíciles Si queremos establecer la selección en la parte tabular, más engorrosa será la opción de utilizar la selección a través del Elemento de selección de composición de datos. Sin embargo, el ejemplo de cambiar el texto de la solicitud tiene sus inconvenientes: esta implementación no resiste los cambios de código. Por ejemplo, realizó dicha implementación y lo olvidó, pero si en el futuro desea modificar el texto de la solicitud agregando algún operador después de DONDE (ORDEN, GRUPO), debe recordar que el código del programa contiene:

List.QueryText = List.QueryText + " Y DirectoryUsers.Full Name V(""Ivanov"",""Petrov""";

Si esto no se tiene en cuenta, habrá un error, pero para evitarlo, puedes cambiarlo a una implementación diferente. Agregamos la siguiente condición al texto de la solicitud:

DONDE (NO &SelectionInstalled O DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("SelectionSet", Nombre completo.Cantidad() > 0); List.Parameters.SetParameterValue("Nombre completo permitido", Nombre completo);

Aquí el nombre completo es una matriz.

Como puede ver, 2 líneas de código frente a 10. El método a elegir depende de la tarea de la aplicación específica.

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 un formulario administrado 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.

Código 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Aceptado";
DirectoryList.Selection.Status.Set();

Para 1C 8.2:
Hay varias formas de abrir un formulario de lista con alguna selección preestablecida. Veámoslos en orden:

1. El primer método es que al abrir el formulario, puede configurar el parámetro Formulario de selección y abrir el formulario de lista con este parámetro. El parámetro Selección representa la estructura. Los nombres de los elementos corresponden a los nombres de los campos mediante los cuales se realiza la selección, y los valores contienen los valores de selección. Esta es una opción de extensión de formulario administrada por lista dinámica. Es decir, existe para formularios cuyo atributo principal es un atributo de tipo Lista Dinámica, por ejemplo, formularios de lista y formularios de selección.

Al abrir el formulario, la selección se realizará en función del campo especificado.
Código 1C v 8.2 UP // Por ejemplo, en el siguiente ejemplo, se abre una lista de facturas con la selección mediante el campo Número igual a 333.
Valor de selección = Nueva estructura ("Número", "333");
SelectionParameters = Nueva estructura ("Selección", SelectionValue);

OpenForm("Documento. Factura de recibo. Formulario de lista", Opciones de selección);

// Por ejemplo, el siguiente ejemplo abre una lista de facturas
// con selección por parte del campo Contratista igual a “OJSC Horns and Hooves”.
Valor de selección = Nueva estructura ("Contraparte", "OJSC Horns and Hooves");
SelectionParameters = Nueva estructura ("Selección", SelectionValue);
OpenForm("Documento. Factura de recibo. Formulario de lista", Opciones de selección);

2. Puede abrir un formulario de lista sin parámetros:
Código 1C v 8.2 UE OpenForm ("Documento. Recibo Factura. Formulario de lista");

Y luego, en el manejador de eventos del formulario para la lista de facturas When CreatedOnServer, escribe código que crea una selección en la lista dinámica, que es el atributo principal del formulario:
Código 1C v 8.2 UP y OnServer

Elemento de selección = List.Selection.Elements.Add(Type("Elemento de selección de composición de datos"));
SelectionElement.LeftValue = NewDataCompositionField("Número");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccesible;
SelectionElement.RightValue = "000000001";
Fin del Procedimiento

&En el servidor
Procedimiento cuando se crea en el servidor (fallo, procesamiento estándar)
Elemento de selección = Lista.Selección.Elementos.Agregar(Tipo
(“Elemento de selección de composición de datos”));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.Más;
SelectionElement.Use = Verdadero;
SelectionElement.RightValue = 150000;
Fin del Procedimiento

Las ventajas de este método son que la Vista comparativa para la selección, puede configurar no solo Igual, como en el primer caso, sino también Más, Menos, etc.

Pero este método también tiene un inconveniente muy importante: con esta selección, el formulario siempre se abrirá. Desde donde la llamaron. Por tanto, este formulario no debe designarse como el principal. Y si, sin embargo, es el principal, antes de instalar la selección, es necesario proporcionar algún tipo de análisis de dónde se abre este formulario. Por ejemplo, analizar los parámetros del formulario.

3. Finalmente, la condición de selección se puede colocar en una consulta personalizada que selecciona datos para una lista dinámica. Por ejemplo, necesitamos abrir una lista de facturas que contienen el artículo resaltado en la lista de artículos.

Para ello, en forma de lista de elementos, cree un comando y el botón correspondiente Recibo de facturas.

Completemos el controlador de ejecución para este comando de la siguiente manera:
Código 1C v 8.2 UP &OnClient
Procedimiento ReciboFacturas(Comando)

ListaForma = GetForm("Documento.Factura.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Fin del Procedimiento

En este controlador, recibimos el formulario para la lista de facturas y pasamos el enlace al artículo actual en la lista de artículos al parámetro de formulario FilterByProduct y abrimos el formulario con este parámetro.

Luego crearemos un formulario para la lista de documentos: Recibo Factura y crearemos un atributo de formulario FiltrarPor Producto, que usaremos como parámetro del formulario al abrirlo. Ahora abramos la paleta de propiedades del atributo principal del formulario Lista. Establecer el indicador ArbitraryRequest y en la línea Configuración de lista haga clic Abierto.

En el campo Solicitud, ingrese el siguiente texto de solicitud:
Código 1C v 8.2 ARRIBA SELECCIONAR
Documento Recibo Factura Número,
Documento Recibo Factura.Fecha
DE
Documento.ReciboInvoice AS DocumentoReciboInvoice
DÓNDE
Documento Recibo Factura.Productos.Producto = &Producto

En la solicitud, utilizamos el parámetro Artículo, que recibirá un enlace a la línea actual en la lista de artículos, contenida en el parámetro del formulario de lista de facturas Filtrar por artículo. Para hacer esto, en el controlador de eventos del formulario de lista OnOpen, escribiremos código para establecer el valor del parámetro de solicitud de Producto:
Código 1C v 8.2 ARRIBA
&EnCliente
Procedimiento de apertura (fallo)

List.Parameters.SetParameterValue("Producto", FilterByProduct);

Fin del Procedimiento

Aquí Lista.Opciones es una lista de parámetros de solicitud de lista dinámica para el atributo Lista. El valor del parámetro Producto se establece igual al valor del parámetro de formulario FilterByProduct.

Como resultado, al hacer clic en el botón Recibir facturas en el formulario de lista de artículos, recibiremos una lista de solo aquellas facturas que contienen el artículo actualmente seleccionado en la lista de artículos.

¿Cómo abrir un formulario de lista con alguna selección?

Hay varias formas de abrir un formulario de lista con alguna selección preestablecida. Veámoslos en orden:

1. El primer método es que al abrir el formulario, puede configurar el parámetro Formulario de selección y abrir el formulario de lista con este parámetro. El parámetro Selección representa la estructura. Los nombres de los elementos corresponden a los nombres de los campos mediante los cuales se realiza la selección, y los valores contienen los valores de selección. Esta es una opción de extensión de formulario administrada por lista dinámica. Es decir, existe para formularios cuyo atributo principal es el atributo tipo. Lista dinámica, como formularios de lista y formularios de selección.

Al abrir el formulario, la selección se realizará en función del campo especificado. Por ejemplo, en el siguiente ejemplo, se abre una lista de facturas con selección por el campo Número, igual a 333.

Valor de selección = Nueva estructura ("Número", "333");

SelectionParameters = Nueva estructura ("Selección", SelectionValue);

OpenForm("Documento. Factura de recibo. Formulario de lista", Opciones de selección);

2. Puede abrir un formulario de lista sin parámetros:

OpenForm("Documento.Factura.ListForm");

Y luego, en el controlador de eventos del formulario de lista de facturas Cuando se creó en el servidor escriba código que cree una selección en una lista dinámica, que es el atributo principal del formulario:

&En el servidor

Procedimiento cuando se crea en el servidor (fallo, procesamiento estándar)

Elemento de selección = List.Selection.Elements.Add(Type("Elemento de selección de composición de datos"));

SelectionElement.LeftValue = NewDataCompositionField("Número");

SelectionElement.ComparisonView = DataCompositionComparisonView.Más;

SelectionElement.Use = Verdadero;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccesible;

SelectionElement.RightValue = "000000001";

Fin del Procedimiento

Las ventajas de este método son que el Tipo de comparación para la selección se puede establecer no sólo Igual, como en el primer caso, sino también Más, Menos, etc.

Pero este método también tiene un inconveniente muy importante: con esta selección, el formulario siempre se abrirá. Desde donde la llamaron. Por tanto, este formulario no debe designarse como el principal. Y si, sin embargo, es el principal, antes de instalar la selección, es necesario proporcionar algún tipo de análisis de dónde se abre este formulario. Por ejemplo, analizar los parámetros del formulario.

3. Finalmente, la condición de selección se puede colocar en una consulta personalizada que selecciona datos para una lista dinámica. Por ejemplo, necesitamos abrir una lista de facturas que contienen el artículo resaltado en la lista de artículos.

Para hacer esto, en forma de lista de elementos, cree un comando y un botón correspondiente. Facturas de recibo.

Completemos el controlador de ejecución para este comando de la siguiente manera:

&EnCliente

Procedimiento ReciboFacturas(Comando)

ListaForma = GetForm("Documento.Factura.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Fin del Procedimiento

En este controlador, recibimos el formulario para la lista de facturas y pasamos el enlace al artículo actual en la lista de artículos al parámetro de formulario FilterByProduct y abrimos el formulario con este parámetro.

Luego crearemos un formulario de lista de documentos. Factura de compra y creamos el atributo de formulario FilterByProduct, que usaremos como parámetro del formulario al abrirlo. Ahora abramos la paleta de propiedades del atributo principal del formulario Lista. Pongamos la bandera Solicitud personalizada y en la fila Configuración de lista haga clic en Abrir.

En el campo Solicitud, ingrese el siguiente texto de solicitud:

ELEGIR

Documento Recibo Factura Número,

Documento Recibo Factura.Fecha

DE

Documento.ReciboInvoice AS DocumentoReciboInvoice

DÓNDE

Documento Recibo Factura.Productos.Producto = &Producto

En la solicitud, utilizamos el parámetro Artículo, que recibirá un enlace a la línea actual en la lista de artículos, contenida en el parámetro del formulario de lista de facturas Filtrar por artículo. Para hacer esto, en el controlador de eventos del formulario de lista OnOpen, escribiremos código para establecer el valor del parámetro de solicitud de Producto:

&EnCliente

Procedimiento de apertura (fallo)

List.Parameters.SetParameterValue("Producto", FilterByProduct);

Fin del Procedimiento

Aquí Lista.Opciones es una lista de parámetros de solicitud de lista dinámica para el atributo Lista. El valor del parámetro Producto se establece igual al valor del parámetro de formulario FilterByProduct.

Como resultado, con solo hacer clic en un botón Facturas de recibo en forma de lista de artículos, recibiremos una lista de solo aquellas facturas que contienen el artículo seleccionado actualmente en la lista de artículos.

Un ejemplo de demostración para la tercera opción se encuentra en el directorio 1CITS/EXE/FAQ/OpenFormWithSelection.dt. El ejemplo se realizó en la versión de plataforma 8.2.9.356.




Arriba