Как отсортировать список в запросе на 1С по числу, хранящемуся в строке?

Да, такая вот задача. Самый первый ответ — в 1С это невозможно, так как функционал работы со строками непосредственно в запросе беден, и строку в число преобразовать невозможно.

Эти неприятности можно обойти с помощью следующего алгоритма. С помощью функции ПОДСТРОКА определяем наличие символа, например, пятого, и если символ не находится, то предполагаем, что в текущей строке содержится четырехзначное число. Тогда эту строку прибавляем к символу «0» (ноль) и радуемся сортировке. В моем примере в строке Код77 содержались числа от 1000 до 99999, т.е. количество символов — либо 4, либо 5.

Сам запрос:

ВЫБРАТЬ

ВЫБОР
КОГДА ПОДСТРОКА(Код77, 5, 1) = «»
ТОГДА «0» + Код77
ИНАЧЕ Код77
КОНЕЦ КАК Код77Порядок

ИЗ

УПОРЯДОЧИТЬ ПО
Код77Порядок

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

Ваш адрес email не будет опубликован.

Я не робот (обязательно поставьте эту галочку).

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.