![]() |
![]() |
![]() |
|
v8: Определение даты создания элемента справочника | ☑ | ||
---|---|---|---|---|
0
Pashkaa
23.08.06
✎
13:38
|
Есть необходимость отследить дату создания элемента справочника Контрагентов.
Как посоветуете сделать, тока не через доп реквизит типа дата |
|||
1
Terv
23.08.06
✎
13:51
|
журнал регистрации, регистр сведений , писать во внешний файл.. и т.п. и т.д.
|
|||
2
Lendy
23.08.06
✎
13:52
|
(0) слышал, что в GUID хранится время и дата создания.
|
|||
3
wPa
23.08.06
✎
14:07
|
Ссылка.УникальныйИдентификатор()
там зашито количество милисекунд, прошедших с момента введения григорианского календаря... |
|||
4
Romkin
23.08.06
✎
14:12
|
(3)
"Григорианский календарь был введён папой Григорием XIII 4 октября 1582 года взамен старого юлианского." Ну дата введения календаря извесна, но вот который был час?? |
|||
5
Lendy
23.08.06
✎
14:17
|
(4) :)
|
|||
6
wPa
23.08.06
✎
14:30
|
4 часа
|
|||
7
wPa
23.08.06
✎
14:30
|
(5) (мотнулся туда - посмотреть время)
|
|||
8
Pashkaa
23.08.06
✎
14:43
|
(3) а как перевесть эту белебердятину??
Вот например: 88d88bbe-6922-11d9-905f-000fea384582 |
|||
9
Lendy
23.08.06
✎
14:44
|
(8) ищи в инете описание гуида. На форуме уже не раз давали ссылки.
|
|||
10
wPa
23.08.06
✎
15:36
|
Функция Формат16в10(знч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; КонецЕсли; КонецФункции Функция ПолучитьДатуСоздания(GUID) Экспорт //автор - ASh GUID = СокрЛП(ВРег(СтрЗаменить("" + GUID, "-", ""))); Если Не Сред(GUID, 13, 1) = "1" Тогда Возврат "Нет данных"; КонецЕсли; Время16формат = ВРег(Сред(GUID, 14, 3) + Сред(GUID, 9, 4) + Сред(GUID, 1, 8)); СекундНано10формат = 0; Цифр16формат = СтрДлина(Время16формат); Для Позиция = 1 По Цифр16формат Цикл СекундНано10формат = СекундНано10формат + Pow(16, Цифр16формат - Позиция) * Формат16в10(Сред(Время16формат, Позиция, 1)); КонецЦикла; Секунд10формат = СекундНано10формат / 10000000; Возврат Дата(1582, 10, 15, 04, 00, 00) + Секунд10формат; КонецФункции |
|||
11
Pashkaa
24.08.06
✎
06:34
|
Ага спасибо за функцию. Впринципи дату определяет. А вот с временем чё то гонит :-) т.к. в 6-38 утра у нас ни кто не работает а контрагенты создаются :-)
|
|||
12
PVasili
24.08.06
✎
08:16
|
(11)учти смещение времени.на itland была обработка,показывающая время и дату создания любого объекта в 8.
|
|||
13
Kerk
24.08.06
✎
08:51
|
(12) C этого места пожалуйста по подробней, пожалуйста.
|
|||
14
PVasili
24.08.06
✎
09:04
|
подробнее о чем itlan.ru и его бывшем репозитарии или о смещении относительно GMT(насколько я в курсе, GUID создается с GMT временем).Поскольку ты живешь не в Гринвиче(я надеюсь) добавь смещение своего часового пояса ко времени
|
|||
15
Pashkaa
24.08.06
✎
09:06
|
(14) видимо не совсем так. Есть элементы созданные в 13-07 если еще (+7) будет 20-07, так поздно тоже ни кто не работает :-)
Короче чё спорить, буду искать на itland.ru |
|||
16
Kerk
24.08.06
✎
09:09
|
(14) Я пробовал написанный код.
Когда создал элемент справочника и его тутже проверил все сходися до секунды. А пробовал элемент который был создан вчера и точно не менялся, то выдает неправельное время (гораздо раньше). |
|||
17
Kerk
24.08.06
✎
09:14
|
Да и вообще время создания можно найти только для справочника? Или можно найти врямя создания по любому GUID (будет ли оно правельным)?
|
|||
18
Pashkaa
24.08.06
✎
09:34
|
Блин проще повешаться чем найти чё нить на itland.
(17) Дак с доками можно попробовать. Ну тока приблизительно, по времени в документе ну плюс минус 10мин |
|||
19
Pashkaa
24.08.06
✎
09:46
|
(17) проверил по докам. С датой все ок а вот время
выдала процедура дата документа 10:15:28 16:52:42 19:48:30 16:28:34 5:05:29 15:20:22 5:39:23 15:03:16 |
|||
20
Pashkaa
24.08.06
✎
09:47
|
не вижу логики во времени первого и второго документа
разница в проведении и 30 мин а разница в GUID 10 и 19 часов |
|||
21
Kerk
24.08.06
✎
09:56
|
Похоже, что что-то не доконца обрабатывается... как бутто не хватает цыфры смещения или позже идет перегенерация GUID.
|
|||
22
Pashkaa
24.08.06
✎
09:59
|
Надо программно сгенерить через интервалы времени элементы справочника с датай создания в наименовании и потом прогнать процедурой определения
|
|||
23
Pashkaa
24.08.06
✎
10:04
|
И вот еще интерестно, в функции возвращается значение
Возврат Дата(1582, 10, 15, 04, 00, 00) + Секунд10формат; А почему в качестве времени стоит смещение 04?? типа +4 для Москвы?? |
|||
24
Kerk
24.08.06
✎
10:15
|
(23) тока по этому поводу хотел написать...
Да еще и дата стоит уж больно не красивая (шифр такой что ли). P.S. У Москвы от гринвича +3часа зимой и +4 летом. Видемо летом делали :) |
|||
25
Pashkaa
24.08.06
✎
11:17
|
(24) а может и не москвичь делал.
А дата не красивая в (4) посте говорили почему |
|||
26
Kerk
24.08.06
✎
15:04
|
ап
|
|||
27
Pashkaa
25.08.06
✎
08:30
|
Pvasili: Помоги найти процедуру которую встречал на itland. Если конечно она умеет корректно переводить и время создания а не тока дату
|
|||
28
PVasili
25.08.06
✎
09:46
|
(27)на итланд года полтора(или больше)на форуме обсуждали проблему.
Потом в репозитарии (был там такой) лежала обработка,показывающая время создания любого объекта.Спрашивай у админа итланд или на их форуме,может у кого осталась.Хоть репозитарий и обещали возрадить-пока тихо. з.ы.посмотри,у них на форуме была ветка разработок репозитария,найди автора... з.ы.з.ы GUID создается один раз для объекта и больше не изменяется :) (24)imho в Гринвиче тоже летнее время есть :) |
|||
29
Andrey_spb
25.08.06
✎
09:50
|
(0) Попробуй вот эту:
Функция ДатаСозданияСсылки(Ссылка) Экспорт Момент=Дата(1,1,1); Попытка УИ=Строка(Ссылка.УникальныйИдентификатор()); УИ=ВРег(СтрЗаменить(УИ,"-","")); Если Сред(УИ,13,1)="1" Тогда Значение16=ВРег(Сред(УИ,14,3)+Сред(УИ,9,4)+Сред(УИ,1,8)); Цифры16="123456789ABCDEF"; Значение10=0; Длина16=СтрДлина(Значение16); Для Ном=1 По Длина16 Цикл Значение10=Значение10+Pow(16,Длина16-Ном)*Найти(Цифры16,Сред(Значение16,Ном,1)); КонецЦикла; Значение10=Значение10/10000000; Момент=Дата(1582,10,15,3,0,0)+Значение10; КонецЕсли; Исключение КонецПопытки; Возврат Момент; КонецФункции |
|||
30
Pashkaa
25.08.06
✎
10:11
|
(29) эффект тот же
|
|||
31
Kerk
25.08.06
✎
10:23
|
(29) Дата(1582,10,15,3,0,0) - уже 3 часа :(
У кого есть возможность поиште на itlan.ru. Потому что штука нужная, особенно для определения момента создания элементов справочников... |
|||
32
Kerk
25.08.06
✎
10:42
|
Да эффекст тоже.
+ мне для правельности временени нужно ставить 5 часов Дата(1582,10,15,5,0,0) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |