{"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\/es\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","title":{"rendered":"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma \"1C: Empresa\"?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00a1Hola, Habr! <br \/>\nEn este art\u00edculo, comenzaremos a hablar sobre c\u00f3mo est\u00e1 estructurada por dentro <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">la plataforma '1C:Enterprise 8'<\/a><\/noindex> y qu\u00e9 tecnolog\u00edas se utilizan en su desarrollo.<\/p>\n<p><img decoding=\"async\" alt=\"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma &quot;1C: Empresa&quot;?\" src=\"\/wp-content\/uploads\/2019\/04\/9375ea3be32979a7d8c72239dfd50f07.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00bfPor qu\u00e9 creemos que esto es interesante? En primer lugar, porque la plataforma '1C:Enterprise 8' es una gran aplicaci\u00f3n (m\u00e1s de 10 millones de l\u00edneas de c\u00f3digo) en C++ (cliente, servidor, etc.), JavaScript (cliente web) y, desde hace poco, tambi\u00e9n <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Java<\/a><\/noindex>. Los grandes proyectos son interesantes precisamente por su escala, ya que los problemas que pasan desapercibidos en una peque\u00f1a base de c\u00f3digo surgen con fuerza en tales proyectos. En segundo lugar, '1C:Enterprise' es un producto empaquetado y replicable, y hay muy pocos art\u00edculos sobre este tipo de desarrollos en Habr. Adem\u00e1s, siempre es interesante saber c\u00f3mo se vive en otros equipos y empresas.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAs\u00ed que empecemos. En este art\u00edculo, daremos una visi\u00f3n general de algunas tecnolog\u00edas que se utilizan en la plataforma, esbozaremos el panorama, sin profundizar demasiado en la implementaci\u00f3n. Despu\u00e9s de todo, para muchos mecanismos, un relato detallado podr\u00eda requerir un art\u00edculo separado, y para algunos, \u00a1incluso un libro entero!<br \/>\nPara comenzar, es importante definir algunas cosas b\u00e1sicas: qu\u00e9 es la plataforma '1C:Enterprise' y de qu\u00e9 componentes se compone. La respuesta a esta pregunta no es tan sencilla, ya que bajo el t\u00e9rmino 'Plataforma' (por brevedad, la llamaremos as\u00ed) se entiende tanto una herramienta para el desarrollo de aplicaciones comerciales como un entorno de ejecuci\u00f3n y herramientas de administraci\u00f3n. Podemos distinguir, de manera \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0439, los siguientes componentes:<\/p>\n<ul>\n<li>cl\u00faster de servidores<\/li>\n<li>'cliente delgado' capaz de conectarse al servidor a trav\u00e9s de http y de su propio protocolo binario<\/li>\n<li>cliente para trabajar en una arquitectura de dos niveles con una base de datos ubicada en un disco duro o en una carpeta de red<\/li>\n<li>cliente web<\/li>\n<li>herramientas de administraci\u00f3n del servidor de aplicaciones<\/li>\n<li>entorno de desarrollo (conocido como Configurador)<\/li>\n<li>entorno de ejecuci\u00f3n para iOS, Android y Windows Phone (plataforma m\u00f3vil 1C)<\/li>\n<\/ul>\n<p>\nTodas estas partes, excepto el cliente web, est\u00e1n escritas en C++. Adem\u00e1s, existe un reci\u00e9n anunciado <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Configurador de nueva generaci\u00f3n<\/a><\/noindex>, escrito en Java.<\/p>\n<h3>Aplicaciones nativas<\/h3>\n<p>\nPara el desarrollo de aplicaciones nativas se utiliza C++03. En Windows, el compilador usado es Microsoft Visual C++ 12 (perfil compatible con Windows XP), mientras que en Linux y Android se utiliza gcc 4.8, y para iOS \u2014 clang 5.0. La biblioteca est\u00e1ndar es \u00fanica para todos los sistemas operativos y compiladores: STLPort. Esta soluci\u00f3n reduce la probabilidad de errores espec\u00edficos de la implementaci\u00f3n de STL. Actualmente, planeamos cambiar a la implementaci\u00f3n de STL proporcionada con CLang, ya que STLPort ha dejado de desarrollarse y no es compatible con el modo de soporte para C++11 en gcc.<br \/>\nLa base de c\u00f3digo del servidor es com\u00fan en un 99%, y la del cliente en un 95%. Adem\u00e1s, incluso la plataforma m\u00f3vil utiliza el mismo c\u00f3digo C++ que la versi\u00f3n 'grande', aunque el porcentaje de unificaci\u00f3n es un poco m\u00e1s bajo all\u00ed. <br \/>\nComo la mayor\u00eda de los usuarios de C++, no nos pretendemos aprovechar del 100% de las capacidades del lenguaje y sus bibliotecas. Por ejemplo, pr\u00e1cticamente no utilizamos Boost, y entre las capacidades del lenguaje, la conversi\u00f3n de tipos din\u00e1micos. Sin embargo, aplicamos activamente:<\/p>\n<ul>\n<li>STL (en particular, cadenas, contenedores y algoritmos)<\/li>\n<li>herencia m\u00faltiple, incluyendo la herencia m\u00faltiple de implementaci\u00f3n<\/li>\n<li>plantillas<\/li>\n<li>excepciones<\/li>\n<li>punteros inteligentes (implementaci\u00f3n propia)<\/li>\n<\/ul>\n<p>\nMediante el uso de la herencia m\u00faltiple de interfaces (clases completamente abstractas), se hace posible un modelo de componentes, que se discutir\u00e1 m\u00e1s adelante.<\/p>\n<h3>Componentes<\/h3>\n<p>\nPara garantizar la modularidad, todas las funcionalidades se dividen en componentes, que consisten en bibliotecas din\u00e1micas (*.dll para Windows, *.so para Linux). En total, hay m\u00e1s de ciento cincuenta componentes, a continuaci\u00f3n se presentan descripciones de algunos de ellos:<\/p>\n<p>backend<br \/>\nContiene el 'motor' de metadatos de la plataforma<\/p>\n<p>accnt<br \/>\nObjetos que los desarrolladores de aplicaciones utilizan para construir la contabilidad (planes de cuentas y registros contables)<\/p>\n<p>bsl<br \/>\nMotor de ejecuci\u00f3n de un lenguaje embebido<\/p>\n<p>nuke<br \/>\nImplementaci\u00f3n propia de un asignador de memoria<\/p>\n<p>dbeng8<br \/>\nMotor de base de datos de archivos. M\u00e1quina de base de datos sencilla orientada a archivos, basada en ISAM, que incluye tambi\u00e9n un simple procesador SQL<\/p>\n<p>wbase<br \/>\nContiene clases y funciones b\u00e1sicas para implementar la interfaz de usuario de Windows: clases de ventanas, acceso a GDI, etc.<\/p>\n<p>\nLa divisi\u00f3n en m\u00faltiples componentes es \u00fatil desde varios puntos de vista:<\/p>\n<ul>\n<li>La divisi\u00f3n favorece un mejor dise\u00f1o, en particular una mejor aislamiento del c\u00f3digo<\/li>\n<li>Con el conjunto de componentes se pueden armar diferentes opciones de entrega de manera flexible:\n<ul>\n<li>Por ejemplo, la instalaci\u00f3n de un cliente ligero contendr\u00e1 wbase, pero no tendr\u00e1 backend<\/li>\n<li>y en el servidor wbase, por el contrario, no estar\u00e1 presente<\/li>\n<li>ambas opciones, por supuesto, contendr\u00e1n nuke y bsl<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nTodos los componentes necesarios para esta opci\u00f3n de inicio se cargan al iniciar el programa. Esto, en particular, es necesario para registrar las clases SCOM, de las cuales se hablar\u00e1 m\u00e1s adelante.<\/p>\n<h3>SCOM<\/h3>\n<p>\nPara la descomposici\u00f3n a un nivel m\u00e1s bajo se utiliza el sistema SCOM, que es ideol\u00f3gicamente similar a la biblioteca ATL. Para aquellos que no han trabajado con ATL, se enumera brevemente las principales capacidades y caracter\u00edsticas. <br \/>\nPara la clase SCOM especialmente dise\u00f1ada:<\/p>\n<ul>\n<li>Proporciona m\u00e9todos de f\u00e1brica que permiten crear una clase a partir de otro componente conociendo solo su nombre (sin revelar la implementaci\u00f3n)<\/li>\n<li>Proporciona infraestructura de punteros inteligentes con conteo de referencias. No es necesario monitorear manualmente la vida \u00fatil de la clase SCOM<\/li>\n<li>Permite conocer si un objeto implementa una interfaz espec\u00edfica y autom\u00e1ticamente convierte un puntero de objeto a un puntero de interfaz<\/li>\n<li>Crear un objeto-servicio, siempre accesible a trav\u00e9s del m\u00e9todo get_service, etc.<\/li>\n<\/ul>\n<p>\nPor ejemplo, se puede describir en el componente json.dll una clase para leer JSON (por ejemplo, JSONStreamReader).<br \/>\nLas clases, instancias se pueden crear a partir de otros componentes que deben registrarse en la m\u00e1quina SCOM:<\/p>\n<pre><code class=\"cpp\">SCOM_CLASS_ENTRY(JSONStreamReader)\n<\/code><\/pre>\n<p>\nEste macro describir\u00e1 una clase registradora est\u00e1tica especial, cuyo constructor ser\u00e1 llamado al cargar el componente en memoria.<br \/>\nDespu\u00e9s de esto, se puede crear su instancia en otro componente:<\/p>\n<pre><code class=\"cpp\">IJSONStreamReaderPtr jsonReader = create_instance&lt;IJSONStreamReader&gt;(SCOM_CLSIDOF(JSONStreamReader));\n<\/code><\/pre>\n<p>\nPara el soporte de servicios, SCOM ofrece una infraestructura adicional, bastante compleja. El concepto central es el proceso SCOM, que act\u00faa como contenedor para los servicios en ejecuci\u00f3n (es decir, cumple la funci\u00f3n de Service Locator) y tambi\u00e9n contiene enlaces a recursos localizables. El proceso SCOM se vincula al hilo del sistema operativo. Gracias a esto, dentro de la aplicaci\u00f3n se pueden obtener servicios de esta manera:<\/p>\n<pre><code class=\"cpp\">SCOM_Process* process = core::current_process();\nif (process)\n         return get_service&lt;IMyService&gt;(process);\n<\/code><\/pre>\n<p>\nAdem\u00e1s, al alternar los procesos l\u00f3gicos (SCOM) vinculados al flujo, se pueden obtener aplicaciones pr\u00e1cticamente independientes en t\u00e9rminos de espacio de informaci\u00f3n, que se ejecutan dentro de un solo flujo. As\u00ed est\u00e1 dise\u00f1ado nuestro cliente ligero, que trabaja con una base de archivos: dentro de un proceso del sistema operativo hay dos procesos SCOM, uno asociado al cliente y otro al servidor. Este enfoque permite unificar la escritura del c\u00f3digo, que funcionar\u00e1 tanto en la base de archivos local como en la variante 'real' cliente-servidor. El precio de esta uniformidad son los gastos generales, pero la pr\u00e1ctica demuestra que valen la pena.<\/p>\n<p>Sobre la base del modelo de componentes SCOM se implementan tanto la l\u00f3gica de negocio como la parte de interfaz de 1C: Enterprise.<\/p>\n<h3>Interfaz de usuario<\/h3>\n<p>\nHablando de interfaces, no usamos los controles est\u00e1ndar de Windows, nuestros elementos de control est\u00e1n implementados directamente en la API de Windows. Para la versi\u00f3n de Linux, se ha creado una capa que funciona a trav\u00e9s de la biblioteca wxWidgets.<br \/>\nLa biblioteca de elementos de control no depende de otras partes de '1C: Enterprise' y se utiliza tambi\u00e9n en otras peque\u00f1as utilidades internas.<\/p>\n<p>A lo largo de los a\u00f1os de desarrollo de 1C: Enterprise, la apariencia de los controles ha cambiado, pero un cambio serio en los principios ocurri\u00f3 solo una vez, en 2009, con el lanzamiento de la versi\u00f3n 8.2 y la aparici\u00f3n de las 'formas administradas'. Adem\u00e1s del cambio en la apariencia, el principio de disposici\u00f3n de la forma ha cambiado fundamentalmente: se abandon\u00f3 el posicionamiento pixel por pixel en favor de la disposici\u00f3n fluida de los elementos. Adem\u00e1s, en el nuevo modelo, los elementos de control no interact\u00faan directamente con los objetos de dominio, sino con DTO especiales (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DTO\">Data Transfer Objects<\/a><\/noindex>).<br \/>\nEstos cambios han permitido crear un cliente web '1C: Enterprise' que replica la l\u00f3gica de C++ de los controles en JavaScript. Nos esforzamos por mantener la equivalencia funcional entre los clientes ligero y web. En los casos en que esto no es posible, por ejemplo, debido a las limitaciones disponibles desde la API de JavaScript (por ejemplo, las capacidades para trabajar con archivos son muy limitadas), a menudo implementamos la funcionalidad necesaria mediante extensiones de navegador escritas en C++. Actualmente, soportamos Internet Explorer y Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows y Linux) y Safari (MacOS).<\/p>\n<p>Adem\u00e1s, la tecnolog\u00eda de formularios gestionados se utiliza para crear la interfaz de aplicaciones m\u00f3viles en la plataforma 1C. En dispositivos m\u00f3viles, el renderizado de controles se realiza utilizando tecnolog\u00edas 'nativas' para el sistema operativo, pero ya para la l\u00f3gica de dise\u00f1o del formulario y la respuesta de la interfaz se utiliza el mismo c\u00f3digo que en la 'gran' plataforma '1C:Enterprise'.<\/p>\n<p><img decoding=\"async\" alt=\"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma &quot;1C: Empresa&quot;?\" src=\"\/wp-content\/uploads\/2019\/04\/a4a87ca99cef465e82429739a8845300.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interfaz 1C en el sistema operativo Linux<\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma &quot;1C: Empresa&quot;?\" src=\"\/wp-content\/uploads\/2019\/04\/23f48ade4e28242104bfd4e9099800e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interfaz 1C en dispositivo m\u00f3vil<\/i><\/p>\n<p><b class=\"spoiler_title\">Interfaz 1C en otras plataformas<\/b> <img decoding=\"async\" alt=\"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma &quot;1C: Empresa&quot;?\" src=\"\/wp-content\/uploads\/2019\/04\/d04d2431d8c5240d44acce675d837018.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Interfaz 1C en el sistema operativo Windows<\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00bfQu\u00e9 hay detr\u00e1s de la plataforma &quot;1C: Empresa&quot;?\" src=\"\/wp-content\/uploads\/2019\/04\/a443f6e2d1cb95e256e0dcff4fe139d2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Interfaz 1C \u2014 cliente web<\/i><\/p>\n<p><\/p>\n<h3>C\u00f3digo abierto<\/h3>\n<p>\nAunque no usamos las bibliotecas est\u00e1ndar para desarrolladores de C++ en Windows (MFC, controles de WinAPI), no todos los componentes los escribimos nosotros mismos. Ya se mencion\u00f3 la biblioteca <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wxwidgets.org\/\">wxWidgets<\/a><\/noindex>, adem\u00e1s utilizamos:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> para trabajar con HTTP y FTP. <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> para trabajar con criptograf\u00eda e instalaciones de conexiones TLS<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.xmlsoft.org\/\">libxml2 y libxslt<\/a><\/noindex> para analizar XML<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> para trabajar con protocolos de correo (POP3, SMTP, IMAP)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.codesink.org\/mimetic_mime_library.html\">mimetic<\/a><\/noindex> para analizar mensajes de correo electr\u00f3nico<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlite.org\/\">sqllite<\/a><\/noindex> para almacenar registros de actividad de los usuarios<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/site.icu-project.org\/\">ICU<\/a><\/noindex> para la internacionalizaci\u00f3n<\/li>\n<\/ul>\n<p>\nLa lista a\u00fan se puede continuar.<br \/>\nAdem\u00e1s, utilizamos versiones altamente modificadas de <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googletest\/\">Google Test<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googlemock\/\">Google Mock<\/a><\/noindex> en el desarrollo de pruebas unitarias.<br \/>\nLas bibliotecas requirieron adaptaci\u00f3n para ser compatibles con el modelo SCOM de organizaci\u00f3n de componentes.<br \/>\nLa prevalencia de 1C hace que la plataforma sea una excelente prueba de resistencia para las bibliotecas que se utilizan en ella. La diversidad de usuarios y escenarios descubre r\u00e1pidamente errores incluso en las secciones de c\u00f3digo menos utilizadas. Los corregimos internamente y buscamos devolverlos a los autores de las bibliotecas. La experiencia de interacci\u00f3n resulta ser muy diversa.<br \/>\nDesarrolladores <noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> r\u00e1pidamente responden a las pull-requests, pero el parche, por ejemplo, en <noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> no hemos podido devolverlo.<\/p>\n<h3>Conclusi\u00f3n<\/h3>\n<p>\nEn este art\u00edculo hemos tocado algunos aspectos b\u00e1sicos del desarrollo de la plataforma '1C: Enterprise'. En el limitado alcance del art\u00edculo, hemos abordado solo algunos aspectos interesantes, a nuestro juicio. <br \/>\nUna descripci\u00f3n general de los diversos mecanismos de la plataforma se puede ver <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">aqu\u00ed<\/a><\/noindex>.<br \/>\n\u00bfQu\u00e9 temas le gustar\u00eda ver en los pr\u00f3ximos art\u00edculos?<\/p>\n<p>\u00bfC\u00f3mo se implementa la plataforma m\u00f3vil 1C?<br \/>\n\u00bfDescripci\u00f3n del funcionamiento interno del cliente web? <br \/>\n\u00bfO quiz\u00e1s le interesa el proceso de selecci\u00f3n de funciones para nuevas versiones, desarrollo y pruebas?<\/p>\n<p>\u00a1Escr\u00edbanos en los comentarios!<br \/>\n<br \/>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47Plataforma '1C: Enterprise' \u2014 \u00bfqu\u00e9 hay bajo el cap\u00f3? | ProHoster","description":"\u00a1Hola, Habr!","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/32475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=32475"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/32475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/24279"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=32475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=32475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=32475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}