A1sCodeбиблиотека 1С

A1sS.Subst

Подстановка параметров вида {Имя} в шаблон строки. Принимает Структура и заменяет все вхождения соответствующих плейсхолдеров.

Сигнатура


Функция Subst(Text, Params) Экспорт // Строка
// Text — шаблон; Params — Структура с парами "Ключ, Значение"

Как работает

  • Если ParamsСтруктура, для каждого ключа формируется плейсхолдер {Ключ} и выполняется глобальная замена.
  • Значения приводятся к строке через Строка(...). Хотите формат — подготовьте заранее через Формат(...).
  • Если Params = Неопределено или не Структура, возвращается исходный текст без изменений.

Примеры (прогрессия)

1) Базовая подстановка

Шаблон = "Привет, {Имя}! Ваш заказ №{Номер}.";
Парам = Новый Структура("Имя,Номер", "Иван", 42);
Результат = A1sS.Subst(Шаблон, Парам);
// "Привет, Иван! Ваш заказ №42."
2) Форматирование чисел и дат

Сумма = 12345.67;
Дата  = '2025-08-12';
Шаблон = "Сумма: {Сумма}; Дата: {Дата}";
Парам = Новый Структура;
Парам.Вставить("Сумма", Формат(Сумма, "ЧГ=0; ЧД=2; N=,; T= ")); // 12 345,67
Парам.Вставить("Дата", Формат(Дата, "ДФ=dd.MM.yyyy"));
Результат = A1sS.Subst(Шаблон, Парам);
// "Сумма: 12 345,67; Дата: 12.08.2025"
3) Персонализированное письмо

Шаблон = "Здравствуйте, {Имя}! Статус заказа: {Статус}.";
Парам = Новый Структура("Имя,Статус", "Мария", "Готов к выдаче");
Сообщение = A1sS.Subst(Шаблон, Парам);
A1sS.Print(Сообщение);

Замечания

  • Избегайте перекрывающихся ключей (например, {ID} и {IDПолный}) — замена идёт по порядку ключей структуры.
  • Не поддерживается экранирование фигурных скобок. Если вам нужны литералы { или }, подготовьте текст заранее (например, через СтрЗаменить).

Смотрите также

  • A1sS.GetTemplate — загрузка и подстановка параметров в текстовый шаблон.
  • A1sS.RegexReplace — точечные замены по регулярным выражениям.