Это статья для тех, кто еще не знаком с программными продуктами 1С. В нем описываются возможности технологической платформы 1С. Существует система приложений под названием 1C: Предприятие, которая включает в себя инструменты разработки бизнес-приложений и приложения, созданные с их помощью Средства разработки 1С используются для разработки некоторых приложений, а также CRM, ERP систем (десятки тысяч пользовательских развертываний) и многого другого. Довольно известны типовые конфигурации 1с, которые являются универсальными прикладными решениями. ERP-системы являются наиболее интересными и функционально оснащенными бизнес-приложениями, поэтому давайте рассмотрим их, чтобы увидеть, что технологии 1C: Предприятие предлагают по сравнению с конкурентами. Существующие типы ERP. Какова самая ценная функция любой ERP-системы (и любого бизнес-приложения)? Гибкость, то есть возможность адаптироваться к бизнес-процессам конечных пользователей с минимальными усилиями. При программировании системы ERP невозможно предусмотреть все типы бизнес-процессов. Вот когда параметризация очень помогает; путем включения параметров, которые могут быть изменены пользователем (или администратором) в системных параметрах, можно легко увеличить ее гибкость. Первые ERP-системы были связаны с параметрами, то есть они были настроены с использованием параметров. Однако одних только параметризированных систем недостаточно для учета всех бизнес-ситуаций. При изменении системных параметров недостаточно, нужно изменить исходный код. Именно тогда поставщик ERP должен решить, нужно ли самостоятельно менять код и выпускать обновления с учетом потребностей клиента или предоставлять исходный код для пользователей, чтобы они могли переписывать систему в соответствии с их потребностями. Второй вариант не освобождает поставщика от необходимости выпуска обновлений, так как система должна разрабатывать и поддерживать новые функции, чтобы быть конкурентоспособными. Еще один важный вопрос — выбор языка программирования для системы ERP. Основная часть системы ERP — это бизнес-логика, для которой обычные языки программирования (например, C ++) не всегда хорошо подходят. В идеальном случае бизнес-логика будет запрограммирована на некоторых языках высокого уровня, чтобы обеспечить максимальный комфорт для разработчиков бизнес-приложений в процессе разработки бизнес-логики. Это позволяет разработчику отказаться от деталей низкого уровня (особенности работы с базами данных, подсистемы ввода / вывода файлов и печати, подсистемы пользовательского интерфейса с вкладками и т. д.). Конечно, нужно создать компилятор / интерпретатор для языка и среды разработки. Большинство ведущих ERP-систем являются системами с открытым исходным кодом. Возможность изменять исходный код обеспечивает огромную гибкость и конкурентное преимущество. Для закрытых исходных продуктов необходимо использовать другие технологии. Некоторые системы поддерживают запись собственных обработчиков (или обработчиков на других широко распространенных языках); а другие используют лицензионную лицензию Microsoft Visual Basic для приложений и т. д. Структура ERP-систем Система ERP с открытым исходным кодом состоит из собственного исходного кода, который реализует бизнес-логику, и среды выполнения для этого бизнес-кода (так называемой платформы). Платформа обычно написана на низкоуровневом языке (C, C ++), а исходные коды платформы часто закрываются для конечных пользователей. Платформа должна позволить программисту отойти от деталей низкого уровня (особенности ОС, системы управления базами данных и т. д.) и иметь возможность сосредоточиться на чистой бизнес-логике. Инструменты разработки бизнес-приложений и инструменты системного администрирования часто считаются частью платформы, и я согласен с этим. Если бизнес-логика системы написана на «стандартном» языке программирования, такие системы также используют платформу. Там нет необходимости интерпретировать код приложения там, но по-прежнему существует потребность в функциональности платформы (нам все еще нужны обходы базы данных или унифицированный доступ к списку пользователей и их правам). В качестве среды выполнения бизнес-приложений платформу можно сравнить с виртуальной машиной. Обычно платформа должна эмулировать
- три вещи для ERP:
- время выполнения операций бизнес-логики;
- база данных;
- графическую подсистему для визуализации клиентского приложения.
Такое клиентское приложение может быть графическим приложением (с помощью встроенных средств ОС, включая инструменты для мобильных ОС) или веб-приложения. В случае веб-приложения платформа может либо реализовать свой собственный веб-сервер, либо обеспечить поддержку стандартных веб-серверов (IIS, Apache и т. Д.). В общем, можно сделать ERP, написанную с использованием проприетарного языка в любой ОС и хранить данные практически в любой системе управления базами данных. Можете сделать это, изменив платформу. Как правило, поставщики ERP ограничивают выбор одной или двумя ОС и одной или двумя системами управления базами данных. Поддержка дополнительных ОС и систем управления базами данных означает увеличение затрат на разработку и тестирование; часто новые версии продуктов ERP не поддерживают некоторые из ранее поддерживаемых систем управления базами данных или даже операционных систем. Что касается поддержки операционной системы и системы управления базами данных, платформа 1С предлагает следующее:
- Время выполнения для бизнес-логики: сбалансированный по нагрузке отказоустойчивый серверный кластер в ОС Windows или Linux
- База данных: файловая система управления базами данных (рекомендуется для разработки и небольших установок), MS SQL, Oracle, IBM
- DB2 и PostgreSQL
- Клиентские приложения:
- Тонкий клиент (только для ввода данных и рендеринга): Windows, Linux, OSX. Он может работать с сервером приложений через локальную сеть или веб-службы (в этом случае Microsoft IIS или Apache должны быть развернуты на стороне сервера)Веб-клиент: Microsoft IIS или Apache на стороне сервера, любой из Internet Explorer, Edge, Chrome, Firefox или Safari на стороне клиента Толстый клиент (с возможностью запуска некоторых бизнес-логик на клиенте): Windows, Linux, OSX. Он имеет ряд ограничений (например, он может работать только в той же локальной сети, что и сервер приложений). Он считается устаревшим, 1С не планирует его развивать в будущем Мобильный автономный клиент (поддерживается периодическая синхронизация): iOS, Android, Windows Phone / Windows8 / Windows10 Тот же экземпляр кода приложения предоставляет как тонкий клиент для Windows / Linux / OSX, так и веб-клиента.
Разработка в 1С имеет своеобразную особенность: система содержит около 20 интегрированных типов объектов, а все новые объекты, созданные разработчиком, должны принадлежать одному из этих типов. Большинство типов описывают объекты учета: регистры, документы, схемы счетов и т. д. Другие типы объектов имеют технологический характер (например, веб- и HTTP-услуги). Они позволяют программам 1С взаимодействовать с внешним миром. Конструктор 1С используется для разработки приложений. 1C: Предприятие Development Tools позволяет разрабатывать приложения 1C. В 1С разработка инструментов для развития бизнеса еще не возможна, но это хороший способ понять технологические тенденции развития компании. В частности, новая система поддерживает совместную разработку с использованием популярных систем управления версиями (Git, SVN и любых других, которые оснащены плагинами для Eclipse); Кроме того, разработчики могут создавать свои собственные плагины для IDE Eclipse для расширения возможностей среды разработки для работы с 1С. На самом деле синтаксис языка программирования 1С очень похож на JavaScript. Технически это не объектно-ориентированный язык программирования. Он не имеет наследования, но поскольку все объекты в приложениях 1С принадлежат одному из интегрированных типов объектов, это можно назвать упрощенным наследованием: интегрированные типы объектов реализуют заранее определенные функции, которые могут быть переопределены программистом в их унаследованных объектах. Это одноуровневое наследование: нельзя наследовать от прикладных объектов; аналогичный подход к наследованию используется впрограммирование на основе прототипов; JavaScript — это очень широкое внедрение этой концепции. Этот подход преднамеренно ограничивает разработчиков приложений, заставляя их выбирать требуемый тип объекта из достаточно ограниченного диапазона интегрированных типов для решения своих задач. Вместо этого разработчик получает богатую функциональность, реализованную платформой, и очень быструю разработку. Преимущества этого подхода очевидны: разработка систем учета в 1С выполняется быстро и легко. Конечно, есть и недостатки: если вам нужно что-либо реализовать, платформа не имеет интегрированных типов (например, для работы с SFTP), вам придется либо дождаться новой версии платформы, где эта функциональность будет реализован или написать собственный код реализации со «стандартным» кодом. Проект в среде 1С называется «конфигурацией». Конфигурация — это законченное автономное приложение, например приложение учета или ERP; он включает в себя все объекты и код, необходимые для нормального функционирования бизнес-приложений. 1С является своеобразным хранилищем, поскольку конфигурация хранится в той же базе данных, что и данные приложения, то есть транзакции, данные реестра и документа и т. д.; поэтому программа хранится вместе с данными. База данных, содержащая данные конфигурации и приложения в 1С, называется информационной базой (информационной базой). Конфигурация может быть загружена в файл; он обычно доставляется конечным пользователям в виде файла и импортируется в информационную базу в системе заказчика. Решение готово к работе. Конкурентные преимущества 1С: Предприятие Благодаря инновационному подходу к разработке значительно упрощается выполнение двух задач в 1С: Предприятие — создавать бизнес-решения с нуля и настраивать существующие решения для конечных пользователей.