Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получить реальную дату и время (GMT)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Inkognito
Необходимо получить реальную дату-время (ТекущаяДата() покажет некорректное значение, если оно некорректно установлено).
Может есть какая-то возможность получить значение, обратившись в Интернет?
На локальном компьютере пользователя дату могут перекрутить.
Егор Динин
Цитата(Inkognito @ 10.02.16, 12:24) необходимо зарегистрироваться для просмотра ссылки
На локальном компьютере пользователя дату могут перекрутить.

Ограничение прав подразумевает не только ограничение в 1С. Иначе от Формат:С ничего не спасет.
Vofka
Если вызывать ТекущаяДата() в серверном модуле, то она вернет время сервера. Ну а на сервере не должен кто попало иметь возможность менять время.
Inkognito
Vofka @ Сегодня, 13:25 необходимо зарегистрироваться для просмотра ссылки,
Обработка внешняя, ею могут пользоваться на разных ПК, даже там где ничего не знают о сущевствовании серверов.
Нужна именно возможность знать реальное время, не смотря на то, каким оно установлена на ПК или сервере.
sava1
WEB сервисы (посылаем запрос на сервак, получаем данные)
Petre
Гуглим серверы синхронизации времени, изучаем их API, при открытии обработки делаем запрос по списку, пока не будет получено время.
Inkognito
Можете посоветовать какой-то из них? Почитал немного, не понял, как просто взять и получить это злосчастное время.
Например, взял необходимо зарегистрироваться для просмотра ссылки и необходимо зарегистрироваться для просмотра ссылки
Что с ними дальше делать, непонятно. Где там ссылки на API? Не вижу...
Petre
Надо искать не NTP-серверы, а web-сервисы, например, необходимо зарегистрироваться для просмотра ссылки.
Inkognito
Никогда не доводилось считывать данные из Интернета. Почитал статью: необходимо зарегистрироваться для просмотра ссылки
Попробовал сделать так:
//------------------------------------
Защищенное = Ложь;
ИмяВыходногоФайла = "D:\1.txt";
HTTPConnect = новый HTTPСоединение("http://www.timeapi.org",,,,,Защищенное);
HTTPConnect.Получить("/utc/now",ИмяВыходногоФайла);

Получаю ошибку:
Ошибка работы с Интернет:   Couldn't resolve host name

Вопрос актуален: как получить эту дату из интернета? И нельзя ли обойтись без сохранения во временный файл?
Petre
HTTPConnect = новый HTTPСоединение("www.timeapi.org",,,,,Защищенное);
Inkognito
В итоге, рабочий код (может кому пригодится):
Защищенное = Ложь;
    ИмяВыходногоФайла = ПолучитьИмяВременногоФайла("txt");
    HTTPConnect = новый HTTPСоединение("www.timeapi.org",,,,,Защищенное);
    HTTPConnect.Получить("/utc/now",ИмяВыходногоФайла);
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ИмяВыходногоФайла);
    Текст = Текст.ПолучитьТекст(); //получили дату в текстовом формате. Дальше разбираем ее на составляющие по своему усмотрению, не забываем добавить GMT+2

П.С. интересно, если на предприятии используется прокси, получим дату или нет?
Vofka
Цитата(Inkognito @ 11.02.16, 17:44) необходимо зарегистрироваться для просмотра ссылки
интересно, если на предприятии используется прокси, получим дату или нет?

Параметры прокси можно передавать в HTTPСоединение.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.