Понадобилось тут мне сгенерировать unix timestamp в 1С:Предприятие 8.2
Первым делом решил погуглить, и нашёл вот эту ссылку: http://forum.mista.ru/topic.php?id=356184
Функция ПолучитьUnix(Знач Год,Знач Месяц,Знач День,Знач Часы,Знач Минуты,Знач Секунды,Знач Пояс=3)
Возврат (Дата(Год,Месяц,День)-'01.01.1970')*24*60*60+Часы*60*60+Минуты*60+Секунды-Пояс*60*60;
КонецФункции
Процедура РазобратьUnix(Знач ДатаВремя,Год,Месяц,День,Часы,Минуты,Секунды,Знач Пояс=3)
ПолноеЧислоСекунд=('01.01.1970'-'01.01.0000')*24*60*60+ДатаВремя+Пояс*60*60;
Секунды=ПолноеЧислоСекунд%60;
ПолноеЧислоМинут=Цел(ПолноеЧислоСекунд/60);
Минуты=ПолноеЧислоМинут%60;
ПолноеЧислоЧасов=Цел(ПолноеЧислоМинут/60);
Часы=ПолноеЧислоЧасов%24;
ПолноеЧислоДней=Цел(ПолноеЧислоЧасов/24);
ПолнаяДата='01.01.0000'+ПолноеЧислоДней;
День=ДатаЧисло(ПолнаяДата);
Месяц=ДатаМесяц(ПолнаяДата);
Год=ДатаГод(ПолнаяДата);
КонецПроцедуры
Но код этот для седьмой версии, а мне надо для восьмой!
Почитал педивикию, стукнул себя по лбу, и написал:
Функция ПолучитьUnixTS(ПараметрДата)
Возврат ПараметрДата - '19700101';
КонецФункции
Update: А, нет, нифига. Нужно использовать UTC, а не локальное время.
Update 2:
Функция ПолучитьUnixTS(ПараметрДата)
Возврат УниверсальноеВремя(ПараметрДата) - '19700101';
КонецФункции
И наоборот:
Функция СконвертироватьВремяUnixTS(UnixTime)
Возврат МестноеВремя('19700101' + UnixTime);
КонецФункции
Комментарии
Спасибо за обновление
Я там правильный код добавил.
Спасибо тебе, добрый человек. Хорошо погуглил. А то уже хотел свое городить. А оказалось так просто.
Не за что, обращайтесь 🙂
С чем интегрируетесь, если не секрет?
Да по всякому. 1С Документооборот в частности. У меня теперь эти функции кочуют. Если баги какие еще найдете, просьба заапдейтить.