В отчете на СКД выделить предпоследнее слово
Добрый день!
Запросом выбирается строки типа
"Поездка в Москву 25/01/2017-28/01/2017 5 д."
"Поездка в Нижний Новгород 23/01/2017 1 д."
Нужно из строки выделить количество дней. Хочет запросом, но как я понимаю, в запросе этого сделать нельзя.
Но ведь можно в СКД для вычисляемого поля использовать функции из глобальных общих модулей?
Может быть 1С уже написала функцию, делящая строку по словам, позволяющая выбрать нужное слово?
Или есть еще какие-то варианты?
Запросом выбирается строки типа
"Поездка в Москву 25/01/2017-28/01/2017 5 д."
"Поездка в Нижний Новгород 23/01/2017 1 д."
Нужно из строки выделить количество дней. Хочет запросом, но как я понимаю, в запросе этого сделать нельзя.
Но ведь можно в СКД для вычисляемого поля использовать функции из глобальных общих модулей?
Может быть 1С уже написала функцию, делящая строку по словам, позволяющая выбрать нужное слово?
Или есть еще какие-то варианты?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Как вариант добавляете вычисляемое поле и в выражении указываете
где Наименование - Ваше текстовое поле.
Функция располагается в общем модуле. Текст, примерно, такой:
<ИмяОбщегоМодуля>.ПолучитьФрагментСтроки(Наименование)
где Наименование - Ваше текстовое поле.
Функция располагается в общем модуле. Текст, примерно, такой:
Функция ПолучитьФрагментСтроки(Наименование) Экспорт
МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СокрЛП(Наименование), " ");
КоличествоЭлементовВМассиве = МассивСтрок.Количество();
Если КоличествоЭлементовВМассиве = 0 Тогда
Возврат ""; // если на входе пустая строка или не найден разделитель " ", тогда возвращаем пустую строку (как вариант)
Иначе
Возврат МассивСтрок[КоличествоЭлементовВМассиве-1];
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот