Разработка и Конфигурация · 9 мин
Как создать свой шаблон текста в 1С
Как создать шаблон текста в 1С: работа с шаблонами в конфигураторе, параметры и автозамена, шаблоны писем и документов для пользователей, типичные ошибки.
Шаблоны текста в 1С — это готовые заготовки, которые вставляются одной командой вместо ручного набора повторяющихся фрагментов. Разработчики используют их для ускорения написания кода в конфигураторе: циклы, условия, процедуры и запросы подставляются за пару секунд. Пользователи применяют шаблоны для типовых писем, комментариев к документам и стандартных ответов контрагентам.
Существует два разных механизма, которые часто путают. Первый — шаблоны текста конфигуратора, встроенный инструмент среды разработки, доступный через меню «Текст» → «Шаблоны текста». Второй — прикладные шаблоны в пользовательском режиме: макеты печатных форм, шаблоны сообщений и писем, которые настраиваются средствами конкретной конфигурации. Подход к созданию и место хранения у них разные.
Ниже разобраны оба сценария: как создать собственный шаблон для написания кода, как задать параметры и автозамену, как оформить шаблон сообщения для пользователей и какие ограничения стоит учитывать, чтобы не сломать рабочую базу.
Какие виды шаблонов текста существуют в 1С
Прежде чем создавать шаблон, определите, где он будет использоваться. От этого зависит инструмент и порядок действий.
Шаблоны конфигуратора хранятся в файлах с расширением .st и применяются при редактировании модулей. Они поддерживают параметры — места, куда при вставке подставляются значения, и автозамену — короткое слово, после набора которого шаблон разворачивается автоматически.
Прикладные шаблоны — это макеты печатных форм (табличные документы, HTML, DOCX), шаблоны писем и SMS в конфигурациях с соответствующей подсистемой, а также произвольные текстовые заготовки, которые разработчик хранит в макетах типа «Текстовый документ» и подставляет из кода.
Сравнение вариантов
Для разработчика при написании кода. Поддерживает параметры и автозамену, хранится вне базы, легко переносится между компьютерами.
Для текстов, которые программа подставляет в режиме предприятия: письма, комментарии, XML-фрагменты. Хранится внутри конфигурации, обновляется вместе с ней.
Для пользователей без доступа к конфигуратору. Работает только если в конфигурации есть соответствующая подсистема, параметры задаются через встроенный редактор.
Как создать шаблон текста в конфигураторе
Откройте конфигуратор и перейдите в меню «Текст» → «Шаблоны текста…». Откроется окно со списком существующих шаблонов — в стандартной поставке там уже есть заготовки для типовых конструкций языка.
Нажмите кнопку «Создать» (или сочетание Ctrl+N в окне шаблонов). В открывшемся редакторе введите текст заготовки. Например, для часто используемого цикла обхода выборки:
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
<?>
КонецЦикла;
Конструкция <?> — это позиция курсора после вставки шаблона. Сохраните шаблон, указав понятное имя, например «ОбходВыборки». Теперь при работе в модуле шаблон доступен через «Текст» → «Шаблоны текста» или по горячей клавише вызова списка.
- 1Откройте «Текст» → «Шаблоны текста…»
- 2Нажмите «Создать» и введите текст заготовки
- 3Расставьте позиции курсора и параметры в угловых скобках
- 4Задайте строку автозамены, если нужен быстрый вызов
- 5Сохраните шаблон и проверьте вставку в любом модуле
Как настроить параметры и автозамену
Параметры делают шаблон гибким. Любой фрагмент, заключённый в угловые скобки, например <ИмяПеременной>, при вставке становится редактируемым полем: курсор встаёт в первую позицию, а переход между параметрами выполняется клавишей Tab. Одинаковые параметры заполняются синхронно — ввели имя один раз, оно подставилось во всех повторах.
Автозамена позволяет вызывать шаблон без открытия списка. В свойствах шаблона включите опцию «Включать в контекстное меню» и задайте строку автозамены — короткое слово, например «выборка». После этого достаточно набрать это слово в модуле и нажать пробел или Enter: редактор сам развернёт заготовку.
Выбирайте строки автозамены, которые не совпадают с обычными словами кода. Если назначить автозамену на слово «если», стандартное условие будет постоянно перехватываться вашим шаблоном — это мешает работе и является частой причиной отказа от механизма.
Как сделать шаблон текста для пользовательского режима
Если заготовка нужна не разработчику, а программе или пользователю в режиме «1С:Предприятие», используйте макет. В конфигураторе откройте ветку «Общие» → «Макеты», создайте новый макет с типом «Текстовый документ» и введите текст с метками параметров, например: «Уважаемый [Клиент], ваш заказ [НомерЗаказа] отгружен».
Подстановка выполняется кодом: макет получается методом ПолучитьМакет(), текст читается в строку, после чего метки заменяются функцией СтрЗаменить() на реальные значения. Этот подход хорош тем, что текст правится без изменения кода — достаточно отредактировать макет.
В типовых конфигурациях с подсистемой работы с сообщениями есть готовый справочник шаблонов писем: пользователь создаёт заготовку прямо в режиме предприятия, вставляя параметры из списка доступных полей — наименование контрагента, номер документа, сумму. Проверьте наличие такого справочника в разделе настроек или администрирования вашей конфигурации, прежде чем изобретать собственный механизм.
Макет = ПолучитьОбщийМакет("ШаблонПисьма");
Текст = Макет.ПолучитьТекст();
Текст = СтрЗаменить(Текст, "[Клиент]", Контрагент.Наименование);
Текст = СтрЗаменить(Текст, "[НомерЗаказа]", Заказ.Номер);Как проверить, что шаблон работает правильно
Для шаблона конфигуратора откройте любой модуль и вставьте заготовку обоими способами: через список шаблонов и через строку автозамены. Проверьте, что курсор встаёт в первый параметр, Tab переключает между позициями, а одноимённые параметры заполняются синхронно.
Для прикладного шаблона выполните подстановку на тестовых данных. Особое внимание уделите параметрам, которые могут быть пустыми: если контрагент без наименования или заказ без номера, в тексте не должно остаться незаменённых меток вида [Клиент]. Добавьте в код проверку: после всех замен ищите в тексте остаточные квадратные скобки и при их наличии выводите предупреждение.
Как проверить результат
Шаблон разворачивается, курсор на первом параметре
Вставляется обычный текст без позиций редактирования
Короткое слово разворачивается в заготовку
Срабатывает на обычные слова кода или не срабатывает вовсе
Все метки заменены значениями
В тексте остались [Метки] или пустые места
Типичные ошибки и ограничения
Самая частая ошибка — правка стандартного файла шаблонов, который поставляется с платформой. При обновлении платформы этот файл может быть перезаписан, и все доработки пропадут. Создавайте собственный файл шаблонов и подключайте его в настройках.
Вторая ошибка — хранение пользовательских текстов прямо в коде длинными строковыми константами вместо макета. Такой текст сложно править, он не попадает в механизмы локализации и захламляет модуль. Третья — отсутствие экранирования спецсимволов: если шаблон используется для HTML-писем или XML, неэкранированные символы из подставляемых данных могут сломать разметку.
Ответы на частые вопросы
Где хранится файл шаблонов текста конфигуратора?
По умолчанию — в каталоге данных пользователя платформы, путь можно посмотреть и изменить в окне «Шаблоны текста» через настройки. Файл имеет расширение .st, его можно копировать между компьютерами и передавать коллегам.
Можно ли сделать общий файл шаблонов для всей команды разработчиков?
Да. Положите .st-файл в сетевую папку или систему контроля версий и укажите путь к нему в настройках каждого разработчика. Учтите, что одновременное редактирование одного файла несколькими людьми может приводить к конфликтам — договоритесь о порядке внесения изменений.
Работают ли шаблоны текста в веб-клиенте?
Шаблоны конфигуратора — это инструмент толстого клиента разработчика, в веб-клиенте их нет. Прикладные шаблоны (макеты, шаблоны писем) работают в любом клиенте, потому что обрабатываются на сервере.
Как вставить в шаблон дату или текущего пользователя автоматически?
В шаблонах конфигуратора для этого есть встроенные конструкции подстановки, доступные в редакторе шаблона. В прикладных шаблонах значения подставляются кодом: ТекущаяДатаСеанса() и ПользователиИнформационнойБазы.ТекущийПользователь() либо аналоги из состава вашей конфигурации.
Что делать, если автозамена перестала работать?
Проверьте, что в свойствах шаблона включён флаг автозамены и строка не пустая. Затем убедитесь, что файл шаблонов загружен: откройте список шаблонов — если он пуст, файл отключён или недоступен по указанному пути. Также автозамена не срабатывает внутри строковых литералов и комментариев.
Можно ли использовать шаблоны для печатных форм документов?
Для печатных форм используются макеты табличных документов или офисных документов (DOCX), а не текстовые шаблоны. Там параметры задаются в ячейках макета, а заполнение выполняется через области и параметры табличного документа — это отдельный механизм со своим редактором.
Что важно запомнить
Шаблоны кода создаются в конфигураторе через «Текст» → «Шаблоны текста» с параметрами в угловых скобках и строкой автозамены; храните их в собственном .st-файле. Тексты для пользователей выносите в макеты или штатные шаблоны сообщений конфигурации и всегда проверяйте подстановку на тестовых данных.