Не будет открытием сказать, что 1С занимает значительное место на российском рынке учетных систем. Начиная с версии 7.7, 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
Взято с http://erpnews.ru/doc2911.html