Utilizar opciones funcionales 1s 8.3. Opción funcional, mecanismo

Objeto 1c " Opciones funcionales" - están destinados a resaltar la funcionalidad en una solución de aplicación que se puede activar (desactivar) durante la implementación sin cambiar (junto con los subsistemas, forman la interfaz de cliente ligero 1C). Son parte del mecanismo de opciones funcionales.

Mecanismo de opciones funcionales. incluye dos objetos de metadatos:

  1. Opción funcional;
  2. Parámetros de opciones funcionales.

Más detalles

Opción funcional representa un objeto de metadatos que puede influir directamente en la composición de la interfaz de la aplicación (si la opción funcional almacena su valor en un atributo booleano). Al utilizar objetos de este tipo, puede ocultar elementos relacionados con funciones no disponibles. Por ejemplo, la opción Contabilidad de moneda puede ocultar Monedas, el campo Moneda de y la columna Importe de moneda de los informes.

La fuente del valor de una opción funcional es el objeto de metadatos seleccionado como propiedad de Almacenamiento, por ejemplo podría ser.

Si el valor de una opción funcional se almacena en un atributo o recurso de directorio, se requiere información adicional que indique exactamente cómo seleccionar el valor de la opción. Para ello, se proporciona un objeto de metadatos independiente: Parámetros de opciones funcionales.

Podemos decir que los parámetros de las opciones funcionales son los ejes de coordenadas del espacio de valores de las opciones funcionales. Además, un parámetro de opciones funcionales puede determinar el valor de "su" eje de coordenadas simultáneamente para muchas opciones funcionales.

[colapsar]

Las opciones funcionales pueden tener un impacto:

  1. a la interfaz de usuario:
    • global ;
    • detalles (incluidas columnas de detalles del formulario como Tabla de Valores o Árbol de Valor);
    • formar comandos;
  2. sobre informes implementados utilizando un sistema de composición de datos;
  3. a algoritmos escritos en un lenguaje integrado: es posible obtener los valores de las opciones funcionales del lenguaje integrado y utilizarlos en diversas condiciones, por ejemplo, para reducir la cantidad de cálculos (ver, por ejemplo, ).

¡ATENCIÓN! Si la aplicación cliente funciona con la versión del archivo de la base de datos a través del servidor web, cambiar la opción funcional provocará un cambio en la interfaz de usuario solo después de reiniciar el servidor web (reiniciar la aplicación cliente no cambiará la interfaz de usuario).

Propiedades de las opciones funcionales 1C.

  • El almacenamiento es un campo en el que debe seleccionar un objeto de tipo booleano. Normalmente se utilizan constantes.
  • al recibir, la bandera es responsable de la capacidad de recibir el valor de una opción funcional en modo privilegiado.
  • Composición: una lista de objetos y detalles de objetos, cuya visibilidad se activa/desactiva cuando se activa/desactiva una opción funcional (se controlará mediante un formulario administrado).

Por ejemplo, dependiendo de las condiciones de una implementación particular, es posible deshabilitar la contabilidad de mercancías por almacén para que al registrar documentos para la entrada de mercancías, el campo Almacén no se muestre en el formulario del documento.

Características del uso de opciones funcionales 1C:

  1. Las opciones funcionales pueden tener valores de cualquier tipo (no necesariamente booleanos).
  2. Al agregar una nueva constante para usar una opción de función, asegúrese de incluirla en el subsistema apropiado y asignarle permisos.
  3. Trabajar con opciones funcionales está disponible desde el lenguaje integrado, gracias al cual el desarrollador puede crear sus propios algoritmos para los valores de las opciones funcionales.
  4. El comando de la interfaz de comando se excluirá de la interfaz de comando si la opción funcional está deshabilitada:
    • un atributo que es un parámetro de comando;
    • tipo de parámetro de comando (si el tipo de parámetro de comando es compuesto, entonces el comando deja de estar disponible cuando todos los tipos de parámetros están deshabilitados).

¡ATENCIÓN! Las opciones funcionales y sus parámetros no afectan la composición de la base de datos: todas las tablas y campos están presentes en la base de datos independientemente del estado de las opciones funcionales.

Influencia de las opciones funcionales en los detalles y comandos del formulario:

  1. tipo de formulario administrado<Вид>Un objeto ( DirectorioObjeto, DocumentObject, etc.) se desactivará si el objeto correspondiente está desactivado mediante la opción funcional. Sólo se analizan aquellas opciones funcionales que no tienen parámetros.
  2. Atributos básicos de un tipo de formulario administrado Lista dinámica se deshabilitará si la opción funcional deshabilita el objeto de configuración que se especifica como la tabla principal de la lista dinámica. Sólo se analizan aquellas opciones funcionales que no tienen parámetros.
  3. El atributo de formulario de un tipo de referencia está deshabilitado si el objeto de configuración que forma este tipo está deshabilitado mediante una opción funcional. El atributo de formulario de un tipo compuesto está deshabilitado si las opciones funcionales deshabilitan todos los tipos de constituyentes.
  4. Una tabla de formulario se deshabilitará si muestra datos de atributos de formulario que están deshabilitados por una opción funcional.
  5. No hay tipos en el cuadro de diálogo de selección de tipo (por ejemplo, para campos de entrada asociados con atributos de un tipo complejo) si los objetos de configuración que forman estos tipos están deshabilitados mediante una opción funcional. La información sobre los tipos deshabilitados por las opciones funcionales se almacena en caché en el lado del cliente y se borra después de 20 minutos o durante una llamada a un método. ActualizarInterfaz().

¡ATENCIÓN! A diferencia de la interfaz de comando, los valores de los parámetros de opciones funcionales se establecen solo para una instancia específica del formulario.

Crear un parámetro de opciones funcionales

Un parámetro de opción funcional se crea utilizando el objeto de configuración 1C "Parámetros de opción funcional".

[colapsar]

Esto se puede hacer en la ventana de configuración agregando un nuevo objeto.

