Как изменить разрядность поля Количество в документе Операция в 1С:Бухгалтерия 3.0?

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

При оформлении ручных проводок через документ Операция (в метаданных — ОперацияБух) в конфигурации «1С:Бухгалтерия предприятия 3.0» периодически возникает необходимость указать дробное количество номенклатуры с точностью выше стандартной — например, 4 или более знаков после запятой. Однако при попытке настроить формат поля на форме пользователи и начинающие разработчики сталкиваются с тем, что значение автоматически округляется до 3 знаков.

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

Архитектура хранения данных и причина ограничения

Проанализируем структуру документа Операция в конфигурации. Табличная часть на форме документа не является обычной табличной частью самого документа. На форме отображается набор записей регистра бухгалтерии Хозрасчетный.

В типовой конфигурации «1С:Бухгалтерия предприятия 3.0» для ресурса Количество регистра Хозрасчетный задан фиксированный тип данных Число(15, 3), то есть 3 знака после запятой. По этой причине:

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

Технические риски изменения разрядности в Конфигураторе

Рассмотрим, с какими последствиями связано прямое изменение разрядности ресурса Количество в регистре Хозрасчетный:

  1. Снятие с поддержки и усложнение обновлений. Изменение ключевого регистра конфигурации переводит базу в режим ручного обновления, требуя повышенного внимания при каждом релизе поставщика.
  2. Длительная реструктуризация базы данных. Регистр бухгалтерии Хозрасчетный — один из самых высоконагруженных и объемных объектов в информационной базе. Смена типа данных ресурса запускает полную реструктуризацию таблиц движений и итогов на уровне СУБД, что требует монопольного доступа и может занять значительное время при больших объемах данных.
  3. Ошибки в типовых алгоритмах расчета себестоимости. В общем модуле и процедурах закрытия месяца (расчет средней себестоимости, списание по методу ФИФО, распределение затрат) заложены программные округления с жестко заданной точностью Окр(..., 3). Без тотальной модификации всех связанных механизмов в учете неизбежно появятся «зависшие» копеечные и микроскопические количественные остатки.
  4. Несоответствие первичным документам. Если номенклатура участвует в стандартном документообороте (поступления, реализации, списания), менять разрядность придется также во всех табличных частях документов и сопутствующих регистрах накопления.

Рекомендуемые способы решения задачи без доработки конфигурации

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

  1. Переход на более мелкую единицу измерения. Самый надежный и стандартный подход — учет позиций в единицах меньшего порядка. Например, вместо ввода значения 0,0005 т учет ведется в килограммах (0,5 кг) или граммах (500 г). Это полностью устраняет проблему точности в рамках стандартных трех знаков.
  2. Создание отдельной номенклатурной позиции. Если мелкая дробность требуется только для специфической партии или договора, создается дублирующая карточка номенклатуры с базовой единицей измерения меньшего масштаба (миллилитры вместо литров, штуки в упаковке и т.д.).
  3. Корректировка суммовых показателей без изменения количества. Для разовых балансовых корректировок или корректировок стоимости проводку в документе Операция вносят с заполнением только суммовых ресурсов (без указания количества) либо распределяют операцию на несколько строк с допустимой кратностью.
← На главную