Options fonctionnelles et Paramètres des options fonctionnelles. Options fonctionnelles (1Cv82) Utilisation des options fonctionnelles 1c 8.3

Objet 1c "Options fonctionnelles" - conçu pour mettre en évidence les fonctionnalités de la solution d'application qui peuvent être activées (désactivées) pendant la mise en œuvre sans se changer (avec les sous-systèmes, ils forment l'interface client léger 1C). Ils font partie du mécanisme des options fonctionnelles.

Fonction Options Mécanisme inclut deux objets de métadonnées :

  1. Option fonctionnelle ;
  2. Paramètres des options fonctionnelles.

Plus

Option de fonction est un objet de métadonnées qui peut affecter directement la composition de l'interface de l'application (si l'option fonctionnelle stocke sa valeur dans un attribut booléen). À l'aide d'objets de ce type, vous pouvez masquer des éléments liés à des fonctionnalités inaccessibles. Par exemple, l'option de comptabilisation en devise peut masquer les devises, le champ Devise de, la colonne Montant en devise des rapports.

La source de la valeur de l'option fonctionnelle est l'objet de métadonnées sélectionné comme propriété Storage , par exemple, il peut s'agir de .

Dans le cas du stockage de la valeur d'une option fonctionnelle dans un attribut ou une ressource d'annuaire, des informations supplémentaires sont nécessaires pour indiquer exactement comment sélectionner la valeur de l'option. Un objet de métadonnées séparé est fourni à cet effet − Paramètres des options de fonction.

On peut dire que les paramètres des options fonctionnelles sont les axes de coordonnées de l'espace des valeurs des options fonctionnelles. De plus, un paramètre d'options fonctionnelles peut déterminer la valeur de "son" axe de coordonnées simultanément pour une pluralité d'options fonctionnelles.

[cacher]

Les options fonctionnelles peuvent affecter :

  1. à l'interface utilisateur :
    • mondial ;
    • conditions requises (y compris les colonnes de conditions requises du formulaire telles que Tableau des valeurs ou arbre de valeur) ;
    • commandes de formulaire ;
  2. sur les rapports mis en œuvre à l'aide d'un système de composition de données ;
  3. sur les algorithmes écrits dans le langage intégré - il est possible d'obtenir les valeurs des options fonctionnelles à partir du langage intégré et de les utiliser dans diverses conditions, par exemple pour réduire la quantité de calculs (voir, par exemple, ).

ATTENTION! Si l'application client fonctionne avec la version de fichier de l'infobase via le serveur Web, la modification de l'option fonctionnelle ne modifiera l'interface utilisateur qu'après le redémarrage du serveur Web (le redémarrage de l'application client ne modifiera pas l'interface utilisateur).

Propriétés des options fonctionnelles 1C

  • Stockage - un champ dans lequel vous devez sélectionner un objet de type booléen. En règle générale, des constantes sont utilisées.
  • lors de l'obtention - le drapeau est responsable de la possibilité d'obtenir la valeur de l'option fonctionnelle en mode privilégié.
  • Composition - une liste d'objets et d'attributs d'objets, dont la visibilité est activée / désactivée lorsque l'option fonctionnelle est désactivée / désactivée (à contrôler à l'aide d'un formulaire géré).

Par exemple, selon les conditions d'une implémentation spécifique, vous pouvez prévoir de désactiver la comptabilisation des marchandises par entrepôts afin que lors de l'enregistrement des documents d'entrée de marchandises, le champ Entrepôt ne s'affiche pas dans le formulaire du document.

Caractéristiques de l'utilisation des options fonctionnelles 1C :

  1. Les options de fonction peuvent avoir des valeurs de type arbitraire (pas nécessairement booléen).
  2. Lorsque vous ajoutez une nouvelle constante pour utiliser une option fonctionnelle, assurez-vous de l'inclure dans le sous-système approprié et de lui attribuer des autorisations.
  3. Travailler avec des options fonctionnelles est disponible à partir du langage intégré, grâce auquel le développeur peut créer ses propres algorithmes pour les valeurs des options fonctionnelles.
  4. La commande d'interface de commande sera exclue de l'interface de commande si l'option de fonction est désactivée :
    • attribut, qui est un paramètre de commande ;
    • le type du paramètre de commande (si le type du paramètre de commande est composé, la commande devient indisponible lorsque tous les types de paramètres sont désactivés).

ATTENTION! Les options fonctionnelles et leurs paramètres n'affectent pas la composition de la base de données : toutes les tables et tous les champs sont présents dans la base de données, quel que soit l'état des options fonctionnelles.

Influence des options fonctionnelles sur les détails et commandes du formulaire :

  1. type de formulaire géré<Вид>Un objet ( DirectoryObject, DocumentObject, etc.) sera désactivé si l'objet correspondant est désactivé par l'option fonctionnelle. Seules les options fonctionnelles qui n'ont pas de paramètres sont analysées.
  2. L'attribut principal du type formulaire géré ListeDynamique sera désactivé si l'option fonctionnelle désactive l'objet de configuration spécifié comme table principale de la liste dynamique. Seules les options fonctionnelles qui n'ont pas de paramètres sont analysées.
  3. Un attribut de formulaire d'un type de référence est désactivé si l'objet de configuration qui forme ce type est désactivé par une option fonctionnelle. L'attribut form d'un type composite est désactivé si les options fonctionnelles désactivent tous les types de composant.
  4. La table de formulaire sera désactivée si elle affiche les données d'un attribut de formulaire désactivé par une option fonctionnelle.
  5. Il n'y a pas de types dans la boîte de dialogue de sélection de type (par exemple, pour les champs de saisie associés aux attributs d'un type composite) si les objets de configuration qui forment ces types sont désactivés par une option fonctionnelle. Les informations sur les types désactivés par les options fonctionnelles sont mises en cache côté client et effacées après 20 minutes ou lors d'un appel de méthode Mettre à jour l'interface().

ATTENTION! Contrairement à l'interface de commande, les valeurs des paramètres des options fonctionnelles ne sont définies que pour une instance spécifique du formulaire.

Création d'un paramètre d'options fonctionnelles

Le paramètre d'option fonctionnelle est créé à l'aide de l'objet de configuration 1C "Paramètres d'options fonctionnelles".

[cacher]

Cela peut être fait dans la fenêtre de configuration en ajoutant un nouvel objet.

Propriétés des paramètres des options de fonction :

  • Utilisation - définit un ensemble d'objets dont les valeurs détermineront comment la valeur de l'option fonctionnelle doit être sélectionnée. La liste des objets disponibles comprend les dictionnaires et les dimensions du registre d'informations. Pour chaque paramètre d'options fonctionnelles de cette liste, vous pouvez sélectionner un répertoire (parmi la liste complète des répertoires) et une dimension de chaque registre d'informations.

ATTENTION! Vous ne pouvez pas utiliser le même objet de métadonnées dans plusieurs paramètres d'option de fonction.

Avec la sortie de la plateforme 1C:Enterprise 8.2, un nouvel objet est apparu dans l'arborescence de configuration - "Options fonctionnelles". Il est activement utilisé dans toutes les configurations standard basées sur des formulaires gérés et sert à simplifier le processus d'affichage des attributs individuels, des objets dans l'interface. Par exemple, dans votre configuration il y a un module pour échanger avec des services web externes. Ce module utilise un certain nombre de détails dans les documents, les registres et les composants individuels des sous-systèmes. Le module est facultatif et n'est pas requis par toutes les entreprises. C'est logique, puisque tout le monde n'a pas besoin du module, alors il n'est pas toujours nécessaire non plus d'afficher tous les éléments/champs qui lui sont associés.

Dans les anciennes versions de la plate-forme, la résolution de tels problèmes nécessitait l'écriture de code supplémentaire qui devait être appelé dans toutes les sections dépendantes. Par exemple, si nous devions masquer certains détails du formulaire (en fonction de la valeur d'un paramètre), nous devions appeler le code approprié lors de l'ouverture du formulaire. Ce n'était pas très pratique et dans la plupart des cas, les développeurs ont renoncé à de telles choses.

Eh bien, si vous souhaitez masquer uniquement les champs sous forme de documents, mais nous pouvons toujours avoir des formulaires de registres avec lesquels l'interaction de l'utilisateur est également possible. L'écriture d'une fonction de contrôle d'affichage générique est assez difficile et nécessitera du temps supplémentaire, ce qui n'est jamais suffisant.

Les options fonctionnelles sont conçues pour résoudre ce problème ainsi que de nombreuses autres difficultés associées à l'affichage des éléments d'interface / à la composition des objets disponibles dans l'interface utilisateur. Dans cette note, je ne considérerai pas d'exemples d'utilisation de l'objectif principal des options fonctionnelles, mais je ferai attention à leur utilisation d'une manière pas tout à fait standard. Elle est peut-être familière à de nombreux développeurs avancés, mais je suis arrivée à cette méthode un peu par accident. Plus précisément, il s'est inspiré de la pratique de la programmation en JavaScript.

Cas #1 : option fonctionnelle en tant que wrapper sur d'autres objets

La première fonctionnalité non standard des options fonctionnelles est la possibilité de créer des wrappers. Prenons l'exemple le plus simple - les constantes. Par exemple, vous ajoutez une nouvelle constante à une configuration avec un grand nombre de rôles d'utilisateur. Pour que les utilisateurs puissent accéder à la valeur de la constante, vous devez définir les rôles correspondants pour lire les autorisations. Si les droits ne sont pas définis, les utilisateurs ne pourront pas obtenir sa valeur. S'il existe de nombreux rôles et qu'ils ne sont pas hérités du rôle de base, vous devrez passer du temps à cocher les cases appropriées.

L'option fonctionnelle peut résoudre ce problème de manière plus élégante. L'idée est la suivante : nous créons une constante (par exemple, ). Nous ne lui cédons aucun droit. Nous créons une option fonctionnelle du même nom et la spécifions dans la propriété "Stockage" spécifier une constante "Capacité à enregistrer des données". Nous avons également mis le drapeau "Mode privilégié à la réception".

Voilà, maintenant à n'importe quel endroit du code où vous voulez faire référence à une constante, nous écrivons comme ceci :

Étant donné que nous avons défini l'option sur le mode privilégié, aucun droit supplémentaire n'a besoin d'être spécifié pour la constante. Bien entendu, il n'est pas nécessaire d'appliquer cette technique dans tous les cas de situations imaginables et impensables. N'oubliez pas qu'un arrangement compétent des droits est la clé de la tranquillité d'esprit. N'utilisez l'astuce qu'en cas d'absolue nécessité.

Cas numéro 2. Niveau d'abstraction supplémentaire

