Как убрать деление чисел на разряды в 1С

Программист IT и автоматизация бизнеса
← На главную

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

Выясним причину поведения платформы

При выводе чисел в интерфейсе или их преобразовании в строку платформа 1С использует региональные настройки. При этом в качестве разделителя групп используется не обычный символ пробела (ASCII 32), а символ неразрывного пробела (Символы.НПП, ASCII 160). По этой причине стандартная попытка заменить обычный пробел в строке через СтрЗаменить(Текст, " ", "") часто не дает никакого результата.

Способ 1. Глобальное отключение через региональные установки информационной базы

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

  1. Перейдем в раздел Администрирование в Главном меню платформы.
  2. Выберем пункт Региональные установки информационной базы.
  3. В поле Разделитель групп удалим текущий символ или зададим нужное значение.

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

Способ 2. Программное форматирование с помощью параметра ЧГ

Для управления представлением чисел в коде 1С используется функция Формат(). Разберем по шагам, как правильно составить форматную строку.

Чтобы полностью отключить группировку разрядов, необходимо передать параметр ЧГ=0 (Число Групп равно нулю). Рассмотрим пример кода:

КодБезРазделителей = Формат(ЧисловоеЗначение, "ЧГ=0");

Обратите внимание: если попытаться просто очистить разделитель с помощью параметра ЧРГ=, платформа не отключит группировку, а вернет стандартный неразрывный пробел. Настоятельно рекомендуется применять именно ЧГ=0.

Способ 3. Использование функции XMLСтрока

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

ТекстовыйКод = XMLСтрока(ЧисловоеЗначение);

Способ 4. Замена неразрывного пробела в строках

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

СтрокаБезПробелов = СтрЗаменить(СтрокаСЧислом, Символы.НПП, "");

Способ 5. Настройка элементов форм, макетов и СКД

Проанализируем, как убрать разделители разрядов в интерфейсных элементах без написания программного кода:

  1. Формы элементов и документов: в палитре свойств поля ввода или текстового поля найдем свойство Формат (или Формат редактирования) и укажем значение ЧГ=0. Можно также воспользоваться встроенным Конструктором форматной строки.
  2. Система компоновки данных (СКД): на вкладке «Наборы данных» или «Оформление» выделим нужное числовое поле, в свойстве «Оформление» найдем пункт «Формат» и пропишем ЧГ=0.
  3. Табличные документы и макеты: откроем свойства ячейки макета и в поле Формат зададим выражение ЧГ=0.

Альтернативный подход: изменение типа реквизита

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

← На главную