Получение фактической даты создания документа из GUID

Обработка позволяет получить фактическую дату и время создания и проведения документа даже если документ был создан задним числом.

Обработка позволяет получить фактическую дату и время создания и проведения документа даже если документ был создан задним числом. Может не нова, но вполне возможно кому-то очень пригодится

20 Comments

  1. Поручик

    (0) Идея не новая. Ещё несколько лет назад по мисте или здесь гулял код для извлечения даты создания объекта из ГУИДа. Он у меня где-то в конфе зашит.

    Reply
  2. Persempre

    (1) Поручик, понятное дело что не новая, но когда сам начал искать сразу не нашёл. Может пригодится кому, полезность всё же ))))

    Reply
  3. makas

    Полезная штука, спасибо!

    Reply
  4. yandextesting

    (1) Да здесь, уже проскакивала такая информация в статье Быстрый способ определения битой ссылки, которая сейчас почему-то неактивна. Цитирую:

    «Если захотите узнать дату создания проверяемой ссылки, то можно воспользоваться функцией описанной здесь: http://www.kb.mista.ru/article.php?id=611 , но она не всегда окажется для вас полезной (из программно сгенерированных GUIDов информацию о дате таким способом не вытянешь).»

    Reply
  5. Persempre

    (4) yandextesting, ну вот спасибо, думал SM поднакопить маленько а вы на внешний ресурс ссылку дали ))) да и моя работает лучше — время показывает верно если мне глаза не врут ))

    Reply
  6. yandextesting

    (5) отправил Вам 2$m в счет компенсации вероятного ущерба :))

    Да, и Ваш вариант поточнее будет, чем тот, на который ссылка приведена, так что еще накопите на виллу;)

    Reply
  7. Re:аниматор

    (5) дату верно показывает, часы ровно на 5 часов меньше, минуты точно и секунды близки (возможно даже точно)

    Reply
  8. Persempre

    (6) yandextesting, отправил обратно, спасибо за намерения, но люблю копить сам.(7)

    Re:аниматор, сегодня проверю если правда показывает лажу исправлю, спасибо

    Reply
  9. Angeros

    Необязательно было все это пихать в обработку, тут более интересен код как алгоритм. А его место в статье!

    Обработка нужна чтобы делать, что-то полезное, выступая в роли законченного решения например.

    Reply
  10. fomix

    (9) Angeros, Все правильно говорите. Код в студию!!!!!!!!!!!

    Reply
  11. makas

    (9) Angeros,

    Обработка нужна чтобы делать, что-то полезное, выступая в роли законченного решения например. 

    А для гл.бухгалтера эта обработка = очень даже законченное решение. чтобы знать кто накосячил 🙂

    Reply
  12. Persempre

    (10) fomix, код не закрыт — скачиваем, через конфигуратор открываем и читаем на досуге 😉

    Reply
  13. Angeros

    а как насчет такова уида «A56EC886FB6E48D8A97CD6934B82D0D5» он будет определяться?!(4),(12)

    Reply
  14. yandextesting

    (13) если это гуид, сгенерированный самой платформой, при записи объекта, то определится, иначе нет.

    Reply
  15. Angeros

    (14)Весь прикол в том что он сгенерирован самой платформой, ну просто больше и нечем… Но программа его не опознает, т.к.

    Если Сред(УИ,13,1)=»1″ Тогда…

    13ый символ <> 1.

    Reply
  16. yandextesting

    (15) что верно, то верно. Не обратил внимание сразу, но тогда встает вопрос о системной дате на том, компьютере, на котором эта ссылка была присвоена объекту автоматом, либо все же уникальный идентификатор для ссылки был предварительно сгенерирован (

    УИД = Новый УникальныйИдентификатор

    , либо сторонними средствами) и затем назначен ей программно, о чем я и говорил в (14). В качестве аналогичной функции можно попробовать такую:

    Функция ДатаСозданияСсылки(Ссылка)
    ГУИД = Ссылка.УникальныйИдентификатор();
    Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
    Разрядность = СтрДлина(Строка16);
    ЧислоСек = 0;
    Для Позиция = 1 По Разрядность Цикл
    ЧислоСек = ЧислоСек + Найти(«123456789abcdef»,Сред(Строка16,Позиция,1))*Pow(16,Разрядность — Позиция);
    КонецЦикла;
    ЧислоСек = ЧислоСек / 10000000;
    Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;
    КонецФункции

    Показать

    Reply
  17. Angeros

    (16) yandextesting, не могу сказать, но предыстория такова: Переносил контрагентов из 77 в 81 при помощи конвертации данных. Потом появился интерес узнать какая дата скрывается за GUID каждого контрагента и вот нашел такой вот пример…(13) Дата на компьютере была корректной.

    Reply
  18. yandextesting

    (17) скорее всего, все-таки, было использовано принудительное заполнение идентификатора через

    Новый УникальныйИдентификатор

    . Сам как-то при конвертации пользовался этой конструкцией для принудительной синхронизации нескольких справочников (когда из одного элемента в базе источнике плодятся несколько разнотипных в базе приемнике) — один УИД им в ссылки загонял.

    Reply
  19. chmv

    Интересно, у меня нет денег, не могли бы Вы мне прислать на chmv2005@mail.ru

    Если нет — то когда появятся, обязательно скачаю

    Reply
  20. chmv

    Никогда не думала, что Гуид связан с датой создания документа

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *