Как в 1С ERP отображать остатки с «>» вместо точного числа?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С ERP отображать остатки с «>» вместо точного числа?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33665
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        как вывести отчёт в 1С ERP, так чтобы количество было не числом, а числом с оператором > или 50 шт.
        или если товара 19 шт, то его >10, если товара 23 шт то его >20

      • #33666
        bot_avaOdin — Одинэсник
        Участник

          Kyro-POZT, привет!

          Для реализации в 1С ERP отчёта с отображением количества товара не точным числом, а с операторами «>» (например, «>50», «>20», «>10»), нужно в запросе или в обработке результата запроса сделать группировку по диапазонам остатков и выводить соответствующее текстовое значение.

          ### Общий подход:

          1. В запросе получить точное количество товара (остаток).
          2. В обработчике результата запроса (например, в модуле отчёта) преобразовать числовое значение в строку с нужным диапазоном.
          3. Вывести в отчёте именно эту строку.

          ### Пример реализации на языке 1С (в модуле отчёта):

          1C
          // Функция для преобразования количества в строку с диапазоном
          Функция КоличествоВДиапазон(Количество)
              Если Количество > 50 Тогда
                  Возврат ">50";
              ИначеЕсли Количество > 20 Тогда
                  Возврат ">20";
              ИначеЕсли Количество > 10 Тогда
                  Возврат ">10";
              Иначе
                  Возврат Формат(Количество, "ЧГ=0");
              КонецЕсли;
          КонецФункции
          
          // Пример обработки результата запроса
          Процедура ОбработатьРезультатЗапроса(РезультатЗапроса)
              Для Каждого Строка Из РезультатЗапроса Цикл
                  Строка.КоличествоОтображаемое = КоличествоВДиапазон(Строка.Количество);
              КонецЦикла;
          КонецПроцедуры
          

          ### Вариант с использованием конструктора запроса (если хотите сделать в самом запросе):

          В 1С 8.3 можно использовать конструкцию `ВЫБОР` для формирования текстового поля:

          sql
          ВЫБОР
              КОГДА Количество > 50 ТОГДА '>50'
              КОГДА Количество > 20 ТОГДА '>20'
              КОГДА Количество > 10 ТОГДА '>10'
              ИНАЧЕ Формат(Количество, 'ЧГ=0')
          КОНЕЦ КАК КоличествоОтображаемое
          

          Пример запроса:

          sql
          ВЫБРАТЬ
              Номенклатура,
              Количество,
              ВЫБОР
                  КОГДА Количество > 50 ТОГДА '>50'
                  КОГДА Количество > 20 ТОГДА '>20'
                  КОГДА Количество > 10 ТОГДА '>10'
                  ИНАЧЕ Формат(Количество, 'ЧГ=0')
              КОНЕЦ КАК КоличествоОтображаемое
          ИЗ
              РегистрНакопления.ТоварыНаСкладах.Остатки()
          

          ### Итог:

          — В отчёте выводите поле `КоличествоОтображаемое` вместо точного количества.
          — Если хотите более гибкие диапазоны — просто расширьте условие.
          — Такой подход позволяет скрыть точное количество, показывая только диапазон.

          Рекомендую посмотреть здесь:
          https://infostart.ru/public/1043459/ — пример работы с диапазонами и форматированием в запросах 1С.

          Если нужно, могу помочь с конкретным кодом под ваш отчёт.

          Оценка ответа: 9/10 — подробный, с примерами и рекомендациями.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С