Il n'a pas ajouté à la rubrique "Habro-suicide", pour ne pas avoir de chers admins, ils n'aiment pas ça. Bien qu'il soit clair que la publication coulera ensemble en moins.
Bien qu'il n'y ait pas d'holivar dedans. L'approche de la construction d'interfaces adaptatives est simplement décrite et illustrée. Je l'utilise depuis 2012 environ.
Si vous pensez que je prêche ici pour 1C, alors en vain. Cette approche et ces outils sont également loin de vous et de 1C. Vous ne ferez jamais cela parce que vous n'en avez pas besoin. Ils ne feront jamais cela parce qu'ils ne savent pas comment. Honnêtement, ils voulaient et veulent, mais ils ne savent pas comment. Parce que 1Sniks ne connaît que trois mots: "marché", "vendre" et "monétisation". Et ici, j'ai - pour l'âme.
Imaginez que je vous dise mon approche personnelle de la création d'interfaces de système d'information d'entreprise. Juste un exemple de 1C. Maintenant, nous créons des outils similaires, essentiellement, sur metadata.js, en utilisant des recharges . Le visage n'est plus jaune, mais l'essence est la même.
Ainsi, le bureau est un outil pour créer des interfaces adaptatives. Dans n'importe quel système sur la plate-forme 1C: Enterprise version 8.2 et supérieure.
Pourquoi et pourquoi
Dans la plate-forme 1C, de merveilleux mécanismes ont été créés pour créer des interfaces. Dans le client lourd, vous pouvez dessiner des panneaux, des boutons et des sous-menus. Dans un client léger, les fonctionnalités peuvent être décomposées par sous-systèmes, et l'interface se dessinera - de beaux liens de navigation vers tous les répertoires, documents et rapports apparaîtront.
Et qu'est-ce qui ne va pas alors? Pourquoi créer une sorte de bureau?
Si ce n'est pas de la paresse, relisez le paragraphe précédent. Que voyez-vous? Que dessinent les interfaces 1C typiques? Si paresse, alors je réponds simplement: ils dessinent la navigation .
Dans les aéroports, par exemple, ils dessinent également la navigation, dont ils sont plus tard fiers - toute personne qui se retrouve d'abord dans le port aérien peut facilement trouver des comptoirs d'enregistrement, une zone de recherche et des toilettes. La navigation pour les nouveaux visiteurs est une tâche importante et nécessaire, sans sa solution compétente, l'effondrement se produira. Et à l'aéroport, et dans le système d'information sur la plateforme 1C.
Et si la personne n'est pas nouvelle? Comptable, par exemple, ou directeur des ventes, directeur des AOP, etc. Le programme coûte longtemps, les utilisateurs savent tout ce dont ils ont besoin, utilisent une quantité limitée de fonctionnalités et il est peu probable que quelque chose change dans un proche avenir. Que devraient-ils faire?
À l'aéroport, ces personnes - par exemple, souvent des hommes d'affaires ou des voyageurs - ne regardent pas du tout la navigation. Ils vont simplement là où ils en ont besoin. Vous êtes allé à l'aéroport et vous vous rappelez combien de temps vous devez y aller ? Le même processus, parfois très déprimant.
Et en 1C quoi? L'utilisateur sait où il doit. Mais, comme un voyageur à l'aéroport, il est obligé d'aller à chaque fois - pour patauger dans la jungle de l'interface. Voir un tas de superflus, chercher le bon, générer un tas de rapports pour voir les quelques nombres dont il a besoin, filtrer et trier à l'infini pour obtenir les données requises.
Si nous établissons une analogie entre 1C et l'aéroport, que se passe-t-il? Après avoir acheté ERP ou SCP, vous avez acquis l'aéroport . Eh bien, ce n'est pas vous, probablement, mais votre entreprise, mais pas le point. Cet aéroport est conçu pour tout le monde et seuls vous et vos collègues l'utilisez. Imaginez - un aéroport d'entreprise!
Présenté? Bon. Maintenant, la question est: aimez-vous tout là-bas? Il n'y a aucune envie, par exemple, de fermer la plupart des terminaux, d'en laisser un, pour ne pas courir pendant une demi-heure? Placer les toilettes plus près de la réception? Pas près, mais au coin de la rue, bien sûr. Et face au rack, placez les canapés du salon VIP, pour ne pas monter les escaliers.
Et en général, au lieu d'un immense bâtiment froid, mettez une petite maison confortable où tout sera à portée de main - enregistrement, récupération des bagages, un canapé pour se détendre, une planche avec des vols au-dessus de votre tête, un bon restaurant, le chargement de votre téléphone et le wi-fi. Eh bien, n'est-ce pas mignon?
Tout ce dont vous avez besoin est déjà à l'aéroport. Seulement situé non pas comme vous en avez besoin, mais comme l'ont décidé les développeurs. En même temps, ils ont poussé un tas de ce dont vous n'avez pas besoin. Par conséquent, inconfortable et inconfortable.
Donc, le bureau - c'est la toute petite maison confortable qui fera de votre "aéroport sur la plate-forme 1C" un coin agréable, pratique et agréable. Et, plus important encore - individuellement pour chaque utilisateur . Laissez chacun avoir son propre aéroport. Pourquoi pas?
Revue générale
Il est temps de dessiner quelques images. Nous avons dessiné un bureau de démonstration dans Enterprise Accounting 3.0, voici à quoi il ressemble.

Une personne entre dans le programme et voit immédiatement ce qui l'intéresse. Premièrement, des liens vers des documents et des rapports qu'il souhaite utiliser le plus souvent. Cliquer sur le lien - aller à la liste des documents ou au formulaire de rapport.
De plus, pour une raison quelconque, une personne veut voir les derniers envois. Eh bien, il aime suivre les implémentations, et c'est tout. Et pour qu'ils soient peints - qu'ils soient rouges, jusqu'à 10 000 roubles, jusqu'à 100 000 roubles - bleu, sur-vert. Aujourd'hui n'est pas une très bonne journée, il n'y a pas d'envois verts ... J'ai cliqué sur le lien - le document s'est ouvert.
Et veut voir les restes d'argent immédiatement, afin de ne pas fouiller dans les rapports. Laissez-les être écrits sur le bureau - séparément pour les comptes de règlement, regroupés par banque et la caisse enregistreuse - sur une seule ligne.
Mais vous devez comprendre non seulement les dernières expéditions, mais aussi la dynamique? Que les ventes quotidiennes soient dessinées sous la forme d'un bel horaire! Depuis le début du mois, par exemple. Alors ne manquez pas la tendance négative.
Et si une personne est un comptable en chef intelligent ou un adjoint? Il est nécessaire de garder un œil sur les comptables afin qu’il n’y ait aucun inconvénient en circulation, sinon je les connais ... Laissez un simple rapport sur les comptes actifs, avec toutes les analyses nécessaires, être tracé directement sur le bureau. Je vais voir un moins - je vais punir ...
Passons au deuxième onglet du bureau.

Qu'avons-nous ici? Vue rapide des reçus. À gauche, une liste de reçus, à droite, un petit rapport qui montre la composition du document (biens, services, conteneurs). Vous placez le curseur sur n'importe quel document - le rapport est redessiné. Pas besoin de tomber dans les documents, de parcourir les signets et de faire défiler les tableaux.
Passons au troisième signet.

Que voyons-nous? Factures de paiement, sous forme d'arbre. Le premier niveau est le compte, le second est la nomenclature, le prix, le montant. Et juste au-dessus de l'arbre se trouve le bouton "Accepter". Il se trouve que dans notre entreprise, il est nécessaire de coordonner les factures pour le paiement. Pourquoi aller quelque part, regarder et vérifier? Sur le bureau, nous voyons des comptes incohérents, sélectionnez ceux qui sont nécessaires, appuyez sur le bouton - et le tour est joué! La réconciliation est arrivée.
Et qu'en est-il du quatrième onglet?

