Modifiez ou désactivez le mode de compatibilité. Extensions de configuration - comment ajouter des fonctionnalités à une configuration typique sans la supprimer du support (20 minutes de vidéo) Avantages de l'utilisation d'une extension

Nous avons publié une nouvelle version du panneau de téléphonie pour 1C.

  • version 1.2.24.10 pour ordinaire applications
  • version 1.4.26.17 pour géré applications

Dans la version finale d'une application gérée, il est devenu possible d'intégrer un panneau de téléphonie avec modifications minimes configuration de base avec mécanisme d'expansion configuration.

Avantages de l'utilisation de l'extension

L'extension est très similaire à la configuration normale. Pour travailler avec elle, les mêmes méthodes de travail sont utilisées qu'avec la configuration habituelle. Les extensions sont créées principalement pour faciliter la modification du programme. Désormais, vous n'avez plus besoin d'insérer des "morceaux de code" dans certains modules et d'ajouter de nouveaux objets de métadonnées, ajoutez simplement une extension à la configuration.

Le grand avantage d'utiliser des extensions est mise à jour automatique configuration principale. Désormais, il n'est plus nécessaire de modifier les paramètres de prise en charge d'une configuration typique.

Caractéristiques de l'intégration d'un panneau de téléphonie pour 1C

Ces fonctionnalités sont devenues disponibles pour les extensions de la plate-forme, à partir de la version 8.3.9.1818 . Par conséquent, pour en profiter, nous avons désactivé le mode de compatibilité de l'extension, puisque la version 8.3.9 pas encore pris en charge. En conséquence, il devient nécessaire de désactiver le mode de compatibilité pour la configuration principale, sinon une erreur se produira : " Le mode de compatibilité de l'extension de configuration est supérieur au mode de compatibilité de la configuration principale".

2) Dans la configuration principale, nous ajoutons le rôle MIKO_Softphone, pour lequel nous supprimons tous les droits.

Lors de l'ajout d'un nouvel objet de métadonnées, en l'occurrence un rôle, il est nécessaire de mettre à jour le répertoire Identificateurs d'objet de métadonnées. Lorsque nous avons ajouté ce rôle à l'extension, les configurations typiques l'ignoraient, c'est-à-dire que lors de la mise à jour du répertoire MetadataObjectIdentifiers, le rôle n'y apparaissait pas. De ce fait, le mécanisme du profil des paramètres du panneau de téléphonie ne fonctionnait pas correctement, une erreur s'est produite : " Identificateur d'objet de métadonnées introuvable pour le rôle MIKO_Softphone".

De plus, cette situation ne s'est pas produite dans toutes les configurations, comme dans "Gestion commerciale, 11.2.3.218" et "Automatisation intégrée, 2.0.3.222" il n'y avait aucun problème avec le rôle lorsqu'il a été ajouté à l'extension elle-même. Afin de fournir une certaine polyvalence à notre solution et d'assurer un fonctionnement fluide dans la plupart des configurations que nous prenons en charge, nous avons décidé d'ajouter le rôle MIKO_softphone dans la configuration principale et l'emprunter dans l'extension, puis implémentez les paramètres de ce rôle dans l'extension.

Une caractéristique très importante est le fait que si une fois que vous avez intégré notre extension, vous souhaitez intégrer le panneau selon nos anciennes instructions, vous devez désactiver l'extension et supprimer le rôle MIKO_softphone. Si vous souhaitez réutiliser l'extension, vous devez d'abord ajouter le rôle, puis ajouter l'extension.

Résumé

Même en incluant la possibilité de modifier la configuration principale et d'apporter des modifications minimes à la configuration, nous avons rendu le processus d'intégration d'un panneau de téléphonie beaucoup plus facile. Désormais, vous n'avez plus besoin d'apporter des modifications aux modules de l'application gérée, d'ajouter un traitement et des sous-systèmes à la configuration ou de définir des rôles. L'extension fera tout cela pour vous ! Nous continuerons à améliorer le processus d'intégration d'un panneau de téléphonie pour 1C !

Les instructions pour intégrer un panneau de téléphonie pour 1C à l'aide du mécanisme d'extension sont situées.

Posez vos questions via le formulaire de commentaires.

© 2019. MIKO LLC Tous droits réservés.

