Получение даты создания элемента справочника или документа

4 Comments

  1. necropunk

    Интересно. А если GUID random-based, а не time-based?

    Reply ↓
  2. PerlAmutor

    (1) Я давно уже использую алгоритм удаления помеченных с «обратной раскруткой» на основе метода получения дат из ссылок и их сортировкой от свежих к более старым, чтобы минимизировать повторные попытки удаления объектов со связями. Прежде чем это сделать я просканировал всю базу на наличие random-based ссылок и их оказалось менее 1%. Кроме того есть задумка использовать поле ВерсияДанных в качестве вспомогательного поля для сортировки, т.к. почти во всех реализациях баз данных это инкрементальное числовое значение, которое говорит нам о том, что элемент был давно или недавно изменен. Проще говоря мы можем выбрать самые «старые» или редко-изменяющиеся элементы базы и поместить их в конец списка на удаление. Это даст нам возможность минимизировать вероятность возникновения новых связей для «свежепомеченных» на удаление объектов, особенно до попадания таких документов в закрытый период.

    Reply ↓
  3. V1V

    каким алгоритмом из Гуид получаете дату?

    Reply ↓
  4. go_margaret

    (3) В принципе найти данный алгоритм не сложно, на многих форумах и тематических сайтах он есть:

    Функция ДатаСозданияСсылки(Ссылка)

    ГУИД = Ссылка.УникальныйИдентификатор();

    Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);

    Разрядность = СтрДлина(Строка16);

    ЧислоСек = 0;

    Для Позиция = 1 По Разрядность Цикл

    ЧислоСек = ЧислоСек + Найти(«123456789abcdef»,Сред(Строка16,Позиция,1))*Pow(16,Разрядность — Позиция);

    КонецЦикла;

    ЧислоСек = ЧислоСек / 10000000;

    Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;

    КонецФункции

    Reply ↓

Leave a Comment

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