Разработка и Конфигурация · 11 мин
Как в 1С увеличить разрядность количества
Как увеличить разрядность количества в 1С через конфигуратор: изменение длины и точности числа, риски конвертации данных, проверка результата и типичные ошибки.
Разрядность количества в 1С определяет, сколько знаков после запятой можно хранить в реквизитах типа «Число» — в документах, справочниках и регистрах. По умолчанию в типовых конфигурациях количество обычно имеет точность 3 знака, и этого достаточно для штучного товара. Но при учёте сыпучих материалов, химических реактивов, драгоценных металлов или при обмене данными с лабораторными системами трёх знаков может не хватать: 0,0005 кг вещества округлится до нуля или до 0,001, и учёт станет недостоверным.
Увеличение разрядности — это изменение конфигурации, а не пользовательская настройка. Операция выполняется в конфигураторе через редактирование свойств реквизита или через централизованное изменение определяемого типа «Количество». Важно понимать: изменение затрагивает структуру базы данных, поэтому при обновлении конфигурации базы данных платформа выполнит реструктуризацию таблиц, что на больших базах может занять значительное время.
Ниже разобрано, где именно хранится разрядность количества, как её изменить для отдельного реквизита и для всей конфигурации сразу, какие риски несёт реструктуризация и как проверить результат после внесения изменений.
Где в 1С задаётся разрядность количества
Количество в 1С — это реквизит типа «Число», у которого два ключевых параметра: длина (общее количество цифр, включая дробную часть) и точность (количество знаков после запятой). Например, число с длиной 15 и точностью 3 позволяет хранить значения до 999 999 999 999,999. Если нужно хранить 6 знаков после запятой, точность увеличивают до 6, а длину при необходимости тоже расширяют, чтобы не потерять целую часть.
В типовых конфигурациях (УТ, ERP, КА) реквизиты количества в документах и регистрах обычно ссылаются не на примитивный тип напрямую, а на определяемый тип — чаще всего «Количество» в ветке «Общие → Определяемые типы». Это удобно: изменив точность в одном месте, вы меняете её для всех реквизитов, использующих этот тип. Но у подхода есть и оборотная сторона — изменение затронет сразу все документы и регистры конфигурации.
В самописных конфигурациях тип может быть задан индивидуально у каждого реквизита. Тогда придётся либо править каждый реквизит отдельно, либо предварительно выяснить, где именно требуется повышенная точность, чтобы не раздувать размер базы без необходимости.
Подготовка: резервная копия и анализ зависимостей
Перед любыми изменениями структуры метаданных сделайте резервную копию базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу в dt через конфигуратор («Администрирование → Выгрузить информационную базу»). Для клиент-серверной базы выполните выгрузку dt или средствами СУБД. Реструктуризация — потенциально рискованная операция: при сбое питания или ошибке на середине процесса таблицы могут остаться в несогласованном состоянии.
Второй шаг — выяснить, какие объекты используют изменяемый тип. В конфигураторе выделите определяемый тип или реквизит, вызовите контекстное меню и выберите «Поиск ссылок в объектах» (или «Найти использование»). Платформа покажет список всех документов, регистров и других объектов, где задействован тип. Этот список поможет оценить масштаб реструктуризации и спланировать время простоя.
Также проверьте внешние зависимости: планы обмена, интеграции через веб-сервисы, выгрузки в Excel и сторонние отчёты. Если база обменивается данными с другой конфигурацией, где точность количества меньше, при обмене значения будут округляться — это нужно учесть заранее, иначе возникнут расхождения между системами.
Как увеличить разрядность для отдельного реквизита
Точечное изменение подходит для самописных конфигураций и ситуаций, когда повышенная точность нужна только в одном месте — например, в регистре учёта драгоценных металлов, а во всех остальных документах достаточно трёх знаков.
- 1Откройте конфигуратор и разблокируйте конфигурацию от изменений (если включена поддержка — потребуется снятие с полной поддержки или режим изменений).
- 2Найдите нужный объект: документ, справочник или регистр — и откройте его структуру.
- 3Дважды щёлкните по реквизиту количества или откройте палитру свойств (правый клик → «Свойства»).
- 4Найдите свойства «Длина» и «Точность». Увеличьте «Точность» до нужного числа знаков (например, с 3 до 6). При необходимости увеличьте «Длину», чтобы сохранить размер целой части.
- 5Сохраните конфигурацию и выполните обновление конфигурации базы данных (клавиша F7 или «Конфигурация → Обновить конфигурацию базы данных»).
- 6В окне реструктуризации проверьте список изменяемых таблиц и подтвердите операцию.
После обновления откройте соответствующий документ в режиме предприятия и введите значение с новым количеством знаков — например, 1,123456. Если значение сохраняется без округления до трёх знаков, изменение применено корректно. Если поле по-прежнему обрезает ввод, проверьте, не задан ли формат отображения в свойствах поля формы (строка формата может ограничивать показ дробной части визуально, хотя в базе значение хранится полностью).
Как увеличить разрядность через определяемый тип
В типовых конфигурациях правильный путь — изменить определяемый тип «Количество». Откройте в дереве конфигурации ветку «Общие → Определяемые типы», найдите тип «Количество» (в некоторых конфигурациях он может называться иначе, например «КоличествоТовара») и откройте его свойства.
В свойствах типа задан составной или простой тип «Число» с параметрами длины и точности. Увеличьте точность до требуемого значения. Обратите внимание на длину: если она была 15 при точности 3, то при точности 6 целая часть сократится с 12 до 9 разрядов. Для складского учёта это обычно некритично, но если обороты исчисляются миллиардами единиц, увеличьте и общую длину.
После сохранения и обновления конфигурации базы данных платформа реструктуризирует все таблицы, где используется этот тип, — это могут быть десятки таблиц документов, регистров накопления и сведений. На большой базе процесс может идти от нескольких минут до нескольких часов, поэтому планируйте его на нерабочее время.
Риски, ограничения и что проверить после изменения
Главный риск — обмены данными. Если база участвует в распределённой системе (РИБ), синхронизации с бухгалтерией или обмене с сайтом, разная точность в узлах приведёт к округлению при переносе и накоплению расхождений. Идеальный вариант — изменить точность во всех связанных базах одновременно. Если это невозможно, проанализируйте правила конвертации и убедитесь, что округление происходит предсказуемо.
Второй момент — отчёты и печатные формы. Многие печатные формы используют функцию Формат() с явным указанием числа знаков, например Формат(Количество, "ЧДЦ=3"). Такие формы будут по-прежнему выводить три знака, даже если в базе хранится шесть. Найдите по конфигурации вхождения "ЧДЦ" и скорректируйте там, где требуется показ полной точности.
Третий момент — расчёты в коде. Если где-то в модулях количество округляется функцией Окр() с жёстко заданной разрядностью, повышенная точность реквизита не даст эффекта: значения будут округляться программно. Поиск по текстам модулей слова «Окр(» поможет найти такие места.
Как проверить результат
Значение 1,123456 сохраняется и отображается без округления
Значение обрезается до 1,123 — тип не изменён или изменён не тот реквизит
Запрос к таблице показывает полную дробную часть
В базе округлённые значения — срабатывает программное округление в модуле
Выводится нужное число знаков
Выводится 3 знака — в форме задан формат ЧДЦ=3
В связанной базе значения совпадают
Расхождения в копейках дробной части — разная точность в узлах обмена
Альтернативы изменению конфигурации
Не всегда нужно лезть в конфигуратор. Если проблема только в том, что мелкие значения округляются, рассмотрите переход на более мелкую единицу измерения: вместо килограммов с шестью знаками учитывать граммы с тремя знаками или миллиграммы. Платформа штатно поддерживает несколько единиц измерения с коэффициентами пересчёта, и это не требует изменения структуры базы.
Другой вариант — хранить повышенную точность только там, где она реально нужна. Например, оставить штатное количество с точностью 3, а для лабораторных данных добавить отдельный реквизит или регистр сведений с точностью 6. Это локализует изменения и снижает риски для остальной системы.
Сравнение вариантов
Подходит, когда точность нужна везде. Минус: масштабная реструктуризация и усложнение обновлений типовой конфигурации.
Подходит для самописных конфигураций и изолированных участков учёта. Минус: нужно найти и изменить каждый нужный реквизит.
Не требует изменения конфигурации, безопасно для обновлений. Минус: пересчёт остатков и привыкание пользователей к новым числам.
Изолирует изменение, не затрагивает типовые механизмы. Минус: дублирование данных и необходимость доработки форм и отчётов.
Часто задаваемые вопросы
Можно ли увеличить разрядность количества без конфигуратора, в режиме предприятия?
Нет. Длина и точность числового реквизита — это свойства метаданных, они меняются только в конфигураторе с последующим обновлением конфигурации базы данных. Обходной путь без конфигуратора — переход на более мелкую единицу измерения (граммы вместо килограммов).
Что произойдёт с уже введёнными данными после увеличения точности?
Существующие значения сохранятся: реструктуризация при увеличении точности не теряет данные, а лишь расширяет поле. Старые записи получат нули в добавленных разрядах — например, 5,25 станет 5,25000.
Опасно ли уменьшать точность обратно?
Да, это рискованная операция: при уменьшении точности дробная часть существующих значений будет округлена или усечена, и восстановить потерянные разряды невозможно. Перед таким изменением обязательно сделайте копию и проанализируйте, есть ли в базе значения с ненулевыми «лишними» разрядами.
Почему после изменения типа в документе всё равно видно три знака?
Чаще всего причина в строке формата поля ввода или в печатной форме, где явно задано ЧДЦ=3. Также проверьте код модулей на наличие Окр() с тремя знаками и убедитесь, что изменён именно тот реквизит, который выведен на форму.
Нужно ли менять точность в регистрах отдельно от документов?
Если ресурсы регистра используют тот же определяемый тип «Количество», они изменятся автоматически. Если тип у ресурса задан индивидуально, его нужно править отдельно — иначе документ запишет в регистр округлённое значение, и точность потеряется на этапе проведения.
Как изменение точности повлияет на производительность и размер базы?
Числовые поля с большей точностью занимают немного больше места, но для большинства баз рост размера незначителен. Заметное влияние оказывает сама реструктуризация больших таблиц — она выполняется один раз при обновлении, а на повседневную скорость работы увеличение точности практически не влияет.
Что важно запомнить
Разрядность количества меняется через свойства «Длина» и «Точность» реквизита или определяемого типа в конфигураторе, с обязательной резервной копией и обновлением конфигурации базы данных. После изменения проверьте форматы вывода, программное округление в коде и согласованность точности во всех базах, участвующих в обмене.