RE: Как пересчитать остатки товаров с использованием коэффициента упаковки в 1С?

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

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

    1. **Получить коэффициенты упаковок и единиц измерения**
    В справочнике «Упаковки и единицы измерения» для каждой упаковки хранится коэффициент, показывающий, сколько базовых единиц содержится в одной упаковке.
    Например:
    — 1 Лист = 1 (базовая единица хранения)
    — 1 Упаковка = 15 Листов (коэффициент 15)
    — 1 Паллет = 150 Листов (коэффициент 150)

    2. **Определить коэффициент пересчета**
    Для пересчета количества из единицы хранения в единицу измерения документа нужно использовать формулу:

       КоличествоВДокументе = КоличествоВХранении / КоэффициентУпаковки  
       

    где:
    — КоличествоВХранении — количество в базовой единице хранения (например, в листах)
    — КоэффициентУпаковки — количество базовых единиц в одной единице измерения документа (например, в упаковке)

    3. **Использовать метод коэффициентупаковки справочника**
    В типовых конфигурациях 1С (например, УТ, КА, ERP) обычно есть общий модуль или объект, который позволяет получить коэффициент упаковки для конкретной номенклатуры и выбранной единицы измерения.
    Пример вызова:

       Коэффициент = УпаковкиИЕдиницыИзмерения.ПолучитьКоэффициентУпаковки(Номенклатура, ЕдиницаИзмерения);
       

    где:
    — `Номенклатура` — ссылка на элемент справочника номенклатуры
    — `ЕдиницаИзмерения` — выбранная единица измерения (упаковка, коробка и т.п.)

    4. **Пересчет количества**
    После получения коэффициента пересчитываем количество:

       КоличествоВДокументе = КоличествоВХранении / Коэффициент;
       

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

    5. **Пример кода пересчета**

       // Получаем коэффициент упаковки для нужной единицы измерения
       Коэффициент = УпаковкиИЕдиницыИзмерения.ПолучитьКоэффициентУпаковки(Номенклатура, ЕдиницаИзмерения);
       
       // Пересчитываем количество из единицы хранения в единицу документа
       КоличествоВДокументе = КоличествоВХранении / Коэффициент;
       
       // При необходимости округляем
       КоличествоВДокументе = Окр(КоличествоВДокументе, 3); // например, 3 знака после запятой
       

    6. **Обратный пересчет (если нужно)**
    Для пересчета из единицы документа в единицу хранения:

       КоличествоВХранении = КоличествоВДокументе * Коэффициент;
       

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

    Рекомендую посмотреть здесь:
    https://infostart.ru/1c/articles/949955/ (пример работы с упаковками и пересчетом количества)
    https://infostart.ru/1c/articles/417964/ (алгоритм замены единицы хранения остатков)

    База знаний 1С