Синтаксис и применение Функция Строка в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Функция Строка (String)
СТРОКА (<Значение>)
Данная функция преобразует значение примитивного типа в строку с учетом национальных установок.
При применении к не примитивному типу выдается ошибка при попытке выполнения запроса. Если в качестве параметра будет использовано значение NULL, то результатом функции также будет значение NULL.
Значение - преобразуемое значение типа Число, Булево, Строка, Дата, NULL, Неопределено.
Возвращаемое значение: Строка.
Длина результирующей строки определяется на основании значения:
Для Числа - длина строки равна длине числа умноженной на 2.
Для Дата и Булево длина строки равна 32.
Для NULL и Неопределено длина строки равна 1.
см. также: Функции языка запросов
Практические примеры
Преобразовать свои число, дату и Булево через СТРОКА запроса
СТРОКА языка запросов принимает примитивные значения и учитывает национальные установки. Проверяем тип результата, не навязывая десятичный разделитель и формат даты.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте общий модуль УчебныйЯзык: Сервер=Истина, Глобальный=Ложь, ВызовСервера=Ложь, Привилегированный=Ложь. Клиентские и внешнее соединение отключены; ПовторноеИспользованиеВозвращаемыхЗначений=НеИспользовать.
Вставьте весь приведённый текст в этот общий модуль. ВыполнитьПример — экспортная точка входа; остальные процедуры и функции располагаются рядом, а не внутри неё.
В своей внешней учебной обработке создайте управляемую форму, команду Выполнить и кнопку. Клиентский обработчик Выполнить(Команда) вызывает свою процедуру ВыполнитьНаСервере(); она имеет директиву &НаСервереБезКонтекста и одну строку УчебныйЯзык.ВыполнитьПример();. Это серверный вызов общего модуля, а не разрешение клиенту прямо обращаться к серверной библиотеке.
Все товары, количества и строки придуманы в этом модуле. Запись документов, подключение к чужой базе, файлы, сеть и печать не используются. В рабочие общие модули текст не вставляйте.
HTML только показывает BSL. Код в 1С не запускался; перечисленные результаты и отрицательные опыты проверяйте самостоятельно в собственном стенде.
Этот запрос без ИЗ получает одну строку только из явно заданных своих параметров. Справочники, документы, регистры, временные таблицы и рабочие сведения не читаются.
В модуле BSL запрос — многострочная строка: кавычки его текстовых констант удвоены, продолжения начинаются с |. Не добавляйте значение параметра склейкой в текст запроса.
Речь о функциях внутри языка запросов, не о внешне похожих функциях BSL. Их правила и доступность сверены с shquery_ru.hbk установленной 8.5.1.1343, но запросы здесь в 1С не выполнялись.
Процедура ВыполнитьПример() Экспорт
КоличествоОбразца = 12.5;
ДатаОбразца = Дата(2026, 9, 18, 10, 30, 0);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СТРОКА(&Количество) КАК ЧислоВТекст,
| СТРОКА(&ДатаОбразца) КАК ДатаВТекст,
| СТРОКА(&Флаг) КАК ФлагВТекст,
| СТРОКА(&Название) КАК УжеСтрока,
| ЕСТЬNULL(СТРОКА(NULL), ""нет значения"") КАК NullДляПоказа";
Запрос.УстановитьПараметр("Количество", КоличествоОбразца);
Запрос.УстановитьПараметр("ДатаОбразца", ДатаОбразца);
Запрос.УстановитьПараметр("Флаг", Истина);
Запрос.УстановитьПараметр("Название", "Учебная строка");
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если НЕ Выборка.Следующий() Тогда
ВызватьИсключение "Запрос из собственных параметров должен вернуть одну строку";
КонецЕсли;
Сообщить(ТипЗнч(Выборка.ЧислоВТекст) = Тип("Строка"));
Сообщить(ТипЗнч(Выборка.ДатаВТекст) = Тип("Строка"));
Сообщить(ТипЗнч(Выборка.ФлагВТекст) = Тип("Строка"));
Сообщить(Выборка.УжеСтрока = "Учебная строка");
Сообщить(Выборка.NullДляПоказа = "нет значения");
Сообщить("Число с национальными установками: " + Выборка.ЧислоВТекст);
Сообщить("Дата с национальными установками: " + Выборка.ДатаВТекст);
Сообщить("Булево с национальными установками: " + Выборка.ФлагВТекст);
Если Выборка.Следующий() Тогда
ВызватьИсключение "У запроса без источников ожидалась ровно одна строка";
КонецЕсли;
КонецПроцедурыРазбор по шагам
Создать свои число 12.5 и дату 18.09.2026 10:30; отдельно передать Булево и уже готовую строку.
Установить все четыре параметра до Выполнить. СТРОКА вызывается в тексте запроса, не вокруг результата BSL.
Число, дата и Булево после преобразования дают тип Строка; представление зависит от национальных установок.
УжеСтрока остаётся равна собственной исходной строке.
СТРОКА(NULL) даёт NULL, не литерал "NULL"; ЕСТЬNULL формирует только текст для показа.
Вывести фактические три представления и проверить единственную строку. Не использовать эти локальные строки как JSON-даты или машинные числовые форматы.
Как проверить результат
Пять проверок Истина, затем фактические представления числа, даты и Булево.
УжеСтрока=Учебная строка, NullДляПоказа=нет значения.
Не сравнивайте ЧислоВТекст с фиксированным 12,5 или 12.5: национальные установки явно входят в контракт.
Ожидаемый результат
Примитивные значения преобразованы в строки без ложных предположений о локали и без смешивания NULL с пустым текстом.
На что обратить внимание
СТРОКА запроса не является универсальным сериализатором произвольных объектов: непримитивный тип вызывает ошибку.
Национальное представление удобно человеку, но не гарантирует машинный формат API/CSV/JSON.
NULL возвращает NULL до явной замены ЕСТЬNULL; сама СТРОКА не добавляет текст заглушки.
Здесь не обещается одинаковый текст Булево/даты на машинах с разными национальными установками.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.