Gros bouton, quoi d'autre. Que fait-elle? Et quelle est la différence ... Que ce soit un secret.
Quel est le truc?
Quelle est l'astuce, demande le lecteur? Nos programmeurs peuvent de la même manière dessiner de tels signets, avec des boutons, des liens et des rapports. Ils n'ont qu'à donner accès au configurateur, et dans quelques jours, il sera prêt.
L'astuce est que tous les éléments du bureau sont dessinés sans utiliser le configurateur . Savez-vous à quoi ressemble le bureau dans le configurateur? Comme ça:

Le bureau ne sait rien de ce qu'il devra dessiner pour un utilisateur spécifique. Lorsque 1C démarre, il saura et tirera.
Tous les paramètres du bureau et de ses éléments sont effectués en mode Entreprise. Le tableau de démonstration, les images dont vous voyez dans ce matériel, est dessiné en 2 heures.
Caractéristiques clés
Passons en revue les principales fonctionnalités que le bureau nous offre. Il y en a tellement que le principal problème est de ne pas oublier quoi. Eh bien, de nouvelles idées - l'obscurité.
Disposition
Chaque utilisateur se voit attribuer un bureau, c'est-à-dire en général, il peut y en avoir autant dans le système. Les paramètres du bureau sont stockés dans le répertoire du même nom. La mise en page des éléments est réalisée selon les mêmes principes que le dessin des formulaires contrôlés dans le configurateur.
Vous pouvez dessiner un nombre arbitraire de groupes, les imbriquer les uns dans les autres, déterminer l'orientation - verticale ou horizontale, diviser en pages, organiser les éléments.
Voici la configuration du bureau:

Consolidation du bureau
Il y a beaucoup d'utilisateurs et tout le monde veut un bureau individuel. Mais que faire si cinq personnes ont besoin d'une paire de signets identiques? Rien de plus simple - vous pouvez attribuer plusieurs postes de travail à un utilisateur à la fois . Dans le formulaire final, une personne verra simplement les signets et les éléments collectés sur tous les ordinateurs de bureau.
Éléments de bureau
Les éléments de bureau sont une telle référence. Ils ont dessiné une fois, par exemple, un diagramme ou une liste dynamique, tout configuré, et vous pouvez l'utiliser dans n'importe quel nombre de bureaux.
Il existe en principe sept types d'éléments: un lien vers des métadonnées, un rapport, un diagramme, un ensemble de liens, une liste dynamique, un arbre, un bouton.
Il s'agit du type d'élément de bureau le plus simple. L'objet de métadonnées est indiqué - par exemple, le document «Ventes de biens et services» ou le rapport «Bilan de chiffre d'affaires» - et c'est tout, il ira sur le bureau sous forme d'hyperlien.

Vous pouvez ajouter une image, remplacer le titre, changer la police. Lorsque vous appuyez dessus, le formulaire correspondant s'ouvre - une liste de documents, un formulaire de rapport, etc.
Bouton
Également un élément très simple, mais compréhensible uniquement pour les programmeurs. Dessine un bouton sur le formulaire, sous lequel se trouve la commande , et dans lequel se trouve le code que vous avez écrit. Vous pouvez l'exécuter sur le client, vous pouvez l'exécuter sur le serveur.
Les équipes sont une telle référence. Il est utilisé non seulement pour les boutons, mais aussi pour le traitement des clics sur des éléments d'autres types (voir ci-dessous).

Le code des commandes du bureau est généralement associé aux données de l'infobase (contrairement aux commandes créées dans le configurateur). Par exemple, un bouton peut créer un élément de répertoire et remplir ses détails avec des valeurs spécifiques. Où obtenir ces valeurs?
Dans le configurateur, vous devrez soit rechercher par code, soit clôturer des référentiels spécialisés de liens prédéfinis, soit effectuer des constantes en général. Ici, vous pouvez également trouver l'aide du tableau des paramètres (voir la capture d'écran ci-dessous) - indiquez le nom et la valeur du paramètre (primitives + tout lien), et utilisez le code de commande.
Rapport
En règle générale, vos mains vous démangent immédiatement pour apporter au bureau un certain type de rapport. Mais c'est une mauvaise pensée.
Sur le bureau, il ne devrait pas y avoir de longs couvre-pieds, qui doivent ensuite encore être filtrés, triés et tout de même longs pour y creuser. Nous avons besoin de rapports courts, compréhensibles et ciblés pour un utilisateur spécifique, montrant une petite quantité de données ou des problèmes clairement positionnés.
Par conséquent, en tant que source de rapports, des schémas de disposition sont utilisés, qui se trouvent dans le répertoire du même nom. Pourquoi vider l'intégralité du chiffre d'affaires si une personne n'a besoin que de voir les inconvénients? Nous appelons le programmeur, en 5 minutes il écrit une demande de 10 lignes, et devant nous il n'y a que des inconvénients.

