Как увеличить точность числа в ресурсной спецификации 1С:ERP?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет Промышленность, строительство и АПК
← На главную

При работе в производственном блоке 1С:ERP, особенно в пищевой, химической промышленности или фармацевтике, часто возникает ситуация, когда типовой точности дробных чисел не хватает. В ресурсных спецификациях на вкладке «Материалы и услуги» для поля КоличествоУпаковок разработчиками заложена точность в 3 знака после запятой. Но что делать, если технологический процесс требует указывать расход материалов до 4 или 5 знаков (например, 0.0005 кг)? Проанализируем ситуацию и выясним причину, почему прямое изменение реквизитов — не лучший выход, а также подробно разберем правильные методологические подходы.

Техническая реализация через расширение: возможности и скрытые угрозы

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

Даже если технически вам удастся протолкнуть 4 знака после запятой для поля ввода в документе, давайте посмотрим на последствия такого решения:

  1. Жесткое округление в программном коде: В типовой конфигурации 1С:ERP заложены сотни алгоритмов проведения документов, расчетов себестоимости и распределения затрат. В программном коде массово встречается принудительное округление: ОкругленноеКоличество = Окр(ТекущееКоличество, 3); Из-за этого ваши 4 знака будут постоянно отсекаться при записи движений, что вызовет нестыковки в учете и ошибки в закрытии месяца.
  2. Ограничения в регистрах накопления: В регистрах, таких как ВыпускПродукции, и в табличных частях выходных изделий типовая точность составляет те же 3 знака. Это значит, что введенное в документе сверхточное значение всё равно обрежется при записи в базу данных. В итоге пользы от ювелирного ввода в документе будет ноль.
  3. Масштаб необходимых доработок: Чтобы система работала корректно с 4 знаками, вам придется снять основную конфигурацию с поддержки и вручную изменять точность во всех связанных регистрах накопления, регистрах сведений, планах видов характеристик, а также переписывать десятки запросов. После таких манипуляций вас ждет шквал вопросов от пользователей о сломанном учете. Для оперативного поиска ошибок в проводках после подобных изменений используется автоматическая сверка бухгалтерских и налоговых данных между базами 1С, выявляющая возникшие расхождения.
  4. Риск потери данных: При изменении структуры базовых реквизитов через расширение, в случае конфликта версий или непреднамеренного отключения расширения, данные в добавленных разрядах могут быть безвозвратно утеряны.

Штатные методы решения: методология учета

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

Способ 1. Использование минимальной единицы хранения

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

Посмотрим на пример из пищевой промышленности. На входе мы имеем мясо (200 кг), соль (4.5 кг) и перец (0.0842 кг). Если мы попытаемся списывать перец в килограммах, система округлит значение, и возникнет погрешность. Решение заключается в следующем:

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

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

Способ 2. Масштабирование ресурсной спецификации (Нормирование на партию)

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

Рассмотрим ситуацию: для производства 1 штуки изделия требуется 0.0001 кг клея. Если вы введете это значение, то в первом же документе производства потребляемое количество округлится до нуля, что приведет к ошибке проведения документа (система сообщит, что количество не должно быть пустым).

Что мы делаем в этом случае:

  1. В документе РесурснаяСпецификация указываем, что норматив задается не на 1 шт, а на 1000 или 10 000 штук.
  2. В табличной части материалов указываем целые значения. Например, на 1000 штук пойдет 0.1 кг материала (если позволяет текущая точность), или на 10 000 штук уйдет ровно 1 кг.
  3. При оформлении этапов производства на меньшее количество (например, на 500 штук), система корректно рассчитает пропорцию типовыми механизмами распределения. Риск получить ошибку "пустого количества" исчезает.

Способ 3. Использование наборов упаковок

В системе 1С:ERP можно настроить детальную вложенность упаковок: базовая упаковка, потребительская упаковка, транспортная тара. При правильном задании коэффициентов пересчета между ними (например, 1 ящик = 20 упаковок, 1 упаковка = 500 грамм) программа автоматически будет закрывать все потребности в долях без расширения точности чисел в конфигураторе.

Подводя итог: попытка вмешаться в базовую точность чисел в сложной ERP-системе подобна открытию ящика Пандоры. Гораздо безопаснее и правильнее выстроить процесс через адаптацию справочников НСИ. Используйте возможности, изначально заложенные в архитектуру системы: кратность выпуска, упаковки и минимальные учетные единицы. Для проверки корректности настроек после изменения параметров учета можно использовать инструмент для проверки действующих ресурсных спецификаций.

← На главную