Разделитель групп разрядов в 1С: где настроить отображение тысяч

· 9 мин

Содержание

Чтобы в 1С 8.3 числа показывались с разделителем тысяч — 1 000 000 вместо 1000000 — меняют не настройки Windows, а региональные установки самой информационной базы. Поэтому привычное «поправлю формат в панели управления» не срабатывает: платформа хранит разделитель групп разрядов внутри базы и при выводе чисел в работающей базе на систему не смотрит.

Рычагов два. Глобально, для всех чисел и всех пользователей, разделитель задаётся в Конфигураторе: Администрирование → Региональные установки информационной базы. Точечно — для одной ячейки отчёта, печатной формы или выгрузки — помогает параметр ЧГ в формате числа. Его же применяют в коде через функцию Формат.

Настройка общая для платформы и не зависит от конфигурации: и в «Бухгалтерии», и в ЗУП, и в «Управлении торговлей» отображение тысяч регулируется одинаково.

Почему настройки Windows не меняют числа в базе

Разделитель групп разрядов в Windows лежит в Панель управления → Регион → Дополнительные параметры → вкладка «Числа» → «Разделитель групп разрядов». Здесь задают пробел, запятую или апостроф для всей системы.

Но работающая база 1С этот параметр при выводе чисел не читает. Системные региональные настройки платформа использует в двух случаях:

  • 🆕 как значения по умолчанию, когда создаётся новая информационная база — их потом переопределяют;
  • 🖥 для отдельных операций на стороне клиента вне интерфейса списков и форм.

Поэтому если число в документе или отчёте выглядит не так, как нужно, настройки операционной системы трогать бесполезно — идём в установки базы.

Исключение, где системный формат всё-таки заметен, — отдельные сторонние обработки и внешние компоненты, которые сами берут разделитель из Windows, минуя установки базы. Но для штатных документов, списков и отчётов правило одно: формат чисел живёт в базе.

Как задать разделитель групп во всей базе

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

Порядок действий:

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте меню Администрирование → Региональные установки информационной базы.
  3. В поле «Разделитель групп» укажите символ-разделитель: пробел для 1 000 000, запятую для 1,000,000 или апостроф.
  4. В поле «Группировка» задайте размер группы — 3 для разбивки по тысячам.
  5. Нажмите «ОК».

Чтобы, наоборот, убрать пробелы во всех числах, очистите поле «Разделитель групп» — платформа начнёт выводить 1000000 без разбивки.

У новой информационной базы эти значения подставляются из выбранной при создании страны (языка): для России по умолчанию идёт пробел-разделитель и группировка по три разряда. Если базу заводили по иностранному шаблону, разделитель может оказаться запятой или вовсе отсутствовать — поправляется здесь же.

Изменение применяется ко всем пользователям базы. Чтобы увидеть новый формат, сеанс нужно перезапустить — просто перезайдите в базу после сохранения установок. Перезагрузка сервера не нужна.

Меняйте установки, когда в базе не работают пользователи: это общий для всех параметр, и правка во время активной работы собьёт привычное отображение чисел сразу у всех.

Где менять разделитель разрядов?

Разделитель тысяч в отчётах и печатных формах

В конкретном отчёте или печатной форме разделитель задаётся форматом ячейки, а не установками базы. Так можно отключить пробелы в одном макете, не меняя всю базу.

Для ячейки табличного документа (печатная форма, макет):

  1. Выделите ячейку или диапазон с числом.
  2. Откройте свойства ячейки (пункт Свойства в контекстном меню или палитра свойств).
  3. В свойстве «Формат» задайте строку формата: ЧГ=' ' — пробел-разделитель, ЧГ=0 — без разбивки.

В отчётах на системе компоновки данных формат поля задают в конструкторе формата — это свойство «Формат» ресурса или поля. В окне настройки формата есть переключатель группировки разрядов и поле символа-разделителя: включите его, если нужны пробелы, или снимите, если число должно идти слитно.

