Преобразование строковых реквизитов в СКД
Пример извлечения числового значения из реквизита строкового типа в отчете на СКД.
- Описание
- Подробнее
Описание
Преамбула.
Была поставлена задача классифицировать контрагентов в отчете "Задолженность клиентов по срокам" на основании маркера Контур-Фокус "отношение долга к EBITDA".
В чем заключалась сложность.
Значение этого маркера хранилось в регистре сведений в виде строки JSON. Примерно в таком виде: {"Расшифровка": "Отношение долга к EBITDA: 1,001717688985921371582681842","Параметры": []}. Нужно было вытащить из этой строки числовой показатель 1,001717688985921371582681842 и вывести в отчет.
Что было сделано.
В запросе набора данных схемы СКД получал указанную выше строку из регистра — поле Расшифровка. Затем в выражении ресурса преобразовывал в числовое значение следующим образом:
Выбор Когда Расшифровка ЕСТЬ NULL Тогда 0
Когда Расшифровка = "" Тогда 0
Когда Лев(ВычислитьВыражение("СтрСоединить(СтрРазделить(Расшифровка, СтрСоединить(СтрРазделить(Расшифровка, ""0123456789,-""))))","Партнер"),1) = "," Тогда 0
Иначе Окр(Лев(ВычислитьВыражение("СтрСоединить(СтрРазделить(Расшифровка, СтрСоединить(СтрРазделить(Расшифровка, ""0123456789,-""))))","Партнер"),10),3)
Конец
В итоге получаем данные в отчете в таком виде:
Отчет для примера прикладываю к публикации.
ВНИМАНИЕ, если у вас не установлено соответствующее расширение Контур-Фокус, отчет работать НЕ будет.