1с получить время из интернета

Обновлено: 05.07.2024

(18)
Очень интересное решение!
Спасибо большое!

Завтра же проверю.

(18)
<quote>Функция ВремяСети()
шелл = CreateObject("WScript.Shell");
консоль = шелл.Exec("cmd.exe /q /k echo off");
поток = консоль.StdOut;
консоль.StdIn.WriteLine("net time");
консоль.StdIn.WriteLine("exit");
Возврат поток.ReadAll();
КонецФункции</quote>
Красивый вариант, не нужно с файлом заморачиваться.
Но есть маленький недостаток - при таком получении потока нельзя управлять кодировкой. 1С 7.7 не понимает.
Хотя, если нужно только время, цифры то видны.
И первой строкой можно обойтись
(27) simply1, Да, кирилица выходит кашей, но парсить то нужно цифры и латиницу (PM или AM). Функция на vbs вполне это делает и там, кстати, тоже кодировка кирилицы - мрак. Решать в любом случае Вам. Здесь уже вариантов масса.
Не забудьте написать на чем остановитесь, для будущих посетителей топика, так как никто развернутого конечного решения не предложил - Вы первый кто столкнулся с такой проблемой и Ваш опыт будет весьм ценен другим. (18) dusha0020, после отработки скрипта окно 1С становиться не активным.
Как избавиться? + (39)
на мгновение открывается окно консоли, а после закрытия активным становится окно, открытое перед окном 1С (40) simply1, А вот и не знаю:( CMD в любом случае активизирется, а после этого стандартный Shell не может активировать окно 1С. Точнее может, но хитро и по-разному. У меня не взлетел ни один способ. А так у кого какой получается сюдя по форумам. Универсального способа скорее всего нет, а значит (если потеря активации окна 1С критична) лучше искать другой способ или экспериментировать пока не получится.
Скорее всего Windows блокирует где-то возможности wshShell.appActivate, так что от версии винды и нужно плясать.
Почитать можно здесь и здесь .

Вот и время прошло.

Вариант через сайт начал присылать фидбеки:
- msxml3.dll: The system cannot locate the resource specified.
- msxml3.dll: Системная ошибка: -2146697211.

Подключил вариант (18) dusha0020 через vbs. Каждый раз когда сбоит через сайт - запускаю скрипт.

а может лучше синхронизировать время на компьютере, а потом брать текущееВремя()

(21) доменным пользователям запрещено категорически. И я полностью с этим согласен.
Надо в групполиси покопаться, чтобы само синхронизировалось быстро и качественно.

Может и впрямь, зачем огород городить?

(21) brunet, Сказано же, правов нет.

Впрочем, кто мешает запускать синхронизацию с DC из планировщика?

И даже более того, раздайте NTP-сервер по DHCP - и будет вам счастье.

(23)
да, спасибо!
Синхронизировать винду - вариантов много. (31) Спасибо! Интересный сайт! Хорошо расписано.
Сейчас попробую

Останавливаюсь на Вашем варианте с VBS.
Вчера быстренько набросать свой парсинг из файла - получилось 70 строк кода 1С.
А у Вас - 20!

Логику вижу следующую:

1) При подключении фискального регистратора проверяю доступность контролера домена.
2) Если доступен - получаю время через Ваш код VBS и если разница составляет более 120 секунд (ИХМО, не критическое расхождение), то обновляю время в ФР.
3) Если нет интернета - ничего не делаю.

"=16" в конце веб-ссылки - это киевское время.
Там есть и другие города

(34) но не надежно - изменится дизайн страницы и ищи тег заново .

глИнформация() - пишет в лог 1С и при наличии ошибок - отправляет мне на е-маил.

Inkognito --> Inkognito



Просмотр профиля

Необходимо получить реальную дату-время (ТекущаяДата() покажет некорректное значение, если оно некорректно установлено).
Может есть какая-то возможность получить значение, обратившись в Интернет?
На локальном компьютере пользователя дату могут перекрутить.

Егор Динин --> Егор Динин



Просмотр профиля

На локальном компьютере пользователя дату могут перекрутить.


Ограничение прав подразумевает не только ограничение в 1С. Иначе от Формат:С ничего не спасет.

Vofka --> Vofka



Просмотр профиля

Если вызывать ТекущаяДата() в серверном модуле, то она вернет время сервера. Ну а на сервере не должен кто попало иметь возможность менять время.

Inkognito --> Inkognito



Просмотр профиля

Vofka @ Сегодня, 13:25 ,
Обработка внешняя, ею могут пользоваться на разных ПК, даже там где ничего не знают о сущевствовании серверов.
Нужна именно возможность знать реальное время, не смотря на то, каким оно установлена на ПК или сервере.

sava1 --> sava1



Просмотр профиля

WEB сервисы (посылаем запрос на сервак, получаем данные)

Petre --> Petre



Просмотр профиля

Гуглим серверы синхронизации времени, изучаем их API, при открытии обработки делаем запрос по списку, пока не будет получено время.

Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Inkognito --> Inkognito



Просмотр профиля

Можете посоветовать какой-то из них? Почитал немного, не понял, как просто взять и получить это злосчастное время.
Например, взял [необходимо зарегистрироваться для просмотра ссылки] и [необходимо зарегистрироваться для просмотра ссылки]
Что с ними дальше делать, непонятно. Где там ссылки на API? Не вижу.

Petre --> Petre



Просмотр профиля

Надо искать не NTP-серверы, а web-сервисы, например, [необходимо зарегистрироваться для просмотра ссылки].

Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Inkognito --> Inkognito



Просмотр профиля

Никогда не доводилось считывать данные из Интернета. Почитал статью: [необходимо зарегистрироваться для просмотра ссылки]
Попробовал сделать так:
//------------------------------------

Вопрос актуален: как получить эту дату из интернета? И нельзя ли обойтись без сохранения во временный файл?

Petre --> Petre



Просмотр профиля

Распечатать

Деноминация 2016 в 1С  0
Чтобы провести деноминацию в 1С на 1 июля 2016 года, нужно учесть, что желательно учет вести в двух суммовых измерениях в белорусских рублях старого и нового образца. Однако, даже если Вы решите упростить задачу и проведете деноминацию в программе в Как в периодическом независимом регистре сведений удалить все записи по валютам с наименованиями?  0
Как в периодическом независимом регистре сведений «КурсыВалют» удалить все записи по валютам с наименованиями «EUR» и «USD», период которых меньше 01 января 2005 года? Сначала получим таблицу записей, которые необходимо оставить. Поскольку условий Как поменять период у записей периодического независимого регистра, соответствующих ряду условий?  0
В периодическом независимом регистре сведений ОтветственныеЛицаОрганизации все записи, касающиеся организации с наименованием Групп-трейдинг, период которых меньше 01 января 2005 года, необходимо перенести на 01 января 2004 года. Но записи с указани Как указать нужную,конкретную дату?  5
Значения данного типа содержит дату григорианского календаря (с 01 января 0001 года) и время с точностью до секунды. Литералы: Строка цифр, заключенная в одинарные кавычки вида: ГГГГММДДччммсс, где: ГГГГ - четыре цифры года (включая тысячелетие Перенумерация документов, справочников  9
Восстановить нумерацию документов или справочников нам поможет специальная обработка «Универсальные подбор и обработка объектов». Эту обработку можно найти на диске ИТС (УниверсальныеПодборИОбработкаОбъектов.epf). Порядок работы с обработкой: Откр Посмотреть все результаты поиска похожих

Еще в этой же категории

Момент Времени и Граница, назначение, примеры использования  38
Момент времени: Фирма 1С описывает так: Предназначен для получения и хранения момента времени для объекта в базе данных. Содержит дату и время, а также ссылку на объект базы данных. Используется в качестве значений свойств и параметров методо Преобразование даты 1С в unixtime (Unix Time Stamp)  17
Как известно, unixtime содержит количество секунд, прошедших с 1 января 1970 года. Поэтому, для преобразования даты 1С в дату unixtime нам всего то нужно от нашей даты отнять дату 01.01.1970 и перевести получившееся значения в удобоваримый формат. Функция месяц прописью  11
// пример от glory01 А = Формат(20020820153309, " ДФ=ММММ" ) // А = " Август" А = Формат(ТекущаяДата(), " ДФ=ММММ" ) // А = " Март" Функция МесяцПрописью(НомерМесяца) Экспорт НомерМесяца=Число(НомерМесяца); Если НомерМесяца = 1 Тогда Воз Как вычислить разницу между двумя датами в месяцах  11
Функция РазницаДатВМесяцах(Дата1, Дата2) Экспорт ДатаНач = ?(Дата1 Дата2, Дата1, Дата2); ДатаКон = ?(Дата1 Дата2, Дата2, Дата1); Годы = Год( датаКон ) - Год( датаНач ); Месяцы = Месяц( датаКон ) - Месяц( датаНач ); Разность = месяцы + Как вычислить разницу между двумя датами в часах и минутах  10
Функция РазностьВремени(Время1, Время2); Разность = Время1 - Время2; Если Разность 0 Тогда Часов = Цел(Разность / 3600); Минут = Цел((Разность - Часов * 3600) / 60); Возврат Дата(1, 1, 1, Часов, Минут, 0); Иначе Возврат Дата(1,1,1,0,0,0); Посмотреть все в категории Работа с Датами (Временем)

Читайте также: