К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как пользоваться шаблонами текста в 1С

Как создать и применять шаблоны текста в конфигураторе 1С: автозамена, параметры, вставка в модуль, хранение файлов шаблонов и типичные ошибки.

Шаблоны текста в 1С — это встроенный механизм конфигуратора, который позволяет вставлять в модули готовые фрагменты кода по короткому ключевому слову. Вместо того чтобы каждый раз писать конструкцию цикла, запроса или обработки ошибки вручную, разработчик набирает несколько символов, нажимает пробел — и среда разработки подставляет полный текст с автоматическим позиционированием курсора и подстановкой параметров.

Механизм работает во всех версиях платформы 1С:Предприятие 8 и доступен в любых модулях: общих, объектов, форм, команд. Шаблоны хранятся в отдельных файлах с расширением .st, их можно создавать самостоятельно, редактировать и переносить между рабочими местами. Это один из самых недооценённых инструментов ускорения разработки: многие программисты годами пользуются только стандартными шаблонами, не подозревая, что могут собрать собственную библиотеку.

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

Что такое шаблоны текста и где они применяются

Шаблон текста — это связка «короткое слово → развёрнутый фрагмент кода». Например, если набрать в модуле слово «Если» и нажать пробел, конфигуратор развернёт полную конструкцию Если ... Тогда ... КонецЕсли; с курсором в позиции условия. Аналогично работают шаблоны для циклов Для и Пока, конструкций Попытка...Исключение, описаний процедур и функций.

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

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

Как включить автозамену и проверить работу шаблонов

Автозамена включена по умолчанию, но если шаблоны не срабатывают, первым делом проверьте настройку. Откройте конфигуратор и пройдите по пути: Сервис → Параметры → закладка «Модули» → «Контекстная подсказка» (в разных версиях платформы формулировка может немного отличаться). Там должна быть установлена опция автозамены строк при вводе текста.

Для проверки откройте любой модуль, например общий модуль или модуль объекта. Наберите слово Если и нажмите пробел. Если конструкция развернулась — механизм работает. Если ничего не произошло, проверьте, что курсор находится в зоне кода (а не в комментарии или строковом литерале), и что автозамена не отключена.

Проверка работы шаблонов
  1. 1
    Откройте конфигуратор и любой модуль с кодом
  2. 2
    Наберите ключевое слово, например «Если» или «Для»
  3. 3
    Нажмите пробел или Enter
  4. 4
    Убедитесь, что слово развернулось в полную конструкцию
  5. 5
    Если не сработало — проверьте Сервис → Параметры → Модули → автозамена

Дополнительный способ вставки — команда контекстного меню «Вставить шаблон» (или сочетание клавиш, назначенное в настройках). Откроется список всех доступных шаблонов с возможностью поиска по имени. Этот способ удобен, когда вы помните смысл шаблона, но не помните точное ключевое слово.

Как создать собственный шаблон

Собственные шаблоны создаются через окно управления шаблонами. Щёлкните правой кнопкой мыши в тексте модуля и выберите «Шаблоны текста...». Откроется окно со списком существующих шаблонов, где доступны кнопки добавления, редактирования и удаления.

При создании нового шаблона нужно заполнить два ключевых поля: имя (оно же ключевое слово для автозамены) и текст шаблона. Имя должно быть коротким, удобным для набора и не совпадать с существующими ключевыми словами языка, если вы не хотите переопределить стандартное поведение. Например, для типовой проверки на пустую ссылку можно создать шаблон с именем «ПроверкаПустой».

В тексте шаблона пишется сам фрагмент кода. Для мест, которые должны заполняться при вставке, используются параметры в угловых скобках: <ИмяПеременной>. При разворачивании шаблона курсор встанет на первый параметр, а переход между параметрами выполняется клавишей Tab. Это позволяет быстро заполнить все переменные части, не трогая мышь.

Параметры, переменные части и приёмы оформления

Простые параметры <Параметр> — это только начало. В шаблонах можно использовать повторяющиеся параметры: если одно и то же имя встречается в тексте несколько раз, при вводе значения в первую позицию остальные заполнятся автоматически. Это удобно, например, для конструкций вида «Процедура <Имя>() ... КонецПроцедуры // <Имя>».

Для фрагментов, которые должны попадать в шаблон из уже выделенного текста, существует специальный механизм вставки вокруг выделения. Если перед вызовом шаблона выделить в модуле фрагмент кода, шаблон может «обернуть» его — классический пример: обернуть выделенный код в Попытка...Исключение или в условие. Для этого в тексте шаблона используется специальная метка выделенного текста.

Также шаблоны поддерживают автоматическую подстановку служебной информации: текущей даты, имени пользователя и других данных. Это полезно для комментариев-заголовков по корпоративному стандарту: один шаблон — и у всех разработчиков одинаковые пометки об авторе и дате изменения.

Начинайте библиотеку шаблонов с 3–5 самых частых фрагментов: заголовок процедуры, типовой запрос с выборкой, обработка исключения с записью в журнал регистрации. Попытка сразу зашаблонировать всё подряд обычно заканчивается тем, что половиной шаблонов никто не пользуется, потому что не помнит их имена.
ПЗ
Практическое замечание

Где хранятся шаблоны и как их перенести