Propiedades de los parámetros de opciones funcionales:

  • Uso: configura un conjunto de objetos cuyos valores determinarán cómo se debe seleccionar el valor de una opción funcional. La lista de objetos disponibles incluye directorios y dimensiones de registro de información. Para cada parámetro de opciones funcionales en esta lista, puede seleccionar un directorio (de la lista completa de directorios) y una dimensión de cada registro de información.

¡ATENCIÓN! No puede utilizar el mismo objeto de metadatos en varios parámetros de opciones de función.

30.03.2017

Opciones funcionales 1C 8.3 (Mecanismo, uso)

Para comenzar importante Tenga en cuenta que el mecanismo de opciones funcionales NO restringe el acceso a los datos, pero solo controla la visibilidad (visualización) de los datos en el formulario. Para restringir el acceso a los objetos, la plataforma utiliza un mecanismo de roles.
Por lo tanto, comenzaremos nuestra consideración del mecanismo de opciones funcionales con una descripción de la tarea. En nuestra mini configuración hay un directorio "Almacenes". Supongamos que todos los usuarios tienen acceso a este directorio.
¡De nuevo! El mecanismo de opciones funcionales controla la visualización de los datos en el formulario y no limita el acceso al objeto de metadatos (directorio, documento, entradas de registro...) Es necesario realizar la configuración "Usar múltiples almacenes" (Sí, sí... Esto está en UT 11.X, también se hace allí para organizaciones). Si utilizamos varios almacenes, entonces el directorio de almacenes está disponible en la interfaz; si no, entonces hay un comando que abre un almacén (asumimos que en este caso solo hay uno, y no compliquemos la tarea).

Objetos de metadatos de configuración

Para lograr esta tarea necesitaremos:
  • Dos opciones funcionales "Usar varios almacenes" y "No utilizar varios almacenes". El primero es responsable de la disponibilidad del directorio y el segundo de la disponibilidad del comando general para llamar al algoritmo de "apertura" del almacén.
  • Constantes del mismo nombre con tipo booleano para almacenar los valores de opciones funcionales.
  • Directorio "Almacenes"
  • Comando general "OpenMainWarehouse". No olvide especificar un grupo de comandos para ello; de lo contrario, la configuración no se aplicará (habrá un error)
Y agregaremos un subsistema donde incluiremos todos los objetos existentes.

Configurar opciones funcionales

La primera opción es "Usar varios almacenes". El valor se almacena en una constante del mismo nombre, que incluye el directorio "Almacenes". Así, cuando el valor de la constante es "True" el directorio está disponible en la interfaz, cuando es false, el directorio no se mostrará en la interfaz (Contenidos de subsistemas, formularios de objetos, etc.)




La segunda funcionalidad "No utilizar varios almacenes" se instala cuando la primera "Usar varios almacenes" NO está instalada.
Aquellos. si no utilizamos varios almacenes (Usar varios almacenes = FALSE y el libro de referencia "Almacenes" no está disponible), entonces se muestra el comando "OpenMainWarehouse", cuya disponibilidad está controlada por la opción "No utilizar varios almacenes". (No Usar Varios Almacenes = VERDADERO)

Comprobando el comportamiento del sistema.

Opción 1. UseMultipleWarehouses = Verdadero, Don'tUseMultipleWarehouses = Falso. El directorio "Almacenes" está disponible en la interfaz.


Opcion 2. UseMultipleWarehouses = Falso, Don'tUseMultipleWarehouses = Verdadero. El directorio "Almacenes" NO está disponible en la interfaz, en su lugar está disponible el comando general "OpenMainWarehouse".

Las opciones funcionales son un objeto de metadatos ubicado en el grupo "General":

Las opciones funcionales son parte del mecanismo de opciones funcionales, que permiten habilitar o deshabilitar algunas funcionalidades en la solución de la aplicación según las necesidades del usuario, sin modificar la configuración en sí.
Por ejemplo, no todas las organizaciones pueden utilizar la contabilidad de almacén. Si no se utiliza la contabilidad de almacén, entonces tiene sentido eliminar el campo de almacén de todos los documentos, directorios y registros; ahí es cuando las opciones funcionales nos ayudan.

Veamos un ejemplo:

Creemos una opción funcional " Contabilidad por Almacenes".
Almacenamiento: se indica el campo que almacena el valor.
Puede seleccionar una constante, un atributo de directorio o un recurso de registro de información.
Usaremos una constante.

Creemos una constante " Llevar cuentas de almacenes" y selecciónelo en el campo de almacenamiento. Esta constante será la encargada de habilitar y deshabilitar la opción funcional. Marque la casilla "Modo privilegiado al recibir". Esta casilla significa que los valores de la opción funcional se recibirán en modo privilegiado. :

Actualizamos, lanzamos 1C Enterprise. Establezca el valor de la constante = Verdadero:

Como resultado tenemos:

Al establecer la constante = False, obtenemos:

¿Tiene alguna pregunta o necesita ayuda de un consultor?

Entonces, hemos creado una opción funcional que controla campos del tipo DirectoryLink.Warehouse

Veamos ahora un ejemplo del uso de parámetros de opciones funcionales.
Agreguemos una nueva opción funcional " Contabilidad de divisas"
Almacenamiento: Directorio.Organización.Detalles.Contabilidad de divisas


Agreguemos a la composición del documento los detalles "Configuración de precios de artículos" - "Moneda"


En forma de Documento en los procedimientos "Cuando se crea en el servidor" y "Organización cuando se cambia"
Agreguemos el siguiente código:

Actualizamos la configuración y la lanzamos.
Creamos dos Organizaciones y para una de ellas marcamos la casilla “Contabilidad de divisas”

¿Qué obtenemos como resultado? Como resultado del uso de los parámetros de la opción funcional, recibimos control paramétrico del campo "Moneda" en el documento "Configuración de precios de artículos". Aquellos. para la organización "Alfa" se mostrará el campo "Moneda" y para la organización "Beta" no se mostrará el campo "Moneda".
Asegurémonos de esto. Abra el documento e intente cambiar el campo "Organización".
Al configurar Organización = "Alfa", se muestra la moneda; cambiar a "Beta" - se elimina la moneda



Objetivo

Las opciones funcionales permiten al desarrollador describir capacidades de configuración que se pueden activar o desactivar rápidamente en la etapa de implementación y/o durante la operación del sistema. Por ejemplo, la capacidad de trabajar con propiedades adicionales del producto se puede separar en una opción funcional separada. Luego, si desactiva esta función, todas las funciones relacionadas (con propiedades adicionales del producto) "desaparecerán" en la interfaz de configuración.

El sistema puede tener en cuenta automáticamente el estado de la configuración realizada: ocultar las funciones deshabilitadas, lo que hace que la interfaz de la aplicación sea más clara y comprensible para el usuario.

Durante el desarrollo, surgen situaciones en las que el valor de una opción funcional debe depender de ciertos parámetros; por ejemplo, no todas las organizaciones mantienen una contabilidad monetaria. Para implementar dicha dependencia, utilice los Parámetros de opciones funcionales, un objeto que parametriza las opciones funcionales. ¿A qué afectan las opciones funcionales?

Las opciones funcionales pueden tener un impacto:

  • a la interfaz de usuario: cuando desactiva cualquier opción funcional, el sistema oculta todos los elementos relacionados con ella en la interfaz de usuario. Los siguientes elementos de la interfaz se ven afectados:
    • interfaz de comando global;
    • formularios;
    • informes implementados mediante un sistema de composición de datos.
  • algoritmos escritos en un lenguaje integrado: es posible obtener (y establecer) mediante programación los valores de las opciones funcionales y utilizarlos en diversas condiciones, por ejemplo, para reducir la cantidad de cálculos.

Interfaz de comando global

El efecto de las opciones funcionales en la interfaz de comando global es que el sistema oculta los comandos de todos los objetos relacionados con opciones no disponibles. Por ejemplo, si el valor de la opción funcional Compras es Falso, entonces se ocultarán los comandos para abrir la sección Compras, crear un documento de Mercadería Recibida, abrir la lista de Mercadería Recibida, etc.

A su vez, la opción Compras puede tener en cuenta el valor de un parámetro de opción funcional, por ejemplo, Organización. Al cambiar el valor de este parámetro utilizando métodos de lenguaje integrados, puede cambiar el estado de la opción funcional y, por lo tanto, la visibilidad del elemento de la interfaz.

Forma

En un formulario administrado, las opciones funcionales pueden afectar los atributos del formulario, los comandos y (como resultado) sus elementos de formulario asociados.

La visibilidad de los campos y tablas del formulario administrado depende de la visibilidad de los detalles del formulario y la visibilidad de los botones depende de la visibilidad de los comandos.

Sistema de composición de datos

El sistema de composición de datos se utiliza principalmente para generar informes. Las opciones funcionales afectan la composición de los datos que se muestran en el informe y la composición de la configuración del informe disponible para el usuario. Por ejemplo, si la opción funcional Contabilidad de moneda está deshabilitada, entonces el informe que muestra el registro de documentos de recepción de mercancías no tendrá las columnas Moneda y Monto de moneda, y la configuración no tendrá la capacidad de seleccionar, agrupar, ordenar, etc. el campo Moneda.

Para obtener más información sobre el impacto de las opciones funcionales en la disponibilidad de los campos en un informe, consulte la sección "Opciones funcionales y permiso para ver campos en un informe" del capítulo "Informes administrados".

Esquema general de trabajo.

El mecanismo de opciones funcionales incluye dos tipos de objetos de metadatos: opción funcional y parámetro de opciones funcionales.

Una opción funcional es un objeto de metadatos que afecta directamente la composición de la interfaz de la aplicación. Al utilizar objetos de este tipo, puede ocultar elementos relacionados con funciones no disponibles. Por ejemplo, la opción Contabilidad de moneda puede eliminar el directorio Moneda, el campo Moneda de los documentos y la columna Importe de moneda de los informes. La fuente del valor de una opción funcional es el objeto de metadatos seleccionado como propiedad de Almacenamiento; por ejemplo, esto podría ser una constante.

Si el valor de una opción funcional se almacena en un atributo de directorio o en un recurso de registro de información, se requiere información adicional que indique exactamente cómo seleccionar el valor de la opción. Para ello, se proporciona un objeto de metadatos independiente: el parámetro de opciones funcionales.

Podemos decir que los parámetros de las opciones funcionales son los ejes de coordenadas del espacio de valores de las opciones funcionales. Además, un parámetro de una opción funcional puede determinar el valor de "su" eje de coordenadas simultáneamente para muchas opciones funcionales.

Veamos un ejemplo: digamos que la contabilidad cuantitativa depende de la unidad dentro de la organización. En nuestro base de información Puede mantener registros en nombre de diferentes organizaciones.

Para almacenar los valores de opciones funcionales, crearemos un registro de información, donde las dimensiones (ejes de coordenadas) serán:

  • Organización (del tipo apropiado);
  • División (del tipo apropiado).

El recurso de registro de información será el valor de la opción funcional de contabilidad cuantitativa.

Entonces la estructura de configuración general se verá así:

  • Registro de información Contabilidad Cuantitativa:
    • organización de dimensiones,
    • división de dimensiones,
    • Recurso de contabilidad cuantitativa de tipo booleano.
  • Parámetro de opciones funcionales Organización. La propiedad Uso indica la dimensión Organización del registro de información Contabilidad cuantitativa.
  • Departamento de parámetros de opciones funcionales. La propiedad Uso indica la dimensión de división del registro de información de QuantitativeAccounting.
  • La opción funcional QuantitativeAccounting, la propiedad Almacenamiento, apunta al recurso QuantitativeAccounting del registro de información QuantitativeAccounting.

En consecuencia, para determinar la necesidad de llevar una contabilidad cuantitativa, es necesario indicar en cada caso concreto los valores de los parámetros de las opciones funcionales (Organización y División) y obtener el valor de la opción funcional.

Interacción con otros objetos.

