Исправление ошибки функции ПолучитьВремяИзменения()
При работе с файлами и каталогами выяснилось, что функция ПолучитьВремяИзменения() некорректно возвращает время.
Пример:
дата изменения файла — 2015-01-01 10:00:00
функция возвращает дату — 2015-01-01 11:00:00
В синтаксис помощнике в примечание к функции написано:
В режиме совместимости выдает местное время последней модификации файла с ошибкой NTFS. Если файл изменен летом, а просматривается зимой, то полученное время отстает на 1 час. Если файл изменен зимой, а просматривается летом, то полученное время опережает на 1 час. Если установлен режим совместимости Версия8_2_13 или выше, то время выдается без ошибки.
Для корректировки времени была написана функция ПолучитьСмещениеВремени().
- Описание
- Подробнее
Описание
Пример использования функции:
СмещениеВремени = ПолучитьСмещениеВремени();
ВремяИзменения = Файл.ПолучитьВремяИзменения() + СмещениеВремени;Сама функция:
// Возвращает смещение времени из-за некорректной функции ПолучитьВремяИзменения()
// Часть примечание из описания функции:
// В режиме совместимости выдает местное время последней модификации файла с ошибкой NTFS.
// Если файл изменен летом, а просматривается зимой, то полученное время отстает на 1 час.
// Если файл изменен зимой, а просматривается летом, то полученное время опережает на 1 час.
//
// Источник - //sale.itcity.ru/public/323233/
// Автор - OtTech //sale.itcity.ru/profile/492011/
//
// Возвращаемое значение:
// Число - Количество секунд смещения.
//
Функция ПолучитьСмещениеВремени()
ИмяФайла = ПолучитьИмяВременногоФайла();
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Записать(ИмяФайла);
Файл = Новый Файл(ИмяФайла);
Разница = ОКР((ТекущаяДата() - Файл.ПолучитьВремяИзменения()) / 3600);
УдалитьФайлы(ИмяФайла);
Возврат Разница * 3600;
КонецФункции
После использования функции дата стала такой же, как и при просмотре свойств файла.

