Содержание:
1. Как создать вычисляемое поле
2. Как использовать функцию ЧислоБезНулей в системе программ 1С:Предприятие
3. Как добавить вычисляемое поле в отчет
В СКД можно настроить преобразование номера объекта через вычисляемое поле. Это позволяет форматировать данные перед их выводом в отчет.
1. Как создать вычисляемое поле
1. Откройте настройки СКД в вашем отчете.
2. Перейдите на вкладку «Наборы данных».
3. Добавьте вычисляемое поле, например, назовите его НомерБезНулей.
4. В качестве выражения для поля используйте функцию ЧислоБезНулей. Например:
ЧислоБезНулей(Строка(Документы.Номер))
Где:
- Документы.Номер — это поле, содержащее номер документа.
2. Как использовать функцию ЧислоБезНулей в системе программ 1С:Предприятие
Функция ЧислоБезНулей преобразует строку в числовое значение, автоматически убирая ведущие нули. Например:
ЧислоБезНулей("000123") // Вернет: 123
Если номер может содержать символы (например, префиксы или буквы), следует использовать более сложное выражение, чтобы сначала убрать ненужные символы.
3. Как добавить вычисляемое поле в отчет
1. Перейдите на вкладку «Настройки».
2. В дереве выбранных полей добавьте новое поле НомерБезНулей.
3. Убедитесь, что поле выводится корректно, и настройте формат отображения, если требуется.
Решение: использование преобразования в запросе.
Если вычисляемое поле неудобно использовать, можно настроить преобразование прямо в запросе:
1. В запросе преобразуйте номер с помощью встроенных функций. Например:
ВЫБРАТЬ
Товары.Ссылка,
Товары.Код КАК ИсходныйКод,
Число(Товары.Код) КАК КодБезНулей
ИЗ
Справочник.Товары КАК Товары
2. Используйте поле КодБезНулей для вывода в отчете.
Решение на стороне модуля отчета.
В некоторых случаях проще выполнить преобразование программно перед формированием отчета:
1. В модуле объекта отчета используйте обработчик ПередФормированиемОтчета.
2. Преобразуйте данные через модуль:
Процедура ПередФормированиемОтчета(Настройки, Параметры) Экспорт
Для Каждого Строка Из Параметры.НаборДанных Цикл
Если Строка.Номер <> Неопределено Тогда
Строка.Номер = ЧислоБезНулей(Строка.Номер);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Специалист компании ООО "Кодерлайн"
Елена Дубровина