База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как пересчитать остатки товаров с использованием коэффициента упаковки в 1С? › RE: Как пересчитать остатки товаров с использованием коэффициента упаковки в 1С?
Для пересчета остатков товаров из единицы хранения (например, базовой единицы номенклатуры) в единицы измерения документа (например, упаковки, коробки и т.п.) с использованием метода коэффициентупаковки из справочника «Упаковки и единицы измерения» в 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/ (алгоритм замены единицы хранения остатков)