Как разобраться в архитектуре единиц измерения и упаковок в 1С:Комплексная автоматизация 2.4 и ERP 2?

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

Переход с классических конфигураций на обычных формах (например, УТ 10.3 или УПП 1.3) на современные решения вроде 1С:Комплексная автоматизация 2.4/2.5 часто вызывает путаницу в понимании того, как теперь устроены единицы измерения. Если раньше мы привыкли к простому списку единиц, жестко привязанных к классификатору, то теперь архитектура стала более гибкой, но и более сложной. Разберем по шагам, как устроены смысловые взаимосвязи между номенклатурой, упаковками и наборами.

1. Отказ от жесткой привязки к классификатору

Проанализируем главное изменение: раньше Классификатор единиц измерения (ОКЕИ) был основным рабочим справочником. В КА 2.4 ситуация иная. Основную роль играет подчиненный справочник УпаковкиЕдиницыИзмерения. Важно понимать, что записи в этом справочнике — это не просто ссылки на классификатор, а самостоятельные сущности, которые могут принадлежать либо конкретной Номенклатуре, либо Набору упаковок.

Рассмотрим, почему это сделано. Такая структура позволяет каждой единице измерения иметь индивидуальные характеристики: вес, объем, габариты. Если у нас есть единица "Коробка" для разных товаров, то физически это разные коробки с разным весом брутто. Система хранит их как разные элементы справочника УпаковкиЕдиницыИзмерения, даже если они обе ссылаются на один и тот же код ОКЕИ.

2. Понятие «Единица хранения» как точка отсчета

Выясним, что пришло на смену «базовой единице». Теперь в системе существует понятие Единица хранения. Это фундаментальная единица, в которой система ведет учет остатков в регистрах (например, в регистре накопления ТоварыНаСкладах). Коэффициент этой единицы всегда равен 1.

Все остальные сущности (упаковки, паллеты, ящики) всегда рассчитываются относительно этой единицы хранения. Рассмотрим пример: если единица хранения — "Штука", а упаковка — "Коробка (10 шт)", то в карточке упаковки будет указан коэффициент 10 по отношению к штуке.

3. Двойная природа владельцев справочника

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

  1. Индивидуальные упаковки: Владельцем является конкретный элемент справочника Номенклатура. Это удобно, если упаковки данного товара уникальны по своим весогабаритным характеристикам.
  2. Общие наборы: Владельцем является элемент справочника НаборыУпаковок. Это позволяет один раз настроить иерархию (например: Штука -> Коробка (20 шт) -> Паллета (40 коробок)) и назначить этот набор сразу сотне однотипных товаров.

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

4. Механизм пересчета: Числитель и Знаменатель

Посмотрим, как система решает проблему точности при делении. В архитектуре справочника УпаковкиЕдиницыИзмерения используются реквизиты Числитель и Знаменатель. Это позволяет избежать ошибок округления, которые неизбежно возникают при использовании одного дробного числа для коэффициента.

Например, если нам нужно описать единицу измерения, которая составляет 1/3 от основной, система запишет это именно как числитель 1 и знаменатель 3, обеспечивая абсолютную точность при любых складских операциях.

5. Программная связь и зацикливание типов

Разберем вопрос о «зацикливании» типов, который часто пугает начинающих разработчиков. В справочнике УпаковкиЕдиницыИзмерения действительно есть реквизит ЕдиницаИзмерения (ссылка на этот же справочник). Это не ошибка проектирования, а механизм иерархических коэффициентов.

Рассмотрим пример кода, как программно определить коэффициент упаковки относительно единицы хранения:


// Получаем коэффициент пересчета упаковки
Функция ПолучитьКоэффициентУпаковки(УпаковкаСсылка) Экспорт
    Если УпаковкаСсылка.Числитель > 0 И УпаковкаСсылка.Знаменатель > 0 Тогда
        Возврат УпаковкаСсылка.Числитель / УпаковкаСсылка.Знаменатель;
    КонецЕсли;
    Возврат 1;
КонецФункции

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

6. Единицы для отчетов и мерные единицы

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

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

7. Итоги: как правильно работать с этой структурой

Подведем итог нашему анализу. Чтобы эффективно работать с единицами в КА 2.4/2.5, следует придерживаться следующих правил:

Такая архитектура, хоть и кажется на первый взгляд избыточной, предоставляет огромные возможности для детального учета логистических параметров, что критически важно для современных складских систем (WMS) и процессов распределения затрат.

← На главную