Dans cet article, je vous propose de réfléchir à ce qu'est une « extension de configuration », comment ajouter une extension ou la désactiver. A partir de la version 1C Le 8.3.6.1977, un nouveau mécanisme a été introduit dans la plate-forme - les extensions de configuration. Tout d'abord, un peu de théorie.

Les extensions dans 1C ressemblent à des configurations parallèles qui sont automatiquement fusionnées avec la configuration principale du fournisseur. De plus, dans les extensions, vous pouvez ajouter à la fois vos propres objets et emprunter des objets de la configuration principale.

A quoi servent les extensions ?

Tout d'abord, des extensions sont créées pour faciliter les modifications du programme. Autrement dit, si les utilisateurs demandent à ajouter des fonctionnalités, avant l'avènement des extensions, les programmeurs devaient supprimer la configuration du support complet et modifier la configuration typique.

La suppression du support complet entraîne un certain nombre d'inconvénients :

  • la possibilité de mise à jour automatique disparaît, ce qui entraîne au moins une augmentation du temps de ;
  • un spécialiste hautement qualifié au service du programme est requis ;
  • si des modifications ont été apportées aux objets standard d'une configuration typique, ils peuvent disparaître lors de la mise à jour, c'est-à-dire qu'ils peuvent être remplacés à nouveau par des objets standard du fournisseur.

