Разработка и Конфигурация · 10 мин
Как в 1С увеличить количество знаков после запятой в количестве
Как увеличить количество знаков после запятой в количестве в 1С: настройка точности реквизита через конфигуратор, влияние на данные, типичные ошибки и проверка результата.
Задача увеличить количество знаков после запятой в количестве возникает, когда типовая точность реквизита перестаёт устраивать: например, нужно учитывать метраж, вес или объём с тремя-четырьмя знаками, а документы округляют значение до двух. В 1С точность числового реквизита задаётся в конфигураторе через свойство «Точность» квалификатора числа, и изменить её из пользовательского режима без доработки конфигурации нельзя.
Важно понимать разницу между точностью хранения и точностью отображения. Реквизит может хранить три знака после запятой, но форма документа или печатная форма выводит только два — тогда проблема решается настройкой формата, а не изменением структуры данных. Правильная диагностика ситуации экономит время и избавляет от ненужной правки конфигурации.
Изменение точности — это доработка конфигурации, которая требует снятия объекта с полной поддержки (в типовых решениях) и обновления структуры базы данных. Перед любыми изменениями обязательно делается резервная копия, а сама работа выполняется на тестовой копии базы.
Как определить, где именно теряется точность
Прежде чем менять конфигурацию, выясните, на каком этапе «пропадают» знаки после запятой. Возможны три ситуации: значение округляется при вводе в документ, хранится точно, но отображается округлённым, либо округляется только в печатной форме или отчёте. Каждая из них решается своим способом.
Простая проверка: введите в поле количества значение с нужным числом знаков, например 1,2345, и запишите документ. Если после записи значение обрезалось до 1,23 — точность реквизита ограничена на уровне метаданных. Если значение сохранилось, но на экране или в печати видно 1,23 — дело в формате отображения.
Дополнительно проверьте значение через консоль запросов или отчёт по движениям документа: если в регистре хранится полное значение, а в документе оно округлённое — проблема в реквизите документа, а не в регистре. Такая диагностика покажет, какие объекты придётся править.
Свойство «Точность» квалификатора числа в конфигураторе
Свойство «Формат» поля ввода или параметры формы
Функция Формат() в модуле менеджера печати
Вкладка «Наборы данных» или оформление поля отчёта
Изменение точности реквизита в конфигураторе
Основной способ увеличить знаки после запятой — изменить квалификатор числа реквизита. Откройте конфигуратор, найдите нужный объект (документ, справочник, регистр), перейдите к реквизиту табличной части «Количество» и откройте его свойства. В поле «Тип» нажмите кнопку выбора — откроется диалог редактирования типа данных.
В диалоге для типа «Число» задаются два параметра: длина (общее количество цифр, включая знак и разделитель) и точность (количество знаков дробной части). Увеличьте точность, например с 2 до 3 или 4, при необходимости увеличьте и общую длину, чтобы целая часть не обрезалась. Сохраните изменения и обновите конфигурацию базы данных (F7).
Учтите, что в типовых конфигурациях реквизит «Количество» часто используется в десятках документов и регистров. Менять точность нужно согласованно: если документ хранит 4 знака, а регистр накопления — 2, остатки будут округляться при проведении, и в учёте появятся расхождения и «висячие» остатки вида 0,0001.
- 1Сделайте резервную копию базы и разверните тестовую копию
- 2Откройте конфигуратор, найдите реквизит «Количество» нужного документа
- 3В свойствах реквизита откройте редактирование типа и увеличьте «Точность»
- 4Повторите для связанных регистров накопления и сведений
- 5Обновите конфигурацию базы данных (F7), согласовав реструктуризацию
- 6Проведите тестовый документ и проверьте хранение и движения
Настройка формата отображения без изменения конфигурации
Если точность хранения достаточна, проблему решает формат отображения. В форме документа откройте свойства поля ввода количества и задайте «Формат» в виде строки, например ЧДЦ=3 (число десятичных знаков — 3) или комбинированно: ЧЦ=15; ЧДЦ=4. Это не меняет данные, а только их визуальное представление.
В отчётах на СКД формат задаётся в настройках поля: на закладке «Наборы данных» выберите поле и укажите формат в колонке «Оформление» либо через параметр «Формат» в пользовательских настройках отчёта. В печатных формах точность обычно задаётся в коде функцией Формат(Количество, "ЧДЦ=3") — это уже доработка модуля.
Пользовательский режим «Все функции» и настройки списка не управляют точностью чисел — не тратьте время на поиск такой опции в интерфейсе. Формат либо задан в конфигурации, либо меняется через её доработку или расширение.
Формат(Количество, "ЧЦ=15; ЧДЦ=4") // вывод числа с 4 знаками после запятойИзменение через расширение конфигурации
Для типовых конфигураций на поддержке безопаснее использовать расширение: оно не снимает объекты с поддержки и упрощает обновления. Однако есть ограничение — расширения позволяют менять не все свойства. Изменение квалификатора числа существующего реквизита через расширение поддерживается не во всех версиях платформы и не для всех объектов.
Проверьте на своей версии платформы: добавьте реквизит в расширение и посмотрите, доступно ли свойство «Точность» для редактирования. Если недоступно, варианты такие: аккуратная доработка основной конфигурации с минимальными изменениями, либо добавление отдельного реквизита с нужной точностью и перенос логики на него.
Второй вариант трудоёмок: потребуется доработать формы, проведение и печатные формы. Он оправдан, только когда прямое изменение точности невозможно или нежелательно из-за рисков для типового обмена данными.
Последствия для данных и обменов
Увеличение точности — безопасная операция для существующих данных: старые значения останутся с прежним числом знаков, новые смогут хранить больше. Обратная операция (уменьшение точности) опасна: при реструктуризации значения округлятся, и восстановить их будет нельзя.
Обратите внимание на обмены. Если база участвует в синхронизации (РИБ, обмен с другой учётной системой, выгрузка в ЕГАИС, маркировку, ЭДО), точность в приёмнике должна быть не ниже, чем в источнике. Иначе при переносе значения округлятся, и суммы документов в двух системах разойдутся на копейки.
Также проверьте итоговые суммы документов: если сумма рассчитывается как цена × количество, увеличение точности количества может дать копеечные расхождения с ранее проведёнными документами. Обычно это некритично, но при сверках с контрагентами учитывайте этот эффект.
Типичные ошибки и контроль результата
Самая частая ошибка — изменить точность только в документе, забыв про регистры. Документ вводится с 4 знаками, а движения записываются с 2, и в отчётах появляются дробные «хвосты» остатков. Вторая ошибка — правка одного документа из цепочки: заказ хранит 4 знака, реализация — 2, и при вводе на основании данные искажаются.
Третья группа ошибок — работа без копии и без учёта поддержки. Реструктуризация большой таблицы на рабочей базе может занять заметное время и заблокировать пользователей; внесение изменений в типовой объект без фиксации в хранилище или без комментария усложнит будущие обновления.
После изменений проверьте результат комплексно: создайте документ с дробным количеством, проведите, откройте движения по регистрам и отчёт по остаткам. Значения везде должны совпадать с введёнными. Дополнительно сформируйте печатную форму и типовой отчёт — там тоже должны отображаться нужные знаки.
Как проверить результат
Значение 1,2345 сохраняется без округления
После записи остаётся 1,23
В регистре то же количество знаков, что в документе
В движениях значение округлено
Отображается заданное число знаков
На экране точно, в печати округлено
В базе-приёмнике значения совпадают
В приёмнике копеечные расхождения
Частые вопросы
Можно ли увеличить знаки после запятой без конфигуратора?
Нет, если речь о точности хранения: она задаётся в метаданных и меняется только в конфигураторе или расширении. Без доработки можно изменить лишь формат отображения там, где он вынесен в пользовательские настройки отчёта.
Что будет со старыми документами после увеличения точности?
Ничего: существующие значения останутся как были, перепроводить документы не требуется. Новые документы смогут хранить больше знаков. Уменьшение точности, напротив, округлит хранимые значения при реструктуризации.
Почему после изменения точности в отчёте всё равно два знака?
Хранение и отображение настраиваются отдельно. Откройте настройки отчёта и для поля количества задайте формат с нужным числом десятичных знаков, либо измените оформление поля в схеме компоновки данных.
Безопасно ли менять точность в типовой конфигурации?
Технически да, но объект будет снят с полной поддержки, что усложнит обновления. Предпочтительнее расширение, если ваша версия платформы позволяет менять квалификатор числа. В любом случае фиксируйте все доработки для будущих обновлений.
Нужно ли менять точность во всех документах сразу?
Не обязательно во всех, но обязательно во взаимосвязанной цепочке: документы одного бизнес-процесса и регистры, по которым они делают движения. Иначе при переносе данных между документами и в учётные регистры значения начнут округляться.
От чего зависит максимальная точность числа в 1С?
Точность ограничена заданной длиной числа: сумма знаков целой и дробной части не может превышать общую длину. Практический предел точности числа в 1С — порядка 10 знаков дробной части при достаточной общей длине, но для количества обычно достаточно 3–4 знаков.
Что важно запомнить
Точность количества задаётся свойством «Точность» квалификатора числа в конфигураторе; округление на экране лечится форматом отображения. Меняйте точность согласованно во всех связанных документах и регистрах, работайте на копии базы и проверяйте движения, отчёты и обмены после изменения.