1С. Упущенные возможности?

Не будет открытием сказать, что 1С занимает значительное место на российском рынке учетных систем. Начиная с версии 7.7, 1С стала универсальным инструментом построения автоматизации бухгалтерского учета. Понятный язык, достаточно стройная объектная модель, открытая конфигурация - дают широкие возможности по индивидуальной настройке. Такие возможности породили особый рынок «программистов 1С».
1С. Упущенные возможности?

Следующая версия 8.X появилась уже давно, но до сих пор так и не стала преемницей 7.7. Только за последние два года на волне моды на внедрение «бюджетирования» и «ERP-систем» версия 8.X стала набирать обороты. Сможет ли 1С и/или независимые разработчики преодолеть некоторые «родовые травмы», а проще - архитектурные ошибки и недоработки исполняющей системы и конфигурации? И что же мешает 1С стать полноценной (а может быть и лучшей) платформой для систем управления предприятием?

Только недавно в версии 8.1 была устранена совершенно непонятная блокировка на уровне таблиц. Блокировка на уровне записи или страницы известна десятки лет и ее отсутствие сводило на нет все обещания «увеличения производительности». Все равно, если кто-то строит консолидированный отчет, затрагивающий большинство таблиц, то все остальные пользователи «курят камыш», ожидая в очереди. Устранение этого «узкого» места является значительным прогрессом.

Есть также вопросы к реализации многопоточности на сервере приложений. Анализируя платформу 1С, можно заключить, что многопоточность существует на уровне отдельных пользовательских сессий,, которые исполняются на сервере приложений параллельно. При этом в языке отсутствуют средства для работы с потоками. Т.е. каждая сессия исполняется как полностью независимое приложение (поток), а синхронизация осуществляется только за счет блокировок базы данных. Это, может, и нормальный подход для учетной системы, но для системы, заявляющей планирование, - это явно неприемлемо. Алгоритмы планирования - это хорошо распараллеливаемые вычисления. Да, при текущем положении дел можно заявлять, что планирование 10 000 позиций занимает пару-тройку часов. Но текущий алгоритм планирования загрузки оборудования достаточно примитивен и ограничен, а 10 000 позиций - это очень маленькое количество даже для современного среднего предприятия. При такой производительности 1С никогда не станет полноценной ERP-системой. Здесь можно предложить, как минимум два решения.

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

Качество кода. Версия 7.7 угнетает слабоуправляемым кодом. Обработки и модули, даже поставляемые в составе стандартных конфигураций, вызывают дрожь. Кодировщики явно плохо знакомы с объектной моделью 1С. Проект плохо синхронизирован: одни и те же вещи сделаны во многих местах с игнорированием простейших правил программирования. Мощное преимущество 1С - простота внесения изменений в конфигурацию - сыграло злую шутку: в стране нет двух одинаковых конфигураций! Каждый потребитель жестко привязан к «своему» 1С-программисту. Если так будет продолжаться и далее, то 1С ждет незавидный конец. С переходом на восьмую версию и расширением круга операций, выполняемых программой, она рискует быть раздавленной собственной сложностью и ростом расходов на сопровождение. В версии 8.X появились дополнительные механизмы абстракции, но они были бы адекватны для 1С 7.7 и никак не соответствуют задачам, заявленным для «восьмерки». Есть ли выход? Я думаю, да. И это не просто выход, а возможность получить платформу значительно более технологичную и гибкую, чем продукты грандов ERP-индустрии.

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

Представим себе ситуацию: 1С провела рефакторинг всего кода стандартной конфигурации, скажем, УПП. Хотя - это условно. Использование данного подхода может устранить само понятие «стандартная» конфигурация. В результате, большая часть функционала оформлена в виде иерархической модели бизнес-процессов, которая связана ссылками с моделью данных и формами ввода/вывода. Те же модули и процедуры, которые не вошли в состав бизнес-процессов, должны быть перенесены на уровень исполняющей системы платформы.

То есть, 1С становится «model driven application» - приложением, управляемым моделью (например, Microsoft Robotics Studio).

Это дает:

