Рефакторинг в редакторе модулей

Публикация № 1207283

Методология - Рефакторинг и качество кода

Ctrl+Alt+R Переименование Рефакторинг Редактор Конфигуратор Горячие Клавиши Кодирование Модули Перфекционизм Прокрастинация

Для тех, кто не пользуется Ctrl+Alt+R. “Контролируемый процесс улучшения кода без написания новой функциональности”, “Равносильное преобразование алгоритмов” и т.п в данной статье не рассматриваются. Тема статьи: замечательные команды из подменю Рефакторинг контекстного меню редактора модулей в конфигураторе. В статье описано, как команды из подменю Рефакторинг помогают при написании кода

См. также: Быстрый ввод неудобных символов

Краткое содержание

Пользуйтесь Ctrl+Alt+R в редакторе модулей.

Мотив

Неожиданно выяснилось, что многие знакомые программисты не пользуются подменю Рефакторинг в редакторе модулей конфигуратора. Как ни странно, 
        - Описания подменю Рефакторинг нет в справке конфигуратора (платформа 8.3.16.1224);
        - Описания подменю Рефакторинг нет на Инфостарте;
        - В справке конфигуратора сочетание клавиш Ctrl+Alt+R не упоминается.
В результате решил написать об этом статью.

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

Подменю Рефакторинг доступна в редакторе текста встроенного языка в контекстном меню и в меню Текст.
Подменю Рефакторинг появилось в платформе 8.3.5, которая вышла в августе 2014 года.
Чем же команды подменю Рефакторинг отличаются от других команд меню Текст?
Главное особенность - учет семантики встроенного языка.

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

Рис 1. Команда Переименовать

Команда Переименовать (Ctrl+Alt+R) - вторая в подменю Рефакторинг. Но (с моей точки зрения) является основной и самой мощной. Давно пользуюсь и до сих пор восхищаюсь простотой и мощью. Особенно Команда Переименовать понравится прокрастинирующим перфекционистам. Теперь можно бесконечно переименовывать переменные, процедуры и функции, не боясь испортить программу.
Команда предназначена для переименования имен переменных и функций.
В отличие от олдскульной Ctrl+H, команда Переименовать понимает, что именно она переименовывает.

Действие команды зависит от текущего положения курсора в тексте модуля.
Рассмотрим варианты:

  • Локальная переменная
    • Команда изменяет имя локальной переменной в пределах процедуры или функции.
  • Локальная процедура или функция
    • Команда изменяет имя процедуры или функцию в пределах модуля
  • Метод-обработчик событий элементов формы или команды в модуле формы
    • Команда изменяет имя метода-обработчика в модуле и соответствующую ссылку в палитре свойств.
  • Метод-обработчик оповещения
    • Команда изменяет имя метода и соответствующий конструктор ОписаниеОповещения.
  • Глобальная переменная (определена в Модуле приложения)
    • Команда изменяет имя глобальной переменной во всех модулях.
  • Экспортные процедуры и функции
    • Команда изменяет имя экспортной процедуры или функции во всех модулях. Действует только в модуле, в котором процедура описана.
  • Константы, комментарии, пробелы, табуляции и т.п.
    • Команда недоступна
Команда Выделить фрагмент

Из выделенного фрагмента кода создается новая процедура или функция с постфиксом Фрагмент. А вместо выделенного фрагмента вставляется вызов новой процедуры или функции.
Удобно использовать, когда надо разбить слишком длинную процедуру на несколько частей. Команда все сделает аккуратно, передаст параметры, локальные переменные будут описаны в перечислены в операторе Перем.

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

Создает комментарии перед описанием процедуры или функции. Комментарии создаются в стандартном формате, который используется для формирования контекстной подсказки.

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

Помогает создавать обработки оповещения для асинхронных методов типа ПоказатьВопрос().
Пример:

// До команды Создать обработку оповещения
&Наклиенте
Процедура Пример()
	ПоказатьВопрос(, "Будень использовать рефакторин?", РежимДиалогаВопрос.ОК);
КонецПроцедуры

// После команды Создать обработку оповещения
&Наклиенте
Процедура Пример()
	ПоказатьВопрос(Новый ОписаниеОповещения("ПримерЗавершение", ЭтотОбъект), "Будень использовать рефакторин?", РежимДиалогаВопрос.ОК);
КонецПроцедуры

&Наклиенте
Процедура ПримерЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт

КонецПроцедуры
Подменю нерекомендуемые синхронные вызовы

Начиная с платформы 8.3.3 фирма 1С придерживается политики отказа от модальных вызовов. Команды подменю предназначена для перехода на асинхронные вызовы.

На этом все.

См. также: Быстрый ввод неудобных символов

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. kalyaka 564 11.03.20 09:21 Сейчас в теме
С рефакторингом нужно быть осторожным. Бывало, что после рефакторинга оказывалось измененной большая часть конфигурации, хотя был рефакторинг локальной переменной. Такое возможно, если платформа вдруг решит расширить область действия рефакторинга с локальной на глобальную.
2. pparshin 186 11.03.20 10:02 Сейчас в теме
(1) Честно говоря, такого не наблюдал при Рефакторинге в редакторе модулей,
А вот если установлено:
Параметры => Общие => Рефакторинг при изменениях в метаданных и формах => флаг При переименовании выполнять изменения в модулях, то бывает.
Я хотел написать про этот Рефакторинг, но решил не перегружать статью.
Оставьте свое сообщение

См. также

Качество кода: Поведенческие паттерны проектирования

Статья Программист Нет файла v8 Бесплатно (free) Рефакторинг и качество кода

Поговорим про применение паттернов проектирования в разработке на 1С.

03.03.2020    4609    ivanov660    0       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Боремся с запросами в циклах. Мой опыт рефакторинга запросов

Статья Программист Стажер Нет файла v8::Запросы 1cv8.cf Бесплатно (free) Рефакторинг и качество кода

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

02.03.2020    3934    aximo    35       

Стабильность превыше всего

Статья Программист Нет файла v8 Бесплатно (free) Рефакторинг и качество кода

Странная заметка о поддержании стабильности в условиях интенсивного изменения конфигурации.

07.11.2019    7657    YPermitin    40       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Оценка скорости кода. Сложность алгоритма

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Рефакторинг и качество кода

Эта тема одной из первых всплывает на собеседовании программистов языков вроде Java и C, но она почти неизвестна в "мире 1С". Поговорим о вычислительной сложности алгоритмов.

07.10.2019    3639    m-rv    10       

Управление качеством кода

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    13076    Stepa86    33       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

По следам код-ревью

Статья Программист Стажер Нет файла v8 Бесплатно (free) Рефакторинг и качество кода

Приведу примеры с картинками и небольшим пояснением по вопросам, связанным с код-ревью (обзором кода).

09.07.2019    10186    ivanov660    110       

Быстрый ввод неудобных символов

Статья no Нет файла Бесплатно (free) Пользователю системы Инструментарий разработчика

Использование Alt-кодов для ввода “[”, “]”, “”, “&”, “#”, “|”

15.04.2019    8025    pparshin    28       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Что такое рефакторинг и в чем его цели

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Рефакторинг и качество кода

Что такое рефакторинг, и в каких случаях им стоит заниматься? Евгений Шумилов дает ответы на эти вопросы, а также рассказывает о признаках хорошего и плохого кода. Кроме того, в статье приведены основные проблемы рефакторинга и способы их решения.

30.10.2018    8153    eu_genij    34       

Мастер-класс от Poppy (практикум по рефакторингу)

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Рефакторинг и качество кода

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

04.11.2008    17540    poppy    32