В процессе работы с платформой 1С:Предприятие пользователи и разработчики иногда сталкиваются с необычным поведением интерфейса: календарь в полях выбора даты, фильтрах и списках начинает неделю не с привычного понедельника, а с воскресенья. На первый взгляд это может показаться программной ошибкой или «багом» конкретной конфигурации, однако корень проблемы кроется в настройках локализации и региональных стандартах. Рассмотрим подробно, почему это происходит и как привести интерфейс к привычному виду.
Проанализируем ситуацию: платформа 1С является гибкой системой, которая подстраивается под стандарты той страны, которая указана в настройках окружения. В США, Канаде, Израиле и ряде арабских стран официальным первым днем недели считается воскресенье. Если система (операционная система или сама база данных) решит, что пользователь находится в одном из этих регионов, она автоматически перестроит все элементы выбора даты. Разберем по шагам, где именно могли затаиться эти настройки и как их исправить.
Это самая частая причина возникновения проблемы. Платформа 1С по умолчанию транслирует настройки формата даты и времени из операционной системы пользователя. Если в Windows выбран формат, отличный от российского (например, English (United States)), календарь изменится соответствующим образом.
Проделаем следующие действия для исправления:
Бывают ситуации, когда настройки Windows у пользователя верные, но календарь все равно отображается некорректно. Это происходит потому, что в 1С можно жестко задать региональные настройки для всей базы данных через Конфигуратор. Эти настройки имеют приоритет над системными.
Разберем, как изменить эти параметры:
Иногда локализация принудительно меняется через параметры запуска программы. Если в ярлыке запуска или в настройках списка баз прописан ключ локализации, платформа проигнорирует системные настройки.
Проанализируем параметры запуска:
Если в дополнительных параметрах запуска указано /L en, система включит английский интерфейс и соответствующие стандарты (неделя с воскресенья). Для исправления ситуации заменим ключ на /L ru или вовсе удалим его, чтобы система использовала настройки по умолчанию.
В клиент-серверном варианте работы некоторые действия выполняются на стороне сервера под правами специального пользователя (например, usr1cv8). Если у этого системного пользователя в профиле Windows установлены англоязычные стандарты, то отчеты, формируемые на сервере, или регламентные задания могут воспринимать воскресенье как первый день недели.
В этом случае системному администратору необходимо зайти на сервер под учетной записью службы 1С и аналогично первому способу настроить Региональные стандарты для данного профиля.
Если вы используете веб-клиент, календарь зависит от настроек локали вашего браузера и настроек веб-сервера (IIS или Apache). Посмотрим на ситуацию глазами браузера: если основным языком интерфейса в Google Chrome или Firefox установлен «English (US)», браузер передает эти данные серверу 1С, и тот отрисовывает календарь по западному стандарту.
Для решения этой проблемы необходимо:
В редких случаях разработчику может потребоваться проверить, какие именно настройки применяются в текущем сеансе программно. Для этого в языке 1С существуют механизмы работы с региональными установками. Хотя напрямую «переключить» календарь одной командой в коде нельзя, мы можем проанализировать текущую ситуацию.
Например, функция ТекущаяУстановкаРасчетаПорядковогоНомераНедели() может косвенно подсказать, какие правила используются. Рассмотрим пример кода для проверки текущей локали:
// Проверим текущий язык сеанса
ТекущийЯзык = ДинамическоеОбновлениеИнформационнойБазы(); // Пример обращения к системным свойствам
Сообщить("Текущий язык системы: " + ТекущийЯзыкСистемы());
Сообщить("Код локали: " + ЛокальТекста(ЛокальМетаданных));
Если диагностика показывает использование кода en_US, значит, один из вышеописанных методов (Windows или Конфигуратор) требует вмешательства.
Подводя итог, отметим: появление «воскресенья» во главе календаря — это не поломка кода, а сигнал о том, что платформа 1С обнаружила настройки локализации другого региона. Последовательная проверка настроек операционной системы, параметров информационной базы и ключей запуска позволяет быстро вернуть календарь в привычный режим работы.