Имя: Пароль:
1C
 
Фактическая дата создания документа 8.1 ЗУП
0 NiLpferd
 
19.11.08
11:36
Возможно ли программно получить фактическую дату введения документа? не дату самого документа а именно когда пользователь фактически создал документ в ИБ...
Спасибо
1 wPa
 
19.11.08
11:37
(0) Возможно по времени из ГУИД
2 NcSteel
 
19.11.08
11:37
ЖР можно посмореть.
3 NiLpferd
 
19.11.08
11:43
мне нужно эту дату в отчете задействовать как параметр запроса...
а можно подробнее о "ГУИД"? для начинающих чайников :)
и как могу в запросе получить дату из ЖР?
Спасибо! :)
4 wPa
 
19.11.08
11:46
(3) В запросе не получиться.
ГУИД - это уникальный идентификатор объекта по совместительству первичный ключ в сиквеле. Воздается при записи объекта. можно подменить программно до того как объект записан первый раз. В нем зашито время в миллисекундах от 15 октября 1582 года 04:00
5 Serg_1960
 
19.11.08
11:49
ЖР не всегда использовать можно, - особенно если он периодически очищается или "квантуется" по времени (признак "разделять хранение журнала по периодам")...
6 NiLpferd
 
19.11.08
11:55
ок... все ясно
Ооогромное спасибо :)
7 wPa
 
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;
   КонецЕсли;
КонецФункции
8 Serg_1960
 
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) + ЧислоСек;
КонецФункции
9 wPa
 
19.11.08
14:23
(8) красива
10 Serg_1960
 
19.11.08
14:24
(9) А работает? А то я "по памяти" переделал (7)
11 wPa
 
19.11.08
14:27
(10) не пробовал, но должно ))
12 Serg_1960
 
19.11.08
14:30
(11) Ага, выглядит красива - должна работать ;)
Программист всегда исправляет последнюю ошибку.