Использование устаревшего метода "ТекущаяДата" (DeprecatedCurrentDate)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Ошибка |
BSL |
Важный |
Да |
5 |
standard deprecated unpredictable |
Описание диагностики¶
Конфигурации должны быть рассчитаны на работу в условиях, когда часовой пояс на серверном компьютере не совпадает с реальным часовым поясом пользователей информационной базы. Например, с сервером, расположенным в Москве, работают сотрудники компании из Владивостока, и при этом все операции в системе должны выполняться по местному времени (Владивостока).
Такой сценарий работы часто востребован в клиент-серверных информационных базах и в прикладных решениях в модели сервиса (SaaS).
Во всех серверных процедурах и функциях вместо функции ТекущаяДата, которая возвращает дату и время серверного компьютера, следует использовать функцию ТекущаяДатаСеанса, которая приводит время сервера к часовому поясу пользовательского сеанса.
В клиентском коде использование функции ТекущаяДата также недопустимо. Это требование обусловлено тем, что текущее время, вычисленное в клиентском и серверном коде, не должно различаться.
При использовании Библиотеки стандартных подсистем рекомендуется использовать функцию ДатаСеанса общего модуля ОбщегоНазначенияКлиент.
Примеры¶
На клиенте¶
Неправильно:
ДатаОперации = ТекущаяДата();
Правильно:
ДатаОперации = ОбщегоНазначенияКлиент.ДатаСеанса();
На сервере¶
ДатаОперации = ТекущаяДата();
Правильно:
ДатаОперации = ТекущаяДатаСеанса();
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:DeprecatedCurrentDate-off
// BSLLS:DeprecatedCurrentDate-on
Параметр конфигурационного файла¶
"DeprecatedCurrentDate": false