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

Публикация № 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 Скачать

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

Оставьте свое сообщение

См. также

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии Промо

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

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    106672    180    igo1    65    

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

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

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

10 стартмани

25.08.2022    761    1    Steelvan    2    

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

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

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

1 стартмани

21.07.2022    1114    0    Alxby    8    

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

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

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    18577    54    Parsec1C    19    

Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I Промо

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

Данный проект является чисто исследовательским примером использования Code First и Linq to EF на примере 1С версии 7.7. Так как сам я программист 1С, то мне всегда было интересно, как можно перенести модель объектов 1С на компилируемые языки, и использовать мощь Linq to EF. С появлением Code First давно хотел прикрутить, но все как-то руки не доходили, и вот, наконец ..

1 стартмани

28.08.2015    28442    3    Serginio    2    

Конструктор 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    10265    34    Segate    8    

HTML5 в ПолеHTMLДокумента на Управляемой форме - fireEvent в действии

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

Эта статья посвящена тому, как из ПолеHTMLДокумента управляемой формы вызывать Javascript и осуществлять вызовы 1С из Javascript, когда в ПолеHTMLДокумента используется Internet Explorer 9.

1 стартмани

18.04.2015    48339    80    GusevNA    28    

Интерпретатор языка Brainfuck

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

Интерпретатор языка Brainfuck реализованный в виде обработки 1С.

1 стартмани

27.08.2013    9943    2    Ilyabaykov    25