Получение фактической даты создания документа из 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 не будет опубликован. Обязательные поля помечены *