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

12.04.21

Разработка - Рефакторинг и качество кода

Для тех, кто не пользуется 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С придерживается политики отказа от модальных вызовов. Команды подменю предназначена для перехода на асинхронные вызовы.

Рефакторинг в EDT
В EDT реализованы дополнительные инструменты рефакторинга.
Кратко опишу два самых интересных:
  1. В тексте модуля процедуры и функции рассматриваются как отдельные объекты. Эти объекты отображаются в панели Схема. Процедуры и функции можно быстро находить, перемещать и копировать мышкой.
  2. При переименовании метаданных (объектов или реквизитов) выводится окно предварительного просмотра изменений, похожее на окно сравнения объединения конфигураций. Изменения можно принять или отклонить.

На этом все.

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Математика и алгоритмы Рефакторинг и качество кода Программист Бесплатно (free)

Разбираемся, что такое чистые функции и почему именно они становятся основой простого, понятного и адаптивного кода в 1С. Показываем, как выделение бизнес-логики в чистые функции упрощает переиспользование и делает модульное тестирование быстрым и эффективным, а также объясняем, почему без них сложно применять TDD. Демонстрируем на практических примерах, как перейти от «гвоздями прибитого» кода к архитектуре с минимальными зависимостями и удобной поддержкой.

02.04.2026    485    alex_sayan    13    

2

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

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

20.03.2026    775    ksnik    4    

5

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

ИИ действительно помогает команде ускориться: быстрее разбирать код, быстрее входить в сложные участки, быстрее запускать доработки. Проблема в том, что вместе со скоростью он может ускорять и другое — накопление скрытой сложности, рост цены изменений и потерю управляемости. В статье разбираю, почему первые успехи с ИИ так легко опьяняют, когда система начинает выставлять счёт и что нужно сделать, чтобы ускорение не превратилось в новый виток технического долга.

17.03.2026    1495    IgorVasilyev    51    

26

Рефакторинг и качество кода Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х 1C:ERP Бесплатно (free)

В публикации показан пример оптимизации кода обработчика табличной части документа, приведена методика как избавляться от запросов внутри цикла, а также разобрано - почему важно делать обработку данных на сервере и стремиться к минимизации вызовов клиент-сервер.

09.02.2026    1624    Eugen-S    10    

4

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

В статье рассказываю, как писать код 1С в VS Code с помощью бесплатных AI-моделей 🤖 Используем GLM-4.7 через Roocode + Cerebras (до 1 миллион токенов в день). Подключаем бесплатные MCP. Генерируем новый код и смотрим, как AI справляется с задачами.

06.02.2026    13453    Ibrogim    77    

50

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

Некоторые задачи можно и нужно делегировать ИИ, а простые задачи можно отдавать бесплатным моделям. В статье коротко рассказываю про расширение roocode для vscode, инструмент openrouter и реальную задачу по рефакторингу кода.

02.02.2026    12472    Ibrogim    54    

49

Рефакторинг и качество кода Программист Бесплатно (free)

Открываешь код и глаз начинает дёргается? Я собрал личный список ТОП-10 самых раздражающих и опасных ошибок в 1С, с примерами, юмором и практическими рекомендациями, как писать так, чтобы потом не было мучительно больно.

31.01.2026    3589    GarriSoft    89    

6

Рефакторинг и качество кода Программист Бесплатно (free)

Костыль, рефакторинг или архитектура - делюсь своим видением того, как выбирать правильный инструмент под конкретную задачу. За годы в 1С я выработал алгоритм "трех зон", который помогает мне не только писать код, но и говорить с бизнесом на его языке. В статье рассказываю, когда временное решение оправдано, а когда оно становится миной замедленного действия. Никаких нотаций, только мой опыт принятия решений, где каждая строчка имеет цену. Буду рад, если моя система поможет вам по-новому взглянуть на привычную рутину.

19.12.2025    2563    GarriSoft    14    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kalyaka 1172 11.03.20 09:21 Сейчас в теме
С рефакторингом нужно быть осторожным. Бывало, что после рефакторинга оказывалось измененной большая часть конфигурации, хотя был рефакторинг локальной переменной. Такое возможно, если платформа вдруг решит расширить область действия рефакторинга с локальной на глобальную.
tormozit; +1 Ответить
2. pparshin 530 11.03.20 10:02 Сейчас в теме
(1) Честно говоря, такого не наблюдал при Рефакторинге в редакторе модулей,
А вот если установлено:
Параметры => Общие => Рефакторинг при изменениях в метаданных и формах => флаг При переименовании выполнять изменения в модулях, то бывает.
Я хотел написать про этот Рефакторинг, но решил не перегружать статью.
3. tormozit 7372 12.04.21 11:52 Сейчас в теме
Тоже наблюдал такое.
Частный пример https://www.hostedredmine.com/issues/923908
Глубокий анализ https://partners.v8.1c.ru/forum/t/1953952/m/1953952
Выжимка из него
Команда конфигуратора "Найти использование" не гарантирует нахождение всех даже прямых использований. Поэтому опираться на ее результаты при принятии важных решений очень опасно. Наученный горьким опытом я уже давно от нее отказался в пользу глобального поиска. Однако команда рефакторинга "Переименовать переменную" использует тот же самый механизм поиска использования и тут уже глобальная замена строки в качестве альтернативы не так хорошо подходит, т.к. сопряжена с массой тонкостей.
5. pparshin 530 14.04.21 12:19 Сейчас в теме
(4) По любой статье, опубликованной на Инфостарте можно найти документацию на официальных сайтах фирмы 1С либо в Справке. По другому и быть не может.
6. Дмитрий74Чел 249 04.04.22 13:31 Сейчас в теме
(5) это дополнение, не критика
pparshin; +1 Ответить
7. пользователь 26.09.23 09:30
Сообщение было скрыто модератором.
...
8. pparshin 530 26.09.23 10:51 Сейчас в теме
(7) Добрый день! Не совсем понятно, что имеется ввиду.
Для отправки сообщения требуется регистрация/авторизация