Относительная дата синхронизации. Возвращает представление относительной даты синхронизации.
// Возвращает представление относительной даты синхронизации.
//
// Параметры:
// ДатаСинхронизации - Дата - Абсолютная дата синхронизации данных.
//
// Возвращаемое значение:
// Строка - представление относительной даты синхронизации.
// *Никогда (Т = пустая дата).
// *Сейчас (Т < 5 мин)
// *5 минут назад (5 мин < Т < 15 мин)
// *15 минут назад (15 мин < Т < 30 мин)
// *30 минут назад (30 мин < Т < 1 час)
// *1 час назад (1 час < Т < 2 час)
// *2 часа назад (2 час < Т < 3 час).
// *Сегодня, 12:44:12 (3 час < Т < вчера).
// *Вчера, 22:30:45 (вчера < Т < позавчера).
// *Позавчера, 21:22:54 (позавчера < Т < поза-позавчера).
// *<12 Марта 2012г.> (поза-позавчера < Т).
//
Функция ОтносительнаяДатаСинхронизации(Знач ДатаСинхронизации) Экспорт
Если Не ЗначениеЗаполнено(ДатаСинхронизации) Тогда
Возврат НСтр("ru = 'Никогда'");
КонецЕсли;
ДатаТекущая = ТекущаяДатаСеанса();
Интервал = ДатаТекущая - ДатаСинхронизации;
Если Интервал < 0 Тогда // 0 мин
Результат = Формат(ДатаСинхронизации, "ДЛФ=DD");
ИначеЕсли Интервал < 60 * 5 Тогда // 5 мин
Результат = НСтр("ru = 'Сейчас'");
ИначеЕсли Интервал < 60 * 15 Тогда // 15 мин
Результат = НСтр("ru = '5 минут назад'");
ИначеЕсли Интервал < 60 * 30 Тогда // 30 мин
Результат = НСтр("ru = '15 минут назад'");
ИначеЕсли Интервал < 60 * 60 * 1 Тогда // 1 час
Результат = НСтр("ru = '30 минут назад'");
ИначеЕсли Интервал < 60 * 60 * 2 Тогда // 2 часа
Результат = НСтр("ru = '1 час назад'");
ИначеЕсли Интервал < 60 * 60 * 3 Тогда // 3 часа
Результат = НСтр("ru = '2 часа назад'");
Иначе
КоличествоДнейРазницы = КоличествоДнейРазницы(ДатаСинхронизации, ДатаТекущая);
Если КоличествоДнейРазницы = 0 Тогда // сегодня
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сегодня, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
ИначеЕсли КоличествоДнейРазницы = 1 Тогда // вчера
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Вчера, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
ИначеЕсли КоличествоДнейРазницы = 2 Тогда // позавчера
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Позавчера, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
Иначе // давно
Результат = Формат(ДатаСинхронизации, "ДЛФ=DD");
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПредставлениеДатыСинхронизации (БСП)
ПолучитьБлижайшуюДатуСобытияПоРасписанию (БСП)
ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания (БСП)
ДатаПоследнейУспешнойСинхронизации (БСП)