Lors de l'utilisation d'extensions, lors de modifications, le programmeur ne touchera pas à la configuration standard. Toutes les modifications seront apportées à l'aide d'extensions, qui (comme je l'ai écrit ci-dessus) sont également des configurations. Ainsi, la configuration principale restera au support complet.

Après la mise à jour de la configuration principale, s'il y a des modifications dans la nouvelle version avec un objet qui a été précédemment modifié par l'extension, les modifications seront toujours prises à partir de l'extension. Autrement dit, les extensions ont priorité sur la configuration principale.

Vidéo - extensions en 1C en 45 minutes

Obtenez gratuitement 267 leçons vidéo 1C :

Un exemple d'ajout d'une extension à 1C

Pour montrer ce qu'est une extension, mieux vaut donner un exemple de sa création dans le configurateur 1C.

Dans le configurateur, allez dans le menu "Configuration" et sélectionnez l'item "Extensions de configuration". Une fenêtre s'ouvrira avec une liste d'extensions (le cas échéant). Cliquez sur le bouton "Ajouter" et ajoutez une nouvelle extension. Vous pouvez maintenant ouvrir la configuration de l'extension :

Comme vous pouvez le voir, la configuration de l'extension a exactement la même structure que la principale. Seulement il est d'abord complètement pur, sans objets.

J'ai récemment écrit un article sur la façon de créer le vôtre. En utilisant son exemple, je veux le rendre en ligne en utilisant une extension.

En traitement, j'ai un champ avec un lien vers le répertoire "Organisations". C'est pourquoi j'ai besoin de ce guide. Mais nous n'allons pas créer un nouvel annuaire des Organisations, d'autant plus que la plateforme ne le permettra pas. Vous ne pouvez pas avoir d'objets dans la configuration d'extension qui portent le même nom que des objets dans la configuration principale.

Nous allons donc emprunter le répertoire à la configuration principale :

Maintenant, nous allons faire un clic droit sur "Traitement" et sélectionner "Insérer un traitement externe, rapport ..." Ainsi, nous allons ajouter un nouveau traitement à la configuration de l'extension. Si vous utilisez mon traitement, renommez-le immédiatement, car la configuration principale a déjà un traitement portant ce nom.

Eh bien, la touche finale. Je souhaite que mes traitements soient répercutés dans le menu "Administration". Pour ce faire, nous emprunterons le sous-système de la configuration principale du même nom. N'oubliez pas d'indiquer dans le traitement qu'il appartient à ce sous-système.

Voici la structure que j'ai obtenue :

Voyons ce que nous avons. Nous mettons à jour la configuration de la base de données et exécutons le programme en mode 1C: Enterprise, et allons dans le menu "Administration". Oui, j'ai failli oublier, la configuration de l'extension doit être fermée, sinon le programme ne démarrera pas :

Le coût du travail et les options de traduction de différentes versions

Traduction 8.1 → 8.2.13 Traduction 8.2.13 → 8.2.16 Traduction 8.2.16 → 8.3.10
prix, frotter. * 54 000 ₽ 12 000 ₽ 76 800 ₽

La liste de tous les changements dans les différentes versions de la plateforme est disponible sur les liens :
Pour la plate-forme 8.2 :
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Avant de commencer à travailler sur la traduction vers 8.3, vous devez :

Vérifiez le mode de blocage géré. Si « Automatique » est utilisé, le passage à la version 8.3 peut nécessiter des coûts supplémentaires pour passer en mode de verrouillage contrôlé.
Si le mode de compatibilité avec 8.2.16 et supérieur est utilisé, vous devez vérifier si les tables sont restructurées
Déterminer quels types de clients sont utilisés (client léger, épais, Web)
Déterminez s'il y a des machines qui exécutent Linux

Traduction de configuration 8.1 → 8.2.13

Coût des travaux : 54 000 roubles.

Traduction de configuration 8.2.13 → 8.2.16 (dont restructuration)

Changements clés :
Le mode de stockage des constantes et des paramètres des registres d'accumulation a été modifié. Chaque objet a sa propre table de base de données
La mise en œuvre du mécanisme de verrouillage géré a été repensée.
Pour l'événement de log technologique "TLOCK", la propriété "Txt" est écrite uniquement en mode compatibilité avec la version 8.2.13
L'effet du mode débogage sur la vitesse de travail en mode 1C:Enterprise pour un client léger, un client lourd, un serveur et une connexion externe a été réduit.
Exécution optimisée d'une requête du type "ValueType(Field1) = ValueType(Field2)" si "Field1" et "Field2" contiennent des valeurs de type référence.
Pour les champs de formulaire gérés affichant un attribut d'un type composite, l'ouverture de la liste de sélection rapide a été accélérée dans les cas où le type composite inclut des types de référence avec des paramètres de sélection rapide différents.
Pour un nouveau registre d'informations indépendant et non périodique, l'index par dimensions est regroupé

Modifications nécessitant des modifications de configuration :

Lorsque le mode de compatibilité est désactivé, le paramètre "Period" de la méthode "Get()" du gestionnaire du registre des informations périodiques est requis. En mode de compatibilité avec la version 8.2.13 et la version 8.1, le comportement n'a pas changé (la méthode peut être utilisée sans spécifier de paramètre, mais le résultat n'est pas défini).
Lors de l'utilisation simultanée des méthodes "SetValue()" et "UseFromDataSource()" de l'objet "DataLockItemItem", une exception est levée. En mode compatibilité avec la version 8.2.13, le comportement n'a pas changé (la priorité est donnée à la valeur définie par la méthode "UseFromDataSource()").
Le stockage de valeurs de données qui ne prennent pas en charge la sérialisation n'est pas pris en charge. En mode compatibilité, le comportement n'a pas changé.
Si la base de données est un fichier, l'infobase doit être convertie. Après le début de la conversion, il sera impossible de travailler avec cette infobase avec les versions précédentes de la plate-forme 1C:Enterprise 8. Si le développement est effectué à l'aide du référentiel de configuration, vous devez faire une copie du référentiel avant de convertir l'infobase

IMPORTANT. Pour obtenir l'effet de changer le mode de compatibilité, vous devez effectuer une restructuration via le configurateur : "Administration → Test et correction → Restructuration des tables de l'infobase".

Dans un premier temps, vous devez effectuer une restructuration sur une base de test et mesurer le temps d'exécution de cette opération.
Si une version de serveur 1C antérieure à 8.2.19 est utilisée, par exemple la version 8.3, les erreurs suivantes peuvent se produire lors de la restructuration :

Dans ce cas, vous devez faire ce qui suit :
Installez séparément le serveur 1C version 8.2.19 et déployez-y la base de données à l'étude
Ouvrez la base de données dans le configurateur sur le serveur 1C version 8.2.19, changez le mode de compatibilité en "Ne pas utiliser"
Effectuer la restructuration des tables de l'infobase
Une fois la restructuration terminée, déplacez l'infobase vers le serveur d'origine 1C version 8.3

Le coût du transfert de la configuration du mode de compatibilité 8.2.13 au mode 8.2.16 (mode de non-compatibilité lors de l'utilisation de la plate-forme 8.2.16, 8.2.19 et mode de compatibilité 8.2.16 lors de l'utilisation de la plate-forme 8.3) est 12 000 roubles.

