Как в 1С:ERP 2.5 реализовать одновременный учет и отображение количества в двух единицах измерения (например, м2 и паллеты)?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Торговля и дистрибуция
← На главную

При переходе с исторических систем, таких как "1С:Управление производственным предприятием" (УПП), на современные конфигурации "1С:ERP Управление предприятием" (ERP), пользователи часто сталкиваются с изменением логики базовых процессов. Одним из таких процессов является учет товарно-материальных ценностей (ТМЦ) в нескольких единицах измерения.

Рассмотрим часто встречающуюся ситуацию: компания торгует материалами, которые имеют базовую единицу измерения (например, квадратные метры — м²), но отгружаются логистическими единицами (паллеты, упаковки, коробки). В старых системах часто использовался подход "Количество" и "Количество мест". В 1С:ERP логика иная. Давайте разберем подробно, как настроить систему штатными средствами и какие есть варианты доработки для удобства менеджеров.

Архитектурное отличие ERP от УПП: почему пропали "Места"?

Прежде чем приступать к настройке, проанализируем разницу в подходах. В УПП существовал механизм "Мест", который жил параллельно с основным количественным учетом. Это позволяло в одной строке табличной части видеть и "сколько штук/метров", и "сколько это коробок".

В 1С:ERP 2.5 используется единый, более строгий механизм — Упаковки. Система исходит из того, что складские остатки всегда хранятся в Единице хранения (базовой), а все остальные единицы (штуки, коробки, паллеты) являются производными от нее через коэффициенты пересчета.

Логика работы ERP такова: вы выбираете в документе, в чем именно вы продаете товар сейчас (в паллетах или в метрах). Система пересчитывает это значение для движений по регистрам. Одновременное редактирование двух независимых колонок в типовом функционале отсутствует, так как это нарушало бы целостность пересчета: если вы измените количество метров, должно измениться и количество паллет (дробно или целочисленно).

Решение 1: Штатная настройка через механизм "Упаковки"

Разберем, как правильно настроить справочники, чтобы система понимала связь между метрами и паллетами. Для этого нам понадобятся справочники Номенклатура и УпаковкиЕдиницыИзмерения.

Представим, что у нас есть "Паркетная доска". Единица хранения — м². Отгрузка идет паллетами.

  1. Откроем карточку номенклатуры. Убедимся, что в поле Единица хранения выбрано значение "м2".
  2. Перейдем к настройке упаковок. В ERP упаковки могут быть индивидуальными (для одной позиции) или общими (наборами). Для однотипных товаров лучше использовать Наборы упаковок.
  3. Создадим иерархию упаковок (это важно для правильной логистики):
    • Сначала создадим упаковку "Пачка" (если паллета состоит из пачек). Укажем коэффициент по отношению к м². Например, 1 пачка = 2.5 м².
    • Затем создадим упаковку "Паллета". В поле "Состоит из" укажем не м², а "Пачка". Укажем количество пачек, например 40.

Теперь система знает цепочку пересчета: 1 Паллета = 40 Пачек = 100 м².

При оформлении документов Заказ клиента или Реализация товаров и услуг менеджер в поле "Единица измерения" может выбрать "Паллета". В поле "Количество" он поставит "1". Система автоматически проведет списание со склада в размере 100 м².

Решение 2: Визуализация двух единиц измерения (Настройка формы)

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

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

  1. Откроем документ Заказ клиента.
  2. В правом верхнем углу нажмем кнопку "Еще" -> "Изменить форму".
  3. Найдем группу, отвечающую за табличную часть "Товары".
  4. В списке полей поищем поля, связанные с пересчетом. В некоторых версиях доступны поля вида КоличествоУпаковок (это то, что ввел менеджер) и скрытое поле пересчета в базовые единицы. Если поле доступно, поставьте напротив него галочку.

Также обратим внимание на Панель информации. При выделении строки с товаром, в нижней или боковой части формы часто отображается контекстная информация: "Доступно: ХХ м²", "Цена за м²". Настроим отображение остатков в форме подбора товаров, чтобы менеджер видел остатки сразу в двух разрезах.

Решение 3: Использование Внешних печатных форм (ВПФ)

Если задача состоит в том, чтобы клиент или кладовщик видели обе единицы измерения в документе, то дорабатывать саму форму ввода необязательно. Оптимальный вариант — использовать внешнюю печатную форму.

Разработаем логику для ВПФ:

  1. В макете печатной формы добавим две колонки: "Кол-во (ед. оформления)" и "Кол-во (базовое)".
  2. В модуле печатной формы получим данные. Поскольку в ERP связь жесткая (через коэффициенты), мы можем легко вычислить второе значение.

Пример алгоритма вычисления для печатной формы (псевдокод):


// Получаем данные строки
ТекущееКоличество = СтрокаТабличнойЧасти.Количество; // То, что ввел менеджер (например, 2 паллеты)
ТекущаяУпаковка = СтрокаТабличнойЧасти.Упаковка; // Ссылка на справочник Упаковки

// Если упаковка выбрана, используем механизмы пересчета платформы
Если ЗначениеЗаполнено(ТекущаяУпаковка) Тогда
    // В ERP есть общие модули для пересчета, например Справочники.УпаковкиЕдиницыИзмерения
    Коэффициент = ТекущаяУпаковка.Коэффициент; // Условно 100 м2 в паллете
    КоличествоВБазовых = ТекущееКоличество * Коэффициент; 
    // Выводим: "2 палл." и "200 м2"
Иначе
    // Если упаковка не выбрана, значит выбрана базовая единица
    КоличествоВБазовых = ТекущееКоличество;
КонецЕсли;

Решение 4: Доработка через Расширение конфигурации

Если визуализация двух колонок в момент ввода данных критически важна, и штатная настройка формы не дает нужного результата, используем механизм Расширений (Extensions). Это наиболее правильный метод доработки в 1С:ERP, так как он не снимает конфигурацию с поддержки.

Рассмотрим план действий для программиста 1С:

  1. Создадим новое расширение конфигурации.
  2. Заимствуем форму документа ЗаказКлиента (или РеализацияТоваровУслуг).
  3. В расширении добавим в табличную часть "Товары" новую колонку (реквизит формы), например КоличествоВБазовыхЕдиницах.
  4. Выведем этот элемент на форму рядом со стандартным полем "Количество".
  5. Напишем обработчик события ПриИзменении для стандартного поля "Количество" и поля "Упаковка".

Логика обработчика должна быть двусторонней (если это разрешено бизнес-процессом) или односторонней (только просмотр). Рассмотрим вариант "Только просмотр" (менеджер меняет паллеты, метры пересчитываются):


&НаКлиенте
Процедура ТоварыКоличествоУпаковокПриИзменении(Элемент)
    
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
    
    // Используем типовую функцию пересчета или простой расчет через коэффициент
    // Получаем коэффициент выбранной упаковки (обычно он доступен в данных строки через точку от Упаковки, 
    // либо его нужно подтянуть при изменении упаковки)
    
    Коэффициент = ПолучитьКоэффициентУпаковки(ТекущаяСтрока.Упаковка);
    
    ТекущаяСтрока.КоличествоВБазовыхЕдиницах = ТекущаяСтрока.КоличествоУпаковок * Коэффициент;

КонецПроцедуры

Важное замечание: Если вы хотите, чтобы работало и в обратную сторону (менеджер вводит 150 м², а программа ставит 1.5 паллеты), нужно учитывать, что в ERP количество упаковок обычно должно быть целым числом, если включен контроль. Если товар допускает дробные паллеты, то формула сработает. Если нет — потребуется алгоритм округления до целых упаковок + "хвостик" в базовых единицах, что усложнит строку документа (придется разбивать на две строки).

Специфический случай: "Плавающий" вес/размер

В теме упоминался важный момент: что делать, если паллеты не стандартные? Например, одна паллета — 100 м², а другая — 102.5 м²?

В этом случае механизм простых упаковок не сработает, так как упаковка предполагает фиксированный коэффициент пересчета. Для решения этой задачи в ERP 2.5 необходимо использовать Учет по сериям.

  1. Включим использование серий для вида номенклатуры.
  2. Настроим политику учета серий так, чтобы серия идентифицировала конкретную паллету.
  3. В реквизитах серии можно указывать фактическое количество (если настроить дополнительные реквизиты) или использовать весовой учет, если базовой единицей является вес.

Однако для паркета (м²) чаще всего используется стандартная заводская упаковка, поэтому варианта с иерархией упаковок (Решение 1) и доработкой видимости (Решение 4) обычно достаточно.

Выводы

Подведем итог. 1С:ERP 2.5 не предоставляет "из коробки" интерфейс с двумя равнозначными колонками "Количество" и "Места" в табличной части документов, как это было в УПП. Это обусловлено строгой логикой пересчета единиц.

Для решения задачи мы рекомендуем действовать в следующем порядке:

  1. Максимально использовать штатный справочник Упаковки с правильной иерархией.
  2. Настроить Печатные формы, чтобы клиенты видели информацию в нужном виде.
  3. Если менеджерам жизненно необходимо видеть пересчет на экране в момент ввода — реализовать небольшое Расширение, добавляющее информационную колонку с пересчетом в базовую единицу.
← На главную