РегиональныеНастройкиСеанса.ФорматГруппировкиЦифрЧисел

Свойства · NumbersDigitGroupFormat

Тип: Строка. Последовательность символов, определяющая правила группировки цифр в представлении чисел. Формат группировки указывается следующим образом: <количество цифр в группе><символ-разделитель>… …<0>. В качестве символа-разделителя можно использовать любой символ, отличный от цифры. Например, последовательность символов "3,2,0" означает, что цифры будут сгруппированы следующим образом (отсчет цифр в числе идет слева направо только в целой части): первую группу образуют первые три цифры числа; затем идет символ-разделитель групп (заданный настройками операционной системы или указанный в свойстве Разделитель групп); все оставшиеся цифры числа будут сгруппированы по две. Символ "0" в конце форматной строки означает "и так же ‑ до конца". То есть, если в вышеприведенном примере форматной строки убрать "0", указав "3,2", группировка изменится следующим образом: первую группу образуют первые три цифры числа; затем идет символ-разделитель групп; вторую группу образуют следующие 2 цифры числа; затем идет символ-разделитель групп; все оставшиеся цифры числа будут собраны вместе. Выбор одного символа "0" в этом поле означает, что цифры в целой части чисел не будут разделяться на группы.

Полное описание, параметры и ограничения

РегиональныеНастройкиСеанса.ФорматГруппировкиЦифрЧисел (SessionRegionalSettings.NumbersDigitGroupFormat)

РегиональныеНастройкиСеанса (SessionRegionalSettings)

ФорматГруппировкиЦифрЧисел (NumbersDigitGroupFormat)

Доступен, начиная с версии 8.3.20.

Использование:
Только чтение.
Описание:
Тип: Строка.
Последовательность символов, определяющая правила группировки цифр в представлении чисел.
Формат группировки указывается следующим образом: <количество цифр в группе><символ-разделитель>… …<0>.
В качестве символа-разделителя можно использовать любой символ, отличный от цифры. Например, последовательность символов "3,2,0" означает, что цифры будут сгруппированы следующим образом (отсчет цифр в числе идет слева направо только в целой части): первую группу образуют первые три цифры числа; затем идет символ-разделитель групп (заданный настройками операционной системы или указанный в свойстве Разделитель групп); все оставшиеся цифры числа будут сгруппированы по две. Символ "0" в конце форматной строки означает "и так же ‑ до конца". То есть, если в вышеприведенном примере форматной строки убрать "0", указав "3,2", группировка изменится следующим образом: первую группу образуют первые три цифры числа; затем идет символ-разделитель групп; вторую группу образуют следующие 2 цифры числа; затем идет символ-разделитель групп; все оставшиеся цифры числа будут собраны вместе. Выбор одного символа "0" в этом поле означает, что цифры в целой части чисел не будут разделяться на группы.
Доступность:

Сервер, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.3.20.

Методическая информация

Практические примеры

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

Сравниваем региональные настройки базы и сеанса. Для обмена показываем отдельный, независимый от оформления XML-формат числа.

Где и как запускать

В учебной базе создайте серверный общий модуль УчебныеЗадачи. Вставьте приведённые функции и процедуру целиком в модуль, не внутрь другой процедуры. Вызовите УчебныеЗадачи.ВыполнитьПример() из серверного обработчика команды учебной обработки. Каждый урок запускайте отдельно, без дублирования одноимённых процедур.

Подготовка

  1. В учебной базе выполните код на сервере. Читаются настройки, не строки справочников и документов.

  2. В коде нет вызовов УстановитьРегиональныеНастройки, изменения индексов, монопольного режима или завершения сеансов.

  3. Результаты зависят от настроек вашей учебной базы и пользователя: фиксированных значений для всех конфигураций нет.

Процедура ВыполнитьПример() Экспорт
    База = ПолучитьРегиональныеНастройкиИнформационнойБазы();
    Сеанс = ПолучитьРегиональныеНастройкиСеанса();
    Сравнение = Новый ТаблицаЗначений;
    Сравнение.Колонки.Добавить("Параметр");
    Сравнение.Колонки.Добавить("База");
    Сравнение.Колонки.Добавить("Сеанс");
    ДобавитьСтрокуСравнения(Сравнение, "Код локализации", База.КодЛокализации, Сеанс.КодЛокализации);
    ДобавитьСтрокуСравнения(Сравнение, "Язык интерфейса", "Не задаётся этим объектом базы", Сеанс.КодЯзыкаИнтерфейса);
    ДобавитьСтрокуСравнения(Сравнение, "Использовать настройки сеанса", База.ИспользоватьНастройкиТекущегоСеанса, "Источник настроек сеанса");
    ДобавитьСтрокуСравнения(Сравнение, "Первый день недели", База.ПервыйДеньНедели, Сеанс.ПервыйДеньНедели);
    ДобавитьСтрокуСравнения(Сравнение, "Представление Истина", База.ПредставлениеБулевоИстина, Сеанс.ПредставлениеБулевоИстина);
    ДобавитьСтрокуСравнения(Сравнение, "Представление Ложь", База.ПредставлениеБулевоЛожь, Сеанс.ПредставлениеБулевоЛожь);
    ДобавитьСтрокуСравнения(Сравнение, "Отрицательные числа", База.ПредставлениеОтрицательныхЧисел, Сеанс.ПредставлениеОтрицательныхЧисел);
    ДобавитьСтрокуСравнения(Сравнение, "Разделитель групп", База.РазделительГруппЦифрЧисел, Сеанс.РазделительГруппЧисел);
    ДобавитьСтрокуСравнения(Сравнение, "Разделитель дробной части", База.РазделительДробнойЧастиЧисел, Сеанс.РазделительДробнойЧастиЧисел);
    ДобавитьСтрокуСравнения(Сравнение, "Группировка цифр", База.ФорматГруппировкиЦифрЧисел, Сеанс.ФорматГруппировкиЦифрЧисел);
    ДобавитьСтрокуСравнения(Сравнение, "Формат даты", База.ФорматПредставленияДаты, Сеанс.ФорматПредставленияДаты);
    ДобавитьСтрокуСравнения(Сравнение, "Формат времени", База.ФорматПредставленияВремени, Сеанс.ФорматПредставленияВремени);
    ДобавитьСтрокуСравнения(Сравнение, "Дополнительное свойство группировки сеанса", "Нет такого свойства", Сеанс.ГруппировкаЦифрЧисел);
    Для Каждого СтрокаСравнения Из Сравнение Цикл
        Сообщить(СтрокаСравнения.Параметр + ": база [" + СтрокаСравнения.База
            + "]; сеанс [" + СтрокаСравнения.Сеанс + "]");
    КонецЦикла;
    Сообщить(Сравнение.Количество() = 13);
    Сумма = 1234.5;
    Сообщить("Представление для человека: " + Формат(Сумма, "ЧДЦ=2"));
    XMLЧисло = XMLСтрока(Сумма);
    Сообщить("Машинный формат XML: " + XMLЧисло);
    ВосстановленнаяСумма = XMLЗначение(Тип("Число"), XMLЧисло);
    Сообщить(ВосстановленнаяСумма = Сумма);
    Сообщить(ТипЗнч(ВосстановленнаяСумма) = Тип("Число"));
КонецПроцедуры

Процедура ДобавитьСтрокуСравнения(Таблица, Название, ЗначениеБазы, ЗначениеСеанса)
    СтрокаСравнения = Таблица.Добавить();
    СтрокаСравнения.Параметр = Название;
    СтрокаСравнения.База = Строка(ЗначениеБазы);
    СтрокаСравнения.Сеанс = Строка(ЗначениеСеанса);
КонецПроцедуры

Разбор по шагам

  1. Два метода возвращают разные объекты: настройки базы и настройки текущего сеанса.

  2. ИспользоватьНастройкиТекущегоСеанса определяет, нужно ли использовать параметры сеанса для представления значений.

  3. Пустая строка, 0 для дня недели и -1 для отрицательных чисел могут означать наследование настройки, а не ошибку.

  4. Сравнение содержит 13 конкретных параметров; язык интерфейса относится к сеансу и не равен обязательно локализации чисел.

  5. Формат создаёт представление для человека. XMLСтрока/XMLЗначение дают отдельный типизированный цикл для согласованного машинного контракта.

  6. Число после XML-цикла остаётся 1234.5; ни один параметр базы или сеанса не изменяется.

Как проверить результат

  1. Выводятся 13 строк сравнения; первая итоговая проверка Истина.

  2. После XML-цикла значение равно 1234.5 и его тип Число.

  3. Проверьте разделители и формат даты в другой учебной базе/сеансе: возможны отличия при той же числовой сумме.

Ожидаемый результат

Получен понятный паспорт оформления чисел и дат с отделением локального представления от машинного формата.

На что обратить внимание

  1. Нельзя разбивать произвольное Формат(Число) по запятой и считать это надёжным CSV или JSON.

  2. XML-лексическое представление не заменяет JSON-сериализатор и не задаёт валюту суммы.

  3. Пример читает региональные настройки, но не переключает язык или локализацию рабочего сеанса.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.