Todo sobre el tuning de coches

Parámetros del formulario. Pasar parámetros a formularios administrados y regulares Parámetros de formulario administrados

Abrir formularios mediante programación en una aplicación 1C administrada es significativamente diferente a abrirlos en una aplicación normal. Veamos primero el método antiguo. Consiste en recibir un formulario y luego abrirlo en modo normal o modal (al abrirlo en modo modal, el formulario bloquea el programa).

ObtenerForm() . Abierto()

Este es el método más lento para abrir formularios. Sin embargo, le permite procesar el formulario mediante programación antes de abrirlo. Para procesar el código necesitas cambiar un poco:

Formulario = Obtener formulario ( "Documento. Recepción de Bienes y Servicios. Formulario de Documento") ;
//Aquí realizamos acciones con el formulario
Forma. Abierto();

Se debe tener en cuenta que al recibir el formulario se ejecutará otro procedimiento de evento Cuando se crea en el servidor.

Veamos otros métodos que le permiten abrir formularios en una aplicación 1C administrada de forma más rápida y cómoda. Dependiendo de la situación específica, se pueden utilizar diferentes métodos.

1. Cómo abrir un formulario de objeto en una aplicación administrada si hay un enlace a él.

En este caso, todo es sumamente sencillo.

RefLink = Directorios. Nomenclatura. BuscarPorCódigo("000000001");
Valor Abierto(EnlaceRef);

2. Cómo abrir el formulario de selección y luego obtener el valor seleccionado.

Hay una función para esto. IntroduzcaValor(). La función tiene 3 parámetros:

  • La variable en la que se escribirá el valor seleccionado;
  • Una pista que se mostrará en la ventana de selección;
  • Descripción de los tipos de valores seleccionados. Puede haber varios tipos, en cuyo caso se le pedirá que seleccione un tipo antes de seleccionar un valor específico.

Como resultado de ejecutar la función, se abrirá el formulario de selección predeterminado para un objeto del tipo especificado.

Valor variable;
Matriz = nueva matriz;
Formación. Agregar(Tipo( "DirectoryLink.Nomenclatura") ) ;
Formación. Agregar(Tipo( "DirectoryLink. Contrapartes") ) ;

TypeDescription = nueva TypeDescription (matriz);

Res = EnterValue(Valor, "Pista", TipoDescripción);

Los métodos anteriores solo le permitían abrir los formularios predeterminados para objetos (formulario de objeto o formulario de selección). Si necesita abrir un formulario personalizado, puede utilizar la función Abrir formulario().

Esta función tiene bastantes parámetros. Consideremos algunos de ellos:

  • Nombre del formulario— aquí puede seleccionar cualquiera de las formas de objetos estándar, por ejemplo, Formulario de selección o Formulario de lista. O un formulario específico creado por los desarrolladores.
  • Opciones— le permite transferirlo al formulario en el formulario estructuras algunos parámetros antes de abrirlo, determinando así los datos de salida. Los parámetros pueden ser cualquier dato que pueda pasarse del cliente al servidor. Los parámetros pasados ​​al abrir el formulario se pueden procesar en el procedimiento. CuandoCreatingOnServer() en el formulario que se abre.
  • Modo de apertura de formulario— tiene 3 opciones: independiente, bloquear toda la interfaz, bloquear el formulario del propietario.

Veamos cómo se usa la función. Formulario abierto() en diversas situaciones.

3. Cómo abrir el formulario de un objeto existente

Cada formulario tiene un atributo clave. Está resaltado en negrita en la lista de detalles del formulario y generalmente se llama Un objeto en forma de elementos de libros y documentos de referencia. Otros objetos pueden tener un nombre diferente. Para abrir un formulario de un objeto existente, debe pasar un parámetro al formulario que se abre Llave con el valor como referencia a un objeto.

&EnCliente
Procedimiento Comando1 (Comando)
Parámetro = nueva estructura;
Parámetro. Insertar("Clave", BuscarC() );
OpenForm(, Parámetro) ;
Procedimiento final

&En el servidor
Función BuscarC();
Directorios de devolución. Contrapartes. FindByRequisites ("TIN", "745107734623")
Funciones finales

4. Cómo abrir un formulario de nuevo objeto

Una función simple servirá aquí Formulario abierto() sin ningún parámetro.

&EnCliente
Procedimiento Comando1 (Comando)
Formulario abierto( "Directorio. Contrapartes. Formulario de objeto") ;
Procedimiento final

