При работе в программах системы 1С:Предприятие (например, в «1С:Зарплата и управление персоналом 3.1» или других типовых конфигурациях) пользователи могут столкнуться с ситуацией, когда стандартный календарь выбора даты, а также производственные календари начинают отображать дни недели не с привычного понедельника, а с воскресенья. Проанализируем, почему возникает такое поведение платформы и как вернуть стандартное отображение дней недели.
Отображение календаря в интерфейсе 1С зависит от нескольких уровней региональных настроек: параметров самой информационной базы, настроек операционной системы клиентского компьютера или сервера, а также параметров интернет-браузера при работе через веб-клиент. Выясним основные факторы, приводящие к сбою:
Первый день недели установлено значение «Воскресенье» или «Авто» при неподходящей стране.Использовать региональные установки текущего сеанса, платформа игнорирует централизованные настройки базы и ориентируется на локаль операционной системы конкретного рабочего места.en_US) или первым днем недели в региональных стандартах ОС выбрано воскресенье, клиент 1С перенимает эти параметры.Рассмотрим основной способ решения, позволяющий централизованно задать единые правила для всех пользователей информационной базы. Разберем действия по шагам:
Если изменить настройки базы данных через Конфигуратор временно невозможно или проблема проявляется только у отдельных пользователей, разберем способ принудительной передачи кода локализации через стартер 1С:
/VL ru_RU
Параметр /VL (или /L) указывает платформе язык и региональные стандарты интерфейса и сеанса, что заставляет программу применить российские стандарты календаря.
Проанализируем сопутствующие системные параметры, которые могут влиять на отображение интерфейса:
ragent. Для корректной работы серверных формирований отчетов убедимся, что в профиле системного пользователя задана корректная локаль.Посмотрим на важные особенности поведения платформы 1С:Предприятие:
Первый день недели в региональных установках доступно для изменения в конфигурациях с режимом совместимости 8.3.7 и выше. В более старых режимах совместимости поле заблокировано и по умолчанию использует понедельник.ДеньНедели(). Независимо от настроек интерфейса, функция ДеньНедели(<Дата>) всегда возвращает число от 1 (понедельник) до 7 (воскресенье):
НомерДня = ДеньНедели(ТекущаяДата());
Если НомерДня = 1 Тогда
Сообщить("Сегодня понедельник");
КонецЕсли;
Таким образом, для восстановления привычного вида календаря достаточно скорректировать региональные установки информационной базы в Конфигураторе, зафиксировав первый день недели как понедельник.