|
|
|
Можно ли получить количество милисекунд между датами средствами 1С Ø |
☑ | ||
|---|---|---|---|---|
|
0
LSM
06.12.05
✎
19:00
|
Можно ли получить количество милисекунд между датами средствами 1С и привести это число к шестнадцатиричному счислению?
|
|||
|
1
Джинн
06.12.05
✎
19:05
|
про "между датами" поподробнее
|
|||
|
2
LSM
06.12.05
✎
19:10
|
Грубо говоря между 01.01.2000 и датой записи документа.
|
|||
|
3
LSM
06.12.05
✎
19:12
|
Ну ладно, не миллисекунд, а хотя бы секунд.
|
|||
|
4
Бит
06.12.05
✎
19:13
|
(дата1-дата2)*24*3600
|
|||
|
5
LSM
06.12.05
✎
19:16
|
А привести это к шестнадцатиричному счислению?
|
|||
|
6
Джинн
06.12.05
✎
19:17
|
Дата с точки зрения v7 не содержит времени. Зато документ имеет ПОЗИЦИЮ, которая кроме даты содержит также и время в виде количества десятитысячных секунды с начала суток в 36-ричном формате.
В v8 дата содержит также и время. И вопрос вроде не должен возникать. |
|||
|
7
Бит
06.12.05
✎
19:17
|
(5)Рекурсия
|
|||
|
8
LSM
06.12.05
✎
19:19
|
2 (6). Поподробнее. Как это значение позиции документа получить?
|
|||
|
9
Джинн
06.12.05
✎
19:22
|
ПолучитьПозицию();
Синтаксис: ПолучитьПозицию() Назначение: Получить позицию документа. Замечание: Позиция может существовать только у записанного документа. ... РазобратьПозициюДокумента(<?>,,,,,); Синтаксис: РазобратьПозициюДокумента(<Позиция>,<Дата>,<Час>,<Мин>,<Сек>,<Документ>) Назначение: Раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа. Параметры: <Позиция> - строковое значение позиции документа, <Дата> - Необязательный параметр. Имя переменной, куда система вернет значение даты позиции документа, <Час> - Необязательный параметр. Имя переменной, куда система вернет числовое значение часа позиции документа, <Мин> - Необязательный параметр. Имя переменной, куда система вернет числовое значение минуты позиции документа, <Сек> - Необязательный параметр. Имя переменной, куда система вернет числовое значение секунды позиции документа, <Документ> - Необязательный параметр. Имя переменной, куда система вернет значение документа данной позиции документа ... И т.п. |
|||
|
10
Бит
06.12.05
✎
19:22
|
ПолучитьВремя(<?>,,)
Синтаксис: ПолучитьВремя(<Часы>,<Минуты>,<Секунды>) Назначение: Прочитать время документа. Возвращает время документа в переданные для этого переменные <Часы>, <Минуты>, <Секунды>. Возвращает: Строковое значение времени записи документа в виде 'ЧЧ.ММ.СС'. Параметры: <Часы> - переменная для приема часа записи документа; <Минуты> - переменная для приема минут записи документа; <Секунды> - переменная для приема секунд записи документа. Замечание: Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. |
|||
|
11
LSM
06.12.05
✎
19:25
|
Синтаксис помошник я и сам умею читать. А где здесь "десятитысячных секунды с начала суток в 36-ричном формате".
|
|||
|
12
bushd
06.12.05
✎
19:27
|
Сек*1000:)
|
|||
|
13
Джинн
06.12.05
✎
19:28
|
То 11. А не обманываешь? :)
Позиция - это Date_Time_IDDOC. Что такое Date понятно, TIME и есть число десятитысячных секунды с начала суток в 36-ричном виде, IDDOC - идентификатор документа. |
|||
|
14
Гена
06.12.05
✎
19:59
|
из чистого любопытства - в какой задаче 1С могут понадобиться миллисекунды между двумя датами?
|
|||
|
15
Джинн
06.12.05
✎
20:00
|
То 14. Начисление пеней за просрочку оплаты :)
|
|||
|
16
LSM
06.12.05
✎
20:05
|
В программе клиент-банк, ID документов это то о чем я спрашивал. Как привести полученное число к шестнадцатиричному?
|
|||
|
17
Oblomov
06.12.05
✎
20:07
|
2(16) http://www.sinor.ru/~my1c/knowhow/uni_conv.html
|
|||
|
18
smaharbA
06.12.05
✎
20:08
|
Функция Hex(Пар)
Результат=""; Пока Пар>0 Цикл Результат=Сред("0123456789ABCDEF",Пар+1,1)+Результат; Пар=Цел(Пар/16) ; КонецЦикла; Возврат ""+Результат; КонецФункции // Hex |
|||
|
19
smaharbA
06.12.05
✎
20:11
|
блин сожрало...
Результат=Сред("0123456789ABCDEF",Пар % 16+1,1)+Результат; |
|||
|
20
Oblomov
06.12.05
✎
20:17
|
2(19) И чё эта фигня переводит из 36 ричной системы счисления в 16 ричную?
|
|||
|
21
VicAlex
06.12.05
✎
20:19
|
В VBS это всего одна строчка:
Diff = DateDiff("m",D1,D2)//меняя 1-й параметр можно получать в разных единицах, здесь m - разница в месяцах, h - в часах и т.д. Теперь вопрос: как бы это приделать в 1С? |
|||
|
22
smaharbA
06.12.05
✎
20:21
|
(20) спрашивали из 10 ричной, и этт не фигня, а тоже что и (17) только для 10->16 (без вариаций)
|
|||
|
23
smaharbA
06.12.05
✎
20:23
|
(21) а в JS и миллисек можно получить
|
|||
|
24
Oblomov
06.12.05
✎
20:25
|
2(22) Количество милисекунд он будет брать из позиции документа, где оно представлено в 36 ричном виде.
|
|||
|
25
VicAlex
06.12.05
✎
20:25
|
И там можно. Я уже не про это. Как такую возможность в 1С использовать?
|
|||
|
26
LSM
06.12.05
✎
20:37
|
Прошу прощения, при такой системе, когда я перевалю за 8 разрядов в 16 ричном?
|
|||
|
27
Oblomov
06.12.05
✎
20:48
|
2(26) У тебя калькулятор в виндосе есть?
>4294967295 |
|||
|
28
smaharbA
06.12.05
✎
20:51
|
(26) А как ты хотел long => 7FFFFFFFFF (2147483647)
тогда надо duble или вообще флоат |
|||
|
29
smaharbA
06.12.05
✎
21:18
|
(25)
oIE=СоздатьОбъект("InternetExplorer.Application"); oIE.Navigate("about:blank"); oIE.document.write("<script> |function diffdate(d1,d2){ |dd1=Date.parse(d1); |dd2=Date.parse(d2); |res = dd1-dd2; |return(res); |}</script>"); д1=Лев(СтрЗаменить(ПолучитьДатуТА(),".","/"),6)+ДатаГод(ПолучитьДатуТА())+" "+ПолучитьВремяТА(); д2=Лев(СтрЗаменить(ТекущаяДата(),".","/"),6)+ДатаГод(ТекущаяДата())+" "+ТекущееВремя(); Сообщить(oIE.document.script.diffdate(д1,д2)); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |