Учет и Финансы · 10 мин
Где округление в 1С: настройки, функции и проверка результата
Где в 1С настраивается округление: цены, зарплата, НДС, количество. Функции Окр() и Округлить(), настройки точности в конфигурациях и типичные ошибки.
Округление в 1С встречается сразу в нескольких местах: в ценах документов, при расчёте зарплаты и взносов, при начислении НДС, при списании количества со склада и внутри встроенного языка. Из-за этого вопрос «где округление» обычно означает одну из трёх задач: найти настройку точности в конфигурации, понять, почему сумма в документе отличается на копейки, или применить функцию округления в коде или формуле.
Проблема в том, что единой кнопки «округлить всё» в 1С нет. Каждый участок учёта округляет по-своему: цены — по правилам типов цен или валюты, зарплата — по настройкам расчёта, НДС — по требованиям законодательства, а разработчики дополнительно используют функцию Окр(). Если не понимать, какой именно механизм сработал, копеечные расхождения будут появляться снова и снова.
Ниже разобраны основные места, где работает округление в типовых конфигурациях (Бухгалтерия, ЗУП, Управление торговлей, ERP), как проверить и изменить настройки и какие ошибки чаще всего приводят к расхождениям в отчётах.
Где задаётся точность цен и сумм в документах
В торговых конфигурациях (Управление торговлей, Комплексная автоматизация, ERP) точность цен определяется видом цены и валютой. Откройте вид цены в разделе «Настройки и справочники» (или «Маркетинг» → «Типовые цены» в старых версиях) и проверьте поле «Точность округления» или «Порядок округления». Там же может быть задан вариант округления: в большую сторону, в меньшую или по арифметическим правилам.
Дополнительно влияет валюта документа: у валюты в справочнике «Валюты» задана разрядность дробной части. Если цены ведутся в у.е. или валюте, итоговая сумма в рублях пересчитывается по курсу и округляется до копеек — отсюда типовые расхождения между «ценой × количество» и суммой строки.
Проверить результат просто: создайте тестовый документ с одной позицией, умножьте цену на количество на калькуляторе и сравните с суммой строки. Если сумма отличается — посмотрите, какая точность задана у вида цены, и нет ли округления до целых рублей или до десятков копеек.
- 1Откройте справочник видов (типов) цен в разделе настроек или маркетинга
- 2Найдите поле точности или порядка округления у нужного вида цены
- 3Проверьте разрядность валюты в справочнике валют
- 4Создайте тестовый документ и сверьте сумму строки с расчётом вручную
Округление в расчёте зарплаты и взносов
В 1С:ЗУП округление встречается чаще всего при расчёте страховых взносов, НДФЛ и среднего заработка. НДФЛ по законодательству считается в целых рублях: сумма менее 50 копеек отбрасывается, 50 копеек и более — округляется до рубля. Это не настройка программы, а требование НК РФ, поэтому «убрать» это округление нельзя.
Страховые взносы, наоборот, считаются в рублях и копейках по каждому сотруднику. Если в отчёте по взносам копейки «скачут» по сравнению с ручным расчётом, причина обычно в том, что база берётся нарастающим итогом с начала года, а не за один месяц — программа считает взносы с накопленной базы и вычитает ранее начисленное.
Настройки, влияющие на округление, находятся в разделе «Настройка» → «Реквизиты организации» → «Учётная политика», а также в параметрах расчёта зарплаты. Отдельные показатели (например, оклад или тариф) могут иметь заданную точность в настройке начислений.
Округление НДС и копеечные расхождения в счетах-фактурах
НДС в документах реализации округляется до копеек по каждой строке. Из-за этого сумма НДС по документу в целом может отличаться от расчёта «18% (или 20%) от итоговой суммы» на несколько копеек. Это нормальное поведение: налог считается построчно, а не от общего итога.
Если покупатель требует, чтобы НДС в счёте-фактуре совпадал с его расчётом, варианты ограничены: можно скорректировать цену или сумму вручную в строке документа (в большинстве конфигураций сумма строки редактируется, и НДС пересчитается), либо договориться о допустимой копеечной разнице. Менять алгоритм расчёта НДС в коде ради совпадения копеек — плохая практика, она ломает проверки при обмене с ЭДО.
При выставлении счёта-фактуры в валюте или у.е. НДС всегда указывается в рублях, и округление происходит после пересчёта по курсу. Расхождения здесь устраняются корректировкой курса в документе, а не правкой округления.
Функция Окр() и округление во встроенном языке
Для разработчиков и при написании формул в произвольных выражениях используется встроенная функция Окр(Число, Разрядность, РежимОкругления). Первый параметр — округляемое число, второй — количество знаков дробной части (может быть отрицательным для округления до десятков, сотен), третий — режим: Округлить15как10 или Округлить15как20.
Режим по умолчанию — «15 как 20», то есть «банковское» поведение в 1С отсутствует: половина всегда округляется в большую сторону. Режим «15 как 10» округляет половину к ближайшему чётному. Для денежных расчётов чаще применяют стандартный режим с точностью 2 знака.
// Округление до копеек
СуммаОкр = Окр(Сумма, 2);
// Округление до целых рублей
СуммаОкр = Окр(Сумма, 0);
// Округление до сотен рублей
СуммаОкр = Окр(Сумма, -2);
// Округление вверх до целого (через Цел)
Если Число > Цел(Число) Тогда
Результат = Цел(Число) + 1;
Иначе
Результат = Цел(Число);
КонецЕсли;
Отдельно помните про функции Цел() (отбрасывает дробную часть) и Int() — это не округление, а усечение. Подмена Окр() на Цел() — частая причина систематического занижения сумм.
СуммаОкр = Окр(Сумма, 2); // округление до копеекТочность количества и округление остатков на складе
Количество в складских документах имеет свою точность, которая задаётся в метаданных (для типовых конфигураций обычно 3 знака после запятой). Если вы вводите дробное количество — например, метры, литры или килограммы — программа хранит значение с этой точностью, и остатки могут содержать «хвосты» вроде 0,001.
Такие хвосты мешают закрытию заказов и проведению инвентаризаций: документ видит остаток 0,0005 и считает позицию незакрытой. Убираются они документом инвентаризации или корректировкой, а не изменением настройки округления — менять точность в метаданных рабочей базы опасно, это затрагивает все движения.
При обмене между конфигурациями (например, УТ → Бухгалтерия) проверьте, совпадает ли точность количества в обеих базах. Разная разрядность — типичный источник расхождений остатков после синхронизации.
Как проверить, что округление настроено правильно
Начните с воспроизведения проблемы на одном документе. Выпишите на бумаге: цену, количество, ставку НДС, курс валюты — и посчитайте ожидаемый результат вручную. Сравните с тем, что показывает 1С по каждому шагу: сумма строки, сумма документа, НДС, итог.
Если расхождение в цене — смотрите вид цены и валюту. Если в НДС — это норма построчного расчёта, проверьте, нет ли в документе строк с вручную отредактированными суммами. Если в зарплате — сверьте базу нарастающим итогом, а не за месяц. Если в остатках — постройте отчёт по остаткам с максимальной точностью и найдите дробные «хвосты».
Перед любыми изменениями настроек сделайте копию базы или проверьте изменение на тестовой. Особенно это касается правки типов цен, учётной политики и тем более метаданных: последствия проявляются во всех документах, включая уже проведённые при перепроведении.
Как проверить результат
Равна цене × количеству с учётом заданной точности вида цены
Отличается без видимой причины — проверьте точность вида цены и валюты
Отличается от процента от итога не более чем на копейки из-за построчного расчёта
Расхождение на рубли — есть строки с ручной правкой сумм или неверной ставкой
Нулевые или целые/обоснованно дробные остатки
Остатки вида 0,0005 — «хвосты» от округления, нужна инвентаризация
Частые вопросы
Можно ли настроить в 1С единое округление для всей программы?
Нет, глобальной настройки не существует. Точность задаётся отдельно для цен, валют, количества, показателей расчёта зарплаты, а НДС и НДФЛ округляются по законодательным правилам. Нужно определить, в каком участке учёта возникает расхождение, и настраивать именно его.
Почему сумма НДС в счёте-фактуре не совпадает с расчётом процента от итога?
НДС в 1С рассчитывается построчно с округлением каждой строки до копеек, а затем суммируется. Расчёт процента от общего итога даёт другой результат из-за накопления копеечных разниц. Расхождение в пределах нескольких копеек является нормой.
Чем Окр() отличается от Цел() во встроенном языке?
Окр() округляет число до заданной разрядности по арифметическим правилам, а Цел() просто отбрасывает дробную часть. Для денег применять Цел() нельзя: 10,99 превратится в 10 вместо 11, и суммы будут систематически занижены.
Как округлить число всегда в большую сторону?
Штатной функции «округлить вверх» во встроенном языке нет. Используют приём: если число больше своей целой части, прибавить единицу к результату Цел(). Для копеек аналогично работают с числом, умноженным на 100, а затем делят результат обратно.
Откуда на складе берутся остатки вида 0,001 и как их убрать?
Это следствие дробного количества в документах при точности учёта в три знака: при списаниях и возвратах накапливаются малые дробные остатки. Убираются документом инвентаризации или корректировкой остатков. Менять точность в метаданных рабочей базы для этого не следует.
Почему после обмена между УТ и Бухгалтерией расходятся суммы на копейки?
Чаще всего причины — разная точность цен или количества в двух базах, разные курсы валют в документах или ручная правка сумм в одной из программ. Сверьте настройки видов цен и валют в обеих базах и проверьте документы с ручными корректировками сумм.
Что важно запомнить
Округление в 1С разбросано по участкам учёта: цены — в видах цен и валютах, зарплата — в настройках расчёта и законодательных правилах, НДС — построчно до копеек, в коде — функция Окр(). Сначала воспроизведите расхождение на одном документе, определите ответственный механизм и только потом меняйте настройку — на копии базы.