Например, в печатной форме счёта сумму 15000 с форматом ЧГ=' ' клиент увидит как 15 000 — читается в разы легче, вероятность ошибиться в нулях ниже.

У номеров документов, кодов, ИНН и КПП группировку разрядов надо отключать (ЧГ=0). Иначе номер 100500 превратится в 100 500 и будет выглядеть как сумма. Разбивка на тысячи уместна только для денежных и количественных показателей.

Сумма прописью — это отдельный механизм (функция преобразования числа в текст), и разделитель разрядов её не касается: там слова, а не цифры.

Отображение тысяч в тонком, толстом и веб-клиенте

Разделитель разрядов берётся из региональных установок базы одинаково во всех клиентах — толстом, тонком и веб. Браузер и его языковые настройки на формат чисел 1С не влияют: веб-клиент показывает числа так же, как настроена база.

Значит, отдельно «под веб» ничего настраивать не нужно. Поправили региональные установки базы — формат изменится во всех клиентах после перезахода.

Единственная особенность веб-клиента всплывает при копировании. Если скопировать число с пробелами-разделителями из браузера и вставить в Excel, разделителем часто оказывается неразрывный пробел (символ 160). Excel принимает такую строку за текст и не считает её числом. Как это чинить — ниже, в разделе про выгрузку.

Печать из веб-клиента идёт через тот же табличный документ, что и в тонком клиенте, поэтому формат чисел в печатных формах из браузера совпадает с десктопным. Отдельной «веб-настройки разделителя» в платформе нет и искать её не нужно.

Как управлять группировкой из кода: функция Формат

Когда число собирают в строку программно — в сообщениях пользователю, макетах, именах файлов — разбивку на тысячи задают функцией Формат. За разделитель групп разрядов отвечает параметр ЧГ.

// С пробелами-разделителями
Формат(1234567, "ЧГ=' '");          // 1 234 567

// Без разбивки — для номеров, кодов, выгрузок
Формат(1234567, "ЧГ=0");            // 1234567

// Два знака после запятой и пробел-разделитель
Формат(1234567.5, "ЧДЦ=2; ЧГ=' '"); // 1 234 567,50

Параметр ЧДЦ задаёт число знаков дробной части, ЧГ — разделитель групп. Если ЧГ не указывать, платформа подставит разделитель из региональных установок базы.

Полезные параметры форматной строки для чисел:

ПараметрЗа что отвечаетПример
ЧГразделитель групп разрядов (0 — выключить)ЧГ=' ' → 1 000
ЧДЦчисло знаков после запятойЧДЦ=2 → 10,00
ЧРДсимвол разделителя дробной частиЧРД='.' → 10.5
ЧЦминимальное число знаков целой частиЧЦ=6 → 000100

Несколько параметров разделяют точкой с запятой: Формат(Сумма, "ЧДЦ=2; ЧГ=' '; ЧРД=','").

При склейке числа с текстом всегда оборачивайте число в Формат. Иначе формат возьмётся по умолчанию, и в одной базе значение окажется с пробелами, а в другой — без, в зависимости от установок. "Остаток: " + Формат(Остаток, "ЧДЦ=2; ЧГ=' '") даёт предсказуемый результат на любой базе.

Разделитель целой и дробной части: запятая или точка

С разделителем тысяч часто путают разделитель дробной части — символ между рублями и копейками. В русской локали это запятая: 1 000,50. Задаётся он в том же диалоге региональных установок — поле «Разделитель дробной части».

В коде за него отвечает параметр ЧРД:

  • ЧРД=',' — запятая, привычный российский вид 1 234,50;
  • ЧРД='.' — точка, формат 1 234.50 для выгрузок в системы, где ждут точку.

Эти два разделителя лучше не смешивать. Если в региональных установках разделителем групп стоит точка, а дробной части — запятая, число 1.234,50 читается тяжело и ломает выгрузки. Для денежных сумм в России держите пробел в группах и запятую в дробной части.

При загрузке файлов разделитель дробной части во внешних данных должен совпадать с тем, что ждёт код. CSV из иностранной системы часто приходит с точкой — перед записью такое число приводят к формату базы, иначе копейки «потеряются».

