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