Je ne sais pas comment appeler correctement cette méthode, mais à mon avis, cela ressemble exactement à cela. Considérez l'exemple précédent. Nous avons toujours la même constante "Capacité à sauvegarder des données". Nous travaillons avec lui en utilisant l'option fonctionnelle du même nom comme wrapper.

Imaginons maintenant que nous voulions nous débarrasser de la constante et passer à l'utilisation d'un ouvrage de référence. Un scénario typique pour résoudre un tel problème (si nous n'utilisons qu'une constante) serait d'exécuter un outil de recherche globale afin de trouver une référence à la constante. Permettez-moi de vous rappeler que si nous n'utilisons pas d'option fonctionnelle comme wrapper, nous devons nous référer à une constante comme celle-ci :

Constants.DataSaveAbility.Get();

Nous trouvons tous les appels et les remplaçons par le chemin vers le nouvel objet de stockage. D'accord, c'est assez gênant. Si nous avons utilisé le cas précédent (en utilisant une option fonctionnelle comme wrapper), alors pour "déplacer", nous n'avons qu'à aller dans les propriétés de l'option fonctionnelle et changer la propriété "Stockage". Par exemple, mettez là "Annuaire" ou "Registre d'informations". Aucun jeu avec une recherche globale n'est requis. Le code d'accès à la valeur d'une constante via une option de fonction restera le même :

GetFunctionOption("DataSavePossibility");

Options fonctionnelles est l'une des nouvelles fonctionnalités de la plateforme 1C:Enterprise 8.2. Le sens de leur utilisation réside dans le fait qu'ils vous permettent de personnaliser l'interface utilisateur en fonction des paramètres des options fonctionnelles, de définir la visibilité des détails dans les formulaires. De plus, le développeur a la possibilité d'implémenter du code de programme dont l'exécution dépend de l'état de l'option fonctionnelle.

Créons une option fonctionnelle qui vous permet d'activer et de désactiver la maintenance de la paie dans la configuration. Avec son aide, nous pouvons rapidement masquer les parties de l'interface liées à la résolution de problèmes de calcul. Une option de fonction ne stocke par elle-même aucune valeur permettant de l'activer ou de la désactiver. Habituellement, une constante est utilisée pour stocker l'état d'une option fonctionnelle, bien qu'elle puisse également être liée à un autre objet, par exemple, à un attribut d'un objet.

Créons une nouvelle constante et appelons-la ComptabilitéSalaire, taper - booléen. Insérons une constante dans le sous-système Administration et dans un formulaire de constantes afin que nous puissions l'éditer. De plus, sous forme de constantes, nous définirons le gestionnaire AfterWrite de la forme suivante :

&Au niveau de la procédure client AfterWrite(WriteParameters) UpdateInterface(); FinProcédure

La signification de l'utilisation de la commande Mettre à jour l'interface() est de mettre à jour, redessiner l'interface après que le changement de la constante associée à l'option fonctionnelle ait pris effet. Sinon, pour que les modifications prennent effet, vous devrez redémarrer la configuration.

Créons une nouvelle option fonctionnelle, appelons-la ComptabilitéSalaire, sur l'onglet Principal, dans le paramètre Stockage nous indiquons la constante nouvellement créée, fig. 7.23. Inclure une option fonctionnelle dans un sous-système Administration.


Riz. 7.23.

Passons maintenant à l'onglet de la fenêtre de paramétrage des options fonctionnelles Composé et sélectionnez tout (Figure 7.24) qui se rapporte à la paie. Si des objets, par exemple des répertoires, font référence à différentes parties de la configuration, nous ne les marquerons pas, sinon, lorsque l'option fonctionnelle est désactivée, ils "disparaîtront" de l'interface.


Riz. 7.24.

Sélection du sous-système Préparation de la paie dans ce cas, ne conduit pas à la sélection automatique de tous les objets inclus dans le sous-système. Lors du choix, nous entendons uniquement masquer ou afficher la section de l'interface de commande Préparation de la paie.

En exécutant le système en mode utilisateur, nous pouvons activer et désactiver la visibilité des objets liés au sous-système de paie de notre configuration en définissant ou en décochant simplement le drapeau de la constante ComptabilitéSalaire.

Plus difficile cas d'utilisation options fonctionnelles consiste à définir la visibilité des éléments de formulaire individuels dans le cas où la valeur de l'option fonctionnelle est stockée dans l'attribut d'un objet.

Nous apporterons des modifications à la configuration, en particulier au répertoire Personnes ajouter un attribut booléen Possède une expérience en ressources humaines et placez-le sur le formulaire de l'élément répertoire.

Options de fonction est un objet de métadonnées situé dans le groupe "Général" :

Les options fonctionnelles font partie du mécanisme des options fonctionnelles qui permettent d'activer ou de désactiver certaines fonctionnalités de la solution applicative en fonction des besoins de l'utilisateur, sans modifier la configuration elle-même.
Par exemple, toutes les organisations ne peuvent pas utiliser le contrôle des stocks. Si la comptabilité d'entrepôt n'est pas utilisée, il est logique de supprimer le champ d'entrepôt dans tous les documents, répertoires et registres - alors les options fonctionnelles viennent à notre aide.

Prenons un exemple :

Créons une option fonctionnelle " Comptabilité d'entrepôt".
Stockage : le champ stockant la valeur est spécifié.
Vous pouvez sélectionner une constante, un attribut de répertoire ou une ressource de registre d'informations.
Nous utiliserons une constante.

Créons une constante " Tenir la comptabilitéDans les entrepôts" et sélectionnez-le dans le champ de stockage. Cette constante sera responsable de l'activation et de la désactivation de l'option fonctionnelle. Cochez la case "Mode privilégié lors de la réception". Cette case signifie que les valeurs de l'option fonctionnelle seront reçues en mode privilégié :

Nous mettons à jour, lançons 1C Enterprise. Définissez la valeur de la constante = True :

En conséquence, nous avons :

En définissant la constante = False, nous obtenons :

Vous avez une question, vous avez besoin de l'aide d'un consultant ?

Nous avons donc créé une option fonctionnelle qui gère les champs de type DirectoryLink.Warehouse

Regardons maintenant un exemple d'utilisation des paramètres d'options de fonction.
Ajoutons une nouvelle option fonctionnelle " Comptabilité en devises"
Stockage: Directory.Organization.Props.Currency Comptabilité


Ajoutons à la composition les détails du document "Définir les prix des articles" - "Devise"


Sous forme de Document dans les procédures "On CreationAtServer" et "OrganizationOnChange"
Ajoutons le code suivant :

Mettez à jour la configuration et exécutez-la.
Nous créons deux Organisations et pour l'une d'elles nous cochons la case "Comptabilité en devise"

Qu'obtenons-nous en conséquence ? Suite à l'utilisation des paramètres de l'option fonctionnelle, vous et moi avons reçu un contrôle paramétrique du champ "Devise" dans le document "Définir les prix des articles". Ceux. pour l'organisation Alpha, le champ Devise sera affiché, et pour l'organisation Bêta, le champ Devise ne sera pas affiché.
Assurons-nous cela. Ouvrez le document et essayez de modifier le champ "Organisation"
Lors de la définition de org="alpha", la devise est affichée ; passer à "Bêta" - la devise est supprimée



Imprimer (Ctrl+P)

1. Objectif des options fonctionnelles

Les options fonctionnelles permettent au développeur de décrire les capacités de la solution d'application, qui peuvent être rapidement activées ou désactivées au stade de la mise en œuvre et/ou pendant le fonctionnement du système. Par exemple, la possibilité de travailler avec des propriétés de produit supplémentaires peut être séparée en une option fonctionnelle distincte. Ensuite, si vous désactivez cette fonctionnalité, toutes les fonctionnalités associées (avec des propriétés de produit supplémentaires) "disparaîtront" dans l'interface de la solution appliquée.
Le système est capable de prendre automatiquement en compte l'état des paramètres définis - masquer les fonctionnalités désactivées, ce qui rend l'interface de l'application plus claire et compréhensible pour l'utilisateur.
Au cours du développement, des situations surviennent lorsque la valeur d'une option fonctionnelle doit dépendre de certains paramètres, par exemple, toutes les organisations ne tiennent pas une comptabilité en devises. Pour implémenter une telle dépendance, utilisez les Paramètres des options fonctionnelles - objets qui paramétrent les options fonctionnelles.

2. Quelles options fonctionnelles affectent

2.1. informations générales

