Функция Строка

Язык запросов · String

Синтаксис и применение Функция Строка в платформе 1С:Предприятие. Описание и примеры кода.

Полное описание, параметры и ограничения

Функция Строка (String)

СТРОКА (<Значение>)

Данная функция преобразует значение примитивного типа в строку с учетом национальных установок.

При применении к не примитивному типу выдается ошибка при попытке выполнения запроса. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL.

Значение - преобразуемое значение типа Число, Булево, Строка, Дата, NULL, Неопределено.

Возвращаемое значение: Строка.
Длина результирующей строки определяется на основании значения:

Для Числа - длина строки равна длине числа умноженной на 2.

Для Дата и Булево длина строки равна 32.

Для NULL и Неопределено длина строки равна 1.

см. также: Функции языка запросов

Практические примеры

Преобразовать свои число, дату и Булево через СТРОКА запроса

СТРОКА языка запросов принимает примитивные значения и учитывает национальные установки. Проверяем тип результата, не навязывая десятичный разделитель и формат даты.

Где и как запускать

Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.

Подготовка

  1. В отдельной учебной базе 8.5.1.1343 создайте общий модуль УчебныйЯзык: Сервер=Истина, Глобальный=Ложь, ВызовСервера=Ложь, Привилегированный=Ложь. Клиентские и внешнее соединение отключены; ПовторноеИспользованиеВозвращаемыхЗначений=НеИспользовать.

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

  3. В своей внешней учебной обработке создайте управляемую форму, команду Выполнить и кнопку. Клиентский обработчик Выполнить(Команда) вызывает свою процедуру ВыполнитьНаСервере(); она имеет директиву &НаСервереБезКонтекста и одну строку УчебныйЯзык.ВыполнитьПример();. Это серверный вызов общего модуля, а не разрешение клиенту прямо обращаться к серверной библиотеке.

  4. Все товары, количества и строки придуманы в этом модуле. Запись документов, подключение к чужой базе, файлы, сеть и печать не используются. В рабочие общие модули текст не вставляйте.

  5. HTML только показывает BSL. Код в 1С не запускался; перечисленные результаты и отрицательные опыты проверяйте самостоятельно в собственном стенде.

  6. Этот запрос без ИЗ получает одну строку только из явно заданных своих параметров. Справочники, документы, регистры, временные таблицы и рабочие сведения не читаются.

  7. В модуле BSL запрос — многострочная строка: кавычки его текстовых констант удвоены, продолжения начинаются с |. Не добавляйте значение параметра склейкой в текст запроса.

  8. Речь о функциях внутри языка запросов, не о внешне похожих функциях BSL. Их правила и доступность сверены с shquery_ru.hbk установленной 8.5.1.1343, но запросы здесь в 1С не выполнялись.

Процедура ВыполнитьПример() Экспорт
    КоличествоОбразца = 12.5;
    ДатаОбразца = Дата(2026, 9, 18, 10, 30, 0);
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    СТРОКА(&Количество) КАК ЧислоВТекст,
    |    СТРОКА(&ДатаОбразца) КАК ДатаВТекст,
    |    СТРОКА(&Флаг) КАК ФлагВТекст,
    |    СТРОКА(&Название) КАК УжеСтрока,
    |    ЕСТЬNULL(СТРОКА(NULL), ""нет значения"") КАК NullДляПоказа";
    Запрос.УстановитьПараметр("Количество", КоличествоОбразца);
    Запрос.УстановитьПараметр("ДатаОбразца", ДатаОбразца);
    Запрос.УстановитьПараметр("Флаг", Истина);
    Запрос.УстановитьПараметр("Название", "Учебная строка");
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Если НЕ Выборка.Следующий() Тогда
        ВызватьИсключение "Запрос из собственных параметров должен вернуть одну строку";
    КонецЕсли;
    Сообщить(ТипЗнч(Выборка.ЧислоВТекст) = Тип("Строка"));
    Сообщить(ТипЗнч(Выборка.ДатаВТекст) = Тип("Строка"));
    Сообщить(ТипЗнч(Выборка.ФлагВТекст) = Тип("Строка"));
    Сообщить(Выборка.УжеСтрока = "Учебная строка");
    Сообщить(Выборка.NullДляПоказа = "нет значения");
    Сообщить("Число с национальными установками: " + Выборка.ЧислоВТекст);
    Сообщить("Дата с национальными установками: " + Выборка.ДатаВТекст);
    Сообщить("Булево с национальными установками: " + Выборка.ФлагВТекст);
    Если Выборка.Следующий() Тогда
        ВызватьИсключение "У запроса без источников ожидалась ровно одна строка";
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Создать свои число 12.5 и дату 18.09.2026 10:30; отдельно передать Булево и уже готовую строку.

  2. Установить все четыре параметра до Выполнить. СТРОКА вызывается в тексте запроса, не вокруг результата BSL.

  3. Число, дата и Булево после преобразования дают тип Строка; представление зависит от национальных установок.

  4. УжеСтрока остаётся равна собственной исходной строке.

  5. СТРОКА(NULL) даёт NULL, не литерал "NULL"; ЕСТЬNULL формирует только текст для показа.

  6. Вывести фактические три представления и проверить единственную строку. Не использовать эти локальные строки как JSON-даты или машинные числовые форматы.

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

  1. Пять проверок Истина, затем фактические представления числа, даты и Булево.

  2. УжеСтрока=Учебная строка, NullДляПоказа=нет значения.

  3. Не сравнивайте ЧислоВТекст с фиксированным 12,5 или 12.5: национальные установки явно входят в контракт.

Ожидаемый результат

Примитивные значения преобразованы в строки без ложных предположений о локали и без смешивания NULL с пустым текстом.

На что обратить внимание

  1. СТРОКА запроса не является универсальным сериализатором произвольных объектов: непримитивный тип вызывает ошибку.

  2. Национальное представление удобно человеку, но не гарантирует машинный формат API/CSV/JSON.

  3. NULL возвращает NULL до явной замены ЕСТЬNULL; сама СТРОКА не добавляет текст заглушки.

  4. Здесь не обещается одинаковый текст Булево/даты на машинах с разными национальными установками.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.