helpf.pro
Регистрация
 -8 
Распечатать

Оператор ВЫРАЗИТЬ, аналог методов Лев, Прав, СокрЛП в Запросе?

Использовать конструкцию «ВЫРАЗИТЬ»:
Код 1C v 8.х
 Запрос.Текст = "

|ГДЕ
| (ВЫРАЗИТЬ(ЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) <> &Груз";
Запрос.УстановитьПараметр("Груз","Тонн");


С целью приведения строк неограниченной длины к строкам ограниченной длины рекомендуется использовать операцию приведения типа ВЫРАЗИТЬ() :
Код 1C v 8.х
 
ВЫБРАТЬ
ВЫБОР
КОГДА Вид = &ЮрАдресФизЛица
ТОГДА ВЫРАЗИТЬ(Представление КАК Строка(200))
ИНАЧЕ NULL
КОНЕЦ КАК Представление,
ВЫБОР
КОГДА Вид = &ЮрАдресФизЛица
ТОГДА ВЫРАЗИТЬ(Представление КАК Строка(200))
ИНАЧЕ NULL
КОНЕЦ КАК Представление1
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
УПОРЯДОЧИТЬ ПО
Представление,
Представление1
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 81829
 -8 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
Вычислить возраст человека и выразить его прописью 0
Основная функция будет использовать в себе три вспомогательных: Функция РазностьМеждуДатамиВМесяцах(Дата1,Дата2) Год1 = Год(Дата1); Год2 = Год(Дата2); Месяц1 = Месяц(Дата1); Месяц2 = Месяц(Дата2); День1 = День(Дата1); День2 = День(Дата2); Рез
Как в запросе задать условие по полю с типом Строка Неограниченной Длины? 6
Необходимо выбрать все документы с определенным комментарием! Для этого необходимо ограничить длину поля с помощью оператора языка запросов ВЫРАЗИТЬ. Например: Запрос=Новый Запрос(" |ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка |ИЗ | Документ.Реали
Как в запросе задать условие по типы значения? 2
// В данном примере используется проверка, // что субконто 2 содержит тип значения ссылки на документ Реализации товаров и услуг, // чтобы потом уверенно использовать реквизит вид операции. Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ
Как в запросе одно строковое поле разделить на два ( ПОДСТРОКА )? 0
Задача состояла в том, что нужно было из реквизита документа Сответствие выделить две строки и сделать сортировку по ним. Соответствие счета, такого вида: 779000/004599. Как разбить это значение на два? У функции ПОДСТРОКА три параметра. В качестве
Посмотреть все результаты поиска похожих
Комментарии
all4cf
29.07.2024 06:54Комментарий: 2
all4cf

в версии 1С: Предприятия 8.3.20 Появились функция которые можно использовать в запросе:

Код 1C v 8.3
 Строка(String) – преобразует в строку.
Sin, Cos, Tan, ASin, ACos, ATan - тригонометрические функции (в радианах)
Exp - вычисляет результат возведения основания натурального логарифма (числа e) в степень
Log - натуральный логарифм числа.
Log10 - десятичный логарифм числа.
Pow - возведение в степень.
Sqrt – квадратный корень.
Окр(Round) - округляет число до нужной разрядности
Цел(Int) - вычисляет целую часть числа, полностью отсекая дробную часть.
ДлинаСтроки(StringLength) – длина строки.
СокрЛ(TrimL) – отбрасывает пробелы слева.
СокрП(TrimR) – отбрасывает пробелы справа.
СокрЛП(TrimAll) – отбрасывает пробелы слева и справа.
Лев(Left) – получает первые слева символы строки.
Прав(Right) – получает первые справа символы строки.
СтрНайти(StrFind) – находит первую позицию подстроки в строке (без учета регистра).
ВРег(Upper) – преобразует символы строки в верхний регистр.
НРег(Lower) – преобразует символы строки в нижний регистр.
СтрЗаменить(StrReplace) – заменяет все вхождения подстроки на другую подстроку (без учета регистра).
РазмерХранимыхДанных(StoredDataSize) – размер данных в байтах, которые занимают данные параметра.

Решение по данному вопросу следующее:

Код 1C v 8.3
 ВЫБРАТЬ
_ДемоНоменклатура.Ссылка КАК Ссылка,
Лев(_ДемоНоменклатура.Ссылка.Наименование,5) КАК Слева5,
Прав(_ДемоНоменклатура.Ссылка.Наименование,10) КАК Справа10,
_ДемоНоменклатура.Цена КАК Цена1

ИЗ
Справочник._ДемоНоменклатура КАК _ДемоНоменклатура

// отбрезаем пробелы

ВЫБРАТЬ
_ДемоНоменклатура.Ссылка КАК Ссылка,
СокрЛ(" "+_ДемоНоменклатура.Ссылка.Наименование+" ") КАК УбратьПробелыСлева,
СокрП(" "+_ДемоНоменклатура.Ссылка.Наименование+" ") КАК УбратьПробелыСправа,
СокрЛП(" "+_ДемоНоменклатура.Ссылка.Наименование+" ") КАК УбратьПробелы,


_ДемоНоменклатура.Цена КАК Цена1

ИЗ
Справочник._ДемоНоменклатура КАК _ДемоНоменклатура
FeliceYa
05.04.2011 16:34Комментарий: 1
FeliceYa
Ещё оператор ВЫРАЗИТЬ используется для приведения числа к определённому виду. Например:
Код 1C v 8.х
 ВЫБРАТЬ
ВЫРАЗИТЬ(10 / 3 КАК ЧИСЛО(12, 2)) КАК Поле1
даст результат 3,33 вместо 3,33333333333333.

Или ещё для выделения значений определённого типа значения из переменной с составным типом значения. Например такой запрос
Код 1C v 8.х
 ВЫБРАТЬ
ВЫРАЗИТЬ(КонтактнаяИнформация.Объект КАК Справочник.Контрагенты) КАК ОбъектКонтрагент
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
результат запроса будет содержать значения типа СправочникСсылка.Контрагенты и NULL когда значения будут встречаться другого типа
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.