Почему формат числа отличается в разных формах и списках

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

Приоритет такой:

  1. 🥇 Формат, заданный у элемента формы или колонки списка (свойство «Формат»).
  2. 🥈 Формат, заданный у реквизита объекта в метаданных (в Конфигураторе у реквизита есть собственное свойство «Формат»).
  3. 🥉 Региональные установки информационной базы — применяются, когда свой формат не задан.

Отсюда практический вывод: если нужно изменить вид числа в одном конкретном списке или поле, правьте формат этого элемента, а не установки всей базы. И наоборот — если правка региональных установок «не подействовала» на какую-то колонку, значит, у неё задан собственный формат, который и побеждает.

Типичный пример — колонка «Сумма» в списке документов показывает пробелы, а поле «Номер» рядом идёт слитно. Это не сбой: у номера формат задан на уровне реквизита с ЧГ=0, чтобы цифры номера не разбивались на тройки. Региональные установки тут ни при чём, и менять их ради одной колонки не нужно.

Разделители при выгрузке в Excel и обмене данными

Самая частая боль с разделителем тысяч — не отображение, а выгрузка. Число 1 234 567, попавшее в Excel как текст с пробелами, перестаёт быть числом: по нему не построить сумму, формулы выдают ошибку.

Причины и что делать:

  • 📤 Выгружайте значение числом, а не строкой. Если в ячейку Excel кладётся результат Формат(...), это уже текст. Передавайте само число — тогда Excel получит числовой тип, а разбивку на тысячи нарисует уже своим форматом ячейки.
  • 🔢 Если выгрузка идёт строкой и иначе никак, используйте ЧГ=0: число уйдёт слитно, 1234567, и Excel распознает его как число.
  • ␣ Уже выгруженный текст с неразрывными пробелами чистят в Excel через Данные → Текст по столбцам или заменой (Ctrl+H): в поле поиска вставить неразрывный пробел (Alt+0160), поле замены оставить пустым.

Понять, что проблема именно в этом, просто: Excel помечает такие ячейки зелёным треугольником в углу и подсказкой «Число сохранено как текст». Обычная функция ЗНАЧЕН (VALUE) здесь не всегда помогает — неразрывный пробел она не распознаёт, поэтому его сначала убирают заменой. Выгрузка через табличный документ 1С с числовым типом ячейки этой проблемы лишена: Excel получает число напрямую.

При загрузке данных в 1С логика обратная. Если во внешнем файле числа записаны с пробелами-разделителями, перед записью в реквизит пробелы надо убрать функцией СтрЗаменить(Строка, " ", ""), и уже очищенную строку преобразовать в число. Иначе платформа не прочитает значение и реквизит останется пустым.

Частые вопросы

Поменял разделитель в настройках Windows, а в базе всё по-старому — почему?
Работающая база хранит собственные региональные установки и не читает настройки системы при выводе чисел. Меняйте разделитель в Конфигураторе: Администрирование → Региональные установки информационной базы.
Нужно ли перезапускать сервер после смены региональных установок?
Сервер перезапускать не нужно. Достаточно заново войти в базу — формат применяется при старте сеанса. Саму правку установок делайте, когда пользователи не работают.
Можно включить разделитель тысяч только одному пользователю?
Нет, разделитель задаётся на уровне всей базы. Если пробелы мешают в одном отчёте или печатной форме, отключите их точечно форматом ячейки ЧГ=0, не трогая установки базы.
Excel не суммирует выгруженные из 1С числа с пробелами — как починить?
Пробел-разделитель превращает число в текст. Выгружайте значение числом, а не строкой, либо форматируйте через ЧГ=0. Готовый файл чистят командой Данные → Текст по столбцам или заменой неразрывного пробела (символ 160) на пустоту.
Можно поставить запятую или апостроф вместо пробела?
Да. В поле «Разделитель групп» региональных установок укажите нужный символ, а в коде и формате ячеек — через параметр, например ЧГ=',' или ЧГ='''.