На нашем сайте большинство статей предназначено для тех, кто пользуется продуктами 1С и хорошо с ними знаком. В этой статье мы доступным языком постараемся рассказать о 1С людям, незнакомым с этой платформой.
Какие продукты производит фирма 1С?
Наверняка, большинство людей хотя бы раз слышали о продуктах 1С, например, 1С: Бухгалтерия. Да, 1С: Бухгалтерия – одно из самых востребованных решений компании, и создана она с помощью средств разработки системы «1С: Предприятие».
Самым современным и прогрессивным из всех бизнес-приложений является ERP. Рассмотрим подробнее это приложение и определим место, которое занимают технологии компании «1С» среди аналогов.
Виды ERP
Почему среди прочих бизнес-приложений стоит отдать предпочтение ERP? Во-первых, потому что ERP легко адаптируется к любой сфере бизнеса, во-вторых, цена его более чем приемлемая.
При разработке бизнес-приложения невозможно учесть специфические особенности каждого вида бизнеса или производства. Поэтому разработчики используют такой прием, как параметризация. Для того чтобы внести какие-либо изменения в систему, достаточно воспользоваться настройкой параметров. Такими были первые ERP системы.
Но некоторые бизнес-решения нельзя изменить только с помощью настройки параметров. Нужно вносить изменения в исходный код. В этом случае перед разработчиками встает выбор: менять код самим либо предоставить эту возможность пользователям, которые настроят код соответственно своим потребностям. Как в первом, так и во втором случае компании нужно будет выпускать обновления.
Еще один важный момент – язык, на котором пишутся ERP-системы. Распространенные языки программирования типа С++ не совсем подходят, так как ERP-системы – это бизнес-логика. А ее лучше программировать на языке, который обеспечит разработчику максимальный комфорт процесса разработки, позволит не отвлекаться на такие детали, как особенности работы с БД или системой окон пользовательского интерфейса. Кроме этого, нужно еще создать среду обработки и компилятор для этого языка.
В итоге получаем:
- закрытый или открытый код;
- обычный или проприетарный язык программирования.
На платформе «1С: Предприятие» создаются бизнес-приложения с открытым исходным кодом, написанные на проприетарном языке (неофициально его называют язык 1С). Практически все продукты ERP имеют открытый код. Причина кроется в том, что возможность изменять исходный код позволяет клиентам комфортно использовать бизнес-приложения. Приложения с закрытым кодом менее гибкие, поэтому в них используется такой прием, как навешивание кастомного кода на предопределенные события. Также можно написать обработчики на одном из распространенных языков программирования.
Как устроены ERP
ERP с открытым кодом состоят из исходного кода и платформы – среды исполнения этого кода. Цель платформы (написана она, кстати, чаще всего на низкоуровневом языке) – обеспечить разработчику удобство при написании бизнес-логики, т.е. отстраниться от низкоуровневых деталей. Средства разработки и средства администрирования системы зачастую тоже относят к платформе. Платформа также используется и в системе, написанной «обычным» языком.
Платформа служит для эмуляции базы данных, среды исполнения бизнес-логики и графической подсистемы, используемой для отображения клиентского приложения.
ERP, которое было написано на проприетарном языке, при необходимости можно запускать под любой операционной системой, а данные будут храниться в любой СУБД. Это возможно, если модифицировать платформу. Но стоит учитывать, что функционирование дополнительных ОС и СУБД требует затрат, да и поддержка СУБД рано или поздно может прекратиться.
Что предлагает платформа 1С для поддержки ОС и СУБД?
- в качестве ОС – Windows или Linux. Надежный кластер серверов приложений в качестве среды исполнения;
- собственная СУБД, PostgreSQL, MS SQL, IBM DB2, Oracle;
- тонкий клиент на Windows и Linux (способен работать либо через локальную сеть, либо через веб-серверы). Веб-клиент работает через Microsoft IIS или Apache (на серверной стороне) и через браузеры Firefox, Internet Explorer, Safari, Chrome на стороне клиента. Толстый клиент не является приоритетным направлением компании «1С», его развитие не планируется, однако с рядом ограничений можно использовать Windows и Linux. Мобильный офлайн-клиент – iOS и Android.
Из прикладного кода можно получить как тонкого клиента (Windows/Linux), так и веб-клиента, при условии использования технологии управляемого приложения.
Какой язык программирования используется при создании приложений ERP?
Чтобы деятельность программиста была эффективной и результативной, язык программирования должен быть максимально приближен к области бизнеса, к примеру, DSL, Domain Specific Language.
Разберем на примере. Для того чтобы добавить в системе, написанной на обычном языке программирования, возможность введения и обработки нового типа документа, нужно:
- организовать в базе данных таблицы место, где будет храниться информация о документе;
- написать класс, который будет осуществлять бизнес-логику с документом, а также его чтение и запись;
- разработать пользовательский интерфейс, посредством которого будет редактироваться новый тип документа.
Сделать все это можно гораздо проще и быстрее, используя C# в Visual Studio.
В некоторых ERP-системах, написанных на проприетарных языках, тоже придется делать все три шага, но в большинстве случае не придется выходить за пределы одной среды разработки.
Кроме этих трех шагов еще нужно разработать интерфейс для работы с документами, затем открыть доступ к нему в отчетах, научиться регистрировать внесенные пользователем изменения и т.д.
В 1С достаточно описать поля нового типа документа, а также создать код для реализации бизнес-логики документа. Все остальные действия выполнит платформа:
- создание структуры в СУБД, где будет храниться информация;
- создание формы для редактирования;
- открытый доступ к документу в отчетах;
- открытый доступ для раздачи прав на чтение/запись;
- доступ к полям документа полнотекстового поиска по всей системе;
- регистрация всех изменений, внесенных в документ, в журнале регистрации;
- создание методов чтения и сохранения документов в (из) XML и JSON;
- доступ к документу по интерфейсу REST.
Перечисленные выше действия, которые автоматически выполняет платформа, – далеко не все ее возможности.
Особенность разработки в 1С заключается еще и в 20 встроенных типах документов. Поэтому любые разработанные объекты должны принадлежать к одному из этих типов.
Разрабатываются прикладные продукты 1С в Конфигураторе. А с помощью инструмента «1C:Enterprise Development Tools» вести разработку можно в среде Eclipse.
Язык программирования 1С схож с JavaScript. Язык программирования не объектно ориентирован. Но, напомним, каждый объект в 1С принадлежит к определенному типу, поэтому так или иначе в каждый созданный программистом объект (наследник) будет вложен предопределенный функционал. Наследование одноуровневое, то есть наследовать от прикладных объектов не получится.
Такой подход дает возможность разработчику выбрать тип объекта из ограниченного платформой списка. А взамен разработчик может пользоваться широкими функциональными возможностями платформы, что позволяет выполнить разработку в разы быстрее. Главное преимущество подхода – простота и скорость создания учетных систем. Из недостатков стоит отметить крайнюю сложность реализации того, для чего нужны такие типы объектов, которых нет на платформе.
Язык программирования 1С обладает полнотой по Тьюрингу и поддерживает как английский, так и русский языки. У 1С есть язык запросов для чтения данных из СУБД.
Как работают продукты 1С
Проект в 1С называют конфигурацией. Конфигурация – это полноценная законченная программа, которая содержит все необходимые объекты и код, обеспечивающие правильное функционирование бизнес-приложения. Особенность 1С заключается в том, что программа и данные хранятся в одном месте – в базе данных. Для обозначения базы данных с конфигурацией и данными употребляют термин инфобаза.
К клиенту конфигурация поставляется файлом, который импортируется в инфобазу клиента. Все, решение готово к работе!
Куда устанавливаются софты?
- На сервер СУБД, способный поддерживать 1С.
- На серверы отказаустойчивого масштабируемого кластера устанавливается набор библиотек и исполняемых файлов, т.е. непосредственно «Сервер 1С». В один кластер могут быть размещены серверы под Windows и Linux.
- Тонкий клиент (1cv8c.exe/1cv8) на ОС Windows или Linux). Функции тонкого клиента: исполнение ограниченного ряда функциональности, что предоставляет встроенный язык. Работа с БД ведется на стороне клиента. Тонкий клиент лишь получает данные, которые подготовлены для отображения.
- Толстый клиент (1Cv8.exe для Windows, 1cv8 для Linux) способен выполнить практически любую задачу, предоставленную встроенным языком. Сервер в данном случае требуется лишь для записи или чтения данных из базы. Но у толстого клиента есть недостатки: потребление огромного количества ресурсов и поддержка связи с кластером серверов исключительно по локальной сети. Толстый клиент признан устаревшим.
- Веб-сервер – IIS или Apache.
- Веб-клиент – Internet Explorer, Chrome, Firefox, Safari.
- Мобильный клиент – iOS и Android.
Компоненты 1С связываются по протоколу или http.
Особенности 1С
Почему технология 1С: Предприятие пользуется популярностью у разработчиков? Ответ прост: с ее помощью легко и создавать новые продукты, и кастомизировать их.
Разработка
Удобная и продуманная система со встроенными объектами позволяет легко разрабатывать новые бизнес-приложения. Ведь разработчик пропускает этап написания базового UI или слоя доступа к данным, а сразу приступает к решению бизнес-задач. Кстати, для того чтобы выполнять бизнес-задачи было быстрее, компания «1С» на встроенных объектах реализовала поддержку иерархических справочников, а также механизмы, способные выполнять сложные расчеты, например, заработную плату) и т.д.
Паттерны из мира учетных систем (встроенные объекты, реализованные платформой) разработчик наполняет бизнес-логикой в прикладном решении.
Разработка конфигурация в 1С базируется на метаданных и построении на основе модели. Метаданные представляют собой декларативное описание бизнес-приложения. Из метаданных формируется иерархия объектов, из которой в свою очередь образуются части прикладной системы. Платформа во время работы бизнес-приложения интерпретирует метаданные и гарантирует его правильное функционирование.
С помощью метаданных описываются структуры, связи, особенности поведения объектов и т.д. Метаданные являются своеобразным хранилищем для сведений о том, что и зачем хранится в базе данных и какую функцию эти объекты выполняют. Язык программирования проблематично использовать при решении задач, построенных на алгоритмическом описании. На основании всего вышеизложенного можно вывести принцип, по которому осуществляется разработка на платформе «1С: Предприятие»: «Программируйте то, что действительно необходимо, всю остальную работу за вас выполнит платформа».
«1С: Предприятие» ориентирована на разработку прикладного решения по определенной модели. В данном контексте под моделью следует понимать идеологию построения прикладного приложения, например, типы связи между данными, принципы управления ими, способы, по которым строятся структуры данных и т.д.
Благодаря тому, что все приложения построены по одной модели, можно легко предсказать их поведение. Это, с одной стороны, стесняет действия разработчика, с другой же, оберегает от ошибок, позволяя быстро построить приложение, с которым в силу его унификации сможет работать любой другой специалист-разработчик.
Кроме того, единая модель позволяет быстро разобраться в особенностях построения системы, ведь разработка ведется в едином пространстве. Объекты, описанные в метаданных, определяют и тип встроенного языка программирования, и структуру базы данных, где объекты будут храниться. Все последующие действия будут выполняться по образцу.
Готовую конфигурацию, которую компания «1С» поставляет клиентам в исходных кодах, или ее объекты программист клиента может сразу использовать для модификации в соответствии с особенностями бизнеса или производства.
Поддержка и кастомизация конфигураций
Любое бизнес-приложение приходится менять, так как невозможно создать продукт, который отвечал всем требованиям клиента. Изменения вносятся как сотрудниками IT-отделов компании-клиента, так и поставщиком, который периодически выпускает обновления.
Установка обновлений на измененное (кастомизированное) приложение непростая задачка для программистов. Объясним почему. При обновлении приложения проходит слияние исходных кодов обновленного приложения с приложением клиента, в которое уже были внесены изменения. Поэтому нужно внимательно следить, чтобы установились все обновленные функции, не потеря при этом собственные наработки. Задача слияние осложняется еще и тем, что разработчик поставщика и специалист, вносивший доработки по желанию клиента, не могут пообщаться в случае возникновения сложностей при установке обновлений.
Не стоит слишком увлекаться кастомизацией, иначе рискуете остаться без поддержки компании-разработчика, которая имеет право отказать в обслуживании приложения.
Обновление приложение – одна из самых сложных операций для системы с открытым кодом. И от того, как проведет эту операцию компания-разработчик, зависит популярность приложения на рынке. Обновление конфигурации от компании «1С» – это не просто слияние исходных кодов, это слияние моделей, которое проходит по определенному сценарию. Специально для решения этой задачи в «1С» был разработан механизм поддержки на базе платформы «1С: Предприятие». Этот механизм дает возможность клиенту выбирать, какие объекты можно менять, а какие нет. Клиент в свою очередь посредством механизма может устанавливать правила поддержки своего приложения, например, он может отказаться от обслуживания поставщиком каких-либо объектов либо запретить их редактирование с целью страховки от случайного изменения.
Идеальным вариантом и для поставщика, и для клиента стало бы раздельное хранение доработок клиента и стандартной конфигурации. Компания «1С» предлагает два варианта, которые покрывали бы бОльшую часть сценариев кастомизации.
Во-первых, механизм внешних обработок и отчетов. Его преимущество – надстраивание дополнительной функциональности без изменения исходного кода конфигурации.
Во-вторых, расширения. Особенность расширения в том, что не нужно менять конфигурацию. Изменения происходят в расширении – так называемой пользовательской конфигурации, которая существует отдельно от типовой. Поэтому обновления поставщика будут проходить автоматически. Когда же будет работать итоговая конфигурация (типовая + расширения), задействуются объекты, добавленные в расширении.
Еще немного интересного
В компании «1С» разрабатывается масса интересных и полезных продуктов, достойных внимания. Представим несколько из них.
1cFresh – облачное решение, среда для работы с приложениями 1С в SaaS (модели сервиса). Функции1cFresh: регистрация пользователей, публикация новых приложений и многое другое. С помощью программы клиенты могут организовывать облака для приложений на основе «1С: Предприятие».
С мобильной платформой 1С легко создать мобильное приложение на ОС iOS или Android.
Система отчетности разработана в конфигураторе. Основа механизма отчетов – система компоновки данных.
Механизм обмена данными предоставляет возможность создать системы, территориально распределенные. При этом эти системы могут обмениваться данными даже в офлайн-режиме.
На рисунке представлены технологии и инструменты «1С: Предприятие»
И напоследок…
На платформе 1С создано более тысячи различных бизнес-приложений, которые способны организовать управление как небольшой фирмы, так и предприятия с тысячами сотрудников. Компания «1С» ни на минуту не останавливается на достигнутом, предлагая своим клиентам новые разработки и приложения.