Un modèle de contrat de travail peut être téléchargé.

Traduction de configuration 8.2.16 → 8.3.10

Le travail de traduction de la configuration inclut les améliorations de configuration suivantes :

1. Éliminer les conflits de noms de propriété. Modification des noms de variables pour correspondre aux nouvelles propriétés apparues dans 1C:Enterprise 8.3.
2. Éliminer le conflit de noms d'images. Renommer les noms des images avec des noms qui correspondent aux noms de la bibliothèque d'images.
3. Raffinement du code lors de la modification des propriétés d'une structure fixe. Remplacer l'indication des propriétés d'une structure fixe par recréer une structure fixe ou remplacer son utilisation par un type similaire de "Structure".
4. Remplacement des valeurs non sérialisables dans le stockage temporaire par du code pris en charge dans 1C:Enterprise 8.3.
5. Remplacement de l'utilisation de l'appel de la méthode "Show" pour les attributs du formulaire géré, par l'utilisation des propriétés "CurrentElement", "CurrentPage", la méthode "Activate"
6. Remplacement des noms d'objets de métadonnées d'une longueur de plus de 80 caractères par des noms d'une longueur de nom de 80 caractères ou moins pour les objets de métadonnées
7. Renommer les méthodes et les propriétés, selon la méthodologie de passage à la version 8.3.
8. Raffinement des mécanismes de travail avec les sélections, la conception conditionnelle, les regroupements et l'ordre dans les listes dynamiques.
9. Raffinement du code pour les requêtes avec le mot-clé "RESULTATS SUR GENERAL", déchargé en mode
"Contourner le résultat de la requête. Par regroupement", afin de préserver l'ancienne logique de travail.
10. Changements dans les noms de classe des objets COM. Remplacement des noms "V82.COMConnector" par "V83.COMConnector", et "V82.Application" par "V83.Application".
11. Refus dans le code du programme de l'événement "Start of SelectionFromList" pour les champs de saisie dans le mode de sélection dans la liste
12. Refus dans le code du programme de la propriété "SelectionListButton" pour les champs de saisie en définissant la propriété "DropdownListButton".
13. Modification du code en tenant compte du changement du type de valeur retournée par la méthode de contexte global "SafeMode()"
14. Modification du code prenant en compte le changement du résultat d'une requête vers des constantes (lors de l'accès au champ "Value" de la table des constantes, si la constante stocke une valeur du type "ValueStorage", "UniqueIdentifier" ou "ExternalDataSourceTableReference" taper).
15. Remplacement de la propriété de configuration "MainRole" par "MainRoles"
16. Rejet des propriétés "User" et "Password" pour l'objet "InternetProxy" et remplacement par les méthodes "Set()", "User()", "Password()".
17. Raffinement du code pour supporter la commande "Afficher dans la liste", selon la méthodologie de passage à la version 8.3.
18. Raffinement du code pour maintenir la logique précédente du fonctionnement du système avec une valeur de retour modifiée de la propriété SystemInformation.OSVersion,
19. Raffinement du code pour conserver l'ancienne logique du système lorsqu'il n'utilise pas l'énumération système WindowOpeningVariant, qui n'est plus disponible dans la version 8.3.
20. Affinement du code prenant en compte le refus d'utiliser les fenêtres modales.
21. Raffinement du code de support du client web, à savoir le rejet des appels serveur et l'ouverture des fenêtres en "Avant Fermeture", le rejet des appels serveur en "A la Fermeture".
22. Raffinement du code pour la possibilité d'utilisation correcte de la fonction RoleAvailable(), lors du passage de la fonction en paramètre au rôle manquant.
23. Pour une application managée : à partir de la version 8.3.8 dans les gestionnaires d'événements d'applications managées BeforeSystem Shutdown, OnSystem Shutdown, ainsi que dans les gestionnaires d'événements de formulaires managés en mode fermeture, BeforeClose, OnClose, il est interdit d'ouvrir les fenêtres et de faire des appels au serveur. Il est nécessaire d'affiner la configuration pour que la fermeture des formulaires s'effectue correctement - sans appels serveur.
24. Conflit de nom de variable : vous ne pouvez pas utiliser le nom de variable FormParameters dans un module de formulaire. Par conséquent, il est nécessaire de finaliser tous les modules de formulaire gérés qui utilisent des variables nommées FormParameters en renommant ces variables.