Se pueden asignar opciones funcionales a los siguientes objetos de configuración:

  • subsistemas,
  • Comandos generales
  • constantes,
  • Criteria de selección,
  • Directorio,
  • Documento,
  • Revista,
  • Catálogo de cuentas,
  • Plan tipos de características,
  • Plan de tipos de cálculo,
  • proceso de negocios,
  • Tarea,
  • Planes de intercambio,
  • Informe,
  • Tratamiento,
  • registro de acumulación,
  • registro de informacion
  • registro contable,
  • registro de cálculo,
  • Equipo,
  • Detalles del objeto de metadatos,
  • parte tabular,
  • Detalles de la parte tabular,
  • signo de contabilidad
  • Atributo contable del subconto,
  • Detalles del direccionamiento
  • Registrar medición,
  • Registrar recurso.

Las opciones funcionales también pueden afectar la visibilidad de los elementos del formulario.

Creación

Crear una opción de función

Para crear una opción funcional, necesita crear un objeto de configuración Opción funcional. Esto se puede hacer en el modo Configurador de la forma habitual, es decir, en la ventana de configuración, seleccione General, luego Opciones funcionales y agregue un nuevo objeto.

Esto creará un objeto de configuración de opción funcional que se puede utilizar para asignar opciones funcionales a otros objetos de metadatos.

Además del nombre, el objeto tiene una propiedad requerida: Almacenamiento. En el editor, puede seleccionar uno de los objetos, que será la fuente del valor de la opción. La lista de objetos disponibles incluye:

  • constantes,
  • detalles del directorio,
  • recursos de registro de información.

No hay restricción sobre el tipo de fuente del valor de la opción, pero solo aquellas opciones funcionales que almacenan sus valores en atributos de tipo booleano son adecuadas para administrar la interfaz. Los valores de opciones funcionales con otros tipos solo están disponibles para su análisis en el lenguaje integrado.

Crear un parámetro de opciones funcionales

Para crear un parámetro de opción funcional, debe crear un objeto de configuración con el mismo nombre. Esto se puede hacer en la rama General, elemento de configuración de Opciones funcionales.

Además del nombre, el parámetro tiene una propiedad de uso obligatoria. Especifica un conjunto de objetos cuyos valores determinarán cómo se debe seleccionar el valor de una opción funcional. La lista de objetos disponibles incluye directorios y dimensiones de registro de información. Para cada parámetro de opciones funcionales en esta lista, puede seleccionar un directorio (de la lista completa de directorios) y una dimensión de cada registro de información.

Uso

Asignar metadatos a objetos

Un objeto de metadatos (por ejemplo, un directorio) se puede asignar a una o más opciones funcionales. Para hacer esto, use la propiedad Opciones funcionales, que contiene enlaces a opciones funcionales creadas en la configuración. La lista de opciones disponibles se limita únicamente a aquellas opciones para las cuales a la propiedad Almacenamiento se le asigna un objeto cuyo tipo de valor es booleano.

Asignación para formar detalles y comandos.

Los objetos que pertenecen al formulario (Detalles y Comandos) también se pueden utilizar en el mecanismo de opciones funcionales.

Esto se puede hacer en el editor de formularios configurando la propiedad Opciones funcionales para el objeto requerido.

El estado de las opciones funcionales afectará la visualización de los objetos de formulario de la misma manera que lo hace con los objetos de metadatos. Por ejemplo, en el caso de un comando que se desactiva mediante una opción de función, se eliminarán todos los botones asociados.

Si no se asigna ninguna opción funcional a un atributo o comando del formulario, entonces el atributo o comando del formulario se considera siempre visible. De lo contrario, un atributo o comando de formulario se considera visible si al menos una de las opciones funcionales asignadas al mismo está habilitada.

Uso en un mecanismo de restricción de acceso a datos

Según el mecanismo de restricción de acceso a datos, las Opciones funcionales se pueden utilizar de la misma manera que las Opciones de sesión. Está permitido utilizar sólo opciones independientes de parámetros, es decir, aquellas que están vinculadas a constantes.

Determinar el valor de una opción funcional.

El valor de la opción funcional está determinado por el objeto especificado en la propiedad Almacenamiento. En el caso de una constante, se utiliza su valor. Para una opción asociada con un atributo de directorio o un recurso de registro de información, los valores almacenados en estos objetos. Para encontrar un objeto específico que almacene el valor de una opción funcional, se necesita información adicional: un conjunto de valores para los parámetros de las opciones funcionales.

Si una opción se almacena en un atributo de directorio, el parámetro debe contener un enlace a un elemento de directorio específico. Si la opción se almacena en un recurso de registro detallado, se deben especificar los valores de todas las dimensiones del registro. En este caso, cada medición debe caracterizarse por su propio parámetro.

Los métodos del lenguaje integrado le permiten obtener el valor de una opción, tanto en función de los parámetros pasados ​​como de los parámetros establecidos para la interfaz de comando o un formulario específico (para obtener más detalles, consulte la sección "Trabajar con opciones funcionales en el lenguaje integrado"). en el lenguaje” de este capítulo).

Si una opción funcional está vinculada a un recurso de registro de información periódica, entonces el sistema utiliza una porción de este último para obtener el valor de la opción. Si desea obtener el valor de la opción para alguna otra fecha, debe especificar un valor para el parámetro de opciones funcionales Período (Periodo), que tiene un tipo de Fecha, que se utilizará como la fecha para recibir el segmento. No es necesario crear este parámetro en los metadatos. El sistema lo proporciona automáticamente.

Gestión de valores de parámetros de opciones funcionales

Los valores de los parámetros se establecen mediante métodos de lenguaje integrados. En este caso, es posible delimitar el alcance de los valores de los parámetros. Los parámetros se pueden configurar en toda la interfaz de comando y dentro de una instancia de formulario específica.

Trabajar con opciones funcionales en el lenguaje integrado.

Los métodos para trabajar con opciones funcionales se pueden dividir en dos partes:

  • métodos para obtener el valor de la opción,
  • métodos de trabajo con parámetros de opciones funcionales.

Trabajar con valores de opciones funcionales

Los métodos de contexto global GetFunctionalOption() y GetFunctionalInterfaceOption() devuelven el valor de la opción funcional. La diferencia entre ellos es que el primer método le permite especificar un conjunto de parámetros para opciones funcionales y el segundo método devuelve el valor de una opción funcional según los parámetros especificados para la interfaz de comando.

