Разработка и Конфигурация · 10 мин
Как в 1С убрать знаки после запятой
Как в 1С убрать знаки после запятой: настройка точности в конфигураторе, функции округления Окр() и Формат(), изменение формата в отчётах и печатных формах.
Лишние знаки после запятой в 1С появляются в разных местах: в колонках документов, в отчётах, в печатных формах и в результатах расчётов. Способ убрать их зависит от того, где именно отображается число и откуда берётся значение — из реквизита справочника, из формулы в запросе или из макета печатной формы.
Важно различать две задачи: изменить отображение числа (при этом в базе оно остаётся с полной точностью) и изменить само хранимое значение (тогда данные физически округляются). Первая задача решается настройкой формата, вторая — изменением типа реквизита в конфигураторе или программным округлением.
Ниже разобраны оба подхода для типовых конфигураций (Бухгалтерия, Управление торговлей, ЗУП) и для самописных решений: от простой настройки формата поля до функций Окр() и Формат() во встроенном языке.
Определите, где именно нужно убрать дробную часть
Прежде чем что-то менять, ответьте на вопрос: число с копейками (или долями) хранится в базе и просто неприятно выглядит, или оно возникает в момент расчёта — например, при делении количества на коэффициент? В первом случае достаточно настроить формат отображения. Во втором нужно округлять результат вычисления.
Также важно понять, кто будет выполнять изменение. Настройка формата в отчёте на СКД или в макете доступна опытному пользователю. Изменение точности реквизита — это работа в конфигураторе, которая требует прав на изменение конфигурации и понимания последствий для уже введённых данных.
Как выбрать действие
Убираем знаки после запятой в отображении: формат поля
Самый безопасный способ — изменить только представление числа, не трогая данные. В конфигураторе у числового реквизита, колонки таблицы или поля формы есть свойство «Формат». Если задать там строку ЧДЦ=0, число будет показываться без знаков после запятой, хотя в базе останется с точностью, заданной типом.
Та же строка формата работает и программно через функцию Формат(). Это удобно, когда число выводится в сообщение, надпись или текстовое поле:
СтрокаСумма = Формат(СуммаДокумента, "ЧДЦ=0");
В строке формата можно комбинировать параметры: ЧДЦ задаёт число десятичных знаков, ЧРД — разделитель дробной части, ЧГ — группировку разрядов. Например, Формат(Сумма, "ЧДЦ=0; ЧГ=3,0") выведет целое число с разделением тысяч пробелами.
Формат в отчётах на СКД
В отчётах на системе компоновки данных формат задаётся на закладке «Наборы данных» — выберите поле и в свойстве «Оформление» (или в настройках отчёта на закладке «Выбранные поля» через «Параметры вывода») укажите формат ЧДЦ=0. В пользовательском режиме это иногда доступно через «Ещё → Изменить вариант отчёта» без входа в конфигуратор.
Округление значения функцией Окр()
Когда нужно не скрыть, а реально отбросить дробную часть, используется функция встроенного языка Окр(Число, Точность). Первый параметр — исходное число, второй — количество знаков после запятой, до которых округлять. Для целых значений точность равна 0:
ЦенаБезКопеек = Окр(ЦенаСРасчётом, 0);
КоличествоЦелое = Окр(Количество * Коэффициент, 0);
Функция округляет по арифметическим правилам: 10,5 превратится в 11, а 10,4 — в 10. Если нужно всегда округлять вниз (отбрасывать дробь) или вверх, используйте конструкции с Цел():
Вниз = Цел(Число); // 10,9 -> 10
Вверх = -Цел(-Число); // 10,1 -> 11
Функцию Окр() можно применять и в запросах — она поддерживается языком запросов 1С. Это удобно, когда округление нужно сделать сразу при выборке данных, например в отчёте или обработке:
ВЫБРАТЬ
Окр(Продажи.Сумма, 0) КАК Сумма
ИЗ
РегистрНакопления.Продажи КАК Продажи
СуммаОкругленная = Окр(Сумма, 0); // округление до целых
Текст = Формат(Сумма, "ЧДЦ=0"); // только отображение без копеекИзменение точности реквизита в конфигураторе
Если по смыслу учёта дробная часть вообще не нужна — например, количество штучного товара всегда целое — правильнее изменить сам тип данных. Откройте конфигуратор, найдите нужный реквизит (справочника, документа или регистра), в свойствах типа «Число» задайте «Длина» и «Точность». Точность 0 означает, что храниться будут только целые значения.
После изменения точности потребуется обновить конфигурацию базы данных. При уменьшении точности платформа предупредит о возможной потере данных: существующие дробные значения будут округлены при реструктуризации таблиц. Это необратимая операция, поэтому перед обновлением обязательно сделайте резервную копию информационной базы.
Учтите, что в типовых конфигурациях изменять стандартные реквизиты нежелательно: при обновлении на новый релиз такие изменения могут конфликтовать с поставкой. Безопаснее ограничиться форматом отображения или добавить расширение конфигурации.
Знаки после запятой в печатных формах
В печатных формах числа чаще всего выводятся через параметры макета. Если в ячейке табличного документа выводится сумма с копейками, а нужны целые рубли, есть два пути. Первый — задать формат прямо в ячейке макета: откройте макет, выделите ячейку, в свойствах установите формат ЧДЦ=0.
Второй путь — округлить значение в коде формирования печатной формы перед подстановкой в параметр:
Область.Параметры.СуммаВсего = Окр(Шапка.СуммаДокумента, 0);
Для типовых конфигураций печатные формы часто подключаются как внешние или переопределяются через механизм «Дополнительные отчеты и обработки». В этом случае правьте копию внешней печатной формы, а не встроенный макет — тогда обновление конфигурации не затрёт ваши изменения.
Округление в пользовательском режиме без конфигуратора
Не всегда есть доступ к конфигуратору, и не всегда он нужен. Часть задач решается штатными средствами. В отчётах на СКД пользователь с правами на изменение варианта отчёта может открыть «Изменить вариант», найти нужное поле и задать ему оформление с форматом без дробной части.
В некоторых конфигурациях есть настройки точности цен и сумм: например, в «Управлении торговлей» параметры округления цен задаются в настройках видов цен и соглашений, а округление копеек в документах — в учётной политике или настройках параметров учёта. Проверьте разделы «Настройки» и «Учётная политика» вашей конфигурации — возможно, нужная опция уже предусмотрена.
Для разовой выгрузки в Excel проще округлить данные уже там: выгрузите отчёт и примените формат ячеек или функцию ОКРУГЛ. Это полностью безопасно для учётных данных, так как база не изменяется.
Сравнение вариантов
Быстро и безопасно, данные не меняются. Не подходит, если нужно округлить значение для расчётов или выгрузки.
Реально округляет значение в момент расчёта. Требует доступа к коду или изменения запроса.
Меняет хранение данных навсегда. Требует копии базы и осторожности с типовыми конфигурациями.
Не требует прав и доработок. Подходит только для разовых отчётов, не решает задачу внутри 1С.
Проверка результата и типичные ошибки
После изменения проверьте результат в трёх местах: на экранной форме документа или списка, в отчёте и в печатной форме. Убедитесь, что итоговые суммы согласованы: если строки округляются до целых, а итог считается от неокругленных значений, возникнет расхождение на копейки — это частая претензия при сверке с контрагентами.
Как проверить результат
Значение показано без знаков после запятой
Дробная часть видна — формат не применён к этому полю
Итог равен сумме округлённых строк
Итог отличается на копейки — округление применено не ко всем этапам расчёта
Суммы целые и совпадают с экранной формой
В печати копейки остались — формат задан не в макете
Значения соответствуют ожиданиям
Ушли полные значения — был изменён только формат отображения
Что важно запомнить
Для отображения используйте формат ЧДЦ=0, для реального округления — Окр(Число, 0), для изменения хранения — точность реквизита в конфигураторе. Перед изменением типов данных делайте резервную копию и проверяйте согласованность итогов.
Частые вопросы
Как убрать копейки в сумме документа в 1С:Бухгалтерии?
Штатно суммы документов хранятся с копейками, и менять это не рекомендуется — проводки и регламентированная отчётность оперируют суммами с точностью до копеек. Если копейки мешают визуально в печатной форме, настройте формат ячейки макета (ЧДЦ=0) или используйте внешнюю печатную форму с округлением Окр(Сумма, 0).
Чем отличается Окр() от Цел()?
Окр(Число, 0) округляет по арифметическим правилам: 10,5 станет 11. Цел() просто отбрасывает дробную часть: 10,9 станет 10. Для денежных сумм обычно требуется именно Окр(), иначе накапливаются расхождения в меньшую сторону.
Можно ли убрать знаки после запятой в запросе?
Да, язык запросов 1С поддерживает функцию Окр(Значение, Точность). Например: ВЫБРАТЬ Окр(Таб.Сумма, 0) КАК Сумма. Это удобно для отчётов и обработок, где округление нужно сразу при выборке, без постобработки результата.
Почему после установки формата ЧДЦ=0 в Excel выгружаются копейки?
Формат влияет только на отображение в интерфейсе 1С. При выгрузке в табличный документ или Excel передаётся фактическое значение. Чтобы в выгрузке были целые числа, округлите данные функцией Окр() до формирования табличного документа или округлите уже в Excel.
Что будет со старыми данными, если уменьшить точность реквизита?
При обновлении конфигурации базы данных платформа выполнит реструктуризацию таблиц, и существующие дробные значения будут округлены до новой точности. Вернуть исходные значения после этого нельзя, поэтому перед изменением обязательно создайте резервную копию базы и проверьте результат на копии.
Как округлить количество до целых в документе «Реализация» типовой конфигурации?
Без доработок — никак: типовые документы позволяют вводить дробное количество, если единица измерения это допускает. Варианты: задать для единицы измерения целочисленный тип, контролировать ввод обработкой проверки либо добавить расширение конфигурации с округлением при записи строки табличной части.