diadoc / diadocsdk-1c-docs

1C documentation - http://1c-docs.diadoc.ru/
https://developer.kontur.ru/Docs/Diadoc/COM/index.html
26 stars 22 forks source link

преобразовать timestamp в дату и время #1060

Closed evgen421 closed 3 months ago

evgen421 commented 3 months ago

Здравствуйте. Подскажите пожалуйста какой нибудь не сложный вариант преобразования для 1С 7.7

dnab2 commented 3 months ago

Как то так: Дата = '01.01.1970'+КвоСекунд/(60 60 24) Правый операнд надо округлить до целых, я не помню уже как в 77. Время аналогично. И скорее всего будет время по Гринвичу, надо скорректировать по часовому поясу.

GilimkhanovDenis commented 3 months ago

Думаю, вам стоит обратиться на форум по 1С 7.7

При работе с COM есть ещё такая проблема, что тип OLE DATE превращается в тип Дата, а время 1С 7.7 решило не учитывать. Возможно, и при преобразовании из timestemp'а своими силами, возникнет какая-то такая же проблема

Какую задачу хотите решить? Возможно, компонента чем-то может помочь

evgen421 commented 3 months ago

Здравствуйте dnab2. Спасибо, но в 1С 7.7 к дате можно добавить только количество дней.

dnab2 commented 3 months ago

Здравствуйте dnab2. Спасибо, но в 1С 7.7 к дате можно добавить только количество дней. Вот поэтому: > Правый операнд надо округлить до целых, я не помню уже как в 77.

evgen421 commented 3 months ago

Здравствуйте Денис. Я в #853 уже излагал проблему и компонента к сожалению возвращает только дату. А что за форум по 1С 7.7?

evgen421 commented 3 months ago

dnab2 возможно сработает, надо проверить

GilimkhanovDenis commented 3 months ago

Ну, компонента как раз возвращает полностью дату и время, а 1С 7.7 приводит всё к своему типу Дата, где времени нет

Под форумом по 1С 7.7 имею ввиду какой-то абстрактный форум, где возможно, кто-то задавался таким же опросом. Какой точно на знаю. Миста?

В целом, начало решения видится таким:

  1. вычислить какую-то константу с количеством тиков в дне - пусть TicksInDay.
  2. нацело поделить timestamp на TicksInDay - это будут дни, значимые для вычисления даты
  3. взять остаток от деления timestamp на TicksInDay - это будут тики, значимые для вычисления времени
evgen421 commented 3 months ago

dnab2 Воистину всё гениальное просто! Спасибо!