Un formulario administrado tiene su propio método que devuelve el valor de la opción para los parámetros especificados dentro del formulario: GetFormFunctionalOption().

Trabajar con parámetros de opciones funcionales

Los métodos para trabajar con parámetros de opciones funcionales le permiten obtener y establecer los valores de los parámetros de opciones funcionales para una interfaz de comando o un formulario específico. Para establecer los valores de los parámetros de las opciones funcionales, es necesario llamar a la función correspondiente (SetInterfaceFunctionalOptionParameters() o SetFormFunctionalOptionParameters()), pasándole como parámetro una estructura cuya clave corresponde al nombre de uno de los parámetros de las opciones funcionales, y cuyo valor corresponde al valor del parámetro. Llamar a los métodos anteriores actualizará automáticamente la parte correspondiente de la interfaz.

No es necesario especificar todos los parámetros a la vez; puede cambiar el valor de un parámetro específico o de un conjunto de parámetros de forma selectiva. Pero es la fijación de valores en grupo con una sola llamada lo que resulta más eficaz.

Para obtener los valores de los parámetros, debe llamar a la función correspondiente (GetInterfaceFunctionalOptionParameters() o GetFormFunctionalOptionParameters()), que devolverá los parámetros establecidos en forma de estructura, donde el nombre del parámetro será la clave.

Imprimir (Ctrl+P)

1. Propósito de las opciones funcionales

Las opciones funcionales permiten al desarrollador describir las capacidades de la solución de la aplicación, que se pueden activar o desactivar rápidamente en la etapa de implementación y/o durante la operación del sistema. Por ejemplo, la capacidad de trabajar con propiedades adicionales del producto se puede separar en una opción funcional separada. Luego, si desactiva esta función, todas las capacidades relacionadas (con propiedades adicionales del producto) "desaparecerán" en la interfaz de la solución de la aplicación.
El sistema puede tener en cuenta automáticamente el estado de la configuración realizada: ocultar las funciones deshabilitadas, lo que hace que la interfaz de la aplicación sea más clara y comprensible para el usuario.
Durante el desarrollo, surgen situaciones en las que el valor de una opción funcional debe depender de ciertos parámetros; por ejemplo, no todas las organizaciones mantienen una contabilidad monetaria. Para implementar dicha dependencia, utilice Parámetros de opciones funcionales: objetos que parametrizan opciones funcionales.

2. ¿A qué afectan las opciones funcionales?

2.1. información general

Las opciones funcionales pueden tener un impacto:
● A la interfaz de usuario: cuando desactiva alguna opción funcional, el sistema oculta todos los elementos relacionados con ella en la interfaz de usuario. Los siguientes elementos de la interfaz se ven afectados:
● interfaz de comando global;
● detalles del formulario (incluidas columnas de detalles del formulario del tipo Tabla de valores o Árbol de valores);
● formar comandos;
● informes implementados utilizando un sistema de composición de datos.
¡ATENCIÓN! Si la aplicación cliente funciona con la versión del archivo de la base de datos a través del servidor web, cambiar la opción funcional provocará un cambio en la interfaz de usuario solo después de reiniciar el servidor web (reiniciar la aplicación cliente no cambiará la interfaz de usuario).
● Para algoritmos escritos en un lenguaje integrado: es posible obtener los valores de las opciones funcionales del lenguaje integrado y utilizarlos en diversas condiciones, por ejemplo, para reducir la cantidad de cálculos.
ATENCIÓN! Las opciones funcionales y sus parámetros no afectan la composición de la base de datos. Todas las tablas y campos están presentes en la base de datos independientemente del estado de las opciones funcionales.

2.2. Interfaz de comando global

El efecto de las opciones funcionales en la interfaz de comando global es que el sistema oculta los comandos de todos los objetos relacionados con las opciones deshabilitadas. Por ejemplo, si el valor de la opción funcional Compras es igual a Falso, entonces se ocultarán los comandos para abrir la sección Compras, crear un documento de Mercadería Recibida, abrir la lista de Mercadería Recibida, etc.
A su vez, la opción Compras puede tener en cuenta el valor de un parámetro de opción funcional, por ejemplo, Organización. Al cambiar el valor de este parámetro utilizando métodos de lenguaje integrados, puede cambiar el estado de la opción funcional y, en consecuencia, la visibilidad del elemento de la interfaz.
También debes tener en cuenta las siguientes características de la formación de la interfaz de comando:
● El comando se excluirá de la interfaz de comandos si el atributo que es un parámetro del comando está deshabilitado mediante una opción funcional.
● El comando se excluirá de la interfaz de comandos si el tipo de parámetro del comando está deshabilitado mediante una opción funcional. Si el tipo de parámetro de un comando es compuesto, el comando deja de estar disponible cuando todos los tipos de parámetros están deshabilitados.

2.3. Forma

En un formulario, las opciones funcionales pueden influir en los detalles y comandos del formulario y (como resultado) cambiar la visibilidad de los elementos del formulario asociados con ellos (campos y columnas para detalles del formulario, botones para comandos de formulario). Al desarrollar un formulario, es necesario tener en cuenta las siguientes características del comportamiento del sistema:
<Вид>Un objeto ( DirectorioObjeto t, DocumentObject, etc.) se desactivará si el objeto de configuración correspondiente se desactiva mediante la opción funcional. Sólo se analizan aquellas opciones funcionales que no tienen parámetros.
● Atributo básico de un tipo de formulario administrado Lista dinámica se deshabilitará si la opción funcional deshabilita el objeto de configuración que se especifica como la tabla principal de la lista dinámica. Sólo se analizan aquellas opciones funcionales que no tienen parámetros.
● El atributo de formulario de un tipo de referencia está deshabilitado si el objeto de configuración que forma este tipo está deshabilitado mediante una opción funcional. El atributo de formulario de un tipo compuesto está deshabilitado si las opciones funcionales deshabilitan todos los tipos de constituyentes.
● El atributo de formulario de tipo está deshabilitado.<Вид>Un objeto (incluido el atributo de formulario principal), si el objeto de configuración que forma este tipo está deshabilitado por una opción funcional. Sólo se analizan aquellas opciones funcionales que no tienen parámetros.
● Una tabla de formulario se deshabilitará si muestra datos de atributos de formulario que están deshabilitados mediante una opción funcional.
● No hay tipos en el cuadro de diálogo de selección de tipo (por ejemplo, para campos de entrada asociados con atributos de un tipo complejo) si los objetos de configuración que forman estos tipos están deshabilitados mediante una opción funcional. La información sobre los tipos deshabilitados por las opciones funcionales se almacena en caché en el lado del cliente y se borra después de 20 minutos o durante una llamada a un método. Actualizar interfaz().
¡ATENCIÓN! A diferencia de la interfaz de comando, los valores de los parámetros de opciones funcionales se establecen solo para una instancia específica del formulario.