Les options fonctionnelles peuvent affecter :
● Sur l'interface utilisateur - lorsque vous désactivez des options fonctionnelles, le système masque tous les éléments qui s'y rapportent dans l'interface utilisateur. Cela affecte les éléments d'interface suivants :
● interface de commande globale ;
● les attributs de formulaire (y compris les colonnes d'attributs de formulaire de type ValueTable ou ValueTree) ;
● commandes de formulaire ;
● rapports mis en œuvre à l'aide du système de composition des données.
ATTENTION! Si l'application client fonctionne avec la version de fichier de l'infobase via le serveur Web, la modification de l'option fonctionnelle ne modifiera l'interface utilisateur qu'après le redémarrage du serveur Web (le redémarrage de l'application client ne modifiera pas l'interface utilisateur).
● Algorithmes écrits dans la 1ère langue - il est possible d'obtenir les valeurs des options fonctionnelles de la 1ère langue et de les utiliser dans diverses conditions, par exemple, pour réduire la quantité de calculs.
ATTENTION! Les options fonctionnelles et leurs paramètres n'affectent pas la composition de la base de données. Toutes les tables et tous les champs sont présents dans la base de données quel que soit l'état des options fonctionnelles.

2.2. Interface de commande globale

L'effet des options fonctionnelles sur l'interface de commande globale est que le système masque les commandes de tous les objets liés aux options désactivées. Par exemple, si la valeur de l'option fonctionnelle Achats est définie sur Faux , les commandes d'ouverture de la section Achats, de création d'un document d'entrée de marchandises, d'ouverture de la liste d'entrée de marchandises, etc. seront masquées.
À son tour, l'option Achats peut prendre en compte la valeur d'un paramètre d'option fonctionnelle, par exemple, Organisation. En modifiant la valeur de ce paramètre à l'aide des méthodes du langage intégré, il est possible de modifier l'état de l'option fonctionnelle et, par conséquent, la visibilité de l'élément d'interface.
Vous devez également tenir compte des caractéristiques suivantes de la formation de l'interface de commande :
● La commande sera exclue de l'interface de commande si l'attribut, qui est un paramètre de commande, est désactivé par une option fonctionnelle.
● La commande sera exclue de l'interface de commande si le type de paramètre de commande est désactivé par une option de fonction. Si le type de paramètre de commande est composé, la commande devient indisponible lorsque tous les types de paramètres sont désactivés.

2.3. Former

Dans un formulaire, les options fonctionnelles peuvent affecter les attributs et les commandes du formulaire et (par conséquent) modifier la visibilité des éléments de formulaire associés (champs et colonnes pour les attributs de formulaire, boutons pour les commandes de formulaire). Lors du développement d'un formulaire, les caractéristiques suivantes du comportement du système doivent être prises en compte :
<Вид>Un objet ( DirectoryObject m, DocumentObject, etc.) sera désactivé si l'objet de configuration correspondant est désactivé par une option fonctionnelle. Seules les options fonctionnelles qui n'ont pas de paramètres sont analysées.
● L'attribut principal du type formulaire géré ListeDynamique sera désactivé si l'option fonctionnelle désactive l'objet de configuration spécifié comme table principale de la liste dynamique. Seules les options fonctionnelles qui n'ont pas de paramètres sont analysées.
● L'attribut form d'un type de référence est désactivé si l'objet de configuration qui forme ce type est désactivé par une option fonctionnelle. L'attribut form d'un type composite est désactivé si les options fonctionnelles désactivent tous les types de composants.
● Désactive les accessoires de type de formulaire<Вид>Un objet (y compris l'attribut de formulaire principal), si l'objet de configuration qui constitue ce type est désactivé par une option de fonction. Seules les options fonctionnelles qui n'ont pas de paramètres sont analysées.
● La table de formulaire sera désactivée si elle affiche les données d'un attribut de formulaire désactivé par une option fonctionnelle.
● Il n'y a pas de types dans la boîte de dialogue de sélection de type (par exemple, pour les champs de saisie associés aux attributs d'un type composite) si les objets de configuration qui forment ces types sont désactivés par une option fonctionnelle. Les informations sur les types désactivés par les options fonctionnelles sont mises en cache côté client et effacées après 20 minutes ou lors d'un appel de méthode Mettre à jour l'interface().
ATTENTION! Contrairement à l'interface de commande, les valeurs des paramètres des options fonctionnelles ne sont définies que pour une instance spécifique du formulaire.

2.4. Système de composition des données

Le système de composition des données est principalement utilisé pour la construction de rapports. Les options fonctionnelles affectent la composition des données affichées dans le rapport et la composition des paramètres de rapport disponibles pour l'utilisateur. Par exemple, si l'option fonctionnelle est désactivée Comptabilité en devise, alors dans le rapport qui affiche le registre des documents Entrée de marchandises, il n'y aura pas de colonne Devise et Montant en devise, et dans les paramètres, il n'y aura aucune possibilité de sélection, de regroupement, de tri , etc. par le champ Devise.

2.5. Caractéristiques

Les options fonctionnelles affectent la visibilité des champs de formulaire qui affichent la valeur d'une caractéristique d'objet. Pour cela, il est nécessaire d'inclure dans l'option fonctionnelle un attribut qui stocke la valeur de la caractéristique.
Prenons un exemple. Les caractéristiques sont utilisées pour le répertoire des marchandises, les types de caractéristiques sont stockés dans le plan des types de caractéristiques Caractéristiques et les valeurs sont stockées en tant que ressource du registre d'informations ValeursCaractéristiques. La ressource fait partie de l'option fonctionnelle Caractéristiques comptables.

Riz. 1. Effet des options fonctionnelles sur les performances

En cas de désactivation de l'option fonctionnelle Caractéristiques comptables dans les formulaires, la visibilité des champs (colonne Valeur et champ Valeur ), affichant les valeurs des caractéristiques, est désactivée, comme le montre la Fig.1.

3. Plan général de travail

Le mécanisme des options fonctionnelles comprend deux types d'objets de métadonnées : Option de fonction Et .
Une option fonctionnelle est un objet de métadonnées qui peut affecter directement la composition de l'interface de l'application (si l'option fonctionnelle stocke sa valeur dans un attribut de type Boolean ). À l'aide d'objets de ce type, vous pouvez masquer des éléments liés à des fonctionnalités inaccessibles. Par exemple, l'option Comptabilité devise peut masquer la recherche Devises, le champ Devises des documents, la colonne Montant devise des rapports. La source de la valeur de l'option fonctionnelle est l'objet de métadonnées sélectionné comme propriété de stockage, par exemple, this
peut être une constante.
Si la valeur d'une option fonctionnelle est stockée dans un attribut d'annuaire ou une ressource de registre d'informations, des informations supplémentaires sont nécessaires pour indiquer comment sélectionner exactement la valeur de l'option. Un objet de métadonnées séparé est fourni à cet effet − Paramètres des options de fonction.
On peut dire que les paramètres des options fonctionnelles sont les axes de coordonnées de l'espace des valeurs des options fonctionnelles. De plus, un paramètre d'options fonctionnelles peut déterminer la valeur de "son" axe de coordonnées simultanément pour une pluralité d'options fonctionnelles.


Riz. 2. Option fonctionnelle paramétrable

Prenons un exemple : disons que la comptabilité totale dépend d'un entrepôt appartenant à une organisation particulière (voir Figure 98). Dans notre base d'informations
vous pouvez conserver des enregistrements au nom de différentes organisations et dans différents entrepôts.
Pour stocker les valeurs des options fonctionnelles, nous allons créer un registre d'informations, où les dimensions (axes de coordonnées) seront :

● Organisation (type approprié) ;
● Entrepôt (type approprié).

La ressource du registre d'information sera la valeur de l'option fonctionnelle de la comptabilité totale.
Ensuite, la structure générale de la configuration ressemblera à ceci :
● Registre d'informations Comptabilité totale :
● Dimension organisationnelle ;
● dimension Entrepôt ;
● la ressource Comptabilité Totale de type booléen.
● Paramètre des options fonctionnelles Organisation . La propriété Usage pointe vers la dimension Organisation du registre d'informations SumAccounting.
● Paramètre des options fonctionnelles Entrepôt . La propriété Usage pointe vers la dimension Information Register Warehouse Sum Accounting.
● Option fonctionnelle Total Comptabilité. La propriété Storage pointe vers la ressource de registre d'informations SumAccounting SumAccounting.
Par conséquent, afin de déterminer la nécessité d'une comptabilité totale, nous devons spécifier les valeurs des paramètres des options fonctionnelles (Organisation et Entrepôt) dans chaque cas spécifique et obtenir la valeur de l'option fonctionnelle.
Ainsi, dans l'exemple illustré à la Fig. 2, pour l'organisation 1 et l'entrepôt 1, la comptabilité totale est autorisée, et pour l'organisation 2 et l'entrepôt 1, la comptabilité totale est interdite.

4. Interaction avec d'autres objets

Des options fonctionnelles peuvent être affectées aux objets de configuration suivants :
● Sous-systèmes,
● Commandes générales,
● Formes courantes,
● Constantes,
● Critères de sélection,
● Manuel,
● Documents,
● Magazine,
● Plan comptable,
● Plan des types de caractéristiques,
● Plan des types d'implantation,
● Processus métier,
● Tâche,
● Forfaits d'échange,
● Rapport,
● Traitement,
● Registre d'accumulation,
● Registre d'informations,
● Registre comptable,
● Registre de calcul,
● Équipe,
● Attribut de l'objet de métadonnées,
● Partie tabulaire,
● Détails de la section tabulaire,
● Signe de comptabilité,
● Signe comptable subconto,
● Coordonnées d'adressage,
● Enregistrez la mesure,
● Enregistrer la ressource.
De plus, les options fonctionnelles peuvent affecter la visibilité des éléments de formulaire.

5. Création

5.1. Création d'une option fonctionnelle

Pour créer une option fonctionnelle, vous devez créer un objet de configuration Option fonctionnelle. Cela peut être fait en mode Configurateur de la manière habituelle, c'est-à-dire que dans la fenêtre de configuration, sélectionnez l'élément Général, puis Options fonctionnelles et ajoutez un nouvel objet.

Riz. 3. Créer une option fonctionnelle

Cela créera un objet de configuration Functional Option qui peut être utilisé pour attribuer des options fonctionnelles à d'autres objets de métadonnées.


Riz. 4. Stockage de la valeur de l'option fonctionnelle

En plus du nom, l'objet a une propriété obligatoire - Stockage. Dans l'éditeur, vous pouvez sélectionner l'un des objets pour celui-ci, qui sera la source de la valeur de l'option. La liste des objets disponibles comprend :
● constantes,
● le détail des répertoires,
● ressources du registre d'informations.
Il n'y a aucune restriction sur le type de source de la valeur d'option, mais seules les options fonctionnelles qui stockent leurs valeurs dans des attributs de type booléen conviennent au contrôle d'interface. Les valeurs d'option de fonction avec d'autres types ne sont disponibles que pour l'analyse dans 1C:Enterprise.
La propriété Privileged Mode on Get détermine comment la valeur de l'option de fonction est récupérée (et mise en cache).


Riz. 5. Mode privilégié lors de l'obtention de la valeur d'une option fonctionnelle

Si cette propriété est définie, alors la valeur de l'option de la fonction est obtenue en mode privilégié. La valeur résultante est mise en cache pour toutes les sessions associées à cette infobase.
Si la propriété Privileged Mode on Get est désactivée, l'obtention de la valeur de l'option fonctionnelle s'effectue en mode normal.
La mise en cache est effectuée pour la session en cours. La valeur (s'il était possible de l'obtenir) et le signe de l'impossibilité d'obtenir la valeur (dans le cas où la valeur ne pourrait pas être obtenue) sont mis en cache.
Le cache est vidé lorsque les valeurs des paramètres de session changent.
CONSEIL. Il est recommandé de définir la propriété Privileged Mode on Get pour tous les cas où la valeur d'une option fonctionnelle ne contient pas d'informations sensibles.

5.2. Création d'un paramètre d'options fonctionnelles

Pour créer un paramètre d'option fonctionnelle, vous devez créer un objet de configuration Paramètres des options de fonction. Cela peut être fait en mode Configurateur de la manière habituelle, c'est-à-dire que dans la fenêtre de configuration, sélectionnez Général, puis Paramètres des options de fonction et ajouter un nouvel objet.

En plus du nom, le paramètre possède la propriété Usage requise. Il spécifie un ensemble d'objets dont les valeurs détermineront comment la valeur de l'option fonctionnelle doit être sélectionnée. La liste des objets disponibles comprend les dictionnaires et les dimensions du registre d'informations. Pour chaque paramètre d'options fonctionnelles de cette liste, vous pouvez sélectionner un répertoire (parmi la liste complète des répertoires) et une dimension de chaque registre d'informations.
ATTENTION! Vous ne pouvez pas utiliser le même objet de métadonnées dans plusieurs paramètres d'option de fonction.

6. Utilisation

6.1 Affectation de métadonnées aux objets

Un objet de métadonnées (par exemple, un répertoire) peut être attribué à une ou plusieurs options fonctionnelles. Pour cela, utilisez la propriété Options fonctionnelles, qui contient des liens vers les options fonctionnelles créées dans la configuration.

Riz. 6. Affecter une option fonctionnelle à un objet

La liste des options disponibles est limitée uniquement aux options pour lesquelles un objet avec un type de valeur booléen est affecté dans la propriété Storage.
ATTENTION! Si aucune option fonctionnelle n'est affectée à un objet, il est toujours considéré comme visible. Sinon, l'objet est considéré comme visible si au moins une des options de fonction qui lui sont affectées est activée (c'est-à-dire que les options de fonction sont associées par un OU).

6.2. Affectation des détails et des commandes du formulaire

Les objets appartenant au formulaire (Attributs et Commandes) peuvent également être utilisés dans le mécanisme des options fonctionnelles.


Riz. 7. Affectation d'une option de fonction à une commande

Vous pouvez le faire dans l'éditeur de formulaire en définissant la propriété Options fonctionnelles pour l'objet requis.
L'état des options fonctionnelles affectera l'affichage des objets de formulaire de la même manière que pour les objets de métadonnées.
Par exemple, dans le cas d'une commande désactivée par une option fonctionnelle, tous les boutons qui lui sont associés seront supprimés.
Si aucune option fonctionnelle n'est affectée à un attribut ou à une commande de formulaire, l'attribut ou la commande de formulaire est considéré comme toujours visible. Dans le cas contraire, l'attribut ou la commande du formulaire est considérée comme visible si au moins une des options fonctionnelles qui lui sont affectées est activée.

6.3. Utilisation dans le mécanisme de restriction d'accès aux données

Dans les conditions du mécanisme de restriction d'accès aux données Options fonctionnelles peut être utilisé de la même manière que Options de session. Il est permis de n'utiliser que des options qui ne dépendent pas de paramètres, c'est-à-dire celles qui sont liées à des constantes.
ATTENTION! Le système contrôle l'unicité des noms entre les paramètres de session et les options fonctionnelles.

6.4. Détermination de la valeur de l'option de fonction

La valeur de l'option fonctionnelle est déterminée par l'objet spécifié dans la propriété Storage. Dans le cas d'une constante, sa valeur est utilisée. Pour une option associée à un attribut d'annuaire ou à une ressource de registre d'informations, les valeurs stockées dans ces objets. Afin de trouver un objet spécifique qui stocke la valeur de l'option fonctionnelle, des informations supplémentaires sont nécessaires - un ensemble de valeurs de paramètres des options fonctionnelles.
Si l'option est stockée dans un attribut d'annuaire, le paramètre doit contenir un lien vers un élément spécifique de l'annuaire. Si l'option est stockée dans une ressource de registre d'informations, les valeurs de toutes les dimensions du registre doivent être spécifiées. Dans ce cas, chaque mesure doit être caractérisée par son propre paramètre.
Si tous les paramètres ne sont pas spécifiés pour une option fonctionnelle de type booléen, alors l'ajout "par OU" de toutes les valeurs sans paramètre est effectué. Par exemple, si une option de fonctionnalité est stockée dans un registre de détail avec les dimensions Organisation et Entrepôt, et que seule la dimension Organisation est spécifiée, la valeur de l'option de fonctionnalité sera Vrai si au moins un des entrepôts répertoriés dans la dimension Entrepôt a la valeur de l'option de fonctionnalité définie sur True.
Pour une option fonctionnelle de type autre que Boolean , une situation de paramétrage incomplète entraîne la levée d'une exception.
Les méthodes de langage intégrées permettent d'obtenir la valeur de l'option, à la fois en fonction des paramètres passés, et pour les paramètres définis
pour l'interface de commande ou le formulaire spécifique. Dans le cas où le changement de la valeur de l'objet spécifié dans la propriété de l'option fonctionnelle Stockage est effectué dans une transaction, la valeur réelle de l'option fonctionnelle ne sera modifiée qu'après l'achèvement de la transaction. Tant que la transaction est ouverte, la valeur de l'option fonctionnelle sera égale à la valeur pertinente au moment où la transaction démarre.
Si une option fonctionnelle est liée à une ressource de registre d'informations périodiques, alors le système utilise une tranche de cette dernière pour obtenir la valeur de l'option. Si vous souhaitez recevoir la valeur de l'option à une autre date, vous devez spécifier une valeur pour le paramètre Options fonctionnelles Période, qui a le type Date, qui sera utilisé comme date de réception de la tranche. Ce paramètre n'a pas besoin d'être créé dans les métadonnées. Il est fourni automatiquement par le système.

Lors de l'utilisation d'options de fonction paramétrées, les comportements suivants doivent être pris en compte :
● Dans les formulaires de liste, la colonne d'attribut associée à une option fonctionnelle paramétrée sera affichée si l'infobase stocke au moins une valeur activée de cette option fonctionnelle.
● Si vous souhaitez que les détails associés aux options fonctionnelles soient désactivés par défaut à l'ouverture du formulaire, vous devez
définissez les valeurs de ces paramètres sur des valeurs qui ne figurent pas dans l'infobase (pour les répertoires - une référence nulle, pour les registres d'informations - des valeurs de mesure pour lesquelles il n'y a pas d'enregistrements). Dans ce cas, l'option de la fonction aura la valeur False .
● Lorsqu'une référence de groupe est spécifiée en paramètre (si le type de paramètre d'une option fonctionnelle permet la création de groupes), et non une référence à un élément, le comportement du système sera le suivant :
● si l'attribut qui stocke la valeur de l'option fonctionnelle est utilisé à la fois pour l'élément et le groupe, alors la valeur de l'option fonctionnelle sera déterminée par la valeur de cet attribut.
● si l'attribut dans lequel la valeur de l'option fonctionnelle est stockée n'est pas utilisé pour le groupe, alors lors de l'obtention de la valeur de l'option fonctionnelle à l'aide de méthodes GetFunctionOption(), () et () renverront NULL . Si, paramétrée avec cette valeur, une option de fonction affecte l'interface utilisateur, le système la traitera comme désactivée (l'option de fonction aura la valeur False).
● Pour commander des objets de métadonnées, il est possible de se lier à une option de fonction paramétrée. Dans l'interface de commande, les commandes de ces objets ne seront affichées que s'il existe au moins une combinaison de paramètres d'option fonctionnelle, dans laquelle la valeur de l'option fonctionnelle est True . Cependant, en utilisant la méthode (), vous pouvez définir des valeurs spécifiques pour les paramètres des options fonctionnelles, puis la visibilité
les commandes seront déterminées par les paramètres spécifiés.
● La liste dynamique utilise automatiquement les options fonctionnelles utilisées par le formulaire. Si les attributs utilisés dans la demande de liste dynamique sont désactivés avec une combinaison donnée de paramètres d'options fonctionnelles, les données les concernant ne seront pas sélectionnées et affichées dans la liste dynamique, et l'attribut sera supprimé des listes d'attributs disponibles dans les données boîte de dialogue des paramètres d'affichage
liste dynamique (en mode 1C:Enterprise).

