Разбор трассировки асинхронных вызовов в дракон-схемах

Публикация № 1707667 16.08.22

Разработка - Языки и среды

ИС Дракон Асинхронные вызовы Анализ кода Трассировка язык дракон аналитика контроль разработки

1С развивается. Появились асинхронные вызовы. Как аналитику, работающему с определенной нотацией, которая описывает логику разработки, нужно их описать. Подготовил для этого небольшой пример, как асинхронные вызовы предлагается описывать в языке ДРАКОН. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.21.1302).

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

Прежде чем продолжить, оговорим принципы, которых я придерживаюсь при построении дракон-схем с кодом:

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

Рассмотрим сначала сам код примера асинхронного вызова (обработка во вложении) из модуля формы:


&НаКлиенте
Процедура ЗапуститьТест(Команда)
	
	ТестАсинхронности();	
	
КонецПроцедуры


&НаКлиенте
Асинх Процедура ТестАсинхронности()
	
	Об1 = КопироватьФайлАД(1);
	Об2 = КопироватьФайлАД(2);
	Об3 = КопироватьФайлАД(3);
	
	Результат1 = Ждать Об1;
	Результат2 = Ждать Об2;
	Результат3 = Ждать Об3;
	
	
КонецПроцедуры


&НаКлиенте
Асинх Функция КопироватьФайлАД(НомерФайла) 
	
	Об4 = НайтиФайлыАсинх("C:\", "*", Ложь); 

    Результат = Ждать Об4;	
	
	Возврат НомерФайла;
	
КонецФункции

Теперь приведу дракон-схему, описывающую этот код:

 

Жирной линией обозначен путь трассировки при выполнении схемы.

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

Дракон-схему для программы ИС Дракон вы найдете во вложении.

Скачать файлы

Наименование Файл Версия Размер
Тест асинхронностию.epf

.epf 5,79Kb
0
.epf 5,79Kb Скачать
Тест асинхронности.drt

.drt 5,09Kb
0
.drt 5,09Kb Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. o.nikolaev 208 02.01.23 10:11 Сейчас в теме
А не пробовали плагин для EDT написать - чтобы прикрутить Дракон к 1С-ине?
2. o.nikolaev 208 02.01.23 10:22 Сейчас в теме
Дракон мне очень понравился, но вот стыковка с ПО - сход с повышенного уровня абстракции собственно "в код" - которое подразумевает интерактивную работу пользователя с командными элементами, особенно если форма насыщена ими, например какой-нибудь развесистый АРМ - пока не представляется реализуемой. Ибо, если доводить идею до полной автоматизации, то наличие присутствия человека не подразумевается вообще, собственно как в той области для которой Дракон и был придуман - автоматические системы управления космическими аппаратами. И тут тогда вопрос - можно ли натянуть сову на глобус? Т.е. описание бизнес-процессов - да, видимо ложится хорошо, но укладка этого благолепия в программный код текущего уровня абстракции - 1с-ный код типовой конфигурации - так и не решена. А жаль, так как повышение уровня-то может позволить производительность продуктовой разработки поднять сильно.
Оставьте свое сообщение

См. также

Сквозная задача на Исполнителе - часть первая (IMAP)

Идеи и тренды в разработке Языки и среды Абонемент ($m)

Поставили нам задачу - вынести на отдельный сервер функционал получения заказов от клиентов по электронной почте, парсинг полученных XLS в приемлемый вид и трансформация заказов в красивый JSON, понятный нашей учетной системе на 1С. Всю эту красоту желательно запустить в отдельном докер - контейнере, по возможности не тратя лицензии, поэтому отдельно стоящую конфигурацию на БСП отвергаем сразу. Можно было бы собрать всё на Apache Airflow или Apache NiFi, но решили попробовать реализовать всю логику без Open Source, будем делать свой ETL, с Исполнителем, который в версии 3.0 научился взаимодействовать с электронной почтой по IMAP. Начнем с середины - сначала напишем скрипты, а потом соберем их в рабочую конструкцию

1 стартмани

01.06.2023    1057    0    kembrik    2    

5

1С# - Расширяем код 1С кодом на C#

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Вставки кода на C# внутри кода на 1С.

7 стартмани

07.04.2023    6710    2    SerVer1C    51    

38

Независимая разработка совместимых компонент на ORM 1С – миф или истина где-то в аннотациях Java?

Языки и среды Платформа 1С v8.3 Бесплатно (free)

При работе с 1С ORM (object relation mapping) все время преследует ощущение постоянного создания монолитного приложения — один раз привязался к какой либо сущности (например, справочник Контрагенты), и весь код заполнен ссылками на эту конкретную реализацию. Можно ли независимо разрабатывать в ORM совместимые между собой справочник «Контрагентов» и использующий его документ «Платежное поручение», но при этом избежать жестких зависимостей? Спасут ли нас микросервисы? Пример на аннотациях Java демонстрирует, как это возможно делать.

13.03.2023    359    1CUnlimited    0    

2

xPath в 1С

Файловый обмен (TXT, XML, DBF), FTP Языки и среды Платформа 1С v8.3 Бесплатно (free)

Опыт работы методами языка xPath в 1С.

04.03.2023    3785    DemetrKlim    41    

44

Случай "Массив, Структура и Таблица в JS плюс верстка техдемо"

WEB-интеграция Языки и среды Платформа 1С v8.3 Абонемент ($m)

Добавление в JS обозревателя 1Сных коллекций массив, структура и таблица значений. Строкование в json формат для обмена с 1Сным сервером.Убедимся, что в обозревателе 1Сные коллекции действительно работают через чтение, изменение и строкование объекта обратно в json строку.

10 стартмани

01.03.2023    689    Steelvan    0    

2

Data science. Скажи мне, брат, трансформер...

Языки и среды Бесплатно (free)

Какой же data science без нейросетей! Тема чрезвычайно большая и местами сложная. Но в данной статье сложностей не будет. То, что я вам расскажу сейчас, можно охарактеризовать следующими словами: Никогда еще столь доступное не было столь важным.

11.12.2022    1141    mkalimulin    15    

12

Data science. 1С и Python

Языки и среды Бесплатно (free)

Это вторая статья из серии Data science. Почему Python? Зачем он может понадобиться 1С-нику.

27.11.2022    10257    mkalimulin    61    

58

Космическая Одиссея 2020 года

Мониторинг Периферийные устройства Языки и среды Бесплатно (free)

Организация потокового обмена системы 1С с большим количеством разнородных устройств – нетривиальная задача. О том, как организовать архитектуру такого решения с учетом возможного масштабирования хранимых данных и поддерживаемых интерфейсов, на конференции Infostart Event 2021 Post-Apocalypse рассказал TeamLead и специалист по внедрению компании ИнфоСофт Григорий Шатров.

11.11.2022    2434    G.Shatrov    1    

25

Опыт использования 1С: Исполнитель (версия 2.0)

Инструментарий разработчика Языки и среды Платформа 1С v8.3 Бесплатно (free)

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

26.09.2022    4120    vandalsvq    21    

29

О цикле обратном замолвите слово...

Механизмы платформы 1С Языки и среды Платформа 1С v8.3 Платформа 1C v8.2 Бесплатно (free)

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

08.09.2022    6625    DrAku1a    71    

31

Кодим обозреватель 1С кодом и отладка в режиме "Предприятие"

WEB-интеграция Языки и среды Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Лето в разгаре, а мы трудимся над нашей платформой Ленкодо в поте лица. Потеем как от жары, так и от усилий. В данной публикации хотим поведать об очередном этапе разработки: синтаксисе Рубик и отладчике обозревателя в режиме "Предприятие".

10 стартмани

25.08.2022    2560    1    Steelvan    2    

5

Если хочется ООП с наследованием и полиморфизмом

Математика и алгоритмы Языки и среды Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

21.07.2022    4019    1    Alxby    11    

10

Осваиваем протокол gRPC по HTTP/2 в 1С

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

24.05.2022    1998    JetBrain    8    

5

Познавательный PowerShell

Языки и среды Бесплатно (free)

Еще немного PowerShell нам в помощь.

13.05.2022    5034    Infostart    17    

108

С конфигуратора на EDT. Привычки, которые придется поменять

EDT Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Решил перейти на EDT, чтобы повысить эффективность разработки? А теперь приостановись и выдохни! Я расскажу сейчас о том, из-за чего многие новички в EDT (будучи матёрыми кодерами в конфигураторе) воспринимают встречу с новшествами так, будто их с велосипеда пересадили за штурвал Боинга.

16.09.2021    13150    stas_ganiev    19    

91

Занимательный PowerShell

Языки и среды Бесплатно (free)

PowerShell. Что, зачем, как и почему? И причем тут 1С?

16.05.2021    15880    Infostart    31    

162

Чем воспользоваться для распознавания котиков в 1С?

Математика и алгоритмы Языки и среды Платформа 1С v8.3 Бесплатно (free)

На митапе по инструментам для расширения возможностей 1С выступил Олег Филиппов. Он сравнил подходы Native API, COM, Docker и Serverless, и рассказал, как упростить использование в 1С алгоритмов, реализованных на других языках, с помощью облачной технологии «Функция как сервис».

12.04.2021    4803    comol    10    

29

Использование JavaScript для обработки данных в 1с

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В статье мы передадим данные в JavaScript и получим результат обратно в 1С-объекты средствами JSON. Также "поиграем" с переданными данными.

02.01.2021    12674    John_d    21    

124

Приложение двенадцати факторов

Языки и среды Бесплатно (free)

Тенденции современности - это SaaS и микросервисы. Про SaaS не слышал только ленивый, но на всякий случай, Ленивый, это для тебя: SaaS это облачная модель работы с сервисами по подписке. У 1С это технология 1С:Фреш. Но мы поговорим не о SaaS и не об 1С:Фреш, а о методологии "Приложение двенадцати факторов", которая родилась для облегчения жизни разработчикам SaaS приложений. Вы спросите: "А где здесь про 1С?". Давайте разберемся.

19.11.2020    1324    Lars Ulrich    0    

3

Конструктор Json Schema с функцией валидации JSON

WEB-интеграция Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Абонемент ($m)

Инструмент для создания Json-схем по формату 4 драфта. В современном мире модно пользоваться Http-сервисами и Json, но если для старого доброго xml все уже придумано и xsd схемы можно рисовать в 1С из коробки, то с json и его форматом Json schema все не так хорошо. Зачастую нужно стандартизировать формат сообщений обмена json и для этого можно воспользоваться Конструктором. Есть возможность проверить свой Json на соответствие схеме. Схемы после выгрузки проходят валидацию в Liquid studio 2020. Стандартизируйте обмен Json с комфортом и удобством.

1 стартмани

16.07.2020    12336    41    Segate    8    

19

Hello, Executor! Познакомимся с языком 1С:Исполнитель и сразу попытаемся его усовершенствовать

Языки и среды Платформа 1С v8.3 Бесплатно (free)

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

23.06.2020    17686    CyberCerber    294    

47

Что умеет Русский Фокс?

Языки и среды Россия Абонемент ($m)

Краткий обзор русскоязычного объектно ориентированного 1С подобного языка программирования Русский Фокс.

1 стартмани

30.09.2019    4556    andreosh    21    

12

В 1000 раз быстрее

Языки и среды ИТ-компания Абонемент ($m)

Реализация алгоритма трассировки лучей на новом языке программирования "Перфолента"

1 стартмани

24.07.2019    6284    vasvl123    6    

16

1С:Ассемблер. Немного летнего веселья!

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

21.06.2019    39128    Evil Beaver    152    

397

Про js и 1С или как я ужа с ежом скрещивал

Языки и среды Платформа 1С v8.3 Бесплатно (free)

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

20.02.2019    8134    ntemny    31    

46

1c + kafka.apache

Языки и среды Платформа 1С v8.3 Россия Абонемент ($m)

Пример построения микросервисов с использованием apache kafka. Данная статья будет полезна интеграторам, программистам. Версия и релиз технологической платформы не имеет значения.

1 стартмани

27.01.2019    24247    dmarenin    71    

126

Применение средств MS SQL R service для 1С

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Некоторое время назад Microsoft добавила в MS SQL сервер службы машинного обучения, позволяющие выполнять программный код на языках программирования R и Python. В статье будет продемонстрирована общая схема и принцип того, как можно использовать данные службы в контексте разработки на 1С. 

1 стартмани

25.11.2018    15323    Robbi    14    

57

Создаем объекты для модуля Bootstarp на Русском Фоксе

Языки и среды Россия Абонемент ($m)

Создавайте свой модуль с объектами для модуля Bootstrap, пакуйте их fxp-файлы и создавайте сайты из этих кубиков. Разберем, как это делать. Все гениальное должно быть простым, как теория относительности.

1 стартмани

19.08.2018    10362    0    andreosh    3    

3

РусскийФокс и BootStrap

Языки и среды Россия Абонемент ($m)

РусскийФокс вносит новый технологический подход в сайтостроение. Теперь вы можете ограничиться знанием Русского Фокса и не иметь знаний по HTML, CSS, JavaScript, PHP, чтоб создавать сайты.

1 стартмани

16.08.2018    10766    1    andreosh    18    

4

Записки про metadata.js

Языки и среды Бесплатно (free)

Отличительные особенности разработки на metadata.js

31.07.2018    12754    1c-intelligence    59    

56

РусскийФокс. Создание DBF-файла, выгрузка в XML.

Языки и среды Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает DBF-файлы и выгружает данные из DBF в XML. Голосуйте за доклад о РусскийФокс на Инфостарт.

1 стартмани

28.07.2018    10157    2    andreosh    0    

3

РусскийФокс и OpenOffice, а также исследование объектов

Языки и среды Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . Взаимодействие с OpenOffice. GitHub https://github.com/UfaScript/RusFox

1 стартмани

12.07.2018    10633    1    andreosh    2    

5

РусскийФокс. Настройка NotePad++, 1C-подобные функции и операторы и создание объектов

Языки и среды Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Создание объектов и настройка NotePad++. GitHub https://github.com/UfaScript/RusFox

1 стартмани

06.07.2018    11125    andreosh    12    

11

РусскийФокс — 1С-подобный язык программирования

Языки и среды Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Знакомство.

1 стартмани

03.07.2018    17255    1    andreosh    50    

8

Принципы ООП в 1С (pattern Chain of responsibility)

Языки и среды Платформа 1С v8.3 Абонемент ($m)

Данная статья является продолжением https://infostart.ru/public/850699, за основу будет применен тот же подход

1 стартмани

22.06.2018    6834    lazarenko    2    

12

Асинхронный обмен данными с JavaScript (и не только) без потерь

Языки и среды Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

26.12.2016    18747    Alxby    23    

110

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux II

Языки и среды Платформа 1С v8.3 Бесплатно (free)

Это продолжение статьи http://infostart.ru/public/534901/ С того времени добавил поддержку методов с параметрами по умолчанию, вызов методов расширений, вывод типов для дженерик методов, поддержка объектов реализующих IDynamicMetaObjectProvider (ExpandoObject,DynamicObject), добавление синонимов к членам типа и асинхронное программирование на 1С!

09.08.2016    15685    Serginio    1    

11

Metadata.js для построения дешевых высоконагруженных сервисов

WEB-интеграция Языки и среды Бесплатно (free)

В маркетинге есть понятие "голубой океан". Стратегия опирается на создание не существовавшего ранее спроса на новом рынке, где практически отсутствуют конкуренты. Вместо того, чтобы конкурировать со множеством игроков на малоприбыльных рынках ("красный океан"). В статье я расскажу об одном из инструментов, помогающем создавать и осваивать новый рынок Интернет-сервисов для бизнеса.

08.08.2016    40560    unpete    103    

212

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux

Языки и среды Платформа 1С v8.3 Бесплатно (free)

С выходом .Net Core CLR стало возможным использование классов .Net не только на Windows, но и других операционных системах. Это особенно важно в разрезе импортозамещения. И главное - это аналог COM под Linux. Сейчас под Linux для расширения возможностей 1С используются Web сервисы. Данная разработка позволит использовать не только сборки входящие в состав .Net Core, но и пользовательские портативные сборки.

04.07.2016    23029    Serginio    36    

39