2.4. Sistema de composición de datos

El sistema de composición de datos se utiliza principalmente para generar informes. Las opciones funcionales afectan la composición de los datos que se muestran en el informe y la composición de la configuración del informe disponible para el usuario. Por ejemplo, si la opción funcional Contabilidad de moneda está deshabilitada, en el informe que muestra el registro de documentos Entrada de mercancías, no habrá la columna Moneda y Monto de moneda, y en la configuración no habrá posibilidad de seleccionar, agrupar, ordenar, etc. mediante el campo Moneda.

2.5. Características

Las opciones funcionales afectan la visibilidad de los campos del formulario que muestran el valor de la característica de un objeto. Para ello se debe incluir en la opción funcional un atributo que almacene el valor de la característica.
Veamos un ejemplo. Las características se utilizan para el directorio de Productos; los tipos de características se almacenan en el plan de tipos. características características, y los valores como recurso de registro de información Valores característicos. El recurso está incluido en la opción funcional. Contabilidad de características.

Arroz. 1. Impacto de las opciones funcionales en el rendimiento

En caso de deshabilitar la opción funcional. Contabilidad de características En los formularios, la visibilidad de los campos (columna Valor y campo Valor) que muestran los valores de las características está deshabilitada, como se muestra en la Figura 1.

3. Esquema general de trabajo

El mecanismo de opciones funcionales incluye dos tipos de objetos de metadatos: Opción funcional Y .
Una opción funcional es un objeto de metadatos que puede influir directamente en la composición de la interfaz de la aplicación (si la opción funcional almacena su valor en un atributo booleano). Al utilizar objetos de este tipo, puede ocultar elementos relacionados con funciones no disponibles. Por ejemplo, la opción Contabilidad de moneda puede ocultar el directorio Monedas, el campo Monedas de los documentos y la columna Importe de moneda de los informes. La fuente del valor de una opción funcional es el objeto de metadatos seleccionado como propiedad de Almacenamiento, por ejemplo este
puede ser una constante.
Si el valor de una opción funcional se almacena en un atributo de directorio o en un recurso de registro de información, se requiere información adicional que indique exactamente cómo seleccionar el valor de la opción. Para ello, se proporciona un objeto de metadatos independiente: Parámetros de opciones funcionales.
Podemos decir que los parámetros de las opciones funcionales son los ejes de coordenadas del espacio de valores de las opciones funcionales. Además, un parámetro de opciones funcionales puede determinar el valor de "su" eje de coordenadas simultáneamente para muchas opciones funcionales.


Arroz. 2. Opción de función parametrizable

Consideremos un ejemplo: digamos que la contabilidad total depende de un almacén propiedad de una organización específica (ver Fig. 98). En nuestra base de datos de información
Puede mantener registros en nombre de diferentes organizaciones y en diferentes almacenes.
Para almacenar los valores de opciones funcionales, crearemos un registro de información, donde las dimensiones (ejes de coordenadas) serán:

● Organización (del tipo apropiado);
● Almacén (del tipo apropiado).

El recurso de registro de información será el valor de la opción funcional de contabilidad total.
Entonces la estructura de configuración general se verá así:
● Registro de información SummovayaAccounting:
● Dimensión organizativa;
● dimensión Almacén;
● recurso SummovayaAccount, que tiene el tipo booleano.
● Parámetro de opciones funcionales Organización. La propiedad Uso indica la dimensión Organización del registro de información SummativeAccounting.
● Parámetro de opciones funcionales Almacén. La propiedad Uso apunta a la dimensión Almacén del registro de información SumAccounting.
● Opción funcional SumAccounting. La propiedad Almacenamiento apunta al recurso SummovayaAccounting para el registro de información de SummovayaAccounting.
En consecuencia, para determinar la necesidad de llevar una contabilidad total, es necesario indicar en cada caso concreto los valores de los parámetros de las opciones funcionales (Organización y Almacén) y obtener el valor de la opción funcional.
Entonces, en el ejemplo que se muestra en la Fig. 2, se permite la contabilidad total para la Organización 1 y el Almacén 1, pero la contabilidad total está prohibida para la Organización 2 y el Almacén 1.

4. Interacción con otros objetos

Se pueden asignar opciones funcionales a los siguientes objetos de configuración:
● Subsistemas,
● Comandos generales,
● formularios generales,
● Constantes,
● Criterios de selección,
● Directorio,
● Documento,
● Revista,
● Plan de cuentas,
● Plan de tipos de características,
● Plan de tipos de cálculo,
● Proceso de negocio,
● Tarea,
● Planes de intercambio,
● Informe,
● Procesamiento,
● Registro de acumulación,
● Registro de información,
● Registro contable,
● Registro de cálculo,
● Equipo,
● Detalles del objeto de metadatos,
● parte tabular,
● Detalles de la sección tabular,
● Atributo contable,
● Atributo contable del subconto,
● Abordar detalles,
● Registrar medición,
● Registrar recurso.
Las opciones funcionales también pueden afectar la visibilidad de los elementos del formulario.

5. Creación

5.1. Crear una opción de función

Para crear una opción funcional, necesita crear un objeto de configuración Opción funcional. Esto se puede hacer en el modo Configurador de la forma habitual, es decir, en la ventana de configuración, seleccione General, luego Opciones funcionales y agregue un nuevo objeto.

Arroz. 3. Creando una opción funcional

Esto creará un objeto de configuración de opción funcional que se puede utilizar para asignar opciones funcionales a otros objetos de metadatos.


Arroz. 4. Almacenamiento del valor de una opción funcional.

Además del nombre, el objeto tiene una propiedad obligatoria: Almacenamiento. En el editor, puede seleccionar uno de los objetos, que será la fuente del valor de la opción. La lista de objetos disponibles incluye:
● constantes,
● detalles del directorio,
● recursos de registros de información.
No hay restricción sobre el tipo de fuente del valor de la opción, pero solo aquellas opciones funcionales que almacenan sus valores en atributos de tipo booleano son adecuadas para administrar la interfaz. Los valores de opciones funcionales con otros tipos solo están disponibles para su análisis en el lenguaje integrado.
La propiedad Modo privilegiado de recuperación controla cómo se recupera (y se almacena en caché) el valor de una opción funcional.


Arroz. 5. Modo privilegiado al recibir el valor de una opción funcional

Si se establece esta propiedad, el valor de la opción funcional se obtiene en modo privilegiado. El valor resultante se almacena en caché para todas las sesiones asociadas con esta base de información.
Si la propiedad Modo privilegiado se borra durante la recuperación, la recuperación del valor de una opción funcional se realiza en modo normal.
El almacenamiento en caché se realiza para la sesión actual. Tanto el valor (si fue posible obtenerlo) como el signo de imposibilidad de obtener el valor (si no fue posible obtener el valor) se almacenan en caché.
El caché se restablece cuando se cambian los valores de los parámetros de la sesión.
CONSEJO. Se recomienda establecer la propiedad Modo privilegiado al recibir para todos los casos en los que el valor de una opción funcional no contenga información confidencial.

5.2. Crear un parámetro de opciones funcionales

Para crear un parámetro de opción funcional, necesita crear un objeto de configuración Parámetros de opciones funcionales. Esto se puede hacer en el modo Configurador de la forma habitual, es decir, en la ventana de configuración, seleccione General, luego Parámetros de opciones funcionales y agregar un nuevo objeto.

Además del nombre, el parámetro tiene una propiedad de uso obligatoria. Especifica un conjunto de objetos cuyos valores determinarán cómo se debe seleccionar el valor de una opción funcional. La lista de objetos disponibles incluye directorios y dimensiones de registro de información. Para cada parámetro de opciones funcionales en esta lista, puede seleccionar un directorio (de la lista completa de directorios) y una dimensión de cada registro de información.
¡ATENCIÓN! No puede utilizar el mismo objeto de metadatos en varios parámetros de opciones de función.

6.Uso

6.1 Asignar metadatos a objetos

Un objeto de metadatos (por ejemplo, un directorio) se puede asignar a una o más opciones funcionales. Para hacer esto, use la propiedad Opciones funcionales, que contiene enlaces a opciones funcionales creadas en la configuración.

Arroz. 6. Asignar una opción funcional a un objeto.

La lista de opciones disponibles se limita únicamente a aquellas opciones para las cuales se asigna un objeto con un tipo de valor booleano en la propiedad Almacenamiento.
¡ATENCIÓN! Si a un objeto no se le asigna ninguna opción funcional, se considera siempre visible. De lo contrario, un objeto se considera visible si al menos una de las opciones funcionales asignadas a él está habilitada (es decir, las opciones funcionales están “OR”).

6.2. Asignación para formar detalles y comandos.

Los objetos que pertenecen al formulario (Detalles y Comandos) también se pueden utilizar en el mecanismo de opciones funcionales.


Arroz. 7. Asignar una opción funcional a un comando

Esto se puede hacer en el editor de formularios configurando la propiedad Opciones funcionales para el objeto requerido.
El estado de las opciones funcionales afectará la visualización de los objetos de formulario de la misma manera que lo hace con los objetos de metadatos.
Por ejemplo, en el caso de un comando que se desactiva mediante una opción de función, se eliminarán todos los botones asociados.
Si no se asigna ninguna opción funcional a un atributo o comando de formulario, entonces el atributo o comando del formulario siempre se considera visible. De lo contrario, un atributo o comando de formulario se considera visible si al menos una de las opciones funcionales asignadas al mismo está habilitada.

6.3. Uso en un mecanismo de restricción de acceso a datos

Bajo el mecanismo de restricción de acceso a datos Opciones funcionales se puede utilizar de la misma manera que Opciones de sesión. Está permitido utilizar sólo opciones que no dependan de parámetros, es decir, aquellas que estén vinculadas a constantes.
¡ATENCIÓN! El sistema controla la unicidad de los nombres entre los parámetros de sesión y las opciones funcionales.

6.4. Determinar el valor de una opción funcional.

El valor de la opción funcional está determinado por el objeto especificado en la propiedad Almacenamiento. En el caso de una constante, se utiliza su valor. Para una opción asociada con un atributo de directorio o un recurso de registro de información, los valores almacenados en estos objetos. Para encontrar un objeto específico que almacene el valor de una opción funcional, se necesita información adicional: un conjunto de valores para los parámetros de las opciones funcionales.
Si una opción se almacena en un atributo de directorio, el parámetro debe contener un enlace a un elemento de directorio específico. Si la opción se almacena en un recurso de registro detallado, se deben especificar los valores de todas las dimensiones del registro. En este caso, cada medición debe caracterizarse por su propio parámetro.
Si no se especifican todos los parámetros para una opción funcional de tipo booleano, se realiza la suma O de todos los valores con parámetros no especificados. Por ejemplo, si una opción funcional se almacena en un registro de información con las dimensiones Organización y Almacén y solo se especifica la dimensión Organización, entonces el valor de la opción funcional será igual a Verdadero si al menos uno de los almacenes enumerados en el Almacén La dimensión tiene el valor de la opción funcional igual a Verdadero.
Para una opción de función que no es de tipo booleano, la situación con parámetros especificados de forma incompleta da como resultado que se genere una excepción.
Los métodos de lenguaje integrados le permiten obtener el valor de una opción, tanto en función de los parámetros pasados ​​como de los parámetros establecidos.
para una interfaz de comando o un formulario específico. En el caso de que se realice un cambio en el valor de un objeto especificado en la propiedad de la opción funcional de Almacenamiento en una transacción, el valor real de la opción funcional se cambiará solo después de que se complete la transacción. Mientras la transacción esté abierta, el valor de la opción funcional será igual al valor que estaba vigente al inicio de la transacción.
Si una opción funcional está vinculada a un recurso de registro de información periódica, entonces el sistema utiliza una porción de este último para obtener el valor de la opción. Si desea obtener el valor de una opción para alguna otra fecha, debe especificar un valor para el parámetro de opciones funcionales Período (Periodo), que tiene el tipo Fecha, que se utilizará como fecha de recepción del segmento. No es necesario crear este parámetro en los metadatos. El sistema lo proporciona automáticamente.

