helpf.pro
Регистрация
 0 
Распечатать

Как по GUID определить время и дату создания ссылки?

Код 1C v 8.х
 Функция ДатаСозданияСсылки(Ссылка)
ГУИД = Ссылка.УникальныйИдентификатор();
Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
Разрядность = СтрДлина(Строка16);
ЧислоСек = 0;
Для Позиция = 1 По Разрядность Цикл
ЧислоСек = ЧислоСек + Найти("123456789abcdef",Сред(Строка16,Позиция,1))*Pow(16,Разрядность - Позиция);
КонецЦикла;
ЧислоСек = ЧислоСек / 10000000;
Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;
КонецФункции
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 9255
 0 
Распечатать
Возможно, вас также заинтересует
1C и Google Maps 12
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во...
1C: Enterprise Development Tools 35
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 0
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: ... по причине: Ошибка компоновки данных по причине: Ошибка...
PostgreSQL: установка, настройка, обслуживание 2
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут...
Посмотреть все результаты поиска похожих
Комментарии
kuzyara
26.09.2016 09:16Комментарий: 3
kuzyara

уточню, 

15 октября 1582 - начало Григорианского календаря

all4cf
01.10.2015 21:15Комментарий: 2
all4cf

Алгоритм:

Например ГУИД равен: bdb62d89-cede-11e4-b12b-d4ae52b5e909

Дата содержится в первых символах, bdb62d89-cede-11e4 которые нужно переставить задом наперед: 11e4-cede-bdb62d89

Первый символ обязательно должен быть равен 1, иначе это пустая дата или вообще не дата, убираем "лишние" знаки "-"(тире)

Интервал в десятых долях микросекунд (HEX) получается равным: интервал16= 1E4CEDEBDB62D89

переводим его в 10-ный интервал (самодельной функцией HexToDecинтервал10 = HexToDec(интервал16);

в результате получаем: интервал10 = 136 461 344 788 852 105

находим интервал в секундах: интервалСек = интервал10 / 10 000 000;

Делаем сдвиг даты (опытным путём) от 15.10.1582 г. + сдвиг на часовой пояс (Московское время) от "мирового времени" (GMT)

Как ниже написал 7OH

Код 1C v 8.2 УП
 Возврат Дата(1582, 10, 15, 00, 00, 00) + ЧислоСек + СмещениеСтандартногоВремени() + СмещениеЛетнегоВремени();   
7OH
29.08.2014 15:54Комментарий: 1
7OH

Немножко уточню: 

Возврат Дата(1582, 10, 15, 00, 00, 00) + ЧислоСек + СмещениеСтандартногоВремени() + СмещениеЛетнегоВремени();

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.