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

Учет и Финансы · 10 мин

Как поменять округление в 1С

Как поменять округление в 1С: настройка валют, формул расчёта цен, зарплаты и НДС в типовых конфигурациях, функция Окр() в коде, типичные ошибки и проверка результата.

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

Важный принцип: 1С хранит суммы с той точностью, которая задана в метаданных, а отображает их по правилам форматирования. Изменение отображения не меняет хранимое значение, и наоборот. Если в отчёте видно «1 250 руб.», а в документе стоит «1 249,60», проблема не в отчёте, а в порядке расчёта суммы в документе. Менять округление нужно там, где рождается число, а не там, где оно выводится.

Ниже разобраны основные сценарии: округление цен в «Управлении торговлей» и «Комплексной автоматизации», округление начислений в «Зарплате и управлении персоналом», точность валютных сумм, округление в отчётах и функция Окр() во встроенном языке. Для каждого случая указаны путь в меню, ограничения и способ проверить результат.

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

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

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

Округление цен и скидок в торговых конфигурациях

В «1С:Управление торговлей 11», «Комплексной автоматизации» и «ERP» округление цен настраивается в карточке вида цен или в формулах расчёта. Откройте раздел «CRM и маркетинг» (или «Настройки и справочники») → «Виды цен», выберите нужный вид цены и проверьте поля «Точность округления» и «Вариант округления». Точность задаёт шаг округления (0,01; 0,1; 1; 10 и т.д.), вариант — направление: по арифметическим правилам, всегда вверх или всегда вниз.

Если цена рассчитывается формулой от базового вида цен (например, «закупочная + 25%»), округление применяется после вычисления формулы. Там же, в настройках вида цен, можно включить психологическое округление — до 9,99 или 99. Это удобно для розницы, но помните: такое округление применяется к цене за единицу, а итоговая сумма документа всё равно считается как произведение цены на количество, поэтому копеечные расхождения с ожиданиями покупателя возможны.

Для скидок (раздел «Скидки (наценки)») порядок округления зависит от способа применения: к строке или к документу в целом. Если скидка считается по строкам, сумма документа может отличаться от «скидки от итога» на несколько копеек — это нормальное следствие построчного округления, а не ошибка.

Порядок действий
  1. 1
    Откройте «Виды цен» и найдите используемый вид цены
  2. 2
    Установите «Точность округления», например 1 (до рубля) или 0,01 (до копеек)
  3. 3
    Выберите «Вариант округления»: по арифметическим правилам, вверх или вниз
  4. 4
    Сохраните и пересчитайте цены через обработку «Пакетное изменение цен» или переформирование
  5. 5
    Проверьте результат на тестовом документе с количеством больше 1

Округление в зарплате и кадровых расчётах

В «1С:Зарплата и управление персоналом 3» округление применяется в нескольких местах. Основное — настройка начислений: в карточке начисления на вкладке «Основное» есть блок «Округление результата» с выбором точности и способа. Например, премию можно округлять до целых рублей в большую сторону, а оплату по окладу оставить с копейками.

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

Обратите внимание на компенсацию за задержку зарплаты и на расчёт НДФЛ: налог считается в целых рублях по правилам НК РФ, и это встроено в программу, менять его вручную не нужно и нельзя. Если вы видите «копейки» в НДФЛ — это признак ошибки в данных или доработки, а не настройки округления.

Точность валют и округление валютных сумм

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

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

Округление в отчётах и печатных формах

В отчётах на СКД (большинство типовых отчётов) округление вывода задаётся в настройках варианта отчёта: «Настройки» → «Дополнительные настройки» → параметры формата чисел, либо через оформление поля. Во многих отчётах есть готовый переключатель «Суммы в тысячах» или «Точность», который меняет только отображение, не затрагивая данные.

В печатных формах формат числа зашит в макет или в код формирования. Если в ТОРГ-12 или счёте нужно показывать суммы без копеек, правится либо формат ячейки макета (свойство «Формат», например ЧДЦ=0), либо строка кода, формирующая вывод. Это доработка конфигурации: в типовой поставке лучше делать её через механизм внешних печатных форм, чтобы не потерять изменения при обновлении.

Функция Окр() во встроенном языке

Для разработчиков и при доработках округление выполняется функцией Окр(Число, Разрядность, РежимОкругления). Первый параметр — исходное число, второй — количество знаков после запятой (может быть отрицательным: -2 округлит до сотен), третий — режим: Округлить15как20 (математическое, 0,5 вверх) или Округлить15как10 (0,5 вниз). По умолчанию используется первый вариант.

Типичный пример — округление суммы НДС при расчёте «сверху»:

СуммаНДС = Окр(СуммаДокумента * 20 / 120, 2, РежимОкругления.Округлить15как20);

Если нужно округление всегда вверх (например, при расчёте упаковок), функции Окр() недостаточно — используют конструкцию вида Цел(Число) + ?(Число > Цел(Число), 1, 0) или Окр(Число + 0.5, 0) для положительных чисел. Помните, что для отрицательных чисел такие приёмы работают иначе, и их нужно тестировать отдельно.

bsl
СуммаОкр = Окр(Сумма, 2, РежимОкругления.Округлить15как20); // до копеек, 0,5 вверх

Типичные ошибки и как проверить результат

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

Для проверки результата используйте контрольный пример с «неудобными» числами: цена 333,33, количество 3, скидка 15%. Посчитайте ожидаемый результат на калькуляторе с тем же правилом округления и сравните с документом. Проверьте также печатную форму и проводки: сумма в документе, в проводках и на печати должна совпадать до копейки.

Типичные ошибки
01
Меняют формат отображения вместо правила расчёта — расхождение остаётся в данных
02
Меняют округление цен, но не пересчитывают уже установленные цены — в базе смешанные значения
03
Округляют промежуточные результаты в формуле — накапливается погрешность
04
Меняют настройку посреди расчётного периода в зарплате — появляются расхождения начислений и выплат
Контрольные точки

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

Сумма в тестовом документе
Норма

Совпадает с расчётом на калькуляторе по выбранному правилу

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

Отличается на копейки — округление применяется не там

Печатная форма
Норма

Суммы совпадают с документом до копейки

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

На печати другие значения — проблема в формате макета

Проводки документа
Норма

Суммы в проводках равны суммам документа

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

Разница — округление задано на разных этапах по-разному

Частые вопросы

Изменится ли округление в уже проведённых документах после смены настройки?

Нет. Настройки округления действуют на момент расчёта. Уже проведённые документы сохраняют свои суммы; чтобы применить новое правило, документы нужно перепровести или пересчитать (для цен — переформировать установку цен).

Как округлить цены до 99 копеек, например 199,99?

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

Почему НДС в счёте-фактуре отличается на копейку от моего расчёта?

Программа считает НДС построчно с округлением каждой строки до копеек, а не от общей суммы. Сумма построчных округлений может отличаться от расчёта «20/120 от итога». Это допустимое поведение, соответствующее порядку заполнения счетов-фактур.

Можно ли округлять суммы в отчёте до тысяч рублей?

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

Чем отличается Округлить15как20 от Округлить15как10 в функции Окр()?

Первый режим округляет 0,5 вверх (классическое математическое правило), второй — 0,5 вниз. Для денежных расчётов в России стандартно применяется первый вариант.

Нужно ли снимать конфигурацию с поддержки, чтобы поменять округление?

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

Итог

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

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