5. Cómo abrir un formulario de nuevo objeto y completarlo en base a algo

Necesitas pasar un parámetro Base, cuyo valor será una referencia al objeto base de relleno. Esto iniciará el procedimiento. ProcesarRelleno().

&EnCliente
Procedimiento Comando1 (Comando)
Parámetro = nueva estructura;
Parámetro. Insertar("Base", LinkToBuyerAccount);
Formulario abierto( "Documento. Ventas de Bienes y Servicios. Formulario de Objeto", Parámetro);
Procedimiento final

Este ejemplo creará un documento. Ventas de bienes y servicios. y cumplimentado sobre la base de una factura de pago al comprador, cuyo enlace se transmitió.

6. Cómo abrir un formulario y establecer una selección en él

La selección según los formularios 1C puede ser simple o compleja. La selección simple implica expresiones como Organización = Horns and Hooves LLC. La selección compleja implica otros tipos de comparación, p.e. En la lista. En este artículo consideraremos la organización de la selección simple y se dedicará un artículo aparte a la selección compleja.

Para organizar una selección simple, debe pasar un parámetro con una clave al formulario que se abre Selección, el valor será una estructura en la que la clave es el nombre del campo de la lista dinámica y el valor son los datos que se buscan.

Por ejemplo, abramos el formulario de lista de directorios. números GTD y haga una selección allí por propietario - elemento de directorio Nomenclatura.

&EnCliente
Procedimiento Comando1 (Comando)
Parámetro = nueva estructura;

Selección= nueva Estructura;
Selección. Insertar("Propietario", LinkToNomenclature);

Parámetro. Insertar("Selección", Selección);

Formulario abierto( "Directorio.Números GTD.Formulario de lista", Parámetro);
Procedimiento final

7. Cómo abrir el formulario de entrada del registro de información

Para hacer esto, necesitará la clave de entrada del registro de información.

Clave de grabación— estos son los valores de todas las mediciones y el período (si el registro es periódico). Es decir, una clave de registro son los parámetros mediante los cuales un registro puede identificarse de forma única.

El algoritmo de apertura es el siguiente:

  1. Ingresamos los datos clave del registro con los valores necesarios en la estructura.
  2. Colocamos la estructura resultante en una matriz.
  3. Creamos una clave de registro a partir de la matriz.
  4. Pasamos un parámetro al formulario que se abre. Llave con la clave de registro del paso 3 como valor.

&EnCliente
Procedimiento Comando1 (Comando)
Parámetro = nueva estructura;

KeyParameters= nueva estructura;
Parámetros clave. Insertar("Nomenclatura", EnlaceANomenclatura);
Parámetros clave. Insertar ("Tipo de precio", Enlace a tipo de precio);
Parámetros clave. Insertar("Periodo", Fecha);

KeyArray = Nueva matriz;
Matriz de claves. Agregar(Parámetros Clave);

Clave de entrada = Nuevo( "Información RegistroRegistro Clave.PreciosNomenclatura", matriz de claves);

Parámetro. Insertar("Clave", RecordKey);

Formulario abierto( "Registro de Información. Precios de Nomenclatura. Formulario de Registro", Parámetro);
Procedimiento final

Este artículo describe cómo utilizar medios estándar para pasar un valor como parámetro al abrir un formulario administrado 8.2, en comparación con cómo se podría implementar una operación similar en formularios regulares.

Cómo se pasan los parámetros en formularios regulares

En formularios ordinarios, había dos posibilidades para pasar un parámetro:
1) un método menos común: en el formulario del objeto en la pestaña "Detalles", se agregaron atributos y, si era necesario, el acceso se determinó por medios visuales
2) un método más común: se declaró una variable de exportación en el módulo de formulario y el valor se procesó en el controlador "Antes de abrir"

en ambos casos la llamada al formulario se parecía a esto:

Formulario = Object.GetForm("SelectionForm",FormOwner, UniquenessKey);
Formulario.Parametro = ParameterValue;
Formulario.Open();

Cómo se pasan los parámetros en formularios administrados

Los formularios administrados ahora tienen la capacidad de pasar parámetros inmediatamente cuando se recibe el formulario. Los parámetros se pasan como una estructura:

Parámetros = Nueva estructura ("CurrentValue", LastElement);
SelectionForm = GetForm("Directorio. Nomenclatura.SelectionForm", Parámetros);
Elemento encontrado = SelectionForm.OpenModal();

