Вход | Регистрация
 

Фактическая дата создания документа 8.1 ЗУП

Фактическая дата создания документа 8.1 ЗУП
Я
   NiLpferd
 
19.11.08 - 11:36
Возможно ли программно получить фактическую дату введения документа? не дату самого документа а именно когда пользователь фактически создал документ в ИБ...
Спасибо
   wPa
 
1 - 19.11.08 - 11:37
(0) Возможно по времени из ГУИД
   NcSteel
 
2 - 19.11.08 - 11:37
ЖР можно посмореть.
   NiLpferd
 
3 - 19.11.08 - 11:43
мне нужно эту дату в отчете задействовать как параметр запроса...
а можно подробнее о "ГУИД"? для начинающих чайников :)
и как могу в запросе получить дату из ЖР?
Спасибо! :)
   wPa
 
4 - 19.11.08 - 11:46
(3) В запросе не получиться.
ГУИД - это уникальный идентификатор объекта по совместительству первичный ключ в сиквеле. Воздается при записи объекта. можно подменить программно до того как объект записан первый раз. В нем зашито время в миллисекундах от 15 октября 1582 года 04:00
   Serg_1960
 
5 - 19.11.08 - 11:49
ЖР не всегда использовать можно, - особенно если он периодически очищается или "квантуется" по времени (признак "разделять хранение журнала по периодам")...
   NiLpferd
 
6 - 19.11.08 - 11:55
ок... все ясно
Ооогромное спасибо :)
   wPa
 
7 - 19.11.08 - 12:41
Не мое

Процедура СообщитьВремяСозданияСсылки(Ссылка)
    ГУИД = Ссылка.УникальныйИдентификатор();
    ГУИД = СокрЛП(ВРег(СтрЗаменить("" + ГУИД, "-", "")));
    Если Не Сред(ГУИД, 13, 1) = "1" Тогда
        Сообщить("Нет данных");
        Возврат ;
    КонецЕсли;
    Строка16 = ВРег(Сред(ГУИД, 14, 3) + Сред(ГУИД, 9, 4) + Сред(ГУИД, 1, 8));
    
    Число10 = 0;
    Длина16 = СтрДлина(Строка16);
    Для Сч = 1 По СтрДлина(Строка16) Цикл
        Число10 = Число10 + Pow(16, Длина16 - Сч) * ByteToDec(Сред(Строка16, Сч, 1));
    КонецЦикла;

    Число10сек = Число10 / 10000000;
    Сообщить (Дата(1582, 10, 15, 04, 00, 00) + Число10сек);
КонецПроцедуры

Функция ByteToDec(Число16)
    Если Число16 = "0" Тогда
        Возврат 0;
    ИначеЕсли Число16 = "1" Тогда
        Возврат 1;
    ИначеЕсли Число16 = "2" Тогда
        Возврат 2;
    ИначеЕсли Число16 = "3" Тогда
        Возврат 3;
    ИначеЕсли Число16 = "4" Тогда
        Возврат 4;
    ИначеЕсли Число16 = "5" Тогда
        Возврат 5;
    ИначеЕсли Число16 = "6" Тогда
        Возврат 6;
    ИначеЕсли Число16 = "7" Тогда
        Возврат 7;
    ИначеЕсли Число16 = "8" Тогда
        Возврат 8;
    ИначеЕсли Число16 = "9" Тогда
        Возврат 9;
    ИначеЕсли Число16 = "A" Тогда
        Возврат 10;
    ИначеЕсли Число16 = "B" Тогда
        Возврат 11;
    ИначеЕсли Число16 = "C" Тогда
        Возврат 12;
    ИначеЕсли Число16 = "D" Тогда
        Возврат 13;
    ИначеЕсли Число16 = "E" Тогда
        Возврат 14;
    ИначеЕсли Число16 = "F" Тогда
        Возврат 15;
    Иначе
        Возврат 0;
    КонецЕсли;
КонецФункции
   Serg_1960
 
8 - 19.11.08 - 14:14
Хлебом не корми - дай чего нибудь переписать :)

Функция ДатаСозданияСсылки(Ссылка)
    ГУИД = Ссылка.УникальныйИдентификатор();
    Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8);
    Разрядность = СтрДлина(Строка16);
    ЧислоСек = 0;
    Для Позиция = 1 По Разрядность Цикл
        ЧислоСек = ЧислоСек + Найти("123456789abcdef",Сред(Строка16,Позиция,1))*Pow(16,Разрядность - Позиция);
    КонецЦикла;
    ЧислоСек = ЧислоСек / 10000000;
    Возврат Дата(1582, 10, 15, 04, 00, 00) + ЧислоСек;
КонецФункции
   wPa
 
9 - 19.11.08 - 14:23
(8) красива
   Serg_1960
 
10 - 19.11.08 - 14:24
(9) А работает? А то я "по памяти" переделал (7)
   wPa
 
11 - 19.11.08 - 14:27
(10) не пробовал, но должно ))
   Serg_1960
 
12 - 19.11.08 - 14:30
(11) Ага, выглядит красива - должна работать ;)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.