Глобальный контекст.ПолучитьРегиональныеНастройкиСеанса

Методы · GetSessionRegionalSettings

Возвращает региональные настройки, котоыре используются текущим сеансом.

Синтаксис

ПолучитьРегиональныеНастройкиСеанса()
Полное описание, параметры и ограничения

Глобальный контекст.ПолучитьРегиональныеНастройкиСеанса (Global context.GetSessionRegionalSettings)

Глобальный контекст (Global context)

ПолучитьРегиональныеНастройкиСеанса (GetSessionRegionalSettings)

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

Синтаксис:
ПолучитьРегиональныеНастройкиСеанса()
Возвращаемое значение:
Тип: РегиональныеНастройкиСеанса.

Описание:

Возвращает региональные настройки, котоыре используются текущим сеансом.

Доступность:

Сервер, толстый клиент, внешнее соединение.

См. также:
Глобальный контекст, метод ПолучитьРегиональныеНастройкиИнформационнойБазы
Глобальный контекст, метод УстановитьРегиональныеНастройкиИнформационнойБазы

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

Доступен, начиная с версии 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С» и не аффилирован с ней.