Ce qui est important - puisque vous écrivez vous-même un petit schéma de disposition, et même en mode Entreprise, vous avez alors à portée de main la chose la plus importante - les données et le contexte . Vous pouvez effectuer des sélections pour des organisations, des unités ou des articles spécifiques. Vous pouvez filtrer par utilisateur actuel. Et tout cela est dans le schéma de mise en page lui-même, et non par les mains de l'utilisateur dans la version du rapport.
Graphique
Il est configuré à peu près de la même manière que le rapport. Il vous suffit d'écrire un schéma de disposition, dont le résultat est affiché dans un diagramme. Et puis la magie opère .
Un graphique typique formé par une mise en page sous forme de feuille de calcul semble effrayant. Il ne s'adapte pas à la taille de l'écran, ne s'y adapte pas du tout, et rien ne peut être fait avec cela - seulement déplacer un objet de type "Image" par code après la formation. Mais les gens vivants ne le font pas.
Un diagramme dessiné directement sur le formulaire semble beaucoup mieux. Il s'agit d'un contrôle normal qui peut évoluer, ne semble pas étranger et, en général, est assez agréable.
Je vais montrer dans l'image pour la rendre plus claire. À gauche, un graphique standard dans un tableur, à droite, un graphique sur un formulaire.

Est-il possible de se permettre d'utiliser le tableau de gauche? Non, bien sûr. Seul le graphique de formulaire normal, évolutif et intégré à droite. Dans la première capture d'écran, il y avait le même diagramme - ils ont vu à quel point il était petit, mais en même temps - assez lisible?
Et la magie mentionnée est que le bureau lui-même extrait le graphique du document de feuille de calcul et le transfère vers le formulaire. Série, points, design - tout traîne, ce qui est mauvais. Le programmeur écrit simplement le schéma de disposition et obtient un beau diagramme. Sans bureau, je devrais dessiner un tel code.
Liste dynamique
Le principe est le même que dans les rapports et les graphiques. Le programmeur écrit le schéma de disposition - ce qu'il veut voir dans la liste dynamique. Sélection des champs, tri, mise en page, sélections, etc. - tout ce dont vous avez besoin pour une présentation confortable des données.
Et le bureau prend la demande, crée une liste dynamique sur le formulaire, paume le texte de la demande, les sélections, le tri, la mise en forme conditionnelle, etc. Et voilà, la liste est prête.
Vous pouvez également gérer certaines propriétés de la liste. Par exemple, la table principale - si elle est spécifiée, alors l'élément se comportera comme un formulaire de liste normal. Vous pouvez contrôler la possibilité d'ajouter des données, contrôler leur ordre.
Arbre
Presque un à un - une liste dynamique. Il s'agit également d'un schéma de disposition, copiant également les sélections et la conception, seul un arbre est dessiné sur le formulaire, pas une liste dynamique. Et vous pouvez afficher toutes les données.
Dans l'arborescence, respectivement, vous pouvez effectuer un regroupement. Le nombre de niveaux de nidification n'est pas limité.
Vous pouvez connecter des commandes à l'arborescence (depuis le répertoire "Commandes" mentionné ci-dessus). Chaque équipe dessinera un bouton sur l'arborescence (comme dans la capture d'écran de la page «Coordination»). Lorsqu'un bouton est enfoncé, un contexte est transféré vers son code - une arborescence. En conséquence, le programmeur peut faire avec lui et ses données tout ce qui lui vient à l'esprit. Par exemple, modifiez les détails de l'objet pointé par l'utilisateur dans l'arborescence.
Ensemble de liens
L'élément le plus utile et intéressant, à mon avis,. Il vous permet d'apporter au bureau des liens vers des données spécifiques - par exemple, des implémentations, des tâches, des commandes, etc.
Par exemple, dans la première capture d'écran, nous avons eu les 5 dernières implémentations:

Donc, c'est un ensemble de liens. En dessous se trouve le même schéma de disposition, qui recueille les données dont une personne particulière a besoin et s'affiche à l'écran. Pas de feuilles de calcul, transcriptions, tas de colonnes et double-clics. Juste un lien hypertexte vers l'objet souhaité.
Un ensemble de liens est particulièrement utile lorsqu'une personne a besoin d'afficher des objets avec lesquels elle doit faire quelque chose. Par exemple, convenez d'un contrat ou d'une demande pour dépenser de l'argent. Le programmeur écrit une requête qui filtre les objets par l'utilisateur actuel, et le tour est joué - vous n'avez pas besoin d'aller n'importe où, de filtrer quoi que ce soit, de rechercher et de comprendre. J'ai cliqué sur le lien, j'ai immédiatement frappé l'objet, j'ai fait ce dont j'avais besoin - et l'objet a disparu du bureau.
Vous pouvez afficher le lien tel quel. Vous pouvez redéfinir la vue, comme dans la capture d'écran ci-dessus - laissez le numéro et la date, ajoutez le montant. Vous pouvez le coloriser avec n'importe quelle couleur, en fonction des données - par exemple, mettez en surbrillance l'expiration en rouge. Vous pouvez même changer la taille de la police.
Un nombre arbitraire de commandes peut être connecté à un ensemble de liens. S'il n'y a pas de commandes, cliquer simplement sur l'objet s'ouvre sous le lien. S'il y a plusieurs commandes, le choix de l'action s'ouvrira:

Ce qui est important - non seulement le lien est transféré dans le contexte de l'exécution de la commande, mais également tous les champs renvoyés par la demande. Il n'y a qu'un lien sur le formulaire, et la demande pourrait renvoyer le statut des règlements mutuels, la fiabilité de la contrepartie et la disponibilité des marchandises nécessaires dans l'entrepôt - n'importe quoi. Et tout cela peut être utilisé au sein de l'équipe.
Autres fonctionnalités
Par défaut, les tailles de tous les éléments du bureau sont calculées automatiquement en fonction de la quantité d'espace libre. Mais, si vous le souhaitez vraiment, la largeur et la hauteur de chaque élément peuvent être contrôlées, ainsi que l'étirement vertical et horizontal.
Pour chaque bureau, vous pouvez activer la mise à jour automatique à intervalles réguliers.
Il existe également un mode exotique - la commutation automatique des signets de bureau. Les personnes vivantes n'en ont pas besoin, mais nous en avions un exemple: elles incluaient un client léger sur le téléviseur, il y avait un bureau avec un tas de diagrammes et les signets changeaient automatiquement. Une télévision était suspendue dans le bureau, tout le monde la regardait et comprenait à quel point elle fonctionnait bien.
Options de mise en page
Options de mise en page - innombrables, autant que suffisamment d'imagination. Par exemple, vous pouvez transformer le bureau en un tableau de bord enragé:

Les diagrammes de la plate-forme 8.3 sont très beaux, donc regarder un tel bureau est très agréable, d'accord. Sur le bureau, ils sont également agréables au toucher - regardez la vidéo .
Et si quelqu'un dit que tous ces diagrammes sont absurdes pour les gestionnaires, vous pouvez dessiner un bureau ascétique simple, composé uniquement des documents, répertoires et rapports nécessaires.

Développement
Le bureau a un énorme potentiel de développement. Il y a encore tant à faire et à faire qui durera plusieurs années. Et l'optimisation interne, et de nouvelles fonctionnalités, et des puces de conception.
Nous développerons le bureau, en suivant la pratique de son utilisation, les nouvelles fonctionnalités de la plateforme et nos idées sur le beau.