Además, el formulario administrado ahora tiene "extensiones de formulario" (objeto, libro de referencia, documento, informe). Dependiendo del tipo de objeto, se determina la composición de los parámetros disponibles. Por ejemplo, si en el formulario de selección de directorio necesita posicionarse en un elemento específico, entonces se utiliza el parámetro "CurrentValue". La gran ventaja es que el formulario en sí no requiere controladores de escritura para parámetros predefinidos, lo que reduce la cantidad de código.

El desarrollador también tiene la oportunidad de definir sus propios parámetros (en el diseñador de formularios administrado, la pestaña "Parámetros"). La vida útil de los parámetros está limitada por el controlador OnCreationOnServer, lo cual es lógico porque Los parámetros son necesarios solo al crear un formulario, pero si este parámetro determina la unicidad del formulario (el indicador de "parámetro clave" está configurado en las propiedades del parámetro), estará disponible en otros controladores.

Para pasar un parámetro de manipulación específico, necesitas hacer un poco más:

1) Definir el parámetro de forma controlada.
En el controlador OnCreationOnServer, defina el procesamiento de este parámetro (acceso a los parámetros pasados ​​a través de la propiedad “Parameters”, que tiene el tipo FormDataStructure)
2) Describir la recepción del formulario y pasar el valor del nuevo parámetro en los parámetros de la función GetForm.
Así el código quedará así:
- En el lugar donde reciba el formulario

Parámetros = Nueva Estructura ("NuevoParámetro", ÚltimoElemento);
SelectionForm = GetForm("Directorio. Nomenclatura.SelectionForm", Parámetros);

En un módulo de formulario administrado

&En el servidor
Procedimiento cuando se crea en el servidor (fallo, procesamiento estándar)
Si Parameters.Property("NewParameter") Entonces
// aquí está el código de procesamiento de parámetros
Terminara si;
Procedimiento final

Conclusión

Quizás este artículo sea útil para alguien, le ahorrará tiempo y le evitará códigos innecesarios. Para obtener información más detallada sobre la lista completa de parámetros de formulario administrado, se recomienda consultar la ayuda "Interfaz administrada\Formulario administrado".

[debes registrarte para ver el enlace]

Imprimir (Ctrl+P)

Opciones de formulario

1. Información General

Los parámetros del formulario (pestaña Opciones) tienen dos propósitos:
● Describir el conjunto de datos que influirán en la apertura del formulario (parametrización del formulario). Para hacer esto, debe enumerar todos los parámetros necesarios e indicar sus tipos.
● Determinar los parámetros que influirán en la clave de unicidad del formulario. Para hacer esto necesitas establecer la propiedad. Parámetro clave aquellos parámetros que deben participar en la formación de la clave de unicidad de forma. Cuando intenta abrir un formulario, el sistema busca un formulario existente utilizando la clave de unicidad del formulario generada. Si existe un formulario con la clave recibida en el sistema
unicidad, es esta forma la que regresa; si no, se crea un nuevo formulario.
Al llamar a un formulario, los valores de los parámetros creados por el desarrollador se pueden especificar en la estructura de parámetros junto con los parámetros del sistema de los formularios (si los hay).
Los parámetros del formulario se pueden pasar al formulario en el momento de su creación. El análisis de los parámetros pasados ​​se puede realizar en caso de CuandoCreatingOnServer() (la colección de Parámetros es una propiedad del objeto Formulario administrado):

// En el lugar de la llamada.
// Crea un parámetro de formulario.
Parámetros = nueva Estructura();
Opciones.Insertar("Importancia", Valor predefinido(“Enumeración.Importancia.Importante”));
// Abre el formulario con parámetros.
OpenForm (“GeneralForm.ViewForm”, Parámetros);

// En el módulo de formulario.
&En el servidor
Procedimiento WhenCreatingOnServer(Error, procesamiento estándar)
Si Parámetros.Importancia = Enumeraciones.Importancia.Importante o Entonces

Terminara si;
Procedimiento final

ATENCIÓN! Después de llamar al controlador de eventos Cuando se creó en el servidor todos los parámetros de formulario que no son clave se eliminan de la colección de Parámetros.
Consejo. Los parámetros del formulario no clave necesarios para seguir trabajando deben guardarse en los datos del formulario.

2. Parámetros del formulario estándar

