Автоматизация от А до Я. Практика применения языка ДРАКОН




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

98 Comments

  1. AlexWhite

    Статья интересная, но остались вопросы.

    1) Код пишется в конфигураторе, потом копированием переносится в схему. Какой в этом бизнес-смысл?

    2) Произошло изменение в схеме, как оно отразится на изменении кода в конфигураторе?

    3) Чем эти схемы лучше аналогичных многим известных диаграмм?

    Reply
  2. vec435

    Даешь дракон-схема! Даешь импортозамещение IDEFаф, ARISам!

    Reply
  3. palsergeich

    На сколько я помню использование GoTo является моветоном. Слабо себе представляю поддержку модуля хотя бы на пару тысяч строк, который весь покрыт GoTO.

    Reply
  4. IgorS

    Когда докладчик начинает презентацию со слайда, на котором написано «Объединяет специалистов из различных специалистов для решения «пограничных задач», то с уровнем его подготовки всё понятно.

    Reply
  5. KurganPX

    Все здорово, но «Перейти» ….

    Reply
  6. borodatii

    Так этот ДРАКОН — конструктор блок-схем? А в чём его преимущество по сравнению с другими аналогичным ПП? Хранение кода в элементах схемы и его автоматическая сборка в один модуль? А если нужно часть процедурфункций поместить в общий модуль? Несколько взаимосвязанных модулей форм?

    Reply
  7. Геннадий Тышов

    (6) borodatii, Программа ИС Дракон предназначена для общего применения, не является специальной для 1С. Возможность совместного применения с 1С зависит от степени освоения и наработки личной практики.

    Материалы для пользователей 1С подготовленный в ИС Дракон хорошо принимаются пользователями.

    Reply
  8. borodatii

    (7) dragonedit, мой вопрос не был связан с 1С, хоть так и выглядит отчасти.

    Reply
  9. СергейК

    Спасибо автору за пример применения языка Дракон.

    Для, тех, кто не знаком с Драконом, на мой взгляд необходимо сначала хотя бы пролистать книгу автора языка Паронджанова В.Д. «Дружелюбные алгоритмы…». После этого только можно идти дальше…

    А сам пытаюсь (заставляю себя) описывать на нем логику разрабатываемого ПО.

    Пока получается плохо из-за лени, и в т.ч. явной не очевидности данного процесса составления описания программы.

    Т.е. пока ведешь разработку ты и так все помнишь и схема не нужна. А вот через 3-6-12 мес. когда (если)

    буду дорабатывать свой же код, была бы очень полезна освежить память.

    Но я не стремлюсь зайти так глубоко, как автор статьи. Считаю пока для себя достаточным делать функциональное описание программы, что бы был понятен смысл кода, процедур и их общая взаимосвязь.

    Reply
  10. starik-2005

    (10) dragonedit, оператор безусловного перехода имеет смысл только тогда, когда нет другого решения. Да, моветоном он не является, но если есть простое иное решение — то однозначно моветон. Я за 20 лет ни разу не употреблял оператор безусловного перехода. Даже на ассемблере пришлось его употреблять только при выходе из блока аля CASE. Если кто-то приведет пример, где данный оператор будет уместен — буду рад.

    Reply
  11. caponid

    (11) starik-2005,

    Если кто-то приведет пример, где данный оператор будет уместен — буду рад

    В тексте Выполнить() гораздо проще использовать оператор Перейти для перехода в конец блока, чем городить многоуровневые условия.

    Reply
  12. cool.vlad4

    (10) dragonedit, goto однозначно моветон в языках высокого уровня(потому что это компьютеру начихать на эти goto, он миллион раз сделает goto и ничего ему не будет, а человек после 10 перехода при чтении программы ошизеет, особенно если код не он писал), поскольку убивает читаемость. сравнивать 1С и ассемблер, ну это круто, че. и это не его кое как учили(я бы как кстати не писал бы в подобном тоне , если бы не хамское «кое как учили»), это подобные комментарии (ниже), вызывают недоумение

    Зададимся вопросом — что главное в программе? Главным является полный комментарий, программный код может содержать ошибки, но они исправляются при отладке, выявляются при эксплуатации. При отсутствии же полного комментария и при изменении требований к программе, программу придется выкинуть и писать вновь.

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

    Reply
  13. Геннадий Тышов

    (12) caponid, Отвлечемся от Дракона.

    Строго структурированный текст смотрится, как лунная поверхность с глубокими кратерами. В нем уровень вложенности может быть большим, строка оператора «Если» оторвана от строки «КонецЕсли» так далеко, что надо прокручивать текст и связи между ними совсем не видно.

    При ограниченном использовании операторов Перейти, Продолжить, Прервать, Возврат уровень вложенности в тексте значительно уменьшается. Смотрите http://forum.oberoncore.ru/viewtopic.php?p=35027#p35027.

    Вернемся к Дракону.

    Программист сам не пишет Goto. Он создает Дракон-схему (блок-схему) с иконами (элементами). Икона содержит несколько полей для различных комментариев и поле программного кода. Программный код модуля формируется путем сборки программного кода из икон и помещается программистом в конфигуратор. В программном коде уровень вложенности нет вложенности сведен до минимума.

    Reply
  14. cool.vlad4

    (14) dragonedit,

    Программист сам не пишет Goto.

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

    Reply
  15. Геннадий Тышов

    (15) cool.vlad4, Выбор и освоение инструмента зависит от Вас.

    Если нет инструмента, то это самое простое решение,

    ИС Дракон можно скачать — https://cloud.mail.ru/public/ecbde70c784a/%D0%98%D0%A1%20%D0%94%D1%80%D0%B0%D0%­BA%D0%BE%D0%BD

    Reply
  16. Геннадий Тышов

    (15) cool.vlad4,

    Дракон ведь не только средство программирования. Это еще универсальное средство общения.

    Если вы в Драконе напишите программу, то можете показать ее заказчику, пользователю или начальнику, которые не понимают язык программирования, но они поймут как Ваша программа работает, почему она такая, как ее пользоваться — они все это увидят в Ваших блок-схемах.

    Как результат — к Вам не будет вопросов.

    Потом заказчик, пользователь или начальник будут обращаться к Вам уже с готовой Дракон-схемой — сделай пожалуйста. Вы же просто в нее впишите программный код.

    Reply
  17. cool.vlad4

    (17) dragonedit, с этой точки зрения вполне, возможно, что подобный инструмент нужен. mindmap + код. с другой стороны в самой 1С можно сделать подобное, привязав к графической схеме возможность ввода кода в виде текста.

    Reply
  18. palsergeich

    Но, есть VISIO и куча других программных продуктов, как платных так и нет, которые умеют делать понятные блок схемы, которые не стыдно показать заказчику, даже встроенный конструктор бизнес процессов в 1с может это сделать.

    Да, решение необычное, но вы никогда не пройдете 1С совместимо с данным кодом, пока генерация идет через GoTo. А зачем делать то, что в широкой массе не оценится и явно не будет плюсом к резюме.

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

    Проблема с избыточностью условных операторов можно и нужно решать переосмыслением архитектуры.

    Это мне напоминает один старый случай — один маленький но гордый украинский франч прокачал бухию еще на 7.7 и хранил кеш данных всей базы на локальном диске в виде DBF файла, и продавал данное изделие клиентам, можно так сделать — да запросто, но стоимость поддержки была в 5 раз выше.

    В тех же названиях процедур и функций можно перейти к определению по F12, в GoTo как минимум еще 3 лишних движения в конфигураторе, пока нет EDT.

    А самый сок, это когда вашу команду по тем или иным причинам отстранят от проекта и другой исполнитель будет явно недоволен.

    Reply
  19. Геннадий Тышов

    (19) palsergeich,

    Но, есть VISIO и куча других программных продуктов, как платных так и нет, которые умеют делать понятные блок схемы, которые не стыдно показать заказчику, даже встроенный конструктор бизнес процессов в 1с может это сделать.

    Буду краток. Ориентированных на язык Дракон — нет. С такой функциональность как в ИС Дракон — нет. Все другие, в т.ч. VISIO, служат для рисования одного конечного варианта, т.е. они не рассчитаны для разработки и отладки алгоритма с отображением на всех этапах в блок-схемах, В Драконе все схемы взаимосвязаны. В ИС Дракон разработка алгоритма в виде блок-схем может производиться одновременно с разработкой программного кода. Предусмотрены средства трассировки при выполнении.

    А самый сок, это когда вашу команду по тем или иным причинам отстранят от проекта и другой исполнитель будет явно недоволен.

    Все должны уметь пользоваться ИС Дракон, при разработке должно быть обязательно использование ИС Дракон.

    Тогда не будут возникать проблемы при смене программистов или увольнении.

    Reply
  20. flex81

    (1) AlexWhite,

    1) Код пишется в конфигураторе, потом копированием переносится в схему. Какой в этом бизнес-смысл?

    Из практики: в конфигураторе я пишу куски и фрагменты, часто не связанные с собой. Например отлаживаю запросы и т.д.. В дракон-схеме, уже собираю их в нужный нам бизнес-функционал. 🙂 В финале у меня код в конфигураторе и код в дракон-схеме идентичен.

    2) Произошло изменение в схеме, как оно отразится на изменении кода в конфигураторе?

    Никак, пока мы не скопируем весь текст целиком в модуль конфигуратора из схемы.

    Прямой взаимосвязи нет между ИС Дракон и Конфигуратором.

    3) Чем эти схемы лучше аналогичных многим известных диаграмм?

    Дракон лучше воспринимается, меньше объектов, он генерит код для 1С — тоесть пригоден для программирования.

    Конечно каждый сам выбирает для себя инструменты для решения поставленных задач. Я просто рассказал про свой. 🙂

    Reply
  21. flex81

    (19) palsergeich,

    Я работаю на внутренних проектах Газпрома. Уж так сложилось. Координирую работу разных подрядчиков — и когда доходит дело до реальных задач, не было случая чтобы подрядчики что то не поняли или были не довольны кодом или бизнес-логикой в представлении дракон-схем. Чаще наоборот. Удается двигать даже очень «застарелые» задачи. 🙂

    Что касается 1С совместимо. Это стандарт, а если он мешает продуктивной работе — то его надо менять. Для моего руководства важен результат. 🙂

    Reply
  22. flex81

    (13) cool.vlad4,

    Читать код без его дракон-схемы сложно но можно. Но обычно, все дракон-схемы есть. В дракон-схемах GoTo нету — и понимание кода повышается в разы. 🙂

    Reply
  23. AlexWhite

    (10) dragonedit,

    Главным является полный комментарий

    — а что вкладывается в понятие «полный комментарий»?

    В ИС Дракон разработка алгоритма в виде блок-схем может производиться одновременно с разработкой программного кода

    — какой, все-таки, в этом бизнес смысл? Насколько я понял, изменение блок-схемы ни как не влияет на изменение модулей программы? То есть, выбран просто еще один инструмент для графического представления бизнес-процессов, с добавлением интерактивности?

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

    Reply
  24. flex81

    (6) borodatii,

    Конечно в презентации показан пример создания одной кнопки. Реальный проект состоит из большого количества дракон-схем. Обычно в дракон-схеме я указываю где этот код находиться, в каком объекте метаданных он расположен.

    Reply
  25. flex81

    (24) AlexWhite,

    Изменение блок-схемы изменяет код, который генерит транслятор в итоге. Просто вы его вручную копируите в конфигуратор.

    Чем лучше 1С:СППР? Не знаю. Не могу сравнить. 1С:СППР может переносить свой код в Конфигуратор — ну хорошо, еще один инструмент. Лучше когда их много, чем ни одного. 🙂

    ИС Дракон закрывает в этом плане все мои потребности от документации до кода. Встречу хороший мануал по 1С:СППР — можно будет попробовать сравнить.

    Reply
  26. flex81

    (24) AlexWhite,

    Полный комментарий…

    Думаю каждый хочет понять логику разработки когда читает комментарий в коде? 🙂 Когда есть дракон-схема к коду — логику разработки видно сразу. Комментарий — штука вспомогательная.

    Reply
  27. flex81

    (5) KurganPX,

    Еще раз повторюсь. Если есть дракон-схема к коду — то читают ее, а там видно наглядно что и как делает код. Без «Перейти». Не надо ломать голову, куда этот переход ведет.

    Reply
  28. AlexWhite

    (21)

    В финале у меня код в конфигураторе и код в дракон-схеме идентичен.

    — до момента, пока вы поменяете код в конфигураторе. При отсутствии связи с дракон-схемой вам надо постоянно помнить, поменяли код в конфигураторе — надо актуализировать код в дракон-схеме (и обратно). Думаю, это совершенно лишний процесс, добавленная сложность в виде нового инструмента в дополнение к конфигуратору ни как не влияющая на работоспособность и качество кода. Или у вас при моделировании создается действующий программный код, который остается скопировать в конфигуратор? Как в этом случае определить, в какое место в конфигураторе этот код вставить?

    он генерит код для 1С — тоесть пригоден для программирования.

    — а можно тут увидеть пример, какой код генерится и насколько он пригоден в конфигураторе?

    Reply
  29. flex81

    (29) AlexWhite,

    да генериться код… 🙂 Да вы код вставляите в конфигуратор.

    Reply
  30. flex81

    (29) AlexWhite,

    Код представлен на слайде в моей статье и на презентации. Сообщите, я пришлю вам пример на почту. Сможем обсудить.

    Reply
  31. flex81

    (29) AlexWhite,

    Место — куда код вставляется, я пишу в дракон-схеме, удобным для себя образом. И этот код вставляю туда.

    Reply
  32. flex81

    (4) IgorS,

    Кто ничего не делает, тот не ошибается.

    Reply
  33. flex81

    (6) borodatii,

    В программе работает интерактивный переход между схемами. Так осуществляется связь. 🙂

    Reply
  34. AlexWhite

    (27)

    Думаю каждый хочет понять логику разработки когда читает комментарий в коде?

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

    1С:СППР может переносить свой код в Конфигуратор

    — сомневаюсь. Вообще, я сторонник использования инструментов по прямому назначению. Для кода — конфигуратор, для описания бизнес-требований — система управления требованиями. За почти 25 лет моего опыта программирования и управления программными проектами мне ни разу не удалось графическое моделирование поставить на службу программированию. Причины:

    1. Рубеж «аналитик vs заказчик»: аналитик, договаривается с клиентом — «так должно быть?» клиент соглашается, но не может проверить, какой результат будет получен в итоге?

    2. Рубеж «аналитик vs разработчик»: аналогично. Потом тяжба — «ну, я сделал, как на схеме»/»нет, на схеме заявка слева, а у тебя вверху»/»заявка слева платформой не поддерживается» и т.д.

    То есть, графические схемы годятся для визуализации какой-то, достаточно малой части проекта и, по-моему, добавляют сложность на том этапе, где используются. Недавно встречал формулировку «доработать, согласно описанию бизнес-процесса», а это описание выполнено в схеме — как по ней вообще можно программировать, мне не понятно. Схема годится для выявления пользователей, которым нужно задать правильные вопросы и выявить первичные требования в «поведенческой» терминологии. А для этого гораздо больше подходит Gherkin, чем любой другой инструмент графического моделирования 🙂

    Reply
  35. AlexWhite

    В любом случае, за доклад, статью и пояснения спасибо! Вашу бы энергию, да в правильное русло! 🙂

    Reply
  36. KurganPX

    По поводу внутренних проектов газмяса, видели — знаем, не удачный пример.

    Есть такие понятия как сложности потока управления программы, советую почитать про граф управления и почему о нем надо знать программистам.

    Притенении к Дракону (в аспекте 1С):

    Неконтролируемый рост сложности потока управления: возможность возникновения паразитных переменных используемых в отдельных блоках, неконтролируемая информационная сложность кода и как следствие — неожиданные результаты связанные с производительностью + полное отсутствие понимания внутренних процессов, таких как управление блокировками и так далее.

    Даже напрягаться не надо, чтобы написать «программу» которая будет отвечать всем критериям дракона, быть красивой и интересной, но вешающей машину, на которой она будет выполняться.

    Притенении к автору:

    Человек использующий go to в 1С, как в процедурном языке сразу перечеркивает любые доводы о профессионализме.

    Но даже без учета написанного ранее: если вы говорите о том, что код с подобными конструкциями появляется автоматически, то будте любезны опишите процесс обратного построения схемы драконовской по сгенерированному им же коду. А то как понять, соответствует ли код схеме, а если схемы две, использующие пересекающиеся блоки, они-то корректно реализованы?А если вдруг надо внести правки в пересекающиеся блоки, а там go to?

    Извините, слишком высокие накладные расходы, касательно 1С.

    Reply
  37. Геннадий Тышов

    (35) AlexWhite,

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

    Использование Дракон-схем зависит от назначения схемы и уровня детализации. Назначением схемы может быть ТЗ, инструкция пользователю и алгоритм программы (модуля).

    Использование ИС Дракон позволяет выполнять преобразование схем — выполнять декомпозицию, т.е. выполнять разделение на более мелкие. составные части.

    AlexWhite, встреченная Вами формулировка вполне может быть отправной позицией для доработки.

    Reply
  38. flex81

    (35) AlexWhite,

    1. Заказчик хочет выполнения бизнес-процесса с наименьшими усилиями. Если полученный в итоге процесс это обеспечивает — то все довольны. Дракон-схемы в итоге сводят все к «Инструкции пользователя» — то есть, скажем бухгалтера, чем меньше усилий занимает то или иное действие — при нужном результате, тем лучше. Аналитик — человек который должен придумать этот процесс и убедить или доказать это Заказчику. Мне это удается с помощью Дракона.

    2. Если написанный функционал разработчиками — не выполняет дракон-схему «Инструкция пользователя» — то он не годиться. Тут тоже все просто. И проверено на практике.

    Опять скажу, на практике проблемы встают в общем одинаковые у всех разрабов, на каком бы проекте они не работали и сколько бы они не занимались этим по времени. Просто я эти проблемы решаю дракон-схемами, и это работает. 🙂

    Reply
  39. flex81

    (37) KurganPX,

    Дракон — помогает программисту, но не заменяет его. Если вы об этом. И у Дракона нет критериев — он описывает логику — это язык. А на языке можно ругаться а можно стихи писать. 🙂

    Изначально код копируют из дракон-схемы в Конфигуратор, поэтому проверять соответствие не имеет смысла. Источник то дракон-схема и ее траслятор. Если вы пишите в конфигураторе и этот код в дракон-схеме не отражаете, то это на ваш страх и риск.

    Как собрать код, если нет дракон-схем? По коментариям из схемы — они там подробные… .

    А если я разбираю стандартный код в дракон-схему, а делаю я это часто, т.к. надо понять, что же там до меня написано. Разработчик не доступен, а его код надо разобрать. Тогда я трассирую и составляю дракон-схему с переносом кода. Вот и все. К концу трассировки становиться понятна логика, ошибки, и способы решения, локализованы вопросные моменты, связи между процедурами и метаданными… . В общем действенный способ.

    Про goto писать не буду — мне оно не мешает. 🙂

    Reply
  40. KurganPX

    (40)

    Очень печально, что вы не прочитали то, что я написал.

    Тогда ответьте на вопрос хотя бы: что делать если в модуле пересекаются две дракон-схемы?

    Reply
  41. flex81

    (41) KurganPX,

    Такого не бывает. На то она и логика разработки без пересечений и повторений.

    Бывает переход из разных дракон-схем в одну. Типа как общая функция или процедура.)

    Reply
  42. Геннадий Тышов

    (37) KurganPX,

    как следствие — неожиданные результаты связанные с производительностью + полное отсутствие понимания внутренних процессов, таких как управление блокировками и так далее.

    Ваша Дракон-схема должна отображать Ваши знания о «понимания внутренних процессов, таких как управление блокировками и так далее». Если знаний нет, то никакая ИС Дракон не поможет, ИС Дракон нужна для визуализации Ваших решений.

    Человек использующий go to в 1С, как в процедурном языке сразу перечеркивает любые доводы о профессионализме.

    При обсуждении Дракона на форуме http://www.mista.ru был такой встречный вопрос: «Что вы скажите о шахматисте который не играет конем?».

    будте любезны опишите процесс обратного построения схемы драконовской по сгенерированному им же коду.

    Для чего это нужно?

    Я гарантирую соответствие собранного (сгенерированного) программного кода Дракон-схеме и содержащему в ней написанному Вами коду.

    Если есть сомнения, тогда проверьте, при наличии навыков программировать это не потребует много труда.

    Reply
  43. Геннадий Тышов

    (41) KurganPX,

    что делать если в модуле пересекаются две дракон-схемы?

    Не понял Вас. Две Дракон-схемы — это не две линии которые пересекаются.

    Возможно, Вы имени ввиду Дракон-схему, отображающую процедуру, которая вызывается из разных мест. Тогда никаких проблем не возникнет, как и при любом использовании процедуры.

    Reply
  44. KurganPX

    (42) dragonedit,

    Поговорки отношения к программированию не имеют, простите.

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

    Для того, чтобы внести изменения в функционал мне необходимо используя комментарии собрать схему, переформатировать её потом опять сгенерировать и тестировать не конкретные изменения в конкретном блоке, а всю схему целиком, так? не слишком ли дорого?

    (43)

    То есть. для верификации программы первоначальной схемой все модули участвующие в схеме надо дублировать для каждой новой схемы, так? Или изменения в этих модулях не влекут изменения функциональности схем? Как решаются конфликты в смежном коде?

    Reply
  45. KurganPX

    (44) dragonedit,

    Ещё раз, код двух схем пересекаться не может?

    Если я не могу описать информационную систему схемой целиком, а для, например, бухгалтерии предприятия это справедливо, то использовать один и тот же документ в двух разных схемах я не могу? А модуль, могу или нет?

    Reply
  46. Геннадий Тышов

    (46) KurganPX,

    Ещё раз, код двух схем пересекаться не может?

    Не может.

    Что страхов не было, надо перейти к освоению и наработке опыта, перешагните начального освоения.

    Reply
  47. flex81

    (45) KurganPX,

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

    Про пересечения — документы и модули можете конечно использовать сколько хотите, но в схеме вы указываете ссылку на этот документ или код. Которая и приводит вас к одной схеме. Без дублирования и повторений.

    Reply
  48. Геннадий Тышов

    (45) KurganPX,

    то есть ни о каком развитии системы, ветвлении версий, слияния версий и так далее речи вообще не идет.

    Есть средства копирования и вставки Дракон-схем между различными Дракон-листами. Для сравнения версий Дракон-листа, предусмотрено формирование для версии листинга (текстового файла), а потом сравнивайте листинги средствами 1С.

    Reply
  49. flex81

    (49) dragonedit,

    В общем стандартный подход… Сравнить объединить… 🙂

    Reply
  50. palsergeich

    (22) В составе какой структуры ОАО Газпром? Там их просто нереальная куча. Я в свое время немало поработал как и в свечке, так и в разношерстных дочках, везде порядки разные. Где то важен результат, где то исполнение.

    В свое время я в составе никому неизвестного франча, который нанял более крупный франч, копался в конфе синхронизации контрагентов от Акселота, для того же Газпрома, которая до этого пережила только одно внедрение и из коробки не работала.

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

    Мое мнение достаточно компетентно?

    Дракон в нынешнем виде не является серебряной пулей, да, интересно, но не более, возможно выльется и во что то большее. Но как быть с модной асинхронностью? Много комментариев тоже плохо.

    Мне например проще, и я успешно это делаю, раскопать код по стеку, быстро передвигаться по F12 к определениям. Комментарии да, интересно, но при таком обилии мусорного текста проще алгоритм понять без комментариев. Вот например что значит строчка //***********Шампур? Зачем мне знать емейлы разработчиков, к тому времени как я туда полезу этих людей по этим емейлам возможно не будет. Абсолютные пути в комменнтариях, а если будет переезд всего и вся на другой диск, а то и на другой сервер?

    Конечно я понимаю, что вы болеете за свое детище, но поймите правильно, если я, при всей наглядности языка ДРАКОН, сгенерирую данный код, меня в этот же день выгонят, потому что времени осваивать данный механизм всем остальным разработчикам нет, это неоправданные расходы как на обучение так и на поддержку, а потом вы проект свернете, по тем или иным причинам,и что делать с текущими наработками?

    Что касается 1С совместимо. Это стандарт, а если он мешает продуктивной работе — то его надо менять. Для моего руководства важен результат. 🙂

    Задели за больное, а мы потом после одного такого продуктивного ..овнокод уже 6 месяц разгребаем. Да написано быстро, хорошо, но любое изменение требует перекопки просто всего ранее им же написаного, потому что для скорости и результата все сделано на костылях и граблях, строго в рамках решаемой задачи на текущий момент, механизм расширения функционала даже не предусматривался. Для того и введены стандарты что бы разработка была гибкой и поддерживаемой, а не сдавать механизм за механизмом, которые потом поддерживать сложнее, чем написать с нуля, перенести данные и снова сдать заказчику.

    Reply
  51. Геннадий Тышов

    (51) palsergeich,

    видел блок схемы во всю стену(более 30 метров), по одному бизнес процессу, и ничего, все у них получалось .

    Это уникальное произведение, навряд ли оно хранится в электронном виде и можно напечатать еще экземпляр. Изменения в него вносятся путем аппликаций, наклеиванием новых кусков.

    В ИС Драконе проект разбит на файлы Дракон-листов, изменения вносятся выполнением стандартных операций — создать, копировать, вырезать, вставить, заменить, переместить. Операции выполняются над графическими объектами.

    Много комментариев тоже плохо.

    Мне например проще, и я успешно это делаю, раскопать код по стеку, быстро передвигаться по F12 к определениям. Комментарии да, интересно, но при таком обилии мусорного текста проще алгоритм понять без комментариев.

    Комментариев не много, есть поля для заполнения, заполнение всех не обязательно. Поле видимого текста иконы — для описания назначения иконы в терминах проблемной области, невидимое поле программного кода. Остальные поля не являются обязательными. Видимое поле описания для бизнес процессов — исполнитель. Невидимые поля произвольного назначения: А-, Б-текст. — к примеру сюда пользователь или постановщик могут поместить свои замечания к программисту, программист может помещать обоснования и соображения.

    Задели за больное, а мы потом после одного такого продуктивного ..овнокод уже 6 месяц разгребаем.

    Сделавшему человеку, надо сказать спасибо, он вчера сделал необходимое и это позволило безболезненно всем перейти в сегодняшний день.

    При выполнении этой работы в ИС Дракон сегодня имели бы полностью комментированные, визуальные и обозримые Дракон-схемы для дальнейшего развития.

    Reply
  52. palsergeich

    (52) Я то только за и более того согласен.

    Надеюсь на дальнейшее развитие, и удачи Вам в Ваших начинаниях. Более того я давненько уже посматриваю за ДРАКОНом.

    При обсуждении Дракона на форуме http://www.mista.ru был такой встречный вопрос: «Что вы скажите о шахматисте который не играет конем?».

    В моем понимании GoTo это вырубить оппонента с вертушки и переставить фигуры на доске в нужном себе порядке)

    Reply
  53. Геннадий Тышов

    http://event.infostart.ru/2015/agenda/agenda.php#item373054

    О докладе при заявке на конференцию:

    Применение языка ДРАКОН и программы «ИС Дракон» на проекте внедрения 1С.

    1. Как выбрать оптимальную конфигурацию 1С для приобретения?

    2. Как сформировать техническое задание для «реальных» процессов компании?

    3. Как получить то, что заказывали, от программистов?

    4. Как обучить сотрудников, «старичков» и быстро «запустить» «новичков»?

    5. Как сэкономить на обслуживании и доработке?

    6. Как не попасть в «зависимость» от программистов?

    P.S: Все примеры рассмотрим на реальном проекте.
    Reply
  54. Геннадий Тышов

    О методике Scrum

    Основатель методики Scrum Джефф Сазерленд 21 апреля 2016г. в 22:54 рассказывает

    https://roem.ru/21-04-2016/222932/loss-is-a-crime/

    Использование ИС Дракон позволяет работать по Scrum.

    В частности: всегда видеть, выделить и заняться одной проблемой из всего множества:

    Многозадачность отупляет.

    Если делать одновременно несколько дел, получится и медленно, и плохо. Не поступайте так.

    Если вы считаете, что вас это не касается, то вы ошибаетесь — это относится и к вам.
    Reply
  55. Геннадий Тышов

    http://infostart.ru/public/19635/

    «1С + Дракон?» — обсуждение ИС Дракон в 2009 году

    Reply
  56. andreymongol82

    Есть уже давно такой язык как UML. И куча сред для него. в том числе и с генерацией объектной модели. Не вижу особых преимуществ, если честно.

    Reply
  57. fzt

    Где скачать? Где кряк? =)

    Reply
  58. flex81

    (58) fzt,

    Кряка нет. 🙂 Стоит не дорого (Этож не среда для UML). Ставить и работать можно сразу — есть период ознакомления. Ключ покупается пожизненный.

    Скачать можно отсюда: https://cloud.mail.ru/public/ecbde70c784a/%D0%98%D0%A1%20%D0%94%D1%80%D0%B0%D0%­BA%D0%BE%D0%BD

    Reply
  59. flex81

    (51) palsergeich,

    А сколько ..внокода я из 1С совместимо вытащил… . Просто Дракон не мешает вам писать по 1С совместимо, кроме Goto.

    Reply
  60. flex81

    (51) palsergeich,

    Мне например проще, и я успешно это делаю, раскопать код по стеку, быстро передвигаться по F12 к определениям. Комментарии да, интересно, но при таком обилии мусорного текста проще алгоритм понять без комментариев. Вот например что значит строчка //***********Шампур? Зачем мне знать емейлы разработчиков, к тому времени как я туда полезу этих людей по этим емейлам возможно не будет.

    Может случиться все что угодно… Но если проект делался правильно, у Заказчика должна остаться документация, то есть искомые дракон-схемы. У нас в сейфе на флешке с журналом с ответсвенными МОЛ. Тут все зависит от подхода. Тоже самое с абсолютными путями. Где хранить файлы — это уже другая история.

    Reply
  61. flex81

    (51) palsergeich,

    Мне например проще, и я успешно это делаю, раскопать код по стеку, быстро передвигаться по F12 к определениям. Комментарии да, интересно, но при таком обилии мусорного текста проще алгоритм понять без комментариев. Вот например что значит строчка //***********Шампур? Зачем мне знать емейлы разработчиков, к тому времени как я туда полезу этих людей по этим емейлам возможно не будет.

    Даже если вы решите внедрить не 1с а принципиально другое решение, дракон-схемы с бизнес-процессами у вас есть — уже готовые задания для разработчиков. Какая экономия средств и времени?

    Один раз вы код раскопали по стеку, второй, после вас придет еще один «копатель»… а бюджет проекта не резиновый… . А я взял дракон-схему и вижу общую картину сразу, и другому передать могу, поправить могу более корректно, перестроить могу… все могу гораздо быстрей, потому что я и так вижу что хотел заказчик и как построен алгоритм и какие метаданные участвуют в работе.

    Шампур — означает начало отдельной ветки в схеме «Силует».

    Спасибо на добром слове и за обратную связь. 🙂

    Reply
  62. Steelvan

    И как уже было много сказано :

    -ДЕРЕВО

    ДЕРЕВО

    ДЕРЕВО

    +ДЕРЕВО

    Без дерева вложенных диаграмм печаль это хранить в каждом файле на диске.

    Очень надеюсь, что уважаемый Геннадий меня услышит и реализует.

    Reply
  63. Геннадий Тышов

    (63) Steelvan,

    Я. знаю и помню Ваше желание видеть ДЕРЕВО.

    Программа развивается и возможно будет ДЕРЕВО.

    Сейчас же программа пригодна для практического применения.

    Приходится выбирать: использовать сейчас или подождать, когда будет все желаемое.

    В первом варианте, уже сейчас будет нарабатываться ваш опыт и опыт вашего окружения.

    Reply
  64. flex81

    (63) Steelvan,

    Да дерево хорошо. И дерево, надеюсь, будет.

    Но и сейчас через «Файл-открыть папку» открываются все файлы в папке. То есть — храня файлы схем проекта в структуре папок файловой системы эта проблема частично снимается. Всегото и надо организовать папки на диске по отдельному проекту. Переключение между листами тоже худо бедно реализовано. 🙂

    Reply
  65. kote

    Всё это очень хорошо — и даже goto не пугает — при условии, что в 1С будет встроен редактор этих Дракон-схем..

    В противном случае (не обозревая схемы) — в этих goto быстро утонешь и скорость разработки характерная для 1С сойдёт на нет..

    Второй вопрос — как эти схемы версионировать и, особенно, удобно сравнивать версии в истории изменений?

    Жизнь, все же, показала, что лучше текстовых форматов пока ничего нет..

    Надеюсь, даже, что управляемые формы скоро можно будет текстом писать — как HTML — и даже генерировать.. но это я, что-то, отвлёкся…

    В общем, пока, по моему скромному, место Дракон-схем — разве что в документах по проекту — и то, если они действительно так понятны заказчикам..

    Рисовать схемы и потом кодировать.. нет — быстрее, сразу кодировать.. а рисовать — вот разве что заказчику на подпись.

    Reply
  66. Геннадий Тышов

    (66) kote,

    Рисовать схемы и потом кодировать.. нет — быстрее, сразу кодировать.. а рисовать — вот разве что заказчику на подпись.

    Правильно будет так:

    сначала разработать алгоритм в ИС Дракон, потом там же выполнить кодирование.

    Reply
  67. starik-2005

    (67) Геннадий Тышов, тогда уж лучше в ARIS, чтобы эпичнее было и методологичнее.

    Reply
  68. starik-2005

    (12) caponid, не вижу примера. Вот есть, допустим, что-то типа: результат = запрос.выполнить(). Дальше у нас проверка результата на пустое место и тут, как я понял, Вы предлагаете какое-то «гоу ту» в конец обработки результата. Или я неверно Вас понял? Минус «гоу ту» тут очевиден — также нужно смотреть, где метка. Если она одна — полбеды, а если их понатыкано полным полно? С другой стороны, условия надо выделять отступами, тогда вложенность будет вполне обозначима и доступна для понимания. Более того, если в программе множественные ветвления, то, исходя из «тру» методологии (например, Макконнелл, «Совершенный код»), необходимо работать над структурой программы, выделяя часть кода в процедуры и функции. Т.е. понижать общую сложность кода. «Гоу ту» сложность кода не повышает, конечно, но из-за отсутствия отступов весьма проигрывает в читаемости перед if/while/for.

    Reply
  69. Геннадий Тышов

    (68) starik-2005,

    тогда уж лучше в ARIS, чтобы эпичнее было и методологичнее.

    В ARIS имеется объединение блок-схем с программным кодом?

    Если нет, тогда не лучше!.

    Reply
  70. Геннадий Тышов

    (69) starik-2005,

    Минус «гоу ту» тут очевиден — также нужно смотреть, где метка.

    В программном коде, собранном в ИС Дракон, не нужно смотреть Goto и метки — смотрите Дракон-схемы.

    необходимо работать над структурой программы, выделяя часть кода в процедуры и функции.

    Так же поступайте и при использовании ИС Дракон.

    Reply
  71. starik-2005

    (70) Геннадий Тышов, есть. Там даже скрипты есть, чтобы схемы плодить и размножать. Т.е. как от схемы можно создать код или его прототип, так и обратно — скриптом можно сгенерировать схему.

    Reply
  72. Геннадий Тышов

    (72) starik-2005,

    ARIS и ИС Дракон имеют различные назначение и функциональность. Выбирайте.

    В докладе хорошо показана технология использования ИС Дракон.

    Там даже скрипты есть, чтобы схемы плодить и размножать. Т.е. как от схемы можно создать код или его прототип, так и обратно — скриптом можно сгенерировать схему.

    Необходимости в скриптах нет.

    ИС Дракон настраивается для программирования на различные языки, в т.ч. на JavaScript.

    Reply
  73. webester

    Задумка, забавная мягко говоря. Если говорить прямо — вполне себе веселая, я люблю такие штуки, но использовать можно, строго для документации. А если вдруг программисту у которого нет под рукой этих самых схем, или нет возможности их посмотреть, надо будет поправить логику серьезного приложения в нескольких местах? Вы будете отвечать за его психику? Я бы не хотел с ним встречаться после такого. Порадовала фраза, что качество кода неважно, важно комментирование. А тут везде гуру говорят, что качественный код комментировать не надо, он сам по себе читается хорошо.

    Reply
  74. Геннадий Тышов

    (74) webester,

    Многое зависит от организации личной работы, от готовности работать с заказчиком и пользователем, от ориентации на качество и на перспективу дальнейшего развития программного продукта.

    Reply
  75. webester

    (75)Если проект будет чуть сложнее чем на 200, то код без этих схем становится не читаемым, чуть более, чем полностью и если вдруг этот дракон никому кроме тебя не окажется нужным, то обратно уже никак. Переписать в удобоваримый вид? Проще написать заново. Ты хочешь потом продать результат своей работы, еще кому нибудь? Не выйдет. Учить работать со схемами дракон будущих покупателей — это надо отдельную линию техподдержки заводить.

    Reply
  76. Геннадий Тышов

    (76) webester,

    если вдруг этот дракон никому кроме тебя не окажется нужным, то обратно уже никак.

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

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

    Учить работать со схемами дракон будущих покупателей — это надо отдельную линию техподдержки заводить.

    Пользоваться для просмотра Ваших Дракон-схем не сложнее Блокнота. Стандартная операция, в меню пункт «Файл/Открыть лист».

    «отдельную линию техподдержки» заводить не надо, в программе есть пункт меню «Справка/Письмо автору», есть пункт «Справка/Получить обновление».

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

    Автор статьи выбрал для 1С реальный инструмент, предложил работоспособную и прогрессивную технологию.

    Reply
  77. webester

    (77)Обратите внимание, я не в одном месте не обсуждал функционал. Он может и хорош и пользоваться им просто. Но код читать без него никак. А это настораживает. Хотя штука довольно интересная. Это как заменить ноги электропротезами, не устают, бегают быстрее и тд но обратно уже никак!

    Reply
  78. Геннадий Тышов
    Reply
  79. flex81

    (78) webester,

    Да все нормально. Три года уже код пишу в Драконе — и туда и обратно можно все делать. Немного практики и все.

    Reply
  80. Геннадий Тышов

    (78) webester,

    Но код читать без него никак. А это настораживает.

    О практике программирования рассказано — http://forum.easyelectronics.ru/viewtopic.php?p=327540#p327540

    Комментарии Владимира Паронджанова
    Reply
  81. fzt

    (80) есть какая-то внешняя обработка посмотреть?

    Reply
  82. flex81

    (82) fzt,

    Посмотреть код? Как работать? 🙂 Уточните вопрос пожалуйста.

    Есть публикация с прошлого места работы.

    Выкладывал для примера. http://infostart.ru/public/311020/

    Или более большая работа, с доработкой закрытия месяца: http://infostart.ru/public/310271/

    Если это не пойдет, дайте знать, пороюсь в архивах. Найду свежую внешку. 🙂

    Reply
  83. caponid

    (72) starik-2005,

    caponid, не вижу примера. Вот есть, допустим, что-то типа: результат = запрос.выполнить().

    хм, по моему я уже описывал довольно простой и понятный пример, но если Вам нужен код.. ))

    итак, есть глобальная функция Выполнить(Текст), ей передается аргументом код текстом..

    вот сам текст…

    Если Ссылка.Пустая() Тогда Перейти ~Конец; КонецЕсли;
    // тут отрабатываем ссылку если не пустая
    
    Если Ссылка2.Пустая() Тогда Перейти ~Конец; КонецЕсли;
    // тут отрабатываем ссылку2 если не пустая
    
    Если Ссылка3.Пустая() Тогда Перейти ~Конец; КонецЕсли;
    // тут отрабатываем ссылку3 если не пустая
    
    ~Конец:
    

    Показать

    сколько вложенных «Если» у вас получится? — а так простой и понятный код….

    Reply
  84. утюгчеловек

    Насколько я понял дракон умеет переводить схему в код. А обратно? Это было бы полезно. И решило бы проблему аудита состояния текущего кода конфигурации.

    Не верю, что нельзя было генерировать что-то адекватнее, чем goto переходы. Но, повторюсь, если бы можно было гонять код из схемы и обратно — в принципе пофигу на метки

    Reply
  85. Геннадий Тышов

    (85) утюгчеловек,

    Насколько я понял дракон умеет переводить схему в код. А обратно? Это было бы полезно.

    Обратно, нет такой возможности.

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

    Полагаю, что ценность не будет большой, т.к. проблемное описание в иконах программно не сформировать.

    Не верю, что нельзя было генерировать что-то адекватнее, чем goto переходы.

    Преобразование Дракон-схем в 1С код, при всех возможных построениях, возможно только с goto.

    Полученный 1С программный код предназначен для выполнения.

    Программный код смотрим в редких случаях: для нахождения иконы с ошибочным кодом.

    Reply
  86. flex81

    (85) утюгчеловек,

    А что за проблема с аудитом текущего кода конфигурации?

    Reply
  87. flex81

    (85) утюгчеловек,

    Гонять из кода в схему…

    Если опустить все возражения типа «а зачем это надо?» то вот какая мысль есть по реализации этой идеи.

    Исходя из того, что при конвертации схемы в код мы получаем текст с определенным строгим форматом. Тоесть у нас есть номера икон, начало и конец Шампуров и т.д. Что, теоретически позволяет нам написать алгоритм, который по такому форматированному тексту кода вполне мог бы нарисовать/сравнить дракон-схему.

    Reply
  88. flex81

    Но из-за ограниченности ресурсов, и неясной пользы, я бы не стал этим заморачиваться.

    Думаю написать такой функционал придеться как нибудь. Ведь в каждом обсуждении этот вопрос задают. 🙂

    Reply
  89. LexSeIch

    Мир Вашему дому!

    Что бы разобраться с «Драконами» — лучше всего, как уже указывалось выше, предварительно ознакомиться с книгами например этими. Там приведено много примеров построения схем алгоритмов. В чем польза такого подхода — можно общаться с людьми предметной области (не программистами) на одном, понятном языке. А это уже не мало. Стоит ли использовать это в 1С? Наверное стоит. Тем более, что в этом форуме есть люди, которые этим пользуются. И большое им спасибо за то, что делятся своим опытом.

    Reply
  90. Геннадий Тышов

    В Облаке Mail есть папка — «ИС Дракон».

    Ссылка для доступа и скачивания — здесь.

    В папке выложены файлы для скачивания:

    1. ИС Дракон, выпуск от 20.06.2016 — Dragon_2016_06_20.rar

    2. Dragon_Изменения.txt

    Прошу сообщать Ваши отзывы, замечания и предложения.

    —-

    Из файла Dragon_Изменения.txt:

    1. В схеме Гном добавлена икона Конец.

    2. Функциональность П-,С-текста схемы перенесены в иконы Заголовок.

    Для ранее созданных листов П-текст схемы переноситься в текст иконы Заголовок при загрузке.

    3. При изменении текста икон Заголовок и Ветка, выдается предупреждение и устанавливаются закладки.

    4. Для отображаемого текста икон, при вводе по клавише TAB вводится пробел. При этом в окне редактирования используется шрифт листа. Это позволяет (хотелось бы) в иконках Комментариях вводить текст таблиц с выравненными колонками.

    6. Внесены другие незначительные изменения.

    Доработки п. 3, 4 сделаны по предложениям программистов 1С.

    Reply
  91. flex81

    Вот ссылки на видеодоклады с прошлого Infostart 2015. И мой доклад там есть.

    http://infostart.ru/journal/news/mir-1s/videozapisi-dokladov-infostart-event-2015-teper-v-svobodnom-dostupe%E2%80%94553243/

    или на Ютубе:

    Доклад: https://www.youtube.com/watch?v=jrvrXcUXNrM

    Обсуждения: https://www.youtube.com/watch?v=odUCRfrQ8wI

    Reply
  92. AlexanderKai

    (13)

    Вы же не читаете байт-код после того как написали код на 1С? Потому и не шизеете.

    Reply
  93. AlexanderKai

    (86)

    Преобразование Дракон-схем в 1С код, при всех возможных построениях, возможно только с goto.

    Полученный 1С программный код предназначен для выполнения.

    Программный код смотрим в редких случаях: для нахождения иконы с ошибочным кодом.

    Справедливости ради замечу, что ДРАКОН используется в паре с Erlang — где вообще нет оператора goto, но видимо в этом случае идет сразу преобразование в байт-код виртуальной машины.

    Или есть какое-то другое объяснение?

    Reply
  94. flex81

    (94) Не совсем понял вопрос. 🙂 Я готовил доклад по опыту работу с программой-редактором ИС Дракон и 1С. Именно в этой связке. Как проходит работа в среде Erlang — не могу сказать. Думаю на этот вопрос могут ответить на форуме http://forum.oberoncore.ru/viewforum.php?f=62

    На этом форуме думаю есть пользователи, использующие язык ДРАКОН для работы с Erlang. Вполне возможно — пользуются другими программами-редакторами языка.

    Reply
  95. flex81

    (94)

    Кажется вот тут есть ответ на Ваш вопрос http://lurkmore.to/GOTO

    Точнее тут http://lurkmore.to/_/120016#mws_tnuWEOF

    На самом деле, GOTO — это единственный оператор, который используется для управления выполнением кода этими вашими центральными процессорами. Для всякого ЦП есть в сущности два способа управлять кодом: условный оператор (если да, то выполнить следующую команду, иначе выполнить послеследующую) и перейти на другой участок кода (GOTO). Всё. И все эти ваши процедурное программирование, функциональное программирование, ООП, ААП, замыкания, циклы и прочая синтаксическая ересь — после компиляции превращается в сотни, тысячи, миллионы GOTO (а точнее, в JMP, JE, JLE, JGE, JNE, etc.), я гарантирую это! Несогласные goto 30

    Подводя итог — GOTO есть во всех языках. Даже если вы думаете, что его нет, так как это оператор процессора)).

    Reply
  96. v3rter

    <SARCASM MODE>

    Я понял. Это что-то вроде религии. Берём обыкновенные бизнес-процессы, добавляем элементы алгоритмических блок-схем, заворачиваем в красивую и убедительную упаковку легенду и вуаля, бизнес готов.

    Человек — существо идеологически уязвимое, тем более, что советская эпоха привила среднему и старшему сверхдоверие к наукообразной подаче информации. А идеи, как известно не только «успешно овладевают массами», но и оставляют широкие прорехи в ее узких кошельках )

    Есть, кстати, «такая же, но с перламутровыми пуговицами» для врачей, вдохновляйся и «евангелизируйся», %username% !

    http://cito03.ru/books/pochemu.pdf

    Мысль, кстати. Возьму, например, заначку, схожу к знакомому психологу, попрошу (небезвозмездно) набросать заметки о пользе бега на костылях, закажу копирайтерам с десяток текстов, сеошникам раскрутку, открою юрлицо и готово: «ИННОВАЦИОННАЯ МЕТОДИКА ОЗДОРОВЛЕНИЯ ВЕРТИНСКОГО БЕГОМ НА КОСТЫЛЯХ» ) До 30% населения можно убедить в полезности чего угодно, методики давно и широко известны в узких кругах. Так что (далее следует слоган):

    Бег на костылях уравнивает! Костыльный спорт в массы! Даёшь всемирную Костылиаду!

    </SARCASM MODE>

    П.С. А ведь всего лишь погуглил…

    Reply
  97. flex81

    (97)

    :)) Без коментариев. Тролей не кормим.

    Reply
  98. Геннадий Тышов

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *