При доработке типовых конфигураций «1С:Предприятие» золотым стандартом разработки является комментирование измененных или добавленных участков кода. Это необходимо для того, чтобы при последующих обновлениях программы другие разработчики (или вы сами спустя время) могли легко идентифицировать авторские изменения, понять причину их появления и быстро объединить код. Стандартный маркер изменения обычно содержит информацию о начале блока, названии организации или автора, дате внесения изменений и конце блока.
Вручную писать такие конструкции каждый раз долго и неэффективно. В этой статье мы подробно разберем, как автоматизировать процесс проставления комментариев в экосистеме 1С с помощью стандартных шаблонов текста, динамических тегов, горячих клавиш, современных инструментов разработки вроде 1C:EDT, а также сторонних утилит.
Для начала разберем самый простой и доступный способ, который не требует установки стороннего софта и работает в любом стандартном Конфигураторе «1С:Предприятие». Мы настроим автозамену по специальным символам-префиксам. Рассмотрим этот процесс по шагам.
Шаг 1. Создание нового шаблона текста
.st). Можно создать новый файл шаблонов и сохранить его в удобное место на диске.Начало блока изменений.//+ для открытия блока и //- для закрытия блока.
//---> Начало блока Рога и Копыта Петров П.П. 18.05.2018
Аналогичным образом создадим шаблон для закрытия измененного блока. В поле «Автоматически заменять строку» укажем префикс //-, а в поле «Текст шаблона» запишем:
//<--- Конец блока Рога и Копыта Петров П.П. 18.05.2018
Шаг 2. Настройка параметров автозамены в модулях
Для того чтобы система реагировала на ввод наших префиксов прямо во время написания кода, необходимо включить соответствующую опцию в настройках Конфигуратора:
//.Шаг 3. Использование автозамены в коде
Теперь проверим, как работает настроенная автозамена на практике. Откроем любой программный модуль (например, модуль управляемой формы или общий модуль) и выполним следующие действия:
//+.Ctrl + Пробел). Префикс мгновенно заменится на полноценный многострочный авторский комментарий.Если нам нужно просто вызвать список всех доступных шаблонов на пустой строке, мы можем нажать сочетание клавиш Ctrl + Пробел на пустом месте в модуле, и система отобразит контекстное меню со списком шаблонов.
---
Статические комментарии, которые мы настроили на предыдущем шаге, имеют один существенный недостаток: имя автора и дата жестко прописаны в самом шаблоне. Это неудобно, ведь дата меняется каждый день, а шаблонами могут пользоваться разные разработчики в одной команде. Чтобы решить эту проблему, проанализируем механизм динамических тегов Конфигуратора 1С.
Конфигуратор поддерживает специальные конструкции (макросы), которые вычисляются «на лету» в момент вставки шаблона в код. Рассмотрим основные динамические теги, которые нам пригодятся:
<?"", ИмяПользователя> — автоматически подставляет имя текущего пользователя операционной системы Windows.<?"", ИмяПользователяХранилищаКонфигурации> — незаменимый тег для командной разработки. Он автоматически считывает имя пользователя, под которым вы авторизованы в хранилище конфигурации 1С.<?"", ДатаВремя, "ДФ=dd.MM.yyyy"> — подставляет текущую дату компьютера. С помощью параметра «ДФ» (формат даты) мы можем жестко задать шаблон вывода. В данном примере дата выведется в привычном формате «день.месяц.год» (например, 25.10.2023).<?> — специальный тег позиционирования курсора. Он указывает Конфигуратору, в какое именно место нужно поместить мигающий курсор ввода после того, как шаблон будет развернут.Давайте объединим эти теги и создадим один универсальный, полностью динамический шаблон для комментирования доработок. Создадим новый шаблон с префиксом //+ и вставим в поле «Текст шаблона» следующее выражение:
//---> Начало изменений: <?"", ИмяПользователяХранилищаКонфигурации> от <?"", ДатаВремя, "ДФ=dd.MM.yyyy">
<?>
//<--- Конец изменений: <?"", ИмяПользователяХранилищаКонфигурации> от <?"", ДатаВремя, "ДФ=dd.MM.yyyy">
Как это работает на практике?
Когда мы напишем в коде //+ и нажмем Enter, Конфигуратор выполнит следующие действия:
<?>). Мы можем сразу же начинать писать программный код без совершения лишних кликов мышкой или нажатий на стрелки клавиатуры.---
Для того чтобы ускорить написание кода, разберем встроенные горячие клавиши Конфигуратора, которые значительно облегчают работу с шаблонами текста:
//+) и сразу нажали комбинацию клавиш Ctrl + Q, шаблон применится мгновенно, минуя вывод промежуточных диалоговых окон, подсказок и контекстных меню автозамены. Это самый быстрый способ работы со стандартным механизмом платформы.---
Если стандартного функционала Конфигуратора вам недостаточно, или вы хотите осуществлять комментирование по нажатию одной физической комбинации клавиш (без предварительного ввода префиксов), стоит обратить внимание на специализированные утилиты автоматизации работы в среде 1С.
1. TurboConf
Это популярная программа для автоматизации работы программиста 1С. В ее арсенале есть готовый и крайне удобный скрипт под названием «Авторские комментарии» (AuthorComments). Данный инструмент берет на себя всю рутину по оформлению кода:
// в начале каждой строки) и оборачивает его в блок удаления, фиксируя автора и дату удаления функционала.Вам больше не нужно создавать шаблоны вручную и писать префиксы. Достаточно выделить мышкой или клавиатурой нужные строки кода и нажать Alt + C. Программа сама считает имя разработчика из настроек, текущую дату операционной системы и оформит блок комментариев по всем правилам.
2. Снегопат (Snegopat)
Еще один мощный инструмент автоматизации интерфейса Конфигуратора 1С. Снегопат позволяет писать и использовать скрипты на языках JavaScript и VBScript. С его помощью можно запрограммировать абсолютно любую логику генерации комментариев. Например, можно настроить интеграцию с вашей внутренней таск-трекинг системой (Jira, Redmine), чтобы при нажатии горячей клавиши скрипт автоматически запрашивал номер задачи, забирал ее название и вставлял эту информацию прямо в комментарий к коду 1С.
---
Если ваша команда уже перешла с классического Конфигуратора на современную среду разработки 1C:EDT (Enterprise Development Tools), созданную на базе Eclipse, то механизм работы с шаблонами будет выглядеть совершенно иначе. Здесь он обладает колоссальной гибкостью.
В EDT шаблоны называются «Шаблонами кода» (Code Templates). Чтобы настроить их, выполните следующие шаги:
//---> Начало изменений: ${user} от ${date} ${time}
${cursor}
//<--- Конец изменений: ${user} от ${date} ${time}
Где:
${user} — подставит имя текущего пользователя операционной системы.${date} — подставит текущую системную дату.${time} — выведет точное время внесения изменений.${cursor} — аналог тега <?> в Конфигураторе, указывает позицию курсора.Преимущества использования шаблонов в 1C:EDT:
Основное преимущество EDT заключается в том, что шаблоны кода можно сохранять не только локально на конкретном компьютере разработчика, но и на уровне **конкретного проекта** (в специальных файлах конфигурации проекта). Это позволяет зафиксировать единый формат комментариев для всей вашей команды разработчиков, закомитить эти настройки в Git-репозиторий проекта, и каждый участник команды при клонировании репозитория автоматически получит одинаковые, стандартизированные шаблоны комментариев. Это полностью исключает ситуацию, когда каждый разработчик комментирует код в собственном уникальном стиле.