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

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

Как в 1С округлять до рубля

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

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

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

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

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

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

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

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

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

В «1С:Управление торговлей 11» и «1С:Комплектная автоматизация» округление цен настраивается в виде цен. Откройте раздел «CRM и маркетинг» (или «Настройки и справочники») → «Виды цен», выберите нужный вид цены и найдите блок параметров округления.

Там задаются два ключевых параметра: точность округления (до 1 рубля, до 10 рублей, до 50 копеек и т.д.) и порядок округления — по арифметическим правилам, всегда вверх или всегда вниз. Для округления до рубля установите точность «1» и выберите правило: «в большую сторону» гарантирует, что цена не станет ниже расчётной, «по арифметическим правилам» даёт стандартное округление от 0,5.

После изменения настроек цены не пересчитаются сами — запустите переформирование цен через рабочее место «Цены номенклатуры» или документ «Установка цен номенклатуры». Проверьте результат на нескольких позициях с разной дробной частью: 100,4 должно стать 100, а 100,5 — 101 при арифметическом правиле.

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

Округление во встроенном языке: функция Окр()

Если округление нужно в обработке, отчёте или формуле, используется функция встроенного языка Окр(Число; Разрядность; РежимОкругления). Для округления до рубля разрядность равна 0: Окр(Сумма; 0). Третий параметр задаёт режим: Округление15как20 (стандартное банковское поведение 1С, где 0,5 округляется вверх) или Округление15как10 (0,5 округляется к чётному).

Пример: ЦенаБезКопеек = Окр(ЦенаСРасчетнойСкидкой; 0); — вернёт целое число рублей. Если нужно округлить до десятков рублей, используйте отрицательную разрядность: Окр(Сумма; -1) округлит до десятков.

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

1c
СуммаОкругленная = Окр(СуммаСКопейками; 0; РежимОкругления.Округление15как20);

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

В «1С:Зарплата и управление персоналом» округление применяется на нескольких уровнях, и путать их нельзя. НДФЛ программа округляет до рубля автоматически по норме Налогового кодекса — это встроенное поведение, настраивать его не требуется.

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

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

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

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

В макете печатной формы используется форматная строка: Формат(Сумма; "ЧДЦ=0") выведет число без дробной части. В отчётах на СКД аналогичный эффект даёт настройка формата поля на закладке «Наборы данных» или в пользовательских настройках оформления поля.

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

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

Округление при загрузке данных и обмене

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

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

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

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

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

Значение в поле после округления
Норма

Дробная часть равна нулю или отсутствует

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

Копейки остались — округление не применилось или применено не к тому реквизиту

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

Итог равен сумме округлённых строк

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

Итог не сходится — округлялись строки, а итог не пересчитан

Отчёт по НДС после округления цен
Норма

Суммы НДС соответствуют новым ценам

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

НДС посчитан от старых цен — документы не перепроведены

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

Можно ли в 1С хранить суммы вообще без копеек?

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

Чем отличается Окр(Сумма; 0) от Цел(Сумма)?

Окр() округляет по правилам: 10,5 станет 11. Цел() просто отбрасывает дробную часть: 10,9 станет 10. Для денег Цел() почти никогда не подходит, так как систематически занижает суммы.

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

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

Как округлить до рубля в формуле динамического расчёта цены?

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

Округление до рубля влияет на НДС?

Да. Если округляется цена или сумма строки, НДС пересчитывается от нового значения, и сумма налога может измениться на копейки. После массового округления цен перепроведите документы реализации и проверьте книгу продаж.

Как округлить только в печатной форме, не трогая учёт?

Используйте форматную строку в макете: Формат(Сумма; "ЧДЦ=0"). В отчётах на СКД — настройку формата числового поля. Данные в базе при этом не меняются.

Итог

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

Округление до рубля в 1С делается на уровне настройки вида цен, функции Окр(Сумма; 0) в коде, формул начислений или форматной строки в печати. Выбирайте уровень по месту возникновения дробной части, после изменений пересчитывайте зависимые данные и проверяйте итоги, а типовые расчёты налогов не трогайте.