
эксперту 1С
Пакеты 1С
1С Предприятие — платформа разработки бизнес-приложений
Сегодня о существовании фирмы 1С знают многие люди, в том числе весьма далекие от бухгалтерского учета и компьютерных технологий. Однако среди большинства даже ИТ-профессионалов эта компания представляется, прежде всего, в образе поставщика коробочных программных продуктов для решения экономических задач предприятия. Однако это не совсем верно — по мере развития своего бизнеса компания все в большей степени выступает в качестве разработчика инструментальной платформы, на базе которой партнеры и клиенты могут создавать собственные решения.
В статьях представлены продукты 1С для конечного пользователя (Бухгалтерия, Торговля и пр.). Здесь же речь пойдет именно о технологической платформе разработки приложений. При этом хотелось бы сделать акцент на следующий принципиальный момент.
В начале 90-х годов российские пользователи из числа серьезных клиентов явно отдавали предпочтение зарубежным программным разработкам, что объяснялось достаточно простыми соображениями — надежностью поставщиков. Главный аргумент против российских разработок звучал так: "А вы гарантируете, что ваша фирма будет существовать через пару лет?".
Спустя несколько лет, к концу третьего тысячелетия, российские разработчики прикладного ПО доказали свою устойчивость и надежность и в целом вернули доверие рынка. Однако требования клиента при выборе платформы гораздо серьезнее, чем при покупке отдельного приложения. Опыт работы 1С говорит о том, что создание оригинальных отечественных технологий создания современных программных комплексов — дело вполне реальное.
Создание платформы 1С
Наличие механизмов внутреннего программирования является сегодня практически обязательным для широкого круга приложений. Но здесь можно условно выделить два уровня подобных технологий:
Механизм, функционирующий в рамках базовых функций конкретного приложения (таковым, например, был в свое время WordBasic, который был изначально нацелен на специфику Word.)
Механизм, позволяющий создавать эти базовые функции и разрабатывать приложения с принципиально новой функциональностью (то, что сейчас сделано в Microsoft Office).
Внутренние средства программирования первого уровня для адаптации программ к задачам конкретного пользователя появились еще в самых первых версиях бухгалтерских программ 1С. Но это был, скорее первый вариант адаптации программ. В 1996 году была представлена новая разработка 1С:Торговля, реализованную уже на новой технологической платформе, которая тогда носила название V7, а сегодня известна под торговой маркой 1С:Предприятие. Этот инструментарий можно смело отнести к средствам разработки второго уровня.
Говоря о платформе разработки приложений, было бы интересно провести некоторые аналогии с подобными средствами, но нужно одновременно подчеркнуть, что такие сравнения являются весьма условными. Например, в отличие от универсальных систем быстрой разработки типа VB и Delphi, 1С:Предприятие является специализированным средством создания приложений для решения экономических задач. По-видимому, более близким ориентиром для сравнения являются пакеты семейства MS Office.
Следует также отметить, что, создавая собственный инструментарий, разработчики 1С учитывали особенности не только предметной области, но также и российской действительности (например, не очень высокий уровень затрат на ИТ, длительный этап переход от ручных методов к автоматизированным и пр.).
Далее я будуn проводиться некоторые аналогии с VB и Microsoft Office/VBA, но не с точки зрения оценки лучше/хуже, а просто, чтобы на фоне этих широко известных систем была более понятна логика работы платформы 1С:Предприятие.
Проблемы роста 1С
Руководители фирмы 1С подчеркивают, что средства программирования, входящие в состав 1С:Предприятия, изначально создавались в виде полноценного инструмента, предназначенного для разработчиков, как самой 1С, так и любой другой независимой компании. Однако несмотря на такую изначальную ориентацию продукта, на примере 1С:Предприятия можно увидеть, что переход от продажи готовых решений (ориентация на конечных пользователей) к поставкам инструментария (ориентация на разработчиков) является весьма не простым процессом. В этой связи также очень интересен опыт 1С, деятельность которой характеризуется хорошим сочетанием долгосрочного планирования и оперативной реакции на ситуацию на рынке, прагматизма и новаторства.
Говоря о смещении акцентов в стратегии развития технологий 1С, следует сделать несколько важных уточнений. Компания по-прежнему считает ключевой составляющей своего бизнеса именно поставку готовых решений для конечных пользователей и не рассматривает (по крайней мере, пока) свой инструментарий в качестве самостоятельного продукта. В этой связи 1С:Предприятие сегодня позиционируется, как полнофункциональное готовое решение с гибким инструментом настройки. Но нужно подчеркнуть, что такое совмещение определяется в первую очередь маркетинговыми, а не технологическими вопросами.
Как это не странно, но одна из проблем смены позиционирования системы 1С:Предприятия заключается в необходимости уточнения (или даже коррекции) используемой в ней терминологии. Например, сам термин 1С:Предприятие означает несколько понятий, различаемых только в конкретном контексте, что создает серьезную путаницу. Во-первых, это название коробочного продукта. Во-вторых, это наименование программы, с которой работает конечный пользователь. В-третьих, это средство разработки. И наконец — это название технологической базы.
В то же время язык программирования платформы до сих пор не имеет своего наименования. Поэтому в описании приходится использовать длинный термин встроенный язык 1С:Предприятие — согласитесь, что VB, PHP или Java читаются проще. Разработчики 1С объясняют отсутствие названия тем, что язык является не самостоятельной ценностью а одним из инструментов настройки 1С:Предприятия.
Другой аспект этой же проблемы — некоторое несоответствие внутренней терминологии 1С и общепринятой в среде разработчиков (это будет показано ниже). Конечно, тут большую роль играет наследуемый информационный ресурс, однако в условиях расширения сферы применения продуктов желательно устранение подобных расхождений.
Общая логика работы системы 1С
В общем случае схема функционирования системы 1С:Предприятие определяется взаимодействием трех ключевых ее составляющих частей:
Приложение 1С:Предприятие (название то же, но суть уже другая) — программная среда, в которой функционирует некая макропрограмма, называемая Конфигурацией. Фактически данное приложение — это специализированный интерпретатор, исходный интерфейс которого предназначен для управления режимами трансляции и для запуска минимального необходимого набора функций. В какой-то степени здесь уместна аналогия между средой VB и работающим в этой среде VB-проектом.
Конфигурация — это макропрограмма, работающая в среде 1С:Предприятие и полностью определяющая функциональность решаемых пользователем задач (в том числе и настройку интерфейса). Физически Конфигурация хранится в виде специального файла-контейнера 1cv7.md. Тренировочная система Учет основных средств, создаваемая в течение 5 дней слушателями учебных курсов, имеет размер конфигурации около 350 Кбайт. Комплексная конфигурация, поставляемая 1С (Бухгалтерия, Заплата и Кадры, Торговый и складской учет), — почти 9 Мбайт.
Пользователь может использовать несколько конфигураций для решения различных задач. Соответственно для каждой конфигурации можно использовать несколько разных баз данных (например, с помощью одной Бухгалтерии обрабатывать данные нескольких организаций).
Конфигуратор 1С
Приложение Конфигуратор — основная среда разработки конфигурации (пользовательской программы). Кроме нее в состав пакета входят еще несколько программ для отладки конфигураций.
В общем случае владелец пакета 1С:Предприятие может использовать готовые конфигурации, поставляемые 1С или ее партнерами, модернизировать их (с учетом вопросов лицензирования и технической поддержки) или создавать свои собственные. Вместе с тем существует довольно большой набор продуктов 1С, в которых возможности модернизации программных компонентов пользователем ограничены. Например, известный пакет 1С:Деньги является фактически вариантом 1С:Предприятия с фиксированной конфигурацией и без программы Конфигуратор.
Особенности разработки приложений в системе 1С Предприятие
Отметим некоторые особенности разработки приложений в системе 1С:Предприятие.
В данном случае, в отличии от известных систем RAD и Microsoft Office/VBA физически разнесена среды написания программ и ее исполнения. Очевидно, что это экономит ресурсы, но несколько замедляет процедуру отладки (при каждом тестовом запуске происходит загрузка среды исполнения).
Лицензионная политика фирмы 1С подразумевает только комплексную поставку всех трех программных составляющих. В частности, пользователь не может купить только инструментальные средства без какой-то конфигурации. И он не может создавать с помощью пакета автономные тиражируемые приложения — новые конфигурации будут работать только в среде 1С:Предприятия. В данном случае имеется полная аналогия с приложениями MS Office.
Очень любопытно реализована процедура компиляции и исполнения кода конфигурации. Программные модули хранятся в конфигурации в виде исходного текста, и компиляция каждого из них выполняется только в момент первого обращения, после чего его скомпилированный код сохраняется в оперативной памяти. Таким образом, компиляция программ происходит каждый раз при запуске приложения, но благодаря распределенной схеме трансляции эта операция проходят практически незаметно для пользователя. Тем более что структура языка реализует схема однопроходной трансляции, что повышает скорость преобразования кода. Впрочем, отрицательным моментом используемой модели "позднего связывания" является невозможность проверки связей на уровне синтаксического контроля.
Разработка конфигурации 1С
Разработчик может создавать свой вариант конфигурации либо на основе уже существующего варианта, либо, как говорится, с нуля. Если выбрать второй подход, запустить программу Конфигуратор и открыть главное окно Конфигурация, то в ней мы увидим три вкладки, которые отражают взаимосвязанные составные части конфигурации:
- структура метаданных;
- набор пользовательских интерфейсов;
- набор прав пользователя.
Метаданные определяют всю функциональность конфигурации и представляют собой совокупность объектов, являющихся базовыми конструкциями создания рабочих конфигураций. По своей сути такие объекты являются предопределенным программным аналогом реальных объектов из сферы предметной деятельности предприятий.
Таким образом, все объекты 1С Предприятия принимают на себя как функции сохранения своих данных на внешних носителях, так и визуального представления информации в виде экранных диалогов (форм с набором визуальных элементов управления) и печатных документов. Кроме того, большинство объектов в качестве своего компонента включают модуль формы, содержащий программный код для выполнения нестандартных операций при работе с объектом.
Все объекты 1С:Предприятия объединены в несколько групп. Базовые объекты используется во всех версиях системы и с их помощью можно делать законченные приложения для решения достаточно широкого круга задач (например, только с их применением слушатели пятидневных учебных курсов создают достаточно сложную систему учета основных средств). Остальные объекты представлены в виде нескольких библиотек для определенных предметных областей: Бухгалтерский учет, Оперативный учет, Расчет. Разработчику доступны те библиотеки, которые входят в состав приобретенного им варианта продукта.
Функциональная настройка объектов, а также их объединение в законченную конфигурацию выполняются с помощью встроенного языка (к сожалению, пока не имеющего названия). В его основе лежит упрощенный вариант синтаксиса Pascal, но при этом его авторы два варианта использования ключевых слов — на русском и на английском языке, а так же в смешанном варианте.
Завершая краткий обзор 1С
1С:Предприятие является сегодня технологической платформой создания бизнес-приложений, число профессиональных программистов, использующих данный инструмент исчисляется как минимум десятком тысяч. Более того, в нашей стране фактически сформировалось некоторое сообщество 1С-программистов (как не хватает красивого названия технологии!), которое выходит далеко за рамки официальных партнеров фирмы.
При этом хотелось бы обратить внимание на маркетинговые вопросы продвижения платформы — успех во многом определяется постоянно поддерживаемым типовым решениям (число которых постоянно растет), представляющих собой хороших фундамент для новых разработок — писать все с нуля все же очень трудоемко.
Как любой инструмент, 1С:Предприятие имеет свои достоинства и недостатки по сравнению с другим средствами разработки. Например, в нем очень много интересных решений, которых явно не хватает в VB. В то же время ряд архитектурных идей и конкретная реализация отдельных элементов технологии кажутся мне не вполне оптимальными. Хотя, разумеется, такие оценки очень субъективны и являются предметом обсуждения.
Но что бесспорно — в данном случае мы имеем дело с глубоко продуманной и хорошо реализованной технологией с большим потенциалом развития. Уже то, что для критического анализа российского инструментария в качестве сравнения используются признанные мировые лидеры средств разработки, говорит о многом.