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