Рефакторинг в 1С

 

Рефакторинг — это процесс изменения кода на встроенном языке с целью сделать код чище, повысить читаемость и улучшить структуру кода не изменяя при этом изначального смысла и внешнего поведения этого кода. Конфигуратор предоставляет несколько инструментов, которые могут помочь при проведении рефакторинга кода в прикладном решении.

Эти инструменты можно найти в подменю «Рефакторинг» контекстного меню редактора кода или в главном меню конфигурации («Текст»-«Рефакторинг»).

Подменю "Рефакторинг"
Подменю «Рефакторинг»

Подробнее о каждом из этих инструментов и будет рассказано ниже.

Общие средства рефакторинга

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

Выделить фрагмент

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

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

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

Переименовать

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

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

Создать описание метода

Простая команда, которая создает заготовку описания метода. Это описание будет использоваться для контекстной подсказки при использование метода в тексте модулей.

Создать обработку оповещения

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

 

 

Рефакторинг синхронных вызовов

Теперь рассмотрим команды, которые помогают при переходе на асинхронные вызовы

Преобразовать вызов

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

Преобразовать в асинхронную процедуру

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

Выделить в асинхронную процедуру

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

Найти вызовы модуля

Выводит список используемых синхронных методов в текущем модуле.

Преобразовать вызовы модуля

Команда преобразует все простые случаи использования синхронных вызовов в текущем модуле на их асинхронные аналоги.

На этом все, надеюсь, что эта статья была Вам полезна.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 11, средняя оценка: 4,55 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 2
  1. Александр

    Большое спасибо, помогло.
    Ошибка в тексте «Для поЖобных» ;-)

  2. onenightoxly

    Переименуем переменную Стр в переменную СтрокаТЧ, так чтобы везде в коде была выполнена замена. Для этого вызовем инструмент «Переименование» рефакторинга

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: