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

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

Как в 1С убрать знаки после запятой

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

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

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

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

Определите, где именно нужно убрать дробную часть

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

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

Маршрут решения

Как выбрать действие

Число с дробной частью видно только на экране или в отчётеНастройте формат отображения поля (ЧДЦ=0)
Дробная часть появляется в результате расчёта в кодеОкруглите результат функцией Окр()
Нужно, чтобы в базе хранились только целые числаИзмените точность реквизита в конфигураторе
Лишние знаки видны только в печатной формеПоправьте формат в макете печатной формы

Убираем знаки после запятой в отображении: формат поля

Самый безопасный способ — изменить только представление числа, не трогая данные. В конфигураторе у числового реквизита, колонки таблицы или поля формы есть свойство «Формат». Если задать там строку ЧДЦ=0, число будет показываться без знаков после запятой, хотя в базе останется с точностью, заданной типом.

Та же строка формата работает и программно через функцию Формат(). Это удобно, когда число выводится в сообщение, надпись или текстовое поле:

СтрокаСумма = Формат(СуммаДокумента, "ЧДЦ=0");

В строке формата можно комбинировать параметры: ЧДЦ задаёт число десятичных знаков, ЧРД — разделитель дробной части, ЧГ — группировку разрядов. Например, Формат(Сумма, "ЧДЦ=0; ЧГ=3,0") выведет целое число с разделением тысяч пробелами.

Формат в отчётах на СКД

В отчётах на системе компоновки данных формат задаётся на закладке «Наборы данных» — выберите поле и в свойстве «Оформление» (или в настройках отчёта на закладке «Выбранные поля» через «Параметры вывода») укажите формат ЧДЦ=0. В пользовательском режиме это иногда доступно через «Ещё → Изменить вариант отчёта» без входа в конфигуратор.

Округление значения функцией Окр()

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

ЦенаБезКопеек = Окр(ЦенаСРасчётом, 0);

КоличествоЦелое = Окр(Количество * Коэффициент, 0);

Функция округляет по арифметическим правилам: 10,5 превратится в 11, а 10,4 — в 10. Если нужно всегда округлять вниз (отбрасывать дробь) или вверх, используйте конструкции с Цел():

Вниз = Цел(Число);               // 10,9 -> 10

Вверх = -Цел(-Число); // 10,1 -> 11

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

ВЫБРАТЬ

Окр(Продажи.Сумма, 0) КАК Сумма

ИЗ

РегистрНакопления.Продажи КАК Продажи

bsl
СуммаОкругленная = Окр(Сумма, 0); // округление до целых
Текст = Формат(Сумма, "ЧДЦ=0");     // только отображение без копеек

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

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

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

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

Знаки после запятой в печатных формах

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

Второй путь — округлить значение в коде формирования печатной формы перед подстановкой в параметр:

Область.Параметры.СуммаВсего = Окр(Шапка.СуммаДокумента, 0);

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

Округление в пользовательском режиме без конфигуратора

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

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

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

Сравнение вариантов

Формат отображения (ЧДЦ=0)

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

Функция Окр() в коде или запросе

Реально округляет значение в момент расчёта. Требует доступа к коду или изменения запроса.

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

Меняет хранение данных навсегда. Требует копии базы и осторожности с типовыми конфигурациями.

Округление в Excel после выгрузки

Не требует прав и доработок. Подходит только для разовых отчётов, не решает задачу внутри 1С.

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

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

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

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

Отображение числа на форме
Норма

Значение показано без знаков после запятой

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

Дробная часть видна — формат не применён к этому полю

Итог по документу
Норма

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

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

Итог отличается на копейки — округление применено не ко всем этапам расчёта

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

Суммы целые и совпадают с экранной формой

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

В печати копейки остались — формат задан не в макете

Выгрузка в Excel
Норма

Значения соответствуют ожиданиям

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

Ушли полные значения — был изменён только формат отображения

Итог

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

Для отображения используйте формат ЧДЦ=0, для реального округления — Окр(Число, 0), для изменения хранения — точность реквизита в конфигураторе. Перед изменением типов данных делайте резервную копию и проверяйте согласованность итогов.

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

Как убрать копейки в сумме документа в 1С:Бухгалтерии?

Штатно суммы документов хранятся с копейками, и менять это не рекомендуется — проводки и регламентированная отчётность оперируют суммами с точностью до копеек. Если копейки мешают визуально в печатной форме, настройте формат ячейки макета (ЧДЦ=0) или используйте внешнюю печатную форму с округлением Окр(Сумма, 0).

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

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

Можно ли убрать знаки после запятой в запросе?

Да, язык запросов 1С поддерживает функцию Окр(Значение, Точность). Например: ВЫБРАТЬ Окр(Таб.Сумма, 0) КАК Сумма. Это удобно для отчётов и обработок, где округление нужно сразу при выборке, без постобработки результата.

Почему после установки формата ЧДЦ=0 в Excel выгружаются копейки?

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

Что будет со старыми данными, если уменьшить точность реквизита?

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

Как округлить количество до целых в документе «Реализация» типовой конфигурации?

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