К статье
Практический материал

Разработка и Конфигурация · 10 мин

Что значит точность в 1С и как её правильно настроить

Что означает точность в 1С: разрядность чисел, округление сумм и количества, настройка точности в конфигураторе и типичные ошибки при расчётах.

Точность в 1С — это параметр числового реквизита, который определяет, сколько знаков после запятой хранится в поле. Вместе с длиной числа он образует квалификатор числа: например, запись «Число(15,2)» означает, что значение может содержать максимум 15 цифр, из которых 2 отведены под дробную часть. От этой настройки напрямую зависят корректность расчётов цен, сумм, количества, веса, курсов валют и процентов.

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

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

Что означает точность в квалификаторе числа

Каждый числовой реквизит в 1С описывается двумя параметрами: длиной и точностью. Длина — общее количество цифр в числе, включая дробную часть. Точность — количество цифр после запятой. Например, квалификатор Число(10,3) допускает значения от -9 999 999,999 до 9 999 999,999: семь цифр в целой части и три в дробной.

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

Важно понимать разницу между хранением и отображением. Форматная строка в форме может показывать два знака после запятой, но если точность реквизита больше, в базе хранится более точное значение — и оно участвует в расчётах. Обратная ситуация опаснее: отображение с тремя знаками при точности 2 создаёт иллюзию точности, которой на самом деле нет.

Какие значения точности применяются для типовых величин

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

Вид данныхТипичная точностьЗачем нужна дробная часть
Денежные суммы, цены2 знакаКопейки, центы; соответствие валютным требованиям учёта
Количество товара3 знакаВес, объём, метраж: килограммы и метры с дробной частью
Курсы валют4 знака и болееТочность пересчёта сумм, требования к представлению курсов
Проценты, ставки2–4 знакаСтавки с дробной частью, например 8,25%
Коэффициенты пересчёта4 и более знаковПересчёт единиц измерения без накопления ошибки
Штучные остатки0 знаковЦелые единицы, дробная часть не нужна

Эти значения — ориентир, а не норматив. Если компания торгует товаром с ценой за тысячу штук, цене может понадобиться точность 4 знака, иначе сумма строки будет расходиться с ожидаемой. Перед выбором точности ответьте на вопрос: какое минимальное значение дробной части имеет смысл в этом учёте?

Где задаётся точность в конфигураторе

Точность настраивается в конфигураторе в свойствах реквизита объекта: справочника, документа, регистра, табличной части. Откройте свойства реквизита, найдите поля «Длина» и «Точность» в разделе типа данных и установите нужные значения. Для ресурсов регистров накопления и сведений логика та же.

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

Точность в запросах и коде

В запросах точность задаётся при явном приведении типа через функцию ВЫРАЗИТЬ, например: ВЫРАЗИТЬ(Сумма КАК ЧИСЛО(15,2)). Это полезно, когда результат вычисления нужно округлить до требуемой разрядности перед сравнением или группировкой. Во встроенном языке для округления применяется функция Окр(Значение, Разрядность), которая округляет по арифметическим правилам.

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

Почему возникают копеечные расхождения и как их устранить

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

Правило устранения таких расхождений — единая точка округления. Определите, на каком этапе значение становится «официальным» (обычно это сумма строки документа), округлите его там один раз и дальше используйте только уже округлённое значение во всех отчётах, проводках и печатных формах.

Порядок действий при расхождении сумм
  1. 1
    Найдите документ, в котором возникает расхождение, и определите, какие суммы не сходятся
  2. 2
    Проверьте точность реквизитов цены, количества и суммы в конфигураторе
  3. 3
    Найдите в коде все места, где выполняется округление этих значений
  4. 4
    Приведите округление к единому правилу: один этап, одна разрядность
  5. 5
    Перепроведите проблемные документы и сверьте отчёт с документом

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

Как проверить и изменить точность без потери данных

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

При увеличении точности существующие данные не страдают: старые значения просто получают нулевые дополнительные разряды. При уменьшении — округляются. В обоих случаях после обновления конфигурации базы данных стоит перепровести ключевые документы тестового периода и сверить итоги отчётов до и после.

Контрольные точки

Как проверить результат

Точность реквизита в конфигураторе
Норма

Соответствует виду данных (суммы — 2, количество — 3)

Тревожный признак

Точность меньше требуемой, значения обрезаются при вводе

Ввод дробного значения в форме
Норма

Все введённые знаки сохраняются после записи

Тревожный признак

Лишние разряды исчезают без предупреждения

Итоги отчёта против документов
Норма

Суммы сходятся до копейки

Тревожный признак

Расхождения на копейки накапливаются по периодам

Переполнение при больших значениях
Норма

Максимальные суммы вводятся без ошибки

Тревожный признак

Ошибка записи при крупных значениях — не хватает длины

Типичные ошибки при работе с точностью

Самая частая ошибка — задать точность «на глаз» при создании реквизита и не вернуться к вопросу до первых расхождений в учёте. Вторая по распространённости — смешение точности хранения и формата отображения: пользователь видит два знака, считает, что в базе два знака, а расчёт ведётся с четырьмя.

Типичные ошибки
01
Установка точности 0 для количества — дробные остатки по весовому товару становятся невозможны
02
Округление на каждом шаге расчёта — накапливается погрешность и расходятся итоги
03
Уменьшение точности без анализа данных — существующие значения округляются при реструктуризации
04
Сравнение сумм строгим равенством без округления — ложные несовпадения в проверках
05
Недостаточная общая длина числа — ошибка переполнения при крупных суммах или курсах

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

Если сомневаетесь между точностью 2 и 3 для количества, выбирайте 3: запас по дробной части не мешает штучному учёту, а вот добавить разрядность потом проще, чем объяснять аудитору обрезанные остатки по весовым позициям.
ПЗ
Практическое замечание

FAQ: частые вопросы о точности в 1С

Что означает запись Число(15,2)?

Это квалификатор числа: всего 15 цифр, из них 2 — после запятой. Целая часть может содержать до 13 цифр, максимальное значение — чуть меньше 10 триллионов. Для денежных сумм в большинстве учётных систем этого достаточно.

Почему 1С сама округляет введённое значение?

Потому что точность реквизита меньше количества введённых знаков после запятой. Платформа округляет значение до разрешённой разрядности без предупреждения. Исправляется увеличением точности в свойствах реквизита в конфигураторе.

Можно ли изменить точность, когда база уже заполнена?

Да, но с осторожностью. Увеличение точности безопасно для существующих данных. Уменьшение приводит к округлению хранящихся значений при реструктуризации, поэтому перед ним нужна резервная копия и анализ затрагиваемых записей.

Какая точность нужна для цен и сумм?

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

Откуда берутся копеечные расхождения в отчётах?

Из округления на разных этапах расчёта или в разных местах кода. Лечится единым правилом: округлять сумму один раз — на уровне строки документа — и во всех отчётах использовать уже округлённое значение.

Чем отличается точность от формата отображения?

Точность определяет, сколько знаков реально хранится и участвует в расчётах. Форматная строка влияет только на показ значения пользователю. Они могут не совпадать, и это частый источник недопонимания при анализе сумм.

Итог

Что важно запомнить

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