Al utilizar opciones funcionales parametrizadas, considere el siguiente comportamiento:
● En los formularios de lista, la columna de atributos asociada con una opción funcional parametrizada se mostrará si al menos un valor habilitado de esta opción funcional está almacenado en la base de información.
● Si es necesario que al abrir un formulario, los detalles asociados con las opciones funcionales estén deshabilitados de forma predeterminada, entonces necesita
establezca los valores de estos parámetros en valores que no están en la base de datos (para directorios, un enlace vacío, para registros de información, valores de medición para los que no hay registros). En este caso, la opción funcional tendrá el valor Falso.
● En el caso de que se especifique como parámetro una referencia a un grupo (si el tipo de parámetro de la opción funcional permite la creación de grupos), y no una referencia a un elemento, el comportamiento del sistema será el siguiente:
● si el atributo en el que se almacena el valor de una opción funcional se utiliza tanto para un elemento como para un grupo, entonces el valor de la opción funcional estará determinado por el valor de este atributo.
● si el atributo en el que se almacena el valor de una opción funcional no se utiliza para un grupo, al obtener el valor de una opción funcional utilizando métodos Obtener opción funcional(), () y () devolverán NULL. Si una opción de función parametrizada con este valor tiene un impacto en la interfaz de usuario, el sistema la tratará como deshabilitada (la opción de función tendrá el valor Falso).
● Para objetos de metadatos que forman comandos, es posible establecer un enlace a una opción funcional parametrizada. En la interfaz de comandos, los comandos de dichos objetos se mostrarán solo si hay al menos una combinación de parámetros de opción funcional para los cuales el valor de la opción funcional es Verdadero. Sin embargo, utilizando el método (), puede establecer valores específicos para los parámetros de las opciones funcionales y luego la visibilidad.
Los comandos estarán determinados exactamente por los parámetros especificados.
● La lista dinámica utiliza automáticamente las opciones funcionales utilizadas por el formulario. Si los detalles que se utilizan en una solicitud de lista dinámica están deshabilitados para una combinación determinada de parámetros de opciones funcionales, los datos para ellos no se seleccionarán ni se mostrarán en la lista dinámica, y el atributo se eliminará de las listas de detalles disponibles en la lista dinámica. cuadro de diálogo de configuración de visualización de datos
lista dinámica (en modo 1C:Enterprise).

7. Trabajar con opciones funcionales en el lenguaje integrado.

Métodos de contexto global ObtenerOpciónFunción() Y GetInterfaceFunctionalOption() devuelve el valor de la función
opciones. La diferencia entre ellos es que el primer método le permite especificar un conjunto de parámetros para opciones funcionales y el segundo método devuelve el valor de una opción funcional según los parámetros especificados para la interfaz de comando. El formulario tiene su propio método que devuelve el valor de la opción para los parámetros especificados dentro del formulario: Obtener formulario de opción funcional().
Para actualizar la interfaz de comando global, debe llamar explícitamente al método Establecer parámetros de opciones de interfaz funcional().
La interfaz de comando se actualizará para reflejar el nuevo estado de las opciones funcionales.
NOTAS E. Si el valor de una opción funcional cambia en la base de datos, la interfaz de comando global y los formularios que están abiertos en ese momento no se actualizan automáticamente. Para hacer esto debes usar el método. ActualizarInterfaz() después de escribir los valores de las opciones funcionales en la base de datos.
Recuerde que configurar los parámetros de opciones funcionales (y ejecutar el método Actualizar interfaz()) conduce a las siguientes consecuencias:
● para cada formulario, se llama al cierre de todos los formularios auxiliares (llamándose a los manejadores correspondientes);
● los formularios que se niegan a cerrarse no se cierran;
● se actualiza la composición de los elementos del formulario principal;
● si el formulario principal era el formulario activo en el momento de actualizar la interfaz, el formulario principal se muestra de acuerdo con la nueva composición de elementos;
● si en el momento de actualizar la interfaz el formulario activo era un formulario auxiliar, entonces:
● se ejecutará el comando para abrir el formulario auxiliar, si está disponible después de actualizar la interfaz;
● en caso contrario, la composición de los elementos del formulario principal se actualiza y se muestra;
● si en el momento de actualizar la interfaz el formulario activo era un formulario auxiliar abierto mediante un comando no relacionado con el panel de navegación del formulario, entonces en lugar de este formulario se actualizará la composición de los elementos del formulario principal y se mostrará .
Para actualizar un formulario específico, debe volver a abrirlo o llamar al método SetFormFunctionalOptionsParameters(),
en este caso, la secuencia de acciones descrita anteriormente funciona solo para el formulario en cuyo contexto se llama a la configuración de los parámetros de las opciones funcionales del formulario.
No es necesario especificar todos los parámetros a la vez; puede cambiar el valor de un parámetro específico o de un conjunto de parámetros de forma selectiva. Pero es la fijación de valores en grupo con una sola llamada lo que resulta más eficaz.
Para obtener valores de parámetros, debe llamar a la función correspondiente ( GetParametersFunctionalOptionsInterfaz() o
GetFormFunctionalOptionsParameters()), que devolverá los parámetros establecidos en forma de estructura, donde la clave será el nombre del parámetro.
Cuando se abre, el formulario utiliza automáticamente los parámetros de las opciones funcionales establecidas para la interfaz de comando.

Compartir