Как вывести единицу измерения в колонку с количеством в отчете 1С

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

При формировании отчетов по складским остаткам и движениям товаров (например, в отчете «Анализ доступности товаров на складах» в конфигурации 1С:Управление производственным предприятием 1.3) часто возникает задача отобразить единицу измерения номенклатуры рядом с числовым значением количества или в одной колонке с ним. Разберем различные подходы к решению этой задачи: от стандартных пользовательских настроек до программной доработки через схему компоновки данных (СКД) и запросы.

Вариант 1. Настройка отчета через пользовательский интерфейс (без программирования)

Прежде чем приступать к программной модификации, проанализируем возможности типового функционала отчета. В типовых конфигурациях 1С единицу измерения можно вывести стандартными средствами настройки отчета двумя способами.

  1. Вывод в дополнительные поля: перейдем в форму отчета, нажмем кнопку Настройка (или Расширенная настройка). В блоке Дополнительные поля нажмем кнопку добавления и выберем требуемый реквизит: Номенклатура.БазоваяЕдиницаИзмерения, Номенклатура.ЕдиницаХраненияОстатков или Номенклатура.ЕдиницаДляОтчетов. Поле можно разместить в отдельной колонке или в одной колонке с группировкой номенклатуры.
  2. Добавление в группировку строк: откроем настройки структуры отчета и добавим в состав группировок строк поле единицы измерения (например, Номенклатура.ЕдиницаХраненияОстатков) ниже или на одном уровне с номенклатурой.

Вариант 2. Программный вывод через вычисляемые поля СКД

Если требуется объединить числовое значение количества и текстовое наименование единицы измерения в одной ячейке на уровне схемы компоновки данных, рассмотрим использование механизма вычисляемых полей.

Для этого в конфигураторе или в схеме СКД внешнего отчета перейдем на вкладку Вычисляемые поля и добавим новое поле (например, КоличествоСЕдиницей). В поле выражения укажем формулу конкатенации строки:


Строка(Формат(КоличествоОборот, "ЧДЦ=2; ЧГ=0")) + " " + Строка(Номенклатура.ЕдиницаХраненияОстатков)

Важный нюанс: при преобразовании числа в строку ячейка теряет числовой тип. Это означает, что стандартная агрегатная функция Сумма перестанет работать для строкового поля, а при выгрузке таблицы в Excel пользователь не сможет производить математические операции с этими ячейками без предварительной очистки текста.

Вариант 3. Использование макетов полей в СКД (сохранение числового типа)

Чтобы сохранить числовое значение для расчета итогов и корректной выгрузки, но визуально отображать единицу измерения, воспользуемся вкладкой Макеты в СКД:

  1. Добавим Макет поля для нужного числового ресурса (например, КоличествоОборот).
  2. В параметрах ячейки макета зададим шаблон оформления: [КоличествоОборот] [Номенклатура.ЕдиницаХраненияОстатков].
  3. Укажем заполнение ячейки как Шаблон.

В этом случае платформа 1С сохраняет исходные числовые данные для вычисления итогов, но при формировании отчета подставляет шаблон оформления с суффиксом единицы измерения.

Вариант 4. Пересчет количества с учетом коэффициента единицы измерения

При выводе единиц измерения программным способом необходимо учитывать, что в системе хранятся различные единицы (базовая, хранения остатков, для отчетов, мест). Каждая дополнительная единица измерения в справочнике Справочник.ЕдиницыИзмерения имеет свой реквизит Коэффициент.

Если выводится не базовая единица, а единица хранения или мест, значение количества в запросе обязательно должно быть пересчитано. Посмотрим на пример фрагмента запроса:


ВЫБОР
    КОГДА ВложенныйЗапрос.КоличествоОборот > 0
        ТОГДА ВложенныйЗапрос.КоличествоОборот * ВложенныйЗапрос.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
    ИНАЧЕ 0
КОНЕЦ

Если пренебречь коэффициентом пересчета, числовой показатель в отчете будет отражать количество в базовых единицах, а текстовая подпись рядом укажет другую единицу измерения, что приведет к искажению учетных данных.

Особенности отображения итогов

Проанализируем поведение отчета на уровне группировок и общих итогов. Если в отчете выводятся товары с разнородными единицами измерения (например, штуки, квадратные метры и килограммы), прямое суммирование их количества и вывод единицы измерения в итоговой строке являются методически некорректными. В таких случаях на уровне общих итогов поле единицы измерения рекомендуется оставлять пустым либо предварительно приводить все показатели к единице для отчетов.

← На главную