Основные плюсы языка ДРАКОН для компании
Язык ДРАКОН используется для:
- описания бизнес-процессов компании и их аудит,
- разработки решений на базе 1С для их автоматизации,
- хранение кода этих решений,
- организация обучения сотрудников работе в рамках бизнес – процессов,
- запись и хранение инструкций пользователей – как работать в рамках бизнес - процесса.
Его основная изюминка в том, что в результате мы получаем полную бизнес-модель, которая не ограничивается только схемой и инструкцией для пользователя. В рамках этой бизнес-модели мы вместе с логикой разработки можем хранить и ее код – это дает нам возможность:
- проводить его аудит,
- вспомнить самому – что делали,
- передать другой команде программистов,
- обучать и поддерживать персонал Заказчика.
Чем язык ДРАКОН для описания бизнес-процесса лучше, нежели другие нотации?
- Он понятный – легко воспринимается визуально на практике.
- Он простой – там только три вида схем и около пяти реально используемых значков, которые позволяют описывать всю эту логику, не плодя очередные диаграммы.
- Ну и плюс ко всему – другие нотации не имеют средств, которые могут хранить код разработки.
И сегодня мы поговорим про технологию применения языка ДРАКОН при внедрении и последующей эксплуатации продуктов 1С на конкретном примере.
Теоретическая основа построения бизнес-модели
При подготовке к презентации я связывался с людьми, которые профессионально занимаются разработкой бизнес-моделей, в частности, с Кузнецовым Михаилом Анатольевичем. Он ведет проектную разработку в ARIS (это нотация, которая используется в основном при внедрении системы SAP).
Согласно его наработкам, бизнес-модель состоит из следующих компонентов:
- Смысловой уровень, который показывает цели и задачи компании.
- Эти цели спускаются вниз в виде управляющих документов, которые характеризуют процессы (этот блок обозначен здесь как «Модель процессов»).
- В этих процессах задействованы объекты бизнеса (иными словами, ресурсы);
- И все это сходится в отчеты (квартальные или за другой какой-то период), по которым топ-менеджмент понимает, достигли они каких-то своих поставленных целей или нет (здесь этот блок обозначен как «Панель управления»)
Такое представление бизнес-модели используется в основном для внедрения систем KPI, но также может использоваться и для других целей – в системах менеджмента качества и пр.
Пример использования ИС Дракон для выбора решения по автоматизации бизнес-процессов заказчика
Давайте перейдем от теории к практике. Для примера я взял рабочий проект автоматизации мебельной фабрики у нас в городе. В проекте участвует две стороны – Заказчик и Исполнитель. Заказчик – это владелец мебельной фабрики, а Исполнитель – это я. Мы с Заказчиком встретились и обсудили его задачи. В результате я составил «Дракон-схему» его модели бизнеса.
Посмотрим, что получилось.
Слева обозначена так называемая схема «Гном» (такой тип схем используется в основном для заметок), в которой описан каталог целей компании:
- Самый первый элемент на ней - это заголовок схемы.
- Далее, желтым цветом выделена миссия компании на рынке.
- А еще ниже находится элемент типа «Вставка», по которому происходит навигация по этим схемам.
Все это работает в среде ИС Дракон, автор живет в г. Северодвинске, – Тышов Геннадий Николаевич.
Сами схемы интерактивны: например, на элементе типа «Вставка» вы можете нажать стрелку «влево» и сразу попадаете на нужную схему. Так происходит декомпозиция. Это позволяет сложную логику разложить на более простые блоки.
Из каталога целей мы переходим к схеме типа «Силуэт», в которой записаны цели компании (тип схем «Силуэт» применяется для алгоритмов, состоящих из нескольких смысловых частей). Каждый заголовок (они выделены в красный овал) обозначает цепочку понятных для пользователя действий, которые расшифровываются в этой ветке.
Для каждой Цели Заказчика разрабатывается Концепция - укрупненный бизнес-процесс, который позволяет достичь этой Цели так, как это видится руководству. В первой ветке этой схемы мы будем работать с Целью, которая пытается усилить Вертикальную интеграцию: по схеме «Вставка» мы переходим к схеме Концепции вертикальной интеграции – нашему укрупненному плану, по достижению этой Цели.
На схеме Концепции вертикальной интеграции в виде конструкции «Цикл ДЛЯ» показан Жизненный цикл продаж (начало цикла – икона №5 и конец – икона №7).
- Обратите внимание, что на этой схеме есть не закрашенные области – элементы типа «Вывод» (они находятся между действиями, закрашенными зеленым цветом) – это управляющие документы, которые спускаются вниз (например, для отдела продаж это может быть план продаж на год, и т.д.).
- Соответственно, следующий за ним процесс руководствуется этим управляющим документом и т.д.
- Желтым цветом здесь обозначен наиболее важный этап цикла продаж – это так называемый «драйвер», основная задача, которую двигают все остальные задачи. Через эту «вставку» мы можем перейти на отдельную схему, детализирующую эту задачу-драйвер жизненный цикл производства мебели.
Итак, здесь показана схема жизненного цикла производства мебели:
- Сначала вы приходите в мебельный салон и заказываете кухню.
- Там вам ее обсчитывают,
- Потом изготавливают,
- Привозят к вам,
- Вы расплачиваетесь,
- Подписываете акт о принятых работах (согласны вы или нет), и всё.
Описав основной бизнес-процесс, который хочет автоматизировать заказчик, мы можем приступить к выбору подходящей конфигурации – той, у которой есть максимальный функционал, отвечающий нашим требованиям. Желательно, чтобы ее не нужно было дорабатывать – изменения могут быть, но они должны быть минимальными.
Как видите, при начале работы над проектом, язык ДРАКОН позволяет вам получить представление о бизнес-модели Заказчика, чтобы оптимально выбрать коробочный продукт для комплексного решения его задач, хотя мебель вы до этого не продавали и не собирали.
Подведем итог первых этапов нашего проекта-примера:
- Мы обсуждаем бизнес-процесс напрямую с Заказчиком (не программистом, не внедренцем) – он лучше знает, как у него продается и собирается мебель. И получаем информацию – что из себя представляет его бизнес.
- А потом, составив на основании его информации детализированную схему, уже легко проанализировать, что мы можем автоматизировать, а что нет.
- И на основании этого мы вместе выбираем коробочное решение для проекта.
Соответственно, язык ДРАКОН нужен на старте любого проекта внедрения программных продуктов компании 1С.
Пример использования ИС Дракон для поддержки и обновления программных продуктов на базе 1С
Какие преимущества в использовании языка ДРАКОН на этапе владения информационной системы на базе 1С, при ее обновлении и доработке?
- Если мы имеем бизнес-модель, мы можем её менять и развивать дальше.
- Уменьшается зависимость от персонала. Потому, что если от нас внезапно уходит человек и не успевает передать дела, мы можем взять «Дракон-схему» его действий и передать ее новому сотруднику, чтобы он с ней поработал и выучил. После этого человек готов встать в наши стройные ряды и дальше работает.
- «Дракон-схемы» позволяют описывать «реальные» технические задания, когда бухгалтеры уже обсудили, что им нужно, и сами составили для программиста окончательную схему: «мы хотим, чтобы делалось вот так вот».
- Плюс ко всему, так как схема хранит одновременно и код, и логику разработки, вы можете легко менять команды программистов, разработчиков – передавать им эти схемы.
- А поскольку там уже есть готовый код и список метаданных, которые были созданы для этой доработки, то на дальнейшие обновления вы тратите уже в разы меньше времени.
Давайте подробнее разберем тему обновления конфигурации 1С.
Представьте себе, вы поставили типовую конфигурацию, внесли в нее какие-то доработки по техническому заданию, а потом прошло обновление, и часть ваших доработок стерлась. Такое бывает, если в фирме, допустим, нет своего программиста, или он заболел, уволился. Приходится поднимать старый бэкап, смотреть, что он изменял в метаданных, восстанавливать эти изменения и т.д. Хорошо еще, если данные не есть.
Для упрощения обновления своих доработок я обычно составляю «Дракон-схему», например, такую, как показана на слайде. Здесь есть специальные переходы (элементы типа «Вставка»), которые интерактивно переносят меня на листы разработок. Они представляют собой дракон-схемы, где описаны:
- метаданные, которые создавались;
- логика разработки – для чего они создавались;
- и код который там выполняется.
Соответственно, когда я обновляю конфигурацию, я уже в тестовой базе могу пробежаться по этой дракон-схеме и проверить, весь ли внесенный мною функционал работает. Возможно, что-то из этого 1С уже сама реализовала, и значит, мне надо отказаться от каких-то своих доработок, и там уже продумать какие-то механизмы миграции, что-то сделать…
Пример использования ИС Дракон в процессе разработки
Переходим к третьей части. Зачем нужен язык ДРАКОН в процессе разработки?
- Я могу видеть логику создаваемого кода и проводить его аудит. С помощью «Дракон-схем» мы можем понять, что работает, а что нет, увидеть, что где-то надо убрать лишний код и т.д.
- Про смысловую передачу другой команде разработчиков я уже упоминал – зависимость от программистов уменьшается.
Чем составлять дракон-схем? Бумага, линейка, карандаш и ластик?
Схемы, которые я вам показывал, были сделаны в программе «ИС Дракон». Это, на мой взгляд, сейчас самый продвинутый инструмент для работы с этим языком. Простой и дешевый.
Еще есть «DRAKON Editor» и «Фабула».
Как дракон-схема хранит код и как использовать его при программировании в 1С.
Транслятор кода из ИС Дракон в Конфигуратор 1С использует метод программирования по GOTO. Не буду вдаваться в дискуссии по поводу правильно его использовать или нет. Статей в интернете на эту тему достаточно. Остановимся на том, что он есть. И вот как это работает.
Для наглядности немного расскажу о том, какие изменения мы вносили в программу 1С для Заказчика на примере оформления заказа производства мебели.
Как вы видите, в этой «Дракон-схеме» оформления заказа для каждого действия проставлены роли конкретных исполнителей. Например, указано, что первоначально заказ покупателя в конфигурацию УНФ вводит бухгалтер, а потом на основании этого заказа снабженец оформляет заказ на производство.
И тут в бизнес-процессе возникает «узкое место», я его выделил красным овалом. В чем суть? У заказчика в одной базе работает две разные фирмы, и материалы могут приходить на обе из них, а когда мы собираем кухню, нам нужно, чтобы эти материалы оказались на складе одной фирмы. Если это делать вручную, то кладовщик у нас должен сидеть, набивать расходы на недостающие материалы с одной фирмы на другую. Поэтому мы предложили заказчику сделать «волшебную кнопку», которая автоматизирует этот процесс.
На скриншоте показано техническое задание на разработку этой «волшебной кнопки».
Что она делает? Ищет недостающие товары фирмы-продавца, формирует на найденные позиции расходные и приходные документы. Дальше уже идет «вставка» для перехода на саму разработку с кодом.
Вот весь комплекс этих схем:
Каждая схема – это процедура или функция для модуля документа «Заказ поставщику». Именно они и автоматизируют эту «Волшебную кнопку».
Черные точки в заголовке схемы являются индикаторами того, что схема является процедурой и содержит код. В этих точках автоматически формируются заготовки, в которых описаны начало и конец процедуры (их текст показан на скриншоте внизу).
В «черных точках» конкретных действий пишется исполняемый код, в данном случае задаются параметры метаданных.
Так выглядит тип элемента «Цикл» (конструкции языка 1С «Для каждого … Цикл …»), зеленым цветом обозначены его границы (начало и конец). Между ними – исполняемый код для этого цикла.
А вот так выглядит тип элемента «Если». Вы здесь просто пишете условие: для «Да» такая ветка, для «Нет» – другая. А программа уже сама при генерации кода добавляет в модуль конструкцию «Если… Тогда» и метки, на которые происходит переход.
Для множественного «Если» используется другой тип элемента «Дракон-схемы»: «Переключатель».
В схеме мы также можем описывать изменения в метаданных. Например, на скриншоте слева, в схеме типа «Гном» указано, какие регистры сведений необходимо создать для работы этого функционала.
И, наконец, выделенный элемент – это результирующие доработки модуля. В его третьей «черной точке» я обычно пишу контактную информацию и суть разработки.
А четвертая «черная точка» – это уже сам итоговый код. Он собирается автоматически, и потом я его просто копирую из этого окна и вставляю в конфигуратор.
Как вы видите, сюда в виде комментариев также попадают и заметки, указывающие, в схеме под каким номером этот код находится.
Как производить отладку такого кода? У каждой схемы есть уникальный номер, который нигде не повторяется. Например, на скриншоте показано условие «Если» с номером 26.
И по комментариям в конфигураторе можно найти этот код. Как вы видите, здесь находится оператор «Перейти», который является аналогом GOTO в 1С. По нему производится переход на метку. Это не нужно писать вручную, все формируется автоматически.
Как вы видите, по метке 41 мы переходим на сообщение пользователю, которое возвращает текст ошибки, и после этого происходит конец процедуры. Так реализуется проверка логики разработки.
Работа с GOTO («Перейти» - в 1С) – это дело привычки. Мне нравится, потому что так нагляднее анализировать код в схеме после определенной практики.
Если вам не хочется работать с GOTO – просто вставляйте текст условия в действия, и он сформирует код в процедуре так, как вы его там написали.
Элементы схемы можно использовать просто как контейнеры для хранения текстовой информации кода.
Конечно, предварительную разработку я веду не в среде ИС Дракон, а в конфигураторе. У меня открыт конфигуратор, где я накидываю, например, логику запроса, который мне нужно разработать. Там доступен синтакс-помощник, автоподстановка кода, в пользовательском режиме можно запустить консоль запросов, все это протестировать, посмотреть, что у меня получается, какие параметры подставить. А после того, как у меня сформируются предварительные заготовки для каждого действия, я этот код из конфигуратора копирую и вставляю в нужные места схемы. Это особенно удобно делать, если вы работаете на двух экранах.
Программирование в ИС Дракон – как сбор паззла. В результате вы собираете всю мозаику, по которой видно код разработки целиком. Причем, код модуля, который автоматически получается на выходе, можно просто скопировать и поместить в конфигуратор. Протестировать, конечно, проверить, чтобы логика нигде не была нарушена.
Заключение
Язык ДРАКОН удобно использовать и для обучения персонала, и для общения с заказчиком, а также при разработке и поддержке конфигураций на 1С.
Что касается разработки, то работаю на многих проектах, где периодически приходится восстанавливать какой-то функционал, что-то доделывать, разбирать какие-то сложные чужие коды и т.д. И, сколько я работал, не встречал кода, написанного программистом, который я не смог бы описать на языке ДРАКОН.
ИС Дракон – это коробочный продукт с поддержкой разных языков. Я работаю с 1С, но там поддерживается также C++, язык микроконтроллеров, и некоторые другие языки. Сам продукт продается автором. Его полноценная версия весит очень мало и стоит недорого. Есть бесплатная демо-версия, которая может использоваться как просмотровая.
Поэтому, если нужно быстро провести внедрение 1С, обучить персонал работе в системе и поддерживать дальнейшую работу предприятия без лишних затрат, то советую воспользоваться этой технологией полностью или частично.
************
Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2015 CONNECTION 15-17 октября 2015 года
Приглашаем вас на новую конференцию INFOSTART EVENT 2019 INCEPTION.