Para admitir la interacción automática entre formularios, el sistema proporciona una serie de parámetros estándar que se utilizan para controlar los formularios cuando se abren. Usando estos parámetros, el sistema implementa en los campos del formulario la selección de formularios de selección, la apertura de formularios de objetos, la operación de comandos estándar, etc. Es decir, proporcionan varios escenarios de operación de interfaz integrados en el sistema.
Pero el desarrollador también puede utilizar estos parámetros en el lenguaje integrado, pasándolos al llamar al método OpenForm().
Puede encontrar una lista de parámetros de formulario estándar según el tipo de extensión de formulario en las secciones Idioma incorporado: interfaz
(administrado) – Formulario administrado – Ampliando... integrado referencias.

3. Ejemplo de trabajo con parámetros de formulario.

Para demostrar cómo funcionan los parámetros del formulario, considere la implementación de seleccionar un elemento en un campo de entrada. La esencia del ejemplo será la implementación del mecanismo para seleccionar un elemento de una lista en el lenguaje integrado.
Cuando comience a trabajar con el ejemplo, deberá tener una configuración que tenga las siguientes propiedades:
● hay un directorio Productos con una jerarquía de grupos y elementos;
● hay un directorio Análogos con los detalles Tipo de producto seleccionado DirectorioLink.Productos;
● ambos directorios tienen formas de elementos.
Ahora implementamos en esta configuración todos los mecanismos que utiliza la plataforma para seleccionar un elemento de la lista, en el lenguaje incorporado. En este caso veremos:
● cómo se utilizan los parámetros de formulario estándar;
● cómo los utiliza el propio sistema;
● cómo puede utilizarlos un desarrollador.
Agreguemos un parámetro adicional que controlará el cierre del formulario de selección después de seleccionar un elemento. Llamemos a este parámetro Cerrar después de la selección(tipo booleano). Agreguémoslo como parámetro de formulario Formulario para seleccionar el directorio Productos.
Para abrir el formulario de selección de elementos, es necesario crear un controlador de eventos para el evento SelectStart en el elemento de formulario SelectedItem en forma de elemento del directorio Analogues.

&EnCliente
Procedimiento SelectedProductStartSelection(Artículo, Procesamiento estándar)
Procesamiento estándar= Falso;
Opciones de selección= Nueva Estructura ;
Opciones de selección. Insertar(“ModoSelección”, Verdadero);
Opciones de selección. Insertar(“Selección de grupos y elementos”, Usando GroupsAndElements.Elements);
Opciones de selección. Insertar(“AllowRootSelection”, Falso);
Opciones de selección. Insertar(“Línea actual”, Objeto.Producto seleccionado);
Opciones de selección. Insertar(“CerrarDespués de la Selección”, Falso);
OpenForm(“Directorio.Productos.SelecciónForm”, Opciones de selección, Artículos.Artículo seleccionado);
Procedimiento final
Es necesario detenerse por separado en el tercer parámetro del método OpenForm(). Este parámetro determina quién será el propietario del formulario de selección y quién será notificado sobre la selección realizada. En este caso, especificamos el elemento del formulario como propietario del formulario de selección, pero también podemos especificar el formulario en sí con este parámetro. En este caso, será necesario implementar un controlador. ProcesamientoSelección módulo de formulario y decida en qué atributo de formulario colocar los datos seleccionados.
NOTA. Si no implementamos el controlador de eventos StartSelection, sus acciones las realizará el propio sistema. Esto es válido para todos los demás controladores que se utilizan en el ejemplo.
Ahora necesita procesar los parámetros pasados ​​en el formulario de selección. Hagamos esto en el controlador. Cuando se creó en el servidor() del módulo del formulario de selección.

&En el servidor
Procedimiento WhenCreatingOnServer(Error, procesamiento estándar)
Procesamiento estándar= Falso;
Elements.List.SelectingGroupsAndElements = Parámetros.SelectingGroupsAndElements;
Elements.List.AllowRootSelection = Parámetros.AllowRootSelection;
Elements.List.CurrentRow = Parámetros.CurrentRow;
CloseOnSelection = Opciones.CloseAfterSelection;
Procedimiento final
Para verificar la funcionalidad de los parámetros del formulario que hemos configurado, usando el configurador, estableceremos la propiedad Lista para la tabla del formulario de selección. Seleccionar grupos y elementos al valor de Grupos (sin utilizar el parámetro, la selección de elementos del directorio no estará disponible).
NOTA. Si la tabla Lista que muestra una lista de productos no tiene la propiedad SelectionMode establecida en Verdadero, entonces la selección de productos no estará disponible.
Ahora necesitamos manejar la selección del elemento deseado en el formulario de selección. Para hacer esto, necesita definir un controlador para el evento SelectValue de la tabla del formulario.