Le prix de ces travaux est préliminaire, pertinent pour la plupart des configurations. Avant de commencer les travaux à la conclusion du contrat, nous vérifions la configuration et après vérification, nous confirmons le prix et les conditions de travail. La vérification est nécessaire car les configurations peuvent être très différentes, y compris celles fortement réécrites.

Coût des travaux : 76 800 roubles

Un modèle de contrat de travail peut être téléchargé.

Le coût de conversion de la configuration en mode de compatibilité avec 8.3.10 peut être augmenté, si:
La configuration utilise des formulaires gérés
Il faut arrêter d'utiliser la modalité
Il est nécessaire de maintenir l'opérabilité de la configuration dans le système d'exploitation Linux

Chers collègues, bonjour à tous.

L'autre jour, le test Accounting of the Enterprise est sorti avec le mode de compatibilité désactivé avec la plate-forme 8.3.6.
Cela signifie que cette version utilise un nouveau moteur qui dessine les formulaires d'une nouvelle manière.
Vous pouvez lire à ce sujet dans Looking Glass.

En plus des extensions standard, vous devez également recréer vos propres extensions pour la nouvelle plate-forme.
Dans le processus de traduction, je me suis formé une petite liste de contrôle ou un rappel de ce qui doit être fait.

Rappel:


1. Nous transférons l'extension sur une nouvelle plateforme

Pour ce faire, vous devez changer le mode de compatibilité de l'extension en mode de compatibilité de la configuration.
La version Enterprise Accounting a les propriétés suivantes :

Dans l'extension, vous pouvez définir exactement les mêmes propriétés ou décocher toutes les cases.
L'absence d'indicateurs signifie que l'extension ne vérifiera pas ces propriétés lorsqu'elle sera connectée.
Ensuite, si ces propriétés sont modifiées dans la configuration principale, l'extension fonctionnera toujours :


2. Résoudre les problèmes de connexion

Pour ce faire, exécutez la configuration en mode entreprise et voyez si elle a décollé ou non.
Les erreurs en raison desquelles l'extension n'a pas pu être connectée peuvent être consultées dans le journal d'enregistrement
(Administration - Support et Maintenance - Journal de bord)
Nous sommes intéressés par les événements - "Session. Erreur lors de l'application de l'extension de configuration :

Le plus souvent, le problème de connexion est résolu en supprimant un attribut ou un objet supplémentaire.

La principale difficulté est que l'extension ne génère pas toutes les erreurs en même temps (d'ailleurs, ce problème est résolu en 8.3.9).
Par conséquent, il est nécessaire d'exécuter les configurations de manière séquentielle après avoir corrigé chaque erreur.
Pour faciliter l'exécution du journal d'enregistrement, ajoutez-le à vos favoris :



3. Mettre à jour les formulaires dans l'extension

Pour cela, dans chaque formulaire modifié, cliquez sur « Mettre à jour l'extension du formulaire »
Avec cette commande, nous rechargeons le formulaire de configuration principal dans l'extension.

En principe, cela fonctionnera sans cela, mais cela est nécessaire pour que le formulaire dans l'extension ait le même aspect que dans la configuration principale.
Dans la version 3.0.44, presque tous les formulaires ont subi des modifications, il serait donc agréable d'intégrer ces modifications dans l'extension.


4. Nous apportons le formulaire aux règles du nouveau moteur.

Je vous recommande de lire l'article - Recommandations pour adapter les formulaires à la 8.3.7.
Il décrit les fonctionnalités du nouveau moteur et donne des recommandations spécifiques sur la façon de faire en sorte que tout fonctionne correctement sur la nouvelle plate-forme.

J'ai composé la procédure suivante :

  • Enlever toutes les décorations, qui ont été utilisés pour l'indentation.
    Les groupes sont maintenant utilisés à la place.
  • Voyons que tout semble bon.
    Si quelque chose s'est mal passé, nous regardons l'article.
    Si tout va bien, nous passons à autre chose.
  • Vérification des nouvelles propriétés de la plateforme"Combiné", "AutoMaxWidth" et "AutoMaxHeight".
    Nous regardons simplement que les valeurs par défaut de la plate-forme sont définies dans ces propriétés et que le formulaire ne se déplace pas à cause de cela.

