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 — точечные замены по регулярным выражениям.