Функцию удобно использовать для всяких обработок, чтобы получать время выполнения в наглядном виде. Поддерживает разницу дат в милисекундах (но не отлажено полностью эта функция)
// Возвращает представление прошедшего времени
//
// Параметры:
// РазницаВремени - Число - Высчитанная разница времени в секундах/милисекундах
// ВремяВМилисекундах - Булево - Время передано в милисекундах
//
// Возвращаемое значение:
// Строка - Представление разницы времени
//
Функция ПолучитьПредставлениеВремени(РазницаВремени, ВремяВМилисекундах = Ложь) Экспорт
РазмерЧаса = 3600;
РазмерМинуты = 60;
РазмерСекунды = 1;
Если ВремяВМилисекундах Тогда
РазмерЧаса = РазмерЧаса * 1000;
РазмерМинуты = РазмерМинуты * 1000;
РазмерСекунды = РазмерСекунды * 1000;
КонецЕсли;
Часов = Цел(РазницаВремени / РазмерЧаса);
Минут = Цел((РазницаВремени - (Часов * РазмерЧаса)) / РазмерМинуты);
Секунд = Цел((РазницаВремени - ((Часов * РазмерЧаса) + (Минут * РазмерМинуты))) / РазмерСекунды);
Если ВремяВМилисекундах Тогда
Милисекунд = РазницаВремени - ((Часов * РазмерЧаса) + (Минут * РазмерМинуты) + (Секунд * РазмерСекунды));
Иначе
Милисекунд = Цел((РазницаВремени - ((Часов * РазмерЧаса) + (Минут * РазмерМинуты) + (Секунд * РазмерСекунды))) * 1000);
КонецЕсли;
ВремяТекст = "";
Если РазницаВремени >= РазмерЧаса Тогда
//ВремяТекст = ВремяТекст + Строка(Часов) + " час.";
ВремяТекст = ВремяТекст + " " + СтрокаСЧислом(";%1 час;;%1 часа;%1 часов;%1 часа", Часов, ВидЧисловогоЗначения.Количественное);
КонецЕсли;
Если РазницаВремени >= РазмерМинуты Тогда
//ВремяТекст = ВремяТекст + ?(Часов > 0, ?(Секунд > 0, " ", " и "), "") + Строка(Минут) + " мин.";
ВремяТекст = ВремяТекст + ?(Часов > 0, ?(Секунд > 0, " ", " и "), "") + " " + СтрокаСЧислом(";%1 минута;;%1 минуты;%1 минут;%1 минут", Минут, ВидЧисловогоЗначения.Количественное);
КонецЕсли;
Если РазницаВремени >= РазмерСекунды и Секунд > 0 Тогда
//ВремяТекст = ВремяТекст + ?(Минут > 0, ?(Милисекунд > 0, " ", " и "), "") + Строка(Секунд) + " сек.";
ВремяТекст = ВремяТекст + ?(Минут > 0, ?(Милисекунд > 0, " ", " и "), "") + " " + СтрокаСЧислом(";%1 секунда;;%1 секунды;%1 секунд;%1 секунд", Секунд, ВидЧисловогоЗначения.Количественное);
КонецЕсли;
Если Милисекунд > 0 и РазницаВремени <= РазмерСекунды Тогда
//ВремяТекст = ВремяТекст + ?(Секунд > 0, " и ", "") + Строка(Милисекунд) + " мсек.";
ВремяТекст = ВремяТекст + Строка(Милисекунд) + " мсек.";
КонецЕсли;
Возврат ВремяТекст;
КонецФункции // ПолучитьПредставлениеВремени()
// Внимание, если у вас старая платформа и не поддерживает метод "СтрокаСЧислом" закоментируйте строки и раскоментируйте строки над ними
Орфографическая ошибка в милисекундах (найдено 3): милисекундах Орфографическая ошибка в ВремяВМилисекундах (найдено 4): Милисекундах Орфографическая ошибка в Милисекунд (найдено 7): Милисекунд Орфографическая ошибка в закоментируйте: закоментируйте Орфографическая ошибка в раскоментируйте: раскоментируйте
Получить разницу дат в [секундах, минутах, днях, ...]
ПолучитьПредставлениеТелефона (БСП)
ПолучитьПредставлениеАдресата (БСП)
ПолучитьНастройкиПолученияВременныхПаролей (БСП)
ПолучитьПредставленияПолучателейВходящегоПисьма (БСП)