{"id":32475,"date":"2019-10-31T21:47:15","date_gmt":"2019-10-31T18:47:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/platforma-1s-predpriyatie-chto-pod-kapotom\/"},"modified":"2019-10-31T21:47:15","modified_gmt":"2019-10-31T18:47:15","slug":"platforma-1s-predpriyatie-chto-pod-kapotom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","title":{"rendered":"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu'y a-t-il sous le capot ?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Salut, Habr ! <br \/>\nDans cet article, nous allons parler de la mani\u00e8re dont la plateforme fonctionne en interne <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">1C:Enterprise 8<\/a><\/noindex> et des technologies utilis\u00e9es dans son d\u00e9veloppement.<\/p>\n<p><img decoding=\"async\" alt=\"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu&#039;y a-t-il sous le capot ?\" src=\"\/wp-content\/uploads\/2019\/04\/9375ea3be32979a7d8c72239dfd50f07.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPourquoi pensons-nous que c'est int\u00e9ressant ? Tout d'abord, parce que la plateforme 1C:Enterprise 8 est une grande application (plus de 10 millions de lignes de code) \u00e9crite en C++ (client, serveur, etc.), JavaScript (client web), et, depuis peu encore, en <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Java<\/a><\/noindex>. Les grands projets sont int\u00e9ressants ne serait-ce que par leur ampleur, car des questions qui passent inaper\u00e7ues dans une petite base de code se posent de fa\u00e7on criante dans de tels projets. Deuxi\u00e8mement, 1C:Enterprise est un produit standardis\u00e9, et il existe tr\u00e8s peu d'articles sur de tels d\u00e9veloppements sur Habr. De plus, il est toujours fascinant de d\u00e9couvrir comment d'autres \u00e9quipes et entreprises vivent leur exp\u00e9rience.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAlors, commen\u00e7ons. Dans cet article, nous donnerons un aper\u00e7u de certaines des technologies utilis\u00e9es dans la plateforme, en d\u00e9crivant le paysage sans plonger profond\u00e9ment dans les impl\u00e9mentations. En effet, pour de nombreux m\u00e9canismes, une explication d\u00e9taill\u00e9e n\u00e9cessiterait un article \u00e0 part enti\u00e8re, et pour certains, un livre entier !<br \/>\nTout d'abord, il est n\u00e9cessaire de d\u00e9finir les choses de base : qu'est-ce que la plateforme 1C:Enterprise et de quels composants elle se compose. La r\u00e9ponse \u00e0 cette question n'est pas si simple, car le terme \"Plateforme\" (nous l'appellerons ainsi pour faire court) englobe \u00e0 la fois un outil de d\u00e9veloppement d'applications m\u00e9tier, un environnement d'ex\u00e9cution et des outils d'administration. On peut grossi\u00e8rement distinguer les composants suivants :<\/p>\n<ul>\n<li>un cluster de serveurs<\/li>\n<li>un client \"l\u00e9ger\" capable de se connecter au serveur via http et son propre protocole binaire<\/li>\n<li>un client pour fonctionner dans une architecture \u00e0 deux niveaux avec une base de donn\u00e9es plac\u00e9e sur un disque dur ou un dossier r\u00e9seau<\/li>\n<li>un client web<\/li>\n<li>des outils d'administration pour le serveur d'applications<\/li>\n<li>un environnement de d\u00e9veloppement (appel\u00e9 Configurateur)<\/li>\n<li>un environnement d'ex\u00e9cution pour iOS, Android et Windows Phone (plateforme mobile 1C)<\/li>\n<\/ul>\n<p>\nToutes ces parties, \u00e0 l'exception du client web, sont \u00e9crites en C++. De plus, il existe un <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Configurateur de nouvelle g\u00e9n\u00e9ration<\/a><\/noindex>, \u00e9crit en Java.<\/p>\n<h3>Applications natives<\/h3>\n<p>\nPour le d\u00e9veloppement d'applications natives, nous utilisons C++03. Sous Windows, nous employons Microsoft Visual C++ 12 (profil compatible avec Windows XP), et sous Linux et Android, gcc 4.8, tandis que pour iOS, nous utilisons clang 5.0. La biblioth\u00e8que standard utilis\u00e9e est la m\u00eame pour tous les syst\u00e8mes d'exploitation et compilateurs \u2014 STLPort. Ce choix permet de r\u00e9duire la probabilit\u00e9 d'erreurs sp\u00e9cifiques \u00e0 l'impl\u00e9mentation de STL. Nous pr\u00e9voyons actuellement de passer \u00e0 l'impl\u00e9mentation de STL fournie avec CLang, car STLPort a cess\u00e9 son d\u00e9veloppement et n'est pas compatible avec le mode de support C++11 activ\u00e9 dans gcc.<br \/>\nLa base de code du serveur est commune \u00e0 99%, celle du client \u00e0 95%. De plus, m\u00eame la plateforme mobile utilise le m\u00eame code C++ que la version 'grande', bien que le pourcentage d'unification soit un peu plus faible. <br \/>\nComme la plupart des utilisateurs de C++, nous ne pr\u00e9tendons pas utiliser 100% des capacit\u00e9s du langage et de ses biblioth\u00e8ques. Ainsi, nous n'utilisons pratiquement pas Boost, et parmi les fonctionnalit\u00e9s du langage \u2014 le casting dynamique. Cela dit, nous utilisons activement :<\/p>\n<ul>\n<li>STL (en particulier, les cha\u00eenes, les conteneurs et les algorithmes)<\/li>\n<li>l'h\u00e9ritage multiple, y compris l'h\u00e9ritage multiple d'impl\u00e9mentation<\/li>\n<li>les mod\u00e8les<\/li>\n<li>les exceptions<\/li>\n<li>les pointeurs intelligents (impl\u00e9mentation interne)<\/li>\n<\/ul>\n<p>\nL'utilisation de l'h\u00e9ritage multiple d'interfaces (classes compl\u00e8tement abstraites) permet de cr\u00e9er un mod\u00e8le de composant, dont nous parlerons ci-dessous.<\/p>\n<h3>Composants<\/h3>\n<p>\nPour assurer la modularit\u00e9, toutes les fonctionnalit\u00e9s sont divis\u00e9es en composants, qui sont des biblioth\u00e8ques dynamiques (*.dll sous Windows, *.so sous Linux). Il y a plus de cent cinquante composants, en voici quelques descriptions :<\/p>\n<p>backend<br \/>\nContient le 'moteur' des m\u00e9tadonn\u00e9es de la plateforme<\/p>\n<p>accnt<br \/>\nObjets que les d\u00e9veloppeurs d'applications utilisent pour construire la comptabilit\u00e9 (plans de comptes et registres comptables)<\/p>\n<p>bsl<br \/>\nMoteur d'ex\u00e9cution du langage int\u00e9gr\u00e9<\/p>\n<p>nuke<br \/>\nImpl\u00e9mentation interne d'un allocateur de m\u00e9moire<\/p>\n<p>dbeng8<br \/>\nMoteur de base de donn\u00e9es fichier. Simple machine serveur de fichiers de base de donn\u00e9es, bas\u00e9 sur ISAM, incluant \u00e9galement un processeur SQL simple<\/p>\n<p>wbase<br \/>\nContient des classes de base et des fonctions pour la mise en \u0153uvre d'interfaces utilisateur Windows \u2014 classes de fen\u00eatres, acc\u00e8s \u00e0 GDI, etc.<\/p>\n<p>\nLa s\u00e9paration en plusieurs composants est b\u00e9n\u00e9fique de plusieurs points de vue :<\/p>\n<ul>\n<li>La s\u00e9paration favorise une meilleure conception, notamment une meilleure isolation du code<\/li>\n<li>\u00c0 partir de l'ensemble des composants, il est possible de rassembler diff\u00e9rentes options de livraison :\n<ul>\n<li>Par exemple, l'installation d'un client l\u00e9ger contiendra wbase, mais ne comprendra pas backend<\/li>\n<li>et sur le serveur wbase, \u00e0 l'inverse, ne sera pas pr\u00e9sent<\/li>\n<li>les deux options contiendront bien s\u00fbr nuke et bsl<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nTous les composants n\u00e9cessaires pour cette option de lancement sont charg\u00e9s au d\u00e9marrage du programme. Cela est notamment n\u00e9cessaire pour l'enregistrement des classes SCOM, dont nous parlerons plus bas.<\/p>\n<h3>SCOM<\/h3>\n<p>\nPour la d\u00e9composition \u00e0 un niveau inf\u00e9rieur, nous utilisons le syst\u00e8me SCOM - similaire, par son id\u00e9ologie, \u00e0 la biblioth\u00e8que ATL. Pour ceux qui n'ont pas travaill\u00e9 avec ATL, voici un aper\u00e7u des principales fonctionnalit\u00e9s et caract\u00e9ristiques. <br \/>\nPour une classe SCOM sp\u00e9cialement con\u00e7ue :<\/p>\n<ul>\n<li>Fournit des m\u00e9thodes de fabrique permettant de cr\u00e9er une classe \u00e0 partir d'un autre composant en ne connaissant que son nom (sans r\u00e9v\u00e9ler l'impl\u00e9mentation)<\/li>\n<li>Fournit une infrastructure de pointeurs intelligents avec comptage de r\u00e9f\u00e9rences. Il n'est pas n\u00e9cessaire de suivre manuellement la dur\u00e9e de vie de la classe SCOM<\/li>\n<li>Permet de savoir si un objet impl\u00e9mente une interface sp\u00e9cifique et de convertir automatiquement le pointeur sur l'objet en pointeur sur l'interface<\/li>\n<li>Cr\u00e9er un objet de service, toujours accessible via la m\u00e9thode get_service, etc.<\/li>\n<\/ul>\n<p>\nPar exemple, on peut d\u00e9crire dans le composant json.dll une classe pour lire du JSON (par exemple, JSONStreamReader).<br \/>\nLes classes, les instances peuvent \u00eatre cr\u00e9\u00e9es \u00e0 partir d'autres composants, il faut les enregistrer dans la machine SCOM :<\/p>\n<pre><code class=\"cpp\">SCOM_CLASS_ENTRY(JSONStreamReader)\n<\/code><\/pre>\n<p>\nCe macro d\u00e9crira une classe statique de registre sp\u00e9ciale, dont le constructeur sera appel\u00e9 lors du chargement du composant en m\u00e9moire.<br \/>\nApr\u00e8s cela, on peut cr\u00e9er son instance dans un autre composant :<\/p>\n<pre><code class=\"cpp\">IJSONStreamReaderPtr jsonReader = create_instance(SCOM_CLSIDOF(JSONStreamReader));\n<\/code><\/pre>\n<p>\nPour le soutien des services, SCOM propose une infrastructure suppl\u00e9mentaire, assez complexe. Le concept central est le processus SCOM, qui sert de conteneur pour les services en cours d'ex\u00e9cution (c'est-\u00e0-dire qui joue le r\u00f4le de Service Locator), et contient \u00e9galement une liaison avec les ressources localisables. Le processus SCOM est li\u00e9 au thread du syst\u00e8me d'exploitation. Gr\u00e2ce \u00e0 cela, \u00e0 l'int\u00e9rieur de l'application, on peut obtenir des services comme ceci :<\/p>\n<pre><code class=\"cpp\">SCOM_Process* process = core::current_process();\nif (process)\n         return get_service(process);\n<\/code><\/pre>\n<p>\nDe plus, en basculant les processus logiques (SCOM) li\u00e9s \u00e0 un flux, on peut obtenir des applications pratiquement ind\u00e9pendantes du point de vue de l'espace d'information, s'ex\u00e9cutant dans le cadre d'un m\u00eame flux. C'est ainsi que notre client l\u00e9ger fonctionne, op\u00e9rant avec une base de donn\u00e9es fichier \u2014 \u00e0 l'int\u00e9rieur d'un m\u00eame processus OS se trouvent deux processus SCOM, l'un li\u00e9 au client et l'autre au serveur. Cette approche permet d'unifier l'\u00e9criture de code qui fonctionnera aussi bien sur une base de donn\u00e9es locale que dans une version \u00ab r\u00e9elle \u00bb client-serveur. Le prix de cette uniformit\u00e9 est des frais g\u00e9n\u00e9raux, mais la pratique montre qu'ils en valent la peine.<\/p>\n<p>Sur la base du mod\u00e8le de composants SCOM, la logique m\u00e9tier et la partie interface de 1C: Enterprise sont mises en \u0153uvre.<\/p>\n<h3>Interface utilisateur<\/h3>\n<p>\n\u00c0 propos des interfaces. Nous n'utilisons pas les contr\u00f4les standard de Windows, nos \u00e9l\u00e9ments de contr\u00f4le sont r\u00e9alis\u00e9s directement sur l'API Windows. Pour la version Linux, une couche a \u00e9t\u00e9 cr\u00e9\u00e9e fonctionnant via la biblioth\u00e8que wxWidgets.<br \/>\nLa biblioth\u00e8que d'\u00e9l\u00e9ments de contr\u00f4le est ind\u00e9pendante des autres parties de \u00ab 1C: Enterprise \u00bb et est utilis\u00e9e par nous \u00e9galement dans plusieurs petites utilitaires internes.<\/p>\n<p>Au fil des ann\u00e9es, l'apparence des contr\u00f4les a chang\u00e9 dans 1C: Enterprise, mais un changement s\u00e9rieux de principes n'est survenu qu'une fois, en 2009, avec la sortie de la version 8.2 et l'apparition de \u00ab formulaires g\u00e9r\u00e9s \u00bb. En plus de la modification de l'apparence, le principe de mise en page des formulaires a fondamentalement chang\u00e9 \u2014 le positionnement pixel par pixel des \u00e9l\u00e9ments a \u00e9t\u00e9 remplac\u00e9 par une mise en page en flux des \u00e9l\u00e9ments. De plus, dans le nouveau mod\u00e8le, les \u00e9l\u00e9ments de contr\u00f4le ne travaillent pas directement avec les objets de domaine, mais avec des DTO sp\u00e9ciaux (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DTO\">Data Transfer Objects<\/a><\/noindex>).<br \/>\nCes changements ont permis de cr\u00e9er un client web \u00ab 1C: Enterprise \u00bb, r\u00e9pliquant la logique des contr\u00f4les en C++ sur JavaScript. Nous nous effor\u00e7ons de maintenir une \u00e9quivalence fonctionnelle entre les clients l\u00e9ger et web. Dans les cas o\u00f9 cela n'est pas possible, par exemple en raison des limitations de l'API JavaScript disponible (par exemple, les capacit\u00e9s de travail avec des fichiers \u00e9tant tr\u00e8s limit\u00e9es), nous mettons souvent en \u0153uvre la fonctionnalit\u00e9 n\u00e9cessaire \u00e0 l'aide des extensions de navigateur, \u00e9crites en C++. Actuellement, nous supportons Internet Explorer et Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows et Linux) et Safari (MacOS).<\/p>\n<p>De plus, la technologie des formulaires g\u00e9r\u00e9s est utilis\u00e9e pour cr\u00e9er l'interface des applications mobiles sur la plateforme 1C. Sur les appareils mobiles, le rendu des contr\u00f4les est r\u00e9alis\u00e9 en utilisant des technologies \u00ab natives \u00bb \u00e0 la plateforme, mais pour la logique de disposition des formulaires et la r\u00e9activit\u00e9 de l'interface, le m\u00eame code est utilis\u00e9 que sur la \u00ab grande \u00bb plateforme \u00ab 1C:Entreprise \u00bb.<\/p>\n<p><img decoding=\"async\" alt=\"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu&#039;y a-t-il sous le capot ?\" src=\"\/wp-content\/uploads\/2019\/04\/a4a87ca99cef465e82429739a8845300.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interface 1C sur OS Linux<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu&#039;y a-t-il sous le capot ?\" src=\"\/wp-content\/uploads\/2019\/04\/23f48ade4e28242104bfd4e9099800e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interface 1C sur appareil mobile<\/i><\/p>\n<p><b class=\"spoiler_title\">Interface 1C sur d'autres plateformes<\/b> <img decoding=\"async\" alt=\"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu&#039;y a-t-il sous le capot ?\" src=\"\/wp-content\/uploads\/2019\/04\/d04d2431d8c5240d44acce675d837018.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Interface 1C sur OS Windows<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Plateforme \u00ab 1C: Entreprise \u00bb \u2014 qu&#039;y a-t-il sous le capot ?\" src=\"\/wp-content\/uploads\/2019\/04\/a443f6e2d1cb95e256e0dcff4fe139d2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Interface 1C \u2014 client web<\/i><\/p>\n<p><\/p>\n<h3>Open source<\/h3>\n<p>\nBien que nous n'utilisions pas les biblioth\u00e8ques standard pour les d\u00e9veloppeurs C++ sous Windows (MFC, contr\u00f4les WinAPI), tous les composants ne sont pas de notre propre cr\u00e9ation. La biblioth\u00e8que <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wxwidgets.org\/\">wxWidgets<\/a><\/noindex>, et nous utilisons \u00e9galement :<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> pour travailler avec HTTP et FTP. <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> pour travailler avec la cryptographie et \u00e9tablir des connexions TLS<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.xmlsoft.org\/\">libxml2 et libxslt<\/a><\/noindex> pour analyser XML<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> pour travailler avec les protocoles de messagerie (POP3, SMTP, IMAP)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.codesink.org\/mimetic_mime_library.html\">mimetic<\/a><\/noindex> pour analyser les messages \u00e9lectroniques<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlite.org\/\">sqllite<\/a><\/noindex> pour stocker les journaux d'activit\u00e9 des utilisateurs<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/site.icu-project.org\/\">ICU<\/a><\/noindex> pour l'internationalisation<\/li>\n<\/ul>\n<p>\nLa liste peut encore continuer.<br \/>\nDe plus, nous utilisons des versions fortement modifi\u00e9es de <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googletest\/\">Google Test<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googlemock\/\">Google Mock<\/a><\/noindex> lors du d\u00e9veloppement de tests unitaires.<br \/>\nLes biblioth\u00e8ques ont n\u00e9cessit\u00e9 une adaptation pour \u00eatre compatibles avec le mod\u00e8le SCOM d'organisation des composants.<br \/>\nLa popularit\u00e9 de 1C fait de la plateforme un excellent banc d'essai pour les biblioth\u00e8ques utilis\u00e9es. La diversit\u00e9 des utilisateurs et des sc\u00e9narios d\u00e9tecte rapidement les erreurs m\u00eame dans les parties de code les plus rarement utilis\u00e9es. Nous les corrigeons en interne et essayons de les renvoyer aux auteurs des biblioth\u00e8ques. L'exp\u00e9rience d'interaction varie beaucoup.<br \/>\nD\u00e9veloppeurs <noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> r\u00e9pondent rapidement aux demandes de tirage, mais nous n'avons pas r\u00e9ussi \u00e0 renvoyer un correctif, par exemple, dans <noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> .<\/p>\n<h3>Conclusion<\/h3>\n<p>\nDans cet article, nous avons abord\u00e9 quelques aspects principaux du d\u00e9veloppement de la plateforme \u00ab 1C: Entreprise \u00bb. Dans le cadre limit\u00e9 de l'article, nous avons touch\u00e9 uniquement \u00e0 certains aspects int\u00e9ressants \u00e0 notre avis. <br \/>\nUne description g\u00e9n\u00e9rale des diff\u00e9rents m\u00e9canismes de la plateforme peut \u00eatre consult\u00e9e <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">ici<\/a><\/noindex>.<br \/>\nQuels sujets vous int\u00e9resseraient dans les prochains articles ?<\/p>\n<p>Comment la plateforme mobile 1C est-elle r\u00e9alis\u00e9e ?<br \/>\nDescription de l'architecture interne du client web ? <br \/>\nOu peut-\u00eatre que le processus de s\u00e9lection des fonctionnalit\u00e9s pour les nouvelles versions, le d\u00e9veloppement et le test vous int\u00e9resse ?<\/p>\n<p>Faites-le nous savoir dans les commentaires !<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/1c\/blog\/269611\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421:\u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435 8\u00bb \u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421:\u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435 8\u00bb \u2014 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 (\u0431\u043e\u043b\u0435\u0435 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430) \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 C++ (\u043a\u043b\u0438\u0435\u043d\u0442, \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0442.\u0434.), JavaScript (\u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442), \u0438, \u0441 \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24279,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421: \u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u00bb \u2014 \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47La plateforme \u00ab 1C: Entreprise \u00bb \u2014 que cache-t-elle sous son capot ? | ProHoster","description":"Salut, Habr !","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421: \u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u00bb \u2014 \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c? | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:15+00:00","article:modified_time":"2019-10-31T18:47:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32475","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:03:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:23","updated":"2026-01-21 11:03:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/32475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=32475"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/32475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/24279"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=32475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=32475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=32475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}