[ Вопрос дня ] Какой вариант преобразования строки неограниченной длины к строке ограниченной длины (функции Подстрока и Выразить) в запросе предпочтительнее использовать?

Доброго дня, коллеги!

Обе функции запросов Подстрока() и Выразить() могут быть использованы для преобразования строки неограниченной длины, но есть существенное отличие. Если про него не знать, то может получиться как в той басне про мартышку и очки «вертит очками так и сяк…очки не действуют никак» :)

Вопрос

Здравствуйте! В видеоматериалах курса предложено два варианта преобразования строки неограниченной длины к строке ограниченной длины. Первый вариант – это функция ПОДСТРОКА, второй вариант – это функция ВЫРАЗИТЬ. Какой вариант использования предпочтительнее?

Ответ

Добрый день!

Есть вот такая рекомендация на сайте ИТС – https://its.1c.ru/db/metod8dev#content:2667:hdoc. В ней говорится, что из-за особенностей Microsoft SQL Server лучше использовать операцию приведения типа ВЫРАЗИТЬ.

Также есть следующая особенность. Существует ограничение на 1024 символа при использовании функции ВЫРАЗИТЬ. В таком запросе возникнет синтаксическая ошибка:

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Комментарий КАК СТРОКА(1025)) КАК Поле1
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Ссылка = &Ссылка

А вот такой запрос будет выполнен без ошибок:

Ошибка

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 1, 1025) КАК Поле1
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Ссылка = &Ссылка

P.S.

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

После курса Вы сможете:

  • Строить сложные запросы с несколькими источниками данных
  • Уверенно задействовать вложенные запросы и временные таблицы
  • Использовать встроенный язык для обработки результатов запроса
  • Учитывать особенности соединений и объединений нескольких таблиц.
  • Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.
Программа, стоимость, условия и регистрация в группу: «Запросы в 1С 8.3, Базовый курс (с нуля до уровня Специалист по платформе)» Для всех, кто внедряет и дорабатывает 1С.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.