Исправление ошибки функции ПолучитьВремяИзменения()

14.01.15

Разработка - Универсальные функции

При работе с файлами и каталогами выяснилось, что функция ПолучитьВремяИзменения() некорректно возвращает время.

Пример:
    дата изменения файла - 2015-01-01 10:00:00
    функция возвращает дату - 2015-01-01 11:00:00
  
В синтаксис помощнике в примечание к функции написано:
    В режиме совместимости выдает местное время последней модификации файла с ошибкой NTFS. Если файл изменен летом, а просматривается зимой, то полученное время отстает на 1 час. Если файл изменен зимой, а просматривается летом, то полученное время опережает на 1 час. Если установлен режим совместимости Версия8_2_13 или выше, то время выдается без ошибки.
    
Для корректировки времени была написана функция ПолучитьСмещениеВремени().

Пример использования функции: 

	СмещениеВремени = ПолучитьСмещениеВремени();
	ВремяИзменения = Файл.ПолучитьВремяИзменения() + СмещениеВремени;

Сама функция:

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

 

После использования функции дата стала такой же, как и при просмотре свойств файла.

Вступайте в нашу телеграмм-группу Инфостарт

Ошибки

См. также

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    5403    DeerCven    15    

57

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    46297    dimanich70    83    

164

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    6841    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    57351    atdonya    31    

68

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    8607    ke.92@mail.ru    17    

68

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    22758    YA_418728146    8    

174
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. jobkostya1c_ERP 101 15.01.15 08:08 Сейчас в теме
Хорошо что Вы нашли ошибку в функции платформы ПолучитьВремяИзменения() и предложили способ исправления. Так ведь и будет тянуться ошибка у разработчиков платформы 1С 8.
4. DrAku1a 1782 21.01.15 10:39 Сейчас в теме
(1)
Если установлен режим совместимости Версия8_2_13 или выше, то время выдается без ошибки.
, да вроде как они уже исправили.
5. OtTech 5 21.01.15 12:49 Сейчас в теме
(4) DrAku1a, к сожалению это не так, стоит режим совместимости Версия 8.3.4 и данная ошибка у меня возникает
2. WhiteOwl 454 15.01.15 14:22 Сейчас в теме
Вот из-за этой ошибки и не работает проверка отчетности ПФР программой CheckPFR из 1С.
3. OtTech 5 15.01.15 16:22 Сейчас в теме
Вот еще пример, где возникли проблемы из-за данной ошибки.
Для отправки сообщения требуется регистрация/авторизация