Как настроить коэффициент пересчета упаковок с точностью более трех знаков после запятой в 1С:Комплексная автоматизация 2.5?

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

При работе в 1С:Комплексная автоматизация 2.5 (и аналогичных системах на базе ERP-ядра) пользователи часто сталкиваются с архитектурным ограничением платформы: стандартная точность числовых показателей для количества и коэффициентов пересчета составляет три знака после запятой. Это создает серьезные трудности при торговле товарами, физические свойства которых требуют более высокой точности пересчета. Например, при продаже утеплителя (Пеноплэкс), где базовая единица — кубические метры (м3), а продажа идет упаковками с объемом 0,2776 м3, стандартный функционал округлит коэффициент до 0,278, что приведет к значительным расхождениям на складе при больших объемах отгрузок.

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

Причина возникновения проблемы: механика хранения остатков

Прежде чем переходить к решениям, проанализируем, как 1С обрабатывает единицы измерения. В карточке номенклатуры есть понятие «Единица хранения». Именно в этой единице система ведет все записи в регистрах накопления (например, в регистре ТоварыНаСкладах). Если вы выбрали м3, то любое движение — поступление, списание или перемещение — будет округлено до 0,001 м3.

Когда мы используем «Упаковки», система при проведении документа выполняет несложную математическую операцию: КоличествоУпаковок * КоэффициентУпаковки = КоличествоВБазовыхЕдиницах. Если коэффициент упаковки 0,2776, а система позволяет записать только 0,278, то при продаже одной упаковки со склада спишется на 0,0004 м3 больше, чем фактически ушло. При продаже 1000 упаковок погрешность составит уже 0,4 м3, что недопустимо для складского учета.

Решение №1: Изменение базовой единицы хранения (Методологический подход)

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

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

  1. Проанализируем математику пересчета: В 1 м3 содержится 1000 дм3. Следовательно, объем нашей упаковки 0,2776 м3 превращается в 277,6 дм3.
  2. Настроим карточку номенклатуры: Укажем «Единицу хранения» — дм3. В этом случае коэффициент для упаковки составит ровно 277,6. Как мы видим, число 277,600 идеально укладывается в стандартную точность 1С (три знака).
  3. Настроим единицы для отчетов: Чтобы кладовщики и бухгалтеры по-прежнему видели привычные кубические метры в отчетах, настроим «Единицу для отчетов» как м3 с коэффициентом 1000 по отношению к дм3.
  4. Обеспечим корректность ввода: Теперь при поступлении 10 м3 товара от поставщика в документе «Приобретение товаров и услуг» будет зафиксировано 10 000 дм3. При продаже 1 упаковки система спишет ровно 277,6 дм3.

Важно: Этот метод лучше всего применять до начала ведения учета по конкретной позиции. Если по товару уже есть движения в м3, потребуется полная инвентаризация для пересчета остатков в новую единицу.

Решение №2: Использование расширений для увеличения точности (Технический подход)

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

Разберем по шагам, что именно нужно изменить в системе:

  1. Изменение точности в справочнике: Необходимо создать расширение и добавить в него справочник УпаковкиЕдиницыИзмерения. Для реквизита Коэффициент нужно изменить тип данных с Число(10, 3) на Число(15, 4) или даже Число(15, 5).
  2. Проверка регистров накопления: Это критически важный шаг, о котором часто забывают. Увеличение точности коэффициента в справочнике — это лишь половина дела. Нужно также проверить точность ресурсов Количество во всех регистрах, где фиксируются движения товаров (ТоварыНаСкладах, ТоварыОрганизаций, ВыручкаИСебестоимостьПродаж и др.).
  3. Корректировка форм: Потребуется изменить формат отображения полей в документах, чтобы пользователи могли видеть и вводить четвертый знак после запятой.

Пример программного изменения точности (в контексте расширения):


// В расширении для справочника УпаковкиЕдиницыИзмерения
// Изменяем метаданные реквизита Коэффициент
// Устанавливаем точность 4 знака

Риски данного подхода: При обновлении конфигурации 1С на новые релизы нужно внимательно следить за тем, чтобы типовые механизмы не «затерли» ваши изменения. Кроме того, увеличение точности может привести к тому, что в отчетах появятся микро-остатки типа 0,0001, которые придется периодически списывать документами корректировки.

Сравнение «Упаковок» и «Единиц для отчетов»

Выясним разницу между этими двумя механизмами в 1С:КА 2.5, так как их часто путают при решении проблем с точностью:

Проблема «микро-остатков» при обратном пересчете

Рассмотрим ситуацию: вы настроили коэффициент 0,2776. Если вы закупили 1 м3 товара и начали продавать его по 1 упаковке, то после продажи 3-х упаковок (3 * 0,2776 = 0,8328) у вас на складе останется 0,1672 м3. Если вы попробуете продать остаток, который не кратен упаковке, могут возникнуть сложности с округлением в последней партии.

В 1С:КА 2.5 процедура «Закрытие месяца» частично решает вопросы стоимостных остатков, но количественные остатки система сама не списывает. Мы рекомендуем раз в месяц проводить инвентаризацию таких позиций и использовать документ Списание недостач товаров для очистки склада от «хвостов», возникших из-за математических округлений.

Итоги и рекомендации

Для решения задачи с Пеноплэксом (коэффициент 0,2776):

  1. Если вы только начинаете работу — используйте дм3 (литры) в качестве единицы хранения. Это самый чистый способ с точки зрения архитектуры 1С.
  2. Если база уже заполнена — используйте расширение конфигурации для изменения точности типа данных в справочнике упаковок и соответствующих регистрах.
  3. Всегда проверяйте итоговые движения в регистре Товары на складах после изменения настроек, чтобы убедиться, что списание происходит с нужной вам точностью.

Помните, что точность учета — это залог корректного расчета себестоимости и финансового результата всего предприятия.

← На главную