• Значительное повышение управляемости. Весь видимый код имеет графическую модель. Не нужно искать множество объектов и методов, чтобы понять, что происходит при выполнении того или иного действия. У программистов с потребителем/заказчиком появляется общий язык графических схем. Модификация кода становится более прозрачной для потребителя и более простой для программиста. И это не просто управляемость кода конфигурации, это - управляемость и предсказуемость результатов проекта внедрения.

• Большую гибкость. Можно заказать только те бизнес-процессы, которые действительно используются на предприятии. Можно добавить свои бизнес-процессы без ущерба для поддержки стандартно поставляемых или купленных. Вы получаете систему, которая растет вместе с вами.

• Большую масштабируемость и надежность. Исполняющая система может выполнять бизнес-процессы как отдельные независимые потоки. Крах одного потока не приведет к остановке других операций.

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

• Более высокую скорость модификации. Если имеющийся бизнес-процесс бюджетирования не умеет группировать данные по нужному для вас критерию, то достаточно найти на схеме место, где он выполняет эту группировку, и изменить связанное с ней SQL выражение.

Это последнее - весьма критично. Время ERP-монстров со статически заданным и трудноизменяемым функционалом подходит к концу. Для управления предприятием нужна система, активно меняющаяся, легко адаптируемая к новым ситуациям, и не ценой годовой прибыли компании. Но это уже совсем другая история...

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

Отступление. Изучение фактического и теоретического материала натолкнуло на пару важных заключений:

• Система управления предприятием должна иметь возможность внесения достаточно широких изменений в бизнес-процессы предприятия без остановки и организации нового проекта по разработке и внедрению. Это должна быть рутинная, периодическая работа по оценке эффективности и изменению/подстройке бизнес-процессов.

• Необходимо «навесить» на бизнес-процессы сенсоры-счетчики для оценки производительности. Тип и количество счетчиков зависят от типа процесса и его сложности. Это даст возможность измерять и нормировать работу участников данного процесса, получать достаточно четкие цифры эффективности (к вопросу о невозможности измерить эффективность автоматизации). То есть, вместе с разработкой и формализацией самого бизнес-процесса необходимо разработать систему критериев оценки его эффективности и реализовать ее в программном обеспечении. Например, процесс документооборота – он имеет дело с документами на входе и выходе. В простейшем случае можно считать количество входящих и выходящих документов и время прохождения на каждой операции. Затем, если анализ покажет, что документ задерживается дольше всего в данном процессе, то появляется повод пересмотреть этот и смежные с ним бизнес-процессы.
P.S. Недавно в средствах массовой информации появилась тема о необходимости «распечатать» стабилизационный фонд. Чем описанное выше не тянет на национальный проект?


А.А.Породько © 2007
 



Литература
Реинжиниринг бизнес-процессов. Практическое руководство. М.Робсон, Ф.Уллах
Организационный Реинжиниринг. Технология реинжиниринга бизнеса. П.В.Кутелев
Управление качеством и реинжиниринг организаций. З.С.Абутидзе, Л.Н.Александровская, В.Н.Бас и др.

© Галактика, 2007
© Издание 12NEWS (ИП Маринин А.Л.), 2007


Комментарии на публикацию 1С. Упущенные возможности?

Не будет открытием сказать, что 1С занимает значительное место на российском рынке учетных систем. Начиная с версии 7.7, 1С стала универсальным инструментом построения автоматизации бухгалтерского учета. Понятный язык, достаточно стройная объектная модель, открытая конфигурация - дают широкие возможности по индивидуальной настройке. Такие возможности породили особый рынок «программистов 1С».
27.02.09 : 1С. Упущенные возможности
Идея автора о построении на основе бизнес-процессов чрезвычайна наивна. Основная проблема здесь в отсутствии единой методологии сквозного описания процессов.

Достаточно вспомнить что получилось от союза UML и IDEF. Что качается идеологии 1С то она неэффективна, достаточно сравнить ее с американской ACCPAC и сразу станет все ясно.
06.01.08 Neco: 1С. НЕ упущенные возможности
Несмотря на интригующее название статьи, про «упущенные возможности 1С» в ней не сказанно ниразу. Можно было ожидать к концу статьи какие либо выводы, но автор почемуто переключился на бизнес-процессы и стабилизационный фонд.