&EnCliente
Procedimiento ListValueSelection(Elemento, procesamiento estándar, valor)
Procesamiento estándar= Falso;
Notificar de selección (valor);
Procedimiento final
Todo lo que tenemos que hacer es implementar el procesamiento de selección de elementos en el propio campo de entrada. Para hacer esto necesitas manejar el evento. ProcesamientoSelección nuestro campo de entrada Producto Seleccionado.

&EnCliente
Procedimiento SelectedItemSelectionProcessing(Artículo, SelectedValue, StandardProcessing)
Procesamiento estándar= Falso;
Objeto.SelectedProduct = SelectedValue;
Procedimiento final
Implementamos de forma independiente un mecanismo del sistema para seleccionar un valor en un campo de entrada en un formulario.
¡ATENCIÓN! Este ejemplo no está completo. Su único propósito es demostrar los mecanismos para trabajar con parámetros de formulario.
Si al crear parámetros (handler Selección de inicio de producto seleccionado ()) reemplazar la línea:

Opciones de selección. Insertar(“CloseAfterSelection”, Verdadero);
por línea:
Opciones de selección. Insertar(“CerrarDespués de la Selección”, Falso);
entonces el formulario de selección ya no se cerrará después de realizar la selección. Esto se puede utilizar, por ejemplo, para implementar un formulario de selección (seleccionar varios productos sin cerrar el formulario de selección).

Para admitir la interacción automática entre formularios, el sistema proporciona una serie de parámetros estándar que se utilizan para controlar los formularios cuando se abren. Usando estos parámetros, el sistema implementa en los campos del formulario la selección de formularios de selección, la apertura de formularios de objetos, la operación de comandos estándar, etc. Es decir, proporcionan varios escenarios de operación de interfaz integrados en el sistema. Pero el desarrollador también puede utilizar estos parámetros en el lenguaje integrado, pasándolos al llamar al método OpenForm().

Enumeramos los parámetros proporcionados por el sistema y su finalidad:

  • Modo de selección– el formulario se abre en modo de selección. Proporcionado por la extensión de formulario administrado de lista dinámica.
  • Fila actual– una cadena que se activará en la lista cuando se abra. Se pasa un valor que identifica la cadena. Proporcionado por la extensión de formulario administrado de lista dinámica.
  • Seleccionar grupos y elementos– este parámetro establece la propiedad Selección de Grupos y Elementos de la tabla del atributo principal del formulario. Proporcionado por la extensión de formulario administrado de lista dinámica.
  • Permitir seleccionar raíz– define la capacidad de seleccionar una raíz en un formulario con una lista dinámica mostrada como un árbol. Proporcionado por la extensión de formulario administrado de una lista dinámica que se muestra como un árbol.
  • Selección– selección establecida en una lista dinámica. Representa una 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 la selección. Proporcionado por la extensión de formulario administrado de lista dinámica.
  • Llave– un valor que identifica el objeto que se está editando en el formulario. Si el valor falta o es incorrecto, se crea un nuevo objeto utilizando los parámetros restantes. Proporcionado por formularios de objetos y extensiones del administrador de registros de registro de información.
  • Copiar valor– un valor que identifica el objeto que se utilizará para copiar al crear un nuevo objeto. Proporcionado por formularios de objetos y extensiones del administrador de registros de registro de información.
  • Llenar valores– valores para completar los detalles de un nuevo objeto. Representa una estructura. Los nombres de los elementos corresponden a los nombres de los atributos y los valores contienen los datos que se utilizarán para completar los atributos especificados. Proporcionado por formularios de objetos y extensiones del administrador de registros de registro de información.
  • Base– un valor que identifica el objeto que se utilizará como base al crear un nuevo objeto mediante la entrada sobre la base. Proporcionado por extensiones de formulario de objeto.
  • Este grupo– define el tipo de nuevo objeto: grupo o elemento. Proporcionado por extensiones de formulario de objeto.

Un ejemplo de trabajo con parámetros de formulario.