Шаблоны хранятся в файлах с расширением .st. Стандартные шаблоны поставляются вместе с платформой, пользовательские сохраняются в каталоге настроек пользователя конфигуратора. Точный путь зависит от версии платформы и операционной системы, его можно посмотреть в настройках окна шаблонов.

Для переноса на другой компьютер достаточно скопировать файл .st и подключить его в окне шаблонов через кнопку загрузки, либо положить файл в соответствующий каталог настроек. Это удобный способ распространить единый набор шаблонов на всю команду разработки: один раз собрали библиотеку — и раздали коллегам.

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

Типичные ошибки и ограничения механизма

Самая частая жалоба — «шаблон не срабатывает». Причины почти всегда одни и те же: автозамена отключена в параметрах, курсор стоит внутри комментария или строкового литерала, либо ключевое слово набрано не полностью (автозамена требует точного совпадения слова). Реже встречается конфликт имён, когда пользовательский шаблон перекрывается стандартным.

Вторая группа ошибок связана с содержимым шаблонов. Слишком длинные шаблоны с десятком параметров заполняются дольше, чем пишется код вручную — выигрыш теряется. Параметры без понятных имён (<П1>, <П2>) заставляют гадать, что куда вводить. Оптимальный шаблон — это 3–15 строк кода и 1–4 осмысленных параметра.

Ограничение, о котором стоит помнить: шаблоны — это просто подстановка текста. Они не проверяют синтаксис, не знают контекста модуля и не гарантируют, что вставленный код скомпилируется. После вставки шаблона всегда проверяйте модуль на синтаксические ошибки (команда проверки в меню «Конфигурация» или соответствующая кнопка).

Типичные ошибки
01
Создание шаблонов с 10+ параметрами — заполнение занимает больше времени, чем ручной набор
02
Имена шаблонов, совпадающие со стандартными, — неожиданное переопределение привычных конструкций
03
Отсутствие резервной копии файла .st — потеря библиотеки при переустановке платформы или смене компьютера
04
Вставка шаблона без последующей проверки синтаксиса — ошибки в модуле обнаруживаются только при выполнении
05
Хранение общих шаблонов команды только локально — у коллег другой набор, код оформляется неоднородно

Как проверить результат и закрепить навык

После настройки шаблонов полезно пройти короткую проверку: развернуть каждый новый шаблон в тестовом модуле, заполнить параметры через Tab и убедиться, что итоговый код проходит синтаксическую проверку. Это занимает пару минут на шаблон, но избавляет от сюрпризов в реальной работе.

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

Контрольные точки

Как проверить результат

Срабатывание автозамены
Норма

Ключевое слово разворачивается в полный фрагмент при нажатии пробела

Тревожный признак

Слово остаётся как есть — проверьте настройку автозамены и позицию курсора

Заполнение параметров
Норма

Курсор встаёт на первый параметр, Tab переключает между позициями

Тревожный признак

Курсор уходит в конец текста, параметры не выделяются

Проверка синтаксиса после вставки
Норма

Модуль проходит проверку без ошибок

Тревожный признак

Ошибки компиляции — в шаблоне опечатка или лишние символы

Перенос на другое рабочее место
Норма

После копирования .st шаблоны видны в окне шаблонов

Тревожный признак

Список пуст — файл не подключён или лежит не в том каталоге

FAQ: частые вопросы о шаблонах текста в 1С

Работают ли шаблоны текста в управляемых и обычных формах одинаково?

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

Можно ли сделать шаблон, который оборачивает выделенный код?

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

Как поделиться шаблонами с коллегами по команде?

Найдите файл .st со своими шаблонами (путь виден в окне настройки шаблонов) и передайте его коллегам. Они подключают файл через окно «Шаблоны текста» или кладут его в свой каталог настроек. Для стабильности имеет смысл хранить эталонную версию файла в общем сетевом ресурсе или системе контроля версий.

Почему мой шаблон перестал работать после обновления платформы?

Чаще всего дело не в обновлении, а в сбросе настроек автозамены или смене каталога настроек пользователя. Проверьте, что автозамена включена, а файл .st по-прежнему подключён в окне шаблонов. Если файл на месте, а шаблонов нет — подключите его заново.

Чем шаблоны текста отличаются от сниппетов во внешних редакторах?

По сути это один и тот же механизм: ключевое слово разворачивается в фрагмент кода с параметрами. Разница в том, что шаблоны 1С встроены в конфигуратор, работают без дополнительных расширений и поддерживают специфичные возможности вроде подстановки выделенного текста и служебных данных среды разработки.

Есть ли ограничение на количество шаблонов?

Жёсткого практического ограничения, о котором стоило бы беспокоиться, нет — файл .st спокойно вмещает сотни шаблонов. Реальное ограничение другое: чем больше шаблонов, тем сложнее помнить их имена. Практичный ориентир — 15–30 активно используемых шаблонов на разработчика.

Итог

Что важно запомнить

Шаблоны текста включаются через автозамену в параметрах конфигуратора и разворачиваются по ключевому слову с пробелом. Свои шаблоны создаются в окне «Шаблоны текста», поддерживают параметры в угловых скобках и обёртку выделенного кода. Хранятся в файлах .st, которые легко переносить и копировать. После каждой вставки проверяйте модуль на синтаксические ошибки, а резервную копию библиотеки держите отдельно.