Данная конструкция в 1С используется в запросе для усечения длины строки,а также для приведения строки неограниченной длины к переменной строке с фиксированным ограничением.
Синтаксис функции
ВЫРАЗИТЬ (<СТРОКА-ИСТОЧНИК> КАК СТРОКА(<ДлинаРезультата>)
- Если на входе строка больше указанной длины — она усекается.
- Если меньше — остается неизменной.
- При передаче строки неограниченной длины происходит тоже самое.
Никаких пробелов в конце короткой строки не добавляется.
Другие особенности использования ВЫРАЗИТЬ КАК СТРОКА
Передача NULL в качестве параметра не вызывает ошибки, но на выходе будет NULL (не строкой).
Передача для преобразования других типов вызывает ошибку «Несовместимые типы ВЫРАЗИТЬ».
Преобразовать число как строку в запросе или же ссылку как строку в данной функции (да и в любых других функциях запроса невозможно). Это отличает TSQL запрос select cast(‘321’ as numeric(10) от запроса в 1С.
Функция ПРЕДСТАВЛЕНИЕ(ЧИСЛО), может на выходе запроса выдать строку, но внутри запроса ее результат использовать невозможно даже в качестве параметра для ВЫРАЗИТЬ.
Конкантенация (сложение) строк допустима и с результатом ВЫРАЗИТЬ:
«321»+ ВЫРАЗИТЬ («Строка» КАК СТРОКА(100))
Идентификатор ссылочного объекта в запросе получить невозможно и ожидаемое многими начинающими программистами 1С в КАЧЕСТВЕ ВЫРАЗИТЬ(ССЫЛКА как СТРОКА()) не работает: ни наименования, ни кода, ни идентификатора не получится — будет ошибка несовместимости типов.
Вот такая простая функция без особых сюрпризов.
Возможно когда-нибудь в платформе 8.4 1С исправит ситуацию с преобразованиями типов в запрос, а может тут дело в поддержании совместимости всех баз данных.
Реклама – это не выигрывание призов Эффи и Золотых Львов. Это зарабатывание денег рекламодателям.