Проблема состоит в том, что формы сообщений по умолчанию внутри шаблона последовательности UML имеют специальное значение, определяемое пользователем, которое преобразует их в сообщения возврата, если они идут справа налево.
Элегантное решение - щелкнуть правой кнопкой мыши по трафарету «Последовательность UML» и выбрать «Сохранить как». Назовите это что-то вроде «UML Sequence Fixed». Откройте только что созданный трафарет. Перейдите в Файл-> Параметры-> Дополнительно-> Общие и выберите Запустить в режиме разработчика .
Теперь щелкните правой кнопкой мыши на форме сообщения и выберите « Редактировать мастер-> Редактировать мастер-форму» (может потребоваться щелкнуть правой кнопкой мыши заголовок трафарета в списке и выбрать «Редактировать трафарет». Теперь нажмите на изображение стрелки, открывшееся в новом разделении, чтобы выбрать его). На ленте перейдите в меню «Разработчик» и нажмите « Показать ShapeSheet-> Shape», там в «Пользовательских ячейках» вы найдете свойство с именем User.IsReturn (его значение равно EndX <BeginX). Измените его на 0. Закройте открытые разбиения ( Visio спросит вас, нужно ли сохранить форму, и вы должны выбрать « Да» .
Теперь выполните ту же операцию для асинхронного сообщения и сообщения возврата (за исключением выбора 1 для значения в случае сообщения возврата).
С новым трафаретом вы сможете создавать сообщения как слева направо, так и справа налево.