7. Travailler avec des options fonctionnelles dans le langage intégré

Méthodes de contexte global GetFunctionOption() Et GetFunctionInterfaceOptionGetFunctionInterfaceOption() renvoie la valeur de la fonction
options. La différence entre eux est que la première méthode vous permet de spécifier un ensemble de paramètres d'option fonctionnelle, et la seconde méthode renvoie la valeur de l'option fonctionnelle en fonction des paramètres spécifiés pour l'interface de commande. Le formulaire a sa propre méthode qui renvoie la valeur de l'option pour les paramètres spécifiés dans le formulaire - GetFunctionOptionForm().
Pour mettre à jour l'interface de commande globale, appelez explicitement la méthode SetInterfaceFunctionOptionParametersSetInterfaceFunctionOptionParameters().
L'interface de commande sera mise à jour pour refléter le nouvel état des options fonctionnelles.
REMARQUES F. Si la valeur d'une option fonctionnelle change dans la base de données, l'interface de commande globale et les formulaires ouverts à ce moment-là ne sont pas automatiquement mis à jour. Pour ce faire, utilisez la méthode Mettre à jour l'interface() après avoir écrit les valeurs des options fonctionnelles dans la base de données.
Rappelons que le paramétrage des options fonctionnelles (et l'exécution de la méthode Mettre à jour l'interface()) entraîne les conséquences suivantes :
● pour chaque formulaire, tous les formulaires auxiliaires sont fermés (avec l'appel des gestionnaires correspondants) ;
● les formulaires qui refusent de fermer ne sont pas fermés ;
● le contenu des éléments principaux du formulaire est mis à jour ;
● si le formulaire principal était le formulaire actif au moment de la mise à jour de l'interface, le formulaire principal s'affiche conformément au nouvel ensemble d'éléments ;
● si un formulaire auxiliaire était le formulaire actif au moment de la mise à jour de l'interface, alors :
● la commande d'ouverture d'un formulaire auxiliaire sera exécutée si elle est disponible après la mise à jour de l'interface ;
● sinon, la composition des principaux éléments du formulaire est mise à jour et son affichage est effectué ;
● si au moment de la mise à jour de l'interface, le formulaire actif était un formulaire auxiliaire ouvert avec une commande qui n'est pas liée à la barre de navigation du formulaire, alors à la place de ce formulaire, le contenu des principaux éléments du formulaire sera mis à jour et affiché.
Pour mettre à jour un formulaire particulier, rouvrez-le ou appelez le SetFormFunctionOptionsParameters(),
en même temps, la séquence d'actions décrite ci-dessus ne fonctionne que pour le formulaire dans le cadre duquel le réglage des paramètres des options fonctionnelles du formulaire est appelé.
Il n'est pas nécessaire de spécifier tous les paramètres en même temps, vous pouvez modifier la valeur d'un paramètre particulier ou d'un ensemble de paramètres de manière sélective. Mais c'est la mise en groupe des valeurs avec un seul appel qui est la plus efficace.
Pour obtenir les valeurs des paramètres, vous devez appeler la fonction correspondante ( GetInterfaceFunctionOptionParametersGetInterfaceFunctionOptionParameters() ou
GetFormFunctionOptionsParameters()), qui renverra les paramètres définis sous forme de structure, où le nom du paramètre sera la clé.
A l'ouverture, le formulaire utilise automatiquement les paramètres des options fonctionnelles définies pour l'interface de commande.

Vous avez aimé l'article ? Partager avec des amis: