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

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

Где округление в 1С: настройки, функции и проверка результата

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

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

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

Ниже разобраны основные места, где работает округление в типовых конфигурациях (Бухгалтерия, ЗУП, Управление торговлей, ERP), как проверить и изменить настройки и какие ошибки чаще всего приводят к расхождениям в отчётах.

Где задаётся точность цен и сумм в документах

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

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

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

Как найти настройку точности цены
  1. 1
    Откройте справочник видов (типов) цен в разделе настроек или маркетинга
  2. 2
    Найдите поле точности или порядка округления у нужного вида цены
  3. 3
    Проверьте разрядность валюты в справочнике валют
  4. 4
    Создайте тестовый документ и сверьте сумму строки с расчётом вручную

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

В 1С:ЗУП округление встречается чаще всего при расчёте страховых взносов, НДФЛ и среднего заработка. НДФЛ по законодательству считается в целых рублях: сумма менее 50 копеек отбрасывается, 50 копеек и более — округляется до рубля. Это не настройка программы, а требование НК РФ, поэтому «убрать» это округление нельзя.

Страховые взносы, наоборот, считаются в рублях и копейках по каждому сотруднику. Если в отчёте по взносам копейки «скачут» по сравнению с ручным расчётом, причина обычно в том, что база берётся нарастающим итогом с начала года, а не за один месяц — программа считает взносы с накопленной базы и вычитает ранее начисленное.

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

Округление НДС и копеечные расхождения в счетах-фактурах

НДС в документах реализации округляется до копеек по каждой строке. Из-за этого сумма НДС по документу в целом может отличаться от расчёта «18% (или 20%) от итоговой суммы» на несколько копеек. Это нормальное поведение: налог считается построчно, а не от общего итога.

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

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

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

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

Режим по умолчанию — «15 как 20», то есть «банковское» поведение в 1С отсутствует: половина всегда округляется в большую сторону. Режим «15 как 10» округляет половину к ближайшему чётному. Для денежных расчётов чаще применяют стандартный режим с точностью 2 знака.

// Округление до копеек

СуммаОкр = Окр(Сумма, 2);

// Округление до целых рублей

СуммаОкр = Окр(Сумма, 0);

// Округление до сотен рублей

СуммаОкр = Окр(Сумма, -2);

// Округление вверх до целого (через Цел)

Если Число > Цел(Число) Тогда

Результат = Цел(Число) + 1;

Иначе

Результат = Цел(Число);

КонецЕсли;

Отдельно помните про функции Цел() (отбрасывает дробную часть) и Int() — это не округление, а усечение. Подмена Окр() на Цел() — частая причина систематического занижения сумм.

bsl
СуммаОкр = Окр(Сумма, 2); // округление до копеек

Точность количества и округление остатков на складе

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

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

При обмене между конфигурациями (например, УТ → Бухгалтерия) проверьте, совпадает ли точность количества в обеих базах. Разная разрядность — типичный источник расхождений остатков после синхронизации.

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

Как проверить, что округление настроено правильно

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

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

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

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

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

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

Равна цене × количеству с учётом заданной точности вида цены

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

Отличается без видимой причины — проверьте точность вида цены и валюты

НДС по документу
Норма

Отличается от процента от итога не более чем на копейки из-за построчного расчёта

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

Расхождение на рубли — есть строки с ручной правкой сумм или неверной ставкой

Остатки на складе
Норма

Нулевые или целые/обоснованно дробные остатки

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

Остатки вида 0,0005 — «хвосты» от округления, нужна инвентаризация

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

Можно ли настроить в 1С единое округление для всей программы?

Нет, глобальной настройки не существует. Точность задаётся отдельно для цен, валют, количества, показателей расчёта зарплаты, а НДС и НДФЛ округляются по законодательным правилам. Нужно определить, в каком участке учёта возникает расхождение, и настраивать именно его.

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

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

Чем Окр() отличается от Цел() во встроенном языке?

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

Как округлить число всегда в большую сторону?

Штатной функции «округлить вверх» во встроенном языке нет. Используют приём: если число больше своей целой части, прибавить единицу к результату Цел(). Для копеек аналогично работают с числом, умноженным на 100, а затем делят результат обратно.

Откуда на складе берутся остатки вида 0,001 и как их убрать?

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

Почему после обмена между УТ и Бухгалтерией расходятся суммы на копейки?

Чаще всего причины — разная точность цен или количества в двух базах, разные курсы валют в документах или ручная правка сумм в одной из программ. Сверьте настройки видов цен и валют в обеих базах и проверьте документы с ручными корректировками сумм.

Итог

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

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