Une nouvelle version de la plate-forme 8.3.11 a été publiée, qui vous permet d'ajouter et de modifier des objets de métadonnées via une extension. Pouvons-nous vraiment implémenter des améliorations maintenant sans supprimer la configuration du support ? Vaut-il la peine de promettre des montagnes d'or à un client sans aucune conséquence ?

Tout d'abord, vous devez être conscient des limites des extensions.

Restriction sur les objets créés

Actuellement, vous pouvez créer :

  • Livres de référence
  • Documentation
  • Registres d'informations
  • Forfaits d'échange

Vous pouvez ajouter des détails à :

  • Livres de référence
  • Documentation

Avec quoi finissons-nous ? Tous les types d'objets de métadonnées ne peuvent pas être ajoutés. Les plus courants et les plus populaires, mais pas tous. De plus, de nouvelles dimensions et ressources ne peuvent pas être ajoutées aux registres d'information. Vous ne pouvez créer qu'un registre entièrement nouveau.

La fonctionnalité des extensions dépend du mode de compatibilité de la configuration à laquelle l'extension est appliquée.

Mode de compatibilité 8.3.8- vous pouvez uniquement modifier les formes des objets et leurs modules, ajouter vos propres rapports et traitements.

Mode de compatibilité 8.3.10- vous pouvez modifier les modules communs, les modules objet et gestionnaire, les rôles, utiliser les directives "Avant", "Après", "Au lieu" pour tous les modules.

Mode de compatibilité "Ne pas utiliser"- vous pouvez utiliser toutes les fonctionnalités des extensions, y compris l'ajout de nouveaux objets.

À l'heure actuelle, l'UT 11.3 typique a le mode de compatibilité 8.3.8. Dans le mode de compatibilité UT 11.4 8.3.10, c'est-à-dire, par exemple, pour UT, la plupart des fonctionnalités des extensions ne sont pas disponibles, y compris la création d'objets de métadonnées.

Il semblerait que cela soulève la question : pourquoi ne pas simplement supprimer le support de la racine, définir le mode de compatibilité sur "Ne pas utiliser" et utiliser les extensions en toute sécurité ? Lorsque vous modifiez le mode de compatibilité, le comportement des formulaires, les résultats des requêtes, c'est-à-dire comportement du système dans son ensemble. Nous vous recommandons vivement de ne pas modifier le mode de compatibilité sans l'avoir préalablement testé. Mais il est évident qu'il est possible de tester complètement (ou au moins une partie des documents utilisés) une solution applicative complète. Par conséquent, cette option ne doit pas être utilisée.

Lors de la connexion d'une extension à une configuration typique, empruntant des objets typiques, l'extension contrôle le mode de compatibilité de la configuration principale et les types d'objets empruntés et leurs détails. Si les propriétés contrôlées ne correspondent pas, l'extension est désactivée et ne fonctionne pas tant que la cause n'est pas éliminée. Autrement dit, avec une mise à jour majeure, il y a une forte probabilité qu'au moins une des propriétés contrôlées change et que l'extension perde sa fonctionnalité.


De plus, si les améliorations sont importantes, de nombreuses procédures et fonctions de la configuration standard ont été remplacées, il faudra les contrôler attentivement et, si nécessaire, les mettre en conformité avec la configuration standard, en conservant les modifications apportées précédemment.


Dans les cas ci-dessus, vous avez toujours besoin de l'aide d'un programmeur et, éventuellement, d'un temps important pour la révision (mais toujours moins que lors de la mise à jour d'une configuration qui a été retirée du support).

conclusion

  • La nouvelle version de la plate-forme a donné de nouvelles possibilités d'utilisation des extensions, il est devenu possible d'ajouter des objets de métadonnées, mais malgré cela, la fonctionnalité a certaines limites.
  • Le mode de compatibilité de la configuration à laquelle l'extension est appliquée limite considérablement la portée de l'extension, et il n'est pas recommandé de changer le mode de compatibilité.
  • Les mises à jour importantes nécessitent toujours l'attention du développeur, car il existe une forte probabilité de modifications des propriétés contrôlées.
2022 wisemotors.com. Comment ça fonctionne. Fer. Exploitation minière. Crypto-monnaie.