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

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

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

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

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

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

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

Какие виды шаблонов текста существуют в 1С

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

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

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

Сравнение вариантов

Шаблон конфигуратора (.st)

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

Макет «Текстовый документ»

Для текстов, которые программа подставляет в режиме предприятия: письма, комментарии, XML-фрагменты. Хранится внутри конфигурации, обновляется вместе с ней.

Шаблоны сообщений конфигурации

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

Как создать шаблон текста в конфигураторе

Откройте конфигуратор и перейдите в меню «Текст» → «Шаблоны текста…». Откроется окно со списком существующих шаблонов — в стандартной поставке там уже есть заготовки для типовых конструкций языка.

Нажмите кнопку «Создать» (или сочетание Ctrl+N в окне шаблонов). В открывшемся редакторе введите текст заготовки. Например, для часто используемого цикла обхода выборки:

Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл

<?>

КонецЦикла;

Конструкция <?> — это позиция курсора после вставки шаблона. Сохраните шаблон, указав понятное имя, например «ОбходВыборки». Теперь при работе в модуле шаблон доступен через «Текст» → «Шаблоны текста» или по горячей клавише вызова списка.

Порядок создания шаблона в конфигураторе
  1. 1
    Откройте «Текст» → «Шаблоны текста…»
  2. 2
    Нажмите «Создать» и введите текст заготовки
  3. 3
    Расставьте позиции курсора и параметры в угловых скобках
  4. 4
    Задайте строку автозамены, если нужен быстрый вызов
  5. 5
    Сохраните шаблон и проверьте вставку в любом модуле

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

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

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

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

Как сделать шаблон текста для пользовательского режима

Если заготовка нужна не разработчику, а программе или пользователю в режиме «1С:Предприятие», используйте макет. В конфигураторе откройте ветку «Общие» → «Макеты», создайте новый макет с типом «Текстовый документ» и введите текст с метками параметров, например: «Уважаемый [Клиент], ваш заказ [НомерЗаказа] отгружен».

Подстановка выполняется кодом: макет получается методом ПолучитьМакет(), текст читается в строку, после чего метки заменяются функцией СтрЗаменить() на реальные значения. Этот подход хорош тем, что текст правится без изменения кода — достаточно отредактировать макет.

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

bsl
Макет = ПолучитьОбщийМакет("ШаблонПисьма");
Текст = Макет.ПолучитьТекст();
Текст = СтрЗаменить(Текст, "[Клиент]", Контрагент.Наименование);
Текст = СтрЗаменить(Текст, "[НомерЗаказа]", Заказ.Номер);

Как проверить, что шаблон работает правильно

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

Для прикладного шаблона выполните подстановку на тестовых данных. Особое внимание уделите параметрам, которые могут быть пустыми: если контрагент без наименования или заказ без номера, в тексте не должно остаться незаменённых меток вида [Клиент]. Добавьте в код проверку: после всех замен ищите в тексте остаточные квадратные скобки и при их наличии выводите предупреждение.

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

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

Вставка в модуле
Норма

Шаблон разворачивается, курсор на первом параметре

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

Вставляется обычный текст без позиций редактирования

Автозамена
Норма

Короткое слово разворачивается в заготовку

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

Срабатывает на обычные слова кода или не срабатывает вовсе

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

Все метки заменены значениями

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

В тексте остались [Метки] или пустые места

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

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

Вторая ошибка — хранение пользовательских текстов прямо в коде длинными строковыми константами вместо макета. Такой текст сложно править, он не попадает в механизмы локализации и захламляет модуль. Третья — отсутствие экранирования спецсимволов: если шаблон используется для HTML-писем или XML, неэкранированные символы из подставляемых данных могут сломать разметку.

Типичные ошибки
01
Правка стандартного файла шаблонов — изменения теряются при обновлении платформы
02
Строка автозамены совпадает с обычным словом кода — шаблон срабатывает постоянно и мешает писать
03
Текст письма зашит в код строковой константой — правка требует изменения конфигурации
04
Нет проверки пустых параметров — в письмо уходят незаменённые метки [Клиент]

Ответы на частые вопросы

Где хранится файл шаблонов текста конфигуратора?

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

Можно ли сделать общий файл шаблонов для всей команды разработчиков?

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

Работают ли шаблоны текста в веб-клиенте?

Шаблоны конфигуратора — это инструмент толстого клиента разработчика, в веб-клиенте их нет. Прикладные шаблоны (макеты, шаблоны писем) работают в любом клиенте, потому что обрабатываются на сервере.

Как вставить в шаблон дату или текущего пользователя автоматически?

В шаблонах конфигуратора для этого есть встроенные конструкции подстановки, доступные в редакторе шаблона. В прикладных шаблонах значения подставляются кодом: ТекущаяДатаСеанса() и ПользователиИнформационнойБазы.ТекущийПользователь() либо аналоги из состава вашей конфигурации.

Что делать, если автозамена перестала работать?

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

Можно ли использовать шаблоны для печатных форм документов?

Для печатных форм используются макеты табличных документов или офисных документов (DOCX), а не текстовые шаблоны. Там параметры задаются в ячейках макета, а заполнение выполняется через области и параметры табличного документа — это отдельный механизм со своим редактором.

Итог

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

Шаблоны кода создаются в конфигураторе через «Текст» → «Шаблоны текста» с параметрами в угловых скобках и строкой автозамены; храните их в собственном .st-файле. Тексты для пользователей выносите в макеты или штатные шаблоны сообщений конфигурации и всегда проверяйте подстановку на тестовых данных.