Главная страница Visual 2000 · Общий список статей

Приступая к профессиональной разработке в системе "1С:Предриятие"
Рецензия на книгу

Андрей Колесов

© Андрей Колесов, 2006
Авторский вариант. Здесь есть ВРЕЗКА, которая не вошла в опубликованный вариант в еженедельнике PC Week/RE (N 34/2006, с. 52)

Габец А. П., Гончаров Д. И., Козырев Д.В., Кухлевский Д.С., Радченко М.Г. Профессиональная разработка с системе 1С:Предприятие 8 – М: "1С- Паблишинг"; СПб, "Питер", 2006. – 808 с., компакт-диск


По оценкам фирмы "1С", ее программные продукты...

По оценкам фирмы "1С", ее программные продукты, реализованные на платформе "1С:Предприятие" (1СП), в более чем полумиллионе организации страны. Их внедрением и сопровождением занимаются порядка 100 тыс. сотрудников почти 3 тысяч партнеров-франчайзи и еще примерно столько же специлистов ИТ-отделов компаний-заказчиков. Как минимум половина из них (т.е. ояпть же около 100 тысяч человек) в той или иной степени используют в своей работе средства программирования 1СП, преимущественно для настройки и расширения возможностей готовых прикладных решений. Но есть и те, кто создает свои приложения "с нуля".

Это сказано, чтобы подчеркнуть – 1СП является (и уже далеко не первый год!) в нашей стране одним из самых массовых средств профессионального программирования, скорее всего, далеко обогнав Java и даже Visual Basic. Парадокс же ситуации заключается в том, что до настоящего времени общедоступной литературы по этой тематике практически не было, а вопросы "1СП как средство разработки", не говоря уже о каком-то критическом анализе, почти не обозначались в профессиональной ИТ-прессе.

Так что нужно сразу сказать: выпуск книги, написанной группой ведущих разработчиков фирмы "1С" и ее партнера компании "Аналит" – это знаковое явление не только для 1С-сообщества, но и для всей софтверной отрасли страны. По сути, это первое публичное и весьма полное представление платформы 1СП, как таковой – ее архитектуры, базовых функций и механизмов, методологии разработки прикладных решений и т.д. Более того, подобного систематического описания не было в документации или каких-то внутренних материалах "1С". Безусловно, такая книга полезна не только тем, кто уже программирует в среде 1СП или собирается заняться этим, но всем, кто просто хочет познакомиться с организацией одной из самых популярных в нашей стране программных платформ (по-видимому, она уступает по массовости только Windows и Office).

Первый блин авторов "1С"* вышел совсем не комом. Конечно, можно поговорить о достоинствах и недостатках книги как таковой. Но мне представляется важнее заострить внимание лишь на нескольких моментах, которые связаны с общей концепцией "1С" по продвижению своей платформы.

* Предшественником данного издания стала выпущенная два года назад книга Максима Радченко "1:Предприятие 8. Практическое пособие разработчика", но она была существенно меньше по объему и посвящена низкоуровневым вопросам программирования в 1СП.

В начало статьи

Сказав "а", нужно говорить "б"

Суть проблемы заключается в том, что недавнего времени руководство "1С" принципиально старалось не очень афишировать тему разработки в среде 1СП, подчеркивая при этом, что она позиционирует себя как поставщик готовых решения для конечных пользователей. Хотя нынешняя архитектура 1СП в целом была реализована еще в 1996 году в версии 7.0, и инструменты программирования входили в поставку ее продукта и были доступных заказчикам, тем не менее "1С" считала, что данные средства ориентированы на внутреннее применение ее собственными разработчика и специалистами партнеров- франчайзи.

Стратегия "1С" несколько поменялась в 2002-м году с выпуском бета-версии 1СП 8.0. Фактически только в этот момент фирма широко объявила (и стала продвигать этот тезис), что ее комплекс ПО состоит из технологической платформы (куда входят и средства разработки) и набора прикладных решений. До этого момента использования самого термина "платформа" компания категорически избегала.

Однако, по сути, общая линия "1С" в вопросе разработки осталась прежней и ее можно сформулировать примерно так: в целом технологическая и лицензионная политика фирмы нацелена на "доработку" ее собственных прикладных программ в ходе реализации конкретных проектов, а не на разработку тиражных продуктов внешними компаниями (в том числе и независимыми поставщиками) на основе 1СП**. Одним из следствий этого является то, что компания в продвижении своих технологий разработки делает акценты в первую очередь на низкоуровневые вопросы программирования, а не архитектуру системы в целом. Но это, в свою очередь, больше вступает в противоречие с политикой компании продвижения компании на ERP-рынок среднего уровня, где для реализации проектов, значение средств разработки и качества их применения резко возрастает.

** Такая позиция, в свою очередь, определяет только маркетинговыми соображениями, но также технологическими и архитектурными особенностями 1СП.

Двойственность позиции "1С" в отношении своего инструментария естественно отразилась и в рецензируемой книги. И это видно уже в ее названии: после слов "профессиональная разработка" нет пояснения – "разработка чего"? Разработка новых приложений "с нуля" или доработка прикладных решений "1С"? Этот вопрос может показаться просто мелочной придиркой, но на самом деле тут есть очень важный момент.

Дело в том, что создание ПО начинается с изучения архитектуры платформы, логики взаимодействия ее компонентов, среды разработки, последовательности создания приложений. Главное же достоинство книги заключается в том, что в ней впервые реализован именно такой подход к описанию возможностей 1СП. Но как раз архитектурная часть этого труда вызывает достаточно серьезные вопросы и нарекания. Хотя нужно подчеркнуть – многие сложности тут связаны с историческими корнями самой 1СП.

В начало статьи

Терминология

Одна из таких "исторических" проблем заключается в недостаточной проработанности терминологии 1СП и тут нужно выделить несколько моментов.

  1. Еще в 90-е годы разработчики "1С" стали применять ИТ-терминологию, которая отличалась от общеупотребимой. Ее использование выглядело вполне естественно внутри 1С-сообщества, но создавало очевидные трудности, когда нужно было общаться с внешним миром программистов. Для этого, например, статьи в журналах каждый раз нужно было сопровождать переводом: "конфигурация ("1С") = приложение, "обработка" = утилита или объект, "компонента" (жен.) = библиотека объектов и т.д. Все это вызывало путаницу и порой приводило к искажению содержательного смысла.
  2. Нетрудно заметить, что терминологии "1С" используется только одно имя собственное – "1С:Предприятие". Но что оно обозначает – непонятно. Дело в том, что этот термин применяется для обозначения целого набора разных вещей:
    • клиентской части платформы;
    • всей платформы;
    • всей системы ПО – платформы + приложения;
    • и, наконец, которого комплекса, который включает ПО + методологию создания прикладных решений + средства информационно- технического сопровождения ПО.

    Поэтому когда в книге говорится об "особенностях системы 1С:Предприятия", то часто просто непонятно – какая же из этих систем имеется в виду. А когда видишь слова "платформа 1С:Предприятия", то неясно – тут допущена опечатка (родительный падеж) или речь идет о платформе как компоненте более общей системы.

  3. Отсутствие имен собственных для ключевых компонентов платформы 1СП. Например, платформа Microsoft состоит из Windows (название клиентcкой OC), Windows Server (сервер), Visual Studio (инструмент разработки), VB и C# (языки программирования) и т.д. У "1С" не так: ее платформа состоит из "клиентской части 1С:Предприятия", "сервера 1С:Предприятия", "встроенного языка 1С:Предприятия" и т.д. При этом вполне очевидны проблемы при описании, например, взаимодействия всех этих компонентов.

В начало статьи

Архитектура

Терминологическая путаница, конечно, мешает восприятию материала, но с ней можно справиться. Главная же проблема заключается в том, что, хотя книга начинается с главы "Архитектура 1С:Предприятия" (какого именно 1СП? – см. выше), как раз архитектурные вопросы – самые важные для профессиональной разработки – описаны явно недостаточно и весьма противоречиво. По большому счету, здесь нет четкого рассказа (и иллюстраций) о том, из каких компонентов состоит платформа и система ПО в целом, как они взаимодействуют в процессе разработки и исполнения и целого ряда других важных вопросов. И это притом, что логика разработки функционирования прикладных решений 1СП весьма специфична, и в ней нужно очень хорошо разбираться для "профессиональной работы".

Впрочем, авторы в самом начале книги решили осветить вопрос соотношения платформы и прикладных решений:

"Основным концептуальным решением, отличающим систему 1С:Предприятие 8.0 от универсальных средства программирования, является четкое разделение на платформу и прикладное решение. Однако создание, модификация и функционирование прикладного решения невозможны без использования механизмов и технологий платформы".

Но из этого текста можно лишь сделать вывод, что Java и .NET не являются универсальными средствами, так как с ними дело обстоит точно также.

Приведенная выше описание тем более выглядит странно, так как логика разработки и, самое главное, исполнения программ в 1СП действительно сильно отличается от "универсальных" вариантов, и это определяет, в свою очередь, своеобразие всех этапов жизненного цикла приложений (в том числе модификации и развертывания) в этой системе, а также подходов к решению таких задач, как масштабирование и повышение производительности.

В начало статьи

Подождем второе издание

Высказав эти замечания, мне хотелось бы еще раз сказать, что данная книга – это первое полное описание системы "1С:Предприятия" с точки зрения разработчика, ее многочисленных механизмов, технологий, приемов программирования и т.д. Правда, почему-то в ней отсутствует описание собственно среды разработки 1СП, логики работы в ней и пр.

Тем не менее, то, что книга очень нужна и полезна – не вызывает никаких сомнений. Даже, если просто познакомиться с оглавлением (18 глав, приложений, демонстрационные примеры на компакт-диске) можно понять, что 1СП – это мощный программный комплекс, в котором заложен огромный потенциал. И почему так велик спрос на рынке на "профессиональных разработчиков 1СП".

Но все же хотелось пожелать авторам в следующем издании (уверен, что оно будет) больше внимания уделить архитектурно-концептуальным вопросам, разобраться в которых будет полезным, и тем, кто начинает разрабатывать в среде 1СП, и тем, кто занимается этим давно. И еще – реализовать публикацию в более удобном для использовании формате: сейчас имеет размеры А4 и не помещается у меня дома ни в одну книжную полку. А что будет, если авторы подробнее расскажут о многих других интересных вопросах профессиональной разработки?

В начало статьи