Para demostrar cómo funcionan los parámetros del formulario, considere la implementación de seleccionar un elemento en un campo de entrada. La esencia del ejemplo será la implementación del mecanismo para seleccionar un elemento de una lista en el lenguaje integrado.

Cuando comience a trabajar con el ejemplo, deberá tener una configuración que tenga las siguientes propiedades:

  • Modo de inicio principal: aplicación administrada;
  • hay un directorio Productos con una jerarquía de grupos y elementos;
  • hay un directorio Análogos con el atributo SelectedItem del tipo DirectoryReference.Goods;
  • Ambos directorios tienen formularios de elementos administrados.

Ahora implementamos en esta configuración todos los mecanismos que utiliza la plataforma para seleccionar un elemento de la lista, en el lenguaje incorporado. Al hacerlo, veremos cómo se utilizan los parámetros de formulario estándar; cómo los utiliza el propio sistema; cómo un desarrollador puede usarlos.

Agreguemos una bandera adicional que controlará el cierre del formulario de selección después de seleccionar un elemento. Llamemos a esta bandera CloseAfterSelection (tipo booleano). Agreguémoslo como parámetro de formulario Formulario para seleccionar el directorio de Productos.

Para abrir el formulario de selección de elementos, debe crear un controlador de eventos para el evento Inicio de selección para el elemento del formulario Producto seleccionado en el formulario del elemento del directorio Análogos:

&EnCliente

Procedimiento SelectedProductStartSelection(Artículo, StandardProcessing)

Procesamiento estándar = Falso;

SelectionParameters = Nueva estructura; SelectionParameters.Insert("SelectionMode", Verdadero); SelectionParameters.Insert("SelectingGroupsAndElements", UsandoGroupsAndElements.Elements); SelectionParameters.Insert("AllowRootSelection", Falso); SelectionParameters.Insert("CurrentRow", Object.SelectedProduct); SelectionParameters.Insert("CloseAfterSelection", Falso); OpenForm("Directorio.Productos.SelectionForm", SelectionParameters, Elements.SelectedProduct);

Procedimiento final

Es necesario detenerse por separado en el tercer parámetro del método OpenForm(). Este parámetro determina quién será el propietario del formulario de selección y quién será notificado sobre la selección realizada. En este caso, especificamos el elemento del formulario como propietario del formulario de selección, pero también podemos especificar el formulario en sí con este parámetro. En este caso, será necesario implementar el controlador de procesamiento de selección del módulo de formulario y en él decidir en qué atributo del formulario colocar los datos seleccionados.

Tenemos procesamiento con esta forma básica:

Desde este formulario necesitamos abrir algún formulario adicional y el texto del campo del formulario debe transferirse al formulario abierto. El formulario adicional es el siguiente:

Así, al hacer clic en el botón “Ejecutar”, se abre un formulario adicional con el texto ya ingresado en el campo:

Consideremos una forma de resolver tal problema.

Solución

Para transferir parámetros entre formularios normales, puede utilizar la variable de exportación global del módulo de formulario o crear un atributo de formulario. Consideremos ambos métodos para nuestra tarea.

1. Usando la variable de exportación global del módulo de formulario.

Agregue el siguiente código al formulario principal para el procedimiento del controlador del botón "Ejecutar":

Procedimiento ButtonExecutePress(Botón)Form = GetForm(" Formulario adicional" ) ; // "Texto" es una variable de exportación global del módulo de formulario que se abre Forma. Texto = Elementos de formulario. Texto. Significado; Forma. Abierto(); Procedimiento final

La variable de texto se agregó al módulo del formulario que se abre junto con el controlador de eventos "BeforeOpen":

Exportación de texto variable; // Variable a la que se pasa el valor de otro formulario Procedimiento antes de abrir (fallo, procesamiento estándar) elementos de formulario. Texto transmitido. Valor = Texto; Procedimiento final

El problema está solucionado, ¡y de forma muy sencilla!

2. Utilizar los detalles del formulario.

Para el segundo método, ni siquiera necesitamos reescribir los controladores de los botones "Ejecutar" y "Antes de abrir". Todo lo que es necesario es agregar el atributo "Texto" con el tipo de cadena al formulario abierto.

conclusiones

En formularios administrados, pasar parámetros es mucho más fácil. En las formas convencionales, en la mayoría de los casos se utiliza el enfoque descrito.

Puedes procesar el ejemplo del artículo. descargar desde enlace.