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

A1sS.AsString

Надёжно превращает любое значение в строку. Умеет добавлять префикс/суффикс и принимать настройки форматирования чисел/дат/булевых. Безопасен для Неопределено.

Скачать A1sS.bsl →

Назначение

Упрощает приведение к строке при формировании заголовков, логов, сообщений пользователю, экспортов. Позволяет централизованно управлять форматами и не писать каждый раз Формат(...) вручную.

Сигнатура


Функция AsString(
    Value,
    Prefix = "",
    Suffix = "",
    FormatOptions = Неопределено,
    ConfigPerformanceLog = Ложь,
    ConfigDebugMode = Ложь
) Экспорт // Возврат: Строка

Параметры

Возврат

Возвращает: Строка. Пустая строка для Неопределено или по NullText в параметрах форматирования.

  • Value — любое значение (число, дата, булево, строка, ссылка и т.д.).
  • Prefix / Suffix — строки, добавляемые слева/справа. Как правило применяются, когда результат не пустой.
  • FormatOptionsСтруктура с настройками форматирования (см. ниже). Можно не передавать.
  • ConfigPerformanceLogБулево. Включить лёгкий лог времени выполнения (для диагностики).
  • ConfigDebugModeБулево. Расширенная отладочная печать (если включено в модуле).

Поддерживаемые ключи FormatOptions (рекомендации)

  • NumberFormat — формат чисел для Формат (например, "ЧГ=0; ЧД=2; N=,; T= ").
  • DateFormat — формат дат (например, "ДФ=dd.MM.yyyy").
  • BoolYes/BoolNo — как представлять Истина/Ложь (по умолчанию «Да»/«Нет»).
  • NullText — что вернуть для Неопределено (по умолчанию пустая строка).
  • TrimБулево, обрезать пробелы у результата.

Поведение

  • Неопределено → возвращает NullText или пустую строку.
  • Для чисел и дат используется Формат с заданными опциями.
  • Булево: «Да»/«Нет» либо значения из BoolYes/BoolNo.
  • Строки — возвращаются как есть (с опциональным Trim).
  • Prefix/Suffix добавляются, если результирующая строка не пустая.

Примеры (от простого к сложному)

1) Базовые случаи

A1sS.AsString(123);                   // "123"
A1sS.AsString(Неопределено);          // ""
A1sS.AsString(Истина);                // "Да"
A1sS.AsString(Ложь);                  // "Нет"
A1sS.AsString(ТекущаяДата());         // "12.08.2025 14:32" (пример)
2) Префикс/суффикс

A1sS.AsString(42, "№", " шт.");   // "№42 шт."
A1sS.AsString("", "Цена: ");      // "" — префикс не добавится, т.к. значение пустое
3) Формат чисел и дат

Опции = Новый Структура;
Опции.Вставить("NumberFormat", "ЧГ=0; ЧД=2; N=,; T= ");
Опции.Вставить("DateFormat", "ДФ=dd.MM.yyyy");

A1sS.AsString(12345.678, "", " ₽", Опции); // "12 345,68 ₽"
A1sS.AsString('2025-08-12', "Дата: ", "", Опции); // "Дата: 12.08.2025"
4) Булево и NullText

Опции = Новый Структура("BoolYes,BoolNo,NullText", "✔", "✖", "—");
A1sS.AsString(Истина, "", "", Опции);       // "✔"
A1sS.AsString(Ложь, "", "", Опции);         // "✖"
A1sS.AsString(Неопределено, "", "", Опции); // "—"
5) В связке с A1sQ и печатью

// Получим сумму и красиво выведем
Сумма = A1sQ.ValueQ(
    A1sQ.QT("СУММА(Количество * Цена)", "Документ.ЗаказПокупателя.Товары", "Ссылка = &Заказ"),
    СсылкаЗаказа
);

Опции = Новый Структура("NumberFormat", "ЧГ=0; ЧД=2; N=,; T= ");
A1sS.Print( A1sS.AsString(Сумма, "Итого: ", " ₽", Опции) );

Подводные камни

  • Для сложных объектов (таблицы/массивы/структуры) предварительно подготовьте строку сами — AsString предназначен для примитивных типов.
  • Если используете Prefix/Suffix, убедитесь, что они не содержат лишних пробелов — при необходимости применяйте NormalizeWhitespace.

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

  • A1sS.NormalizeWhitespace — подчистить строку после форматирования.
  • A1sS.IsBlank — проверить, что строка не пустая перед добавлением префикса.
  • A1sS.Subst — шаблоны с параметрами.
  • A1sS.GetTemplate — работа с текстовыми шаблонами.