В запросе я получаю в колонку названия торговых точек:
- Петров 290
- Васильев 27;
- Дмитрий 78;
Цифрами является номер торговой точки.
Цель: вывести в столбец номера торговых точек.
Я создал вычисляемое поле в скд в котором пытаюсь обратиться к функции, написанной мною, в модуле объекта отчёта, но получаю ошибку.
Если бы я написал эту функцию в общий модуль, например с названием "ОбщийМодуль", а в выражение указал бы: "ОбщийМодуль.ПолучитьНомерМагазина(Магазин)", то все работало бы. Вот мне не понятно, как обратиться с выражения не к общему модулю а к модулю объекта. Не хочу выносить функцию в общие модули, хочу оставить ее в рамках отчёта.
Думаю, текст функции не принципиален, но все же приложу его:
- Петров 290
- Васильев 27;
- Дмитрий 78;
Цифрами является номер торговой точки.
Цель: вывести в столбец номера торговых точек.
Я создал вычисляемое поле в скд в котором пытаюсь обратиться к функции, написанной мною, в модуле объекта отчёта, но получаю ошибку.
Если бы я написал эту функцию в общий модуль, например с названием "ОбщийМодуль", а в выражение указал бы: "ОбщийМодуль.ПолучитьНомерМагазина(Магазин)", то все работало бы. Вот мне не понятно, как обратиться с выражения не к общему модулю а к модулю объекта. Не хочу выносить функцию в общие модули, хочу оставить ее в рамках отчёта.
Думаю, текст функции не принципиален, но все же приложу его:
Функция ПолучитьНомерМагазина(Магазин) Экспорт
ВыхСтрока="";
Для п=1 По СтрДлина(Магазин) Цикл
Симв=Сред(Магазин,п,1);
Если Симв>="0" И Симв<="9" Тогда
ВыхСтрока=ВыхСтрока+Симв;
КонецЕсли;
КонецЦикла;
Возврат ВыхСтрока;
КонецФункции
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Вычисление стажа работы в организации запросом. Вычисление разности дат в годах, днях и месяцах запросом. Вычисление знака зодиака. Статистика окладов по знакам зодиака
- Новые функции СКД 8.2.14
- Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
- Агрегатные функции СКД, о которых мало кто знает
- Работа с запросами в 1С СКД. Язык выражений СКД и подмена запросов
Найденные решения
(1) СКД, вроде как, поддерживает обращение только к экспортным функциям общих модулей
как вариант чтобы не тащить функцию в общий модуль, выполнить предварительный запрос и заполнить временную таблицу результатом, где пересчитать что вам надо и как надо, а СКД уже натравить на временную таблицу
как вариант чтобы не тащить функцию в общий модуль, выполнить предварительный запрос и заполнить временную таблицу результатом, где пересчитать что вам надо и как надо, а СКД уже натравить на временную таблицу
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) СКД, вроде как, поддерживает обращение только к экспортным функциям общих модулей
как вариант чтобы не тащить функцию в общий модуль, выполнить предварительный запрос и заполнить временную таблицу результатом, где пересчитать что вам надо и как надо, а СКД уже натравить на временную таблицу
как вариант чтобы не тащить функцию в общий модуль, выполнить предварительный запрос и заполнить временную таблицу результатом, где пересчитать что вам надо и как надо, а СКД уже натравить на временную таблицу
(1) Если Вам необходимо извлечь из строки лишь цифры, Вы можете попробовать использовать одно из представленных ниже выражений для вычисляемых полей:
Вариант 1 (для типовых)
Вариант 2 (для посвежее платформ)
Вариант 1 (для типовых)
СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими(
СтроковыеФункцииКлиентСервер.ЗаменитьОдниСимволыДругими("0123456789", Магазин.Наименование, ""),
Магазин.Наименование,
"")
Вариант 2 (для посвежее платформ)
СтрСоединить(СтрРазделить(Магазин.Наименование, СтрСоединить(СтрРазделить(Магазин.Наименование, "0123456789"))))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот