Как учитывать материалы в метрах и миллиметрах квадратных в 1С:УНФ при нехватке знаков после запятой?

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

В процессе автоматизации производственного учета в 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с проблемой разности масштабов единиц измерения. Типичная ситуация: закупка листового материала (металл, пластик, ткань) производится в квадратных метрах (м2), а фактическое списание в производство на мелкие детали происходит в квадратных миллиметрах (мм2). Стандартная разрядность количества в 1С ограничена тремя знаками после запятой, в то время как для корректного пересчета мм2 в м2 требуется как минимум шесть знаков (1 мм2 = 0,000001 м2).

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

Почему нельзя просто увеличить разрядность в конфигураторе?

Проанализируем ситуацию, когда разработчик решает пойти по пути наименьшего сопротивления и меняет точность типа данных Число в регистрах и документах с 3 до 6 знаков. На первый взгляд, это решает проблему, но на практике возникают следующие критические риски:

  1. Жесткое кодирование (Hardcode) в типовых модулях. В программном коде 1С:УНФ (особенно в процедурах расчета себестоимости и распределения затрат) часто встречается принудительное округление. Например: Количество = Окр(ИсходноеЗначение, 3);. Даже если в базе данных будет храниться 6 знаков, при проведении документов или закрытии месяца система будет «отрезать» хвосты, что приведет к неконтролируемым расхождениям в остатках и копеечным разрывам в себестоимости.
  2. Сложности с обновлениями. Изменение разрядности в ключевых реквизитах конфигурации делает невозможным автоматическое обновление. Каждое обновление превратится в трудоемкий процесс сопоставления типов данных, а использование расширений для изменения длины и точности числовых полей в регистрах накопления может привести к нестабильной работе базы данных SQL.
  3. Печатные формы и отчеты. Большинство стандартных макетов (УПД, счета-фактуры) рассчитаны на стандартную ширину колонок. Числа с шестью знаками после запятой будут «наползать» на соседние поля или выводиться в виде решеток, что потребует ручной корректировки десятков печатных форм.

Решение №1: Использование минимальной единицы хранения (мм2)

Рассмотрим наиболее правильный с точки зрения архитектуры 1С подход: единица хранения остатков должна быть минимально неделимой величиной, используемой в бизнес-процессах компании.

Выясним, как это реализовать на практике:

  1. В карточке номенклатуры в качестве Базовой единицы измерения устанавливаем мм2. Все движения в регистрах (остатки на складах) теперь будут фиксироваться в целых числах.
  2. Создаем Дополнительную единицу измерения — м2.
  3. Устанавливаем коэффициент пересчета: 1 м2 = 1 000 000 мм2.

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

Минусы: В отчетах остатки могут выглядеть непривычно (например, 5 000 000 мм2 вместо 5 м2). Однако в 1С:УНФ эту проблему можно решить через настройки отчетов (СКД), добавив пользовательское поле, которое будет делить общее количество на миллион для отображения в метрах.

Решение №2: Промежуточная единица измерения («Золотая середина»)

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

Посмотрим на расчеты для дм2:

При выборе дм2 в качестве базовой единицы хранения, нам достаточно двух знаков после запятой, чтобы учесть даже самый мелкий расход в 1 мм2. Стандартных трех знаков в 1С хватит с запасом. При этом складские остатки не будут выглядеть «астрономическими» числами: 5 квадратных метров превратятся в 500 дм2, что вполне читабельно для кладовщика и бухгалтера.

Решение №3: Учет через характеристики и штуки

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

  1. Создаем номенклатуру «Лист стальной».
  2. В характеристике указываем габариты, например, «1000х2000 мм».
  3. Учет ведем в штуках.
  4. Для списания части листа используем дробное количество штук (например, 0,150 листа), либо предварительно разукомплектовываем лист на нужные заготовки.

Этот метод идеально подходит, если предприятие не использует обрезки повторно или если обрезки имеют стандартные размеры и могут быть оприходованы как деловой отход.

Решение №4: Настройка спецификаций (нормирование на партию)

Если проблема возникает именно при списании по спецификациям в производстве, разберем метод увеличения базы нормирования. Вместо того чтобы указывать расход 0,00045 м2 на 1 единицу продукции, укажите расход 0,45 м2 на 1000 единиц продукции. Для контроля запасов и быстрого расчета требуемых компонентов пригодится отчет для проверки остатков материалов по спецификации.

Проанализируем, как это работает в 1С:УНФ:

Рекомендации по проведению инвентаризации

Часто звучит аргумент, что вести учет в мм2 неудобно для инвентаризации. Выясним, почему это не так. В современных версиях 1С:УНФ документ «Пересчет товаров» позволяет вводить количество в любых единицах измерения, которые заведены для данной номенклатуры. Вы можете проводить фактический замер в метрах, вводить данные в документ в м2, а система сама пересчитает их в базовые мм2 для сопоставления с учетными остатками. Для удобной работы со сличительными ведомостями при сверке остатков пригодится расширение для инвентаризации запасов.

Важный совет: Перед тем как менять структуру базы данных, всегда пробуйте методические решения. В 99% случаев переход на более мелкую базовую единицу измерения (мм2 или дм2) является более дешевым и стабильным решением, чем программирование и последующая борьба с ошибками округления в типовом коде 1С.

← На главную