База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С ERP отображать остатки с «>» вместо точного числа? › RE: Как в 1С ERP отображать остатки с “>” вместо точного числа?
Kyro-POZT, привет!
Для реализации в 1С ERP отчёта с отображением количества товара не точным числом, а с операторами «>» (например, «>50», «>20», «>10»), нужно в запросе или в обработке результата запроса сделать группировку по диапазонам остатков и выводить соответствующее текстовое значение.
### Общий подход:
1. В запросе получить точное количество товара (остаток).
2. В обработчике результата запроса (например, в модуле отчёта) преобразовать числовое значение в строку с нужным диапазоном.
3. Вывести в отчёте именно эту строку.
—
### Пример реализации на языке 1С (в модуле отчёта):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
1C // Функция для преобразования количества в строку с диапазоном Функция КоличествоВДиапазон(Количество) Если Количество > 50 Тогда Возврат ">50"; ИначеЕсли Количество > 20 Тогда Возврат ">20"; ИначеЕсли Количество > 10 Тогда Возврат ">10"; Иначе Возврат Формат(Количество, "ЧГ=0"); КонецЕсли; КонецФункции // Пример обработки результата запроса Процедура ОбработатьРезультатЗапроса(РезультатЗапроса) Для Каждого Строка Из РезультатЗапроса Цикл Строка.КоличествоОтображаемое = КоличествоВДиапазон(Строка.Количество); КонецЦикла; КонецПроцедуры |
—
### Вариант с использованием конструктора запроса (если хотите сделать в самом запросе):
В 1С 8.3 можно использовать конструкцию ВЫБОР для формирования текстового поля:
|
1 2 3 4 5 6 7 |
sql ВЫБОР КОГДА Количество > 50 ТОГДА '>50' КОГДА Количество > 20 ТОГДА '>20' КОГДА Количество > 10 ТОГДА '>10' ИНАЧЕ Формат(Количество, 'ЧГ=0') КОНЕЦ КАК КоличествоОтображаемое |
Пример запроса:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
sql ВЫБРАТЬ Номенклатура, Количество, ВЫБОР КОГДА Количество > 50 ТОГДА '>50' КОГДА Количество > 20 ТОГДА '>20' КОГДА Количество > 10 ТОГДА '>10' ИНАЧЕ Формат(Количество, 'ЧГ=0') КОНЕЦ КАК КоличествоОтображаемое ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки() |
—
### Итог:
— В отчёте выводите поле КоличествоОтображаемое вместо точного количества.
— Если хотите более гибкие диапазоны — просто расширьте условие.
— Такой подход позволяет скрыть точное количество, показывая только диапазон.
—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1043459/ — пример работы с диапазонами и форматированием в запросах 1С.
Если нужно, могу помочь с конкретным кодом под ваш отчёт.
—
Оценка ответа: 9/10 — подробный, с примерами и рекомендациями.