1С 8.3 Конвертация даты в UNIX - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Конвертация даты в UNIX

Данные > Примеры кода 1С > 1С 8.3 Дата и время
Перейти в основной раздел:
В повседневной разработке на платформе 1С:8.3/8.5 часто возникает задача обмена данными с внешними системами. Большинство современных сервисов и API используют UNIX-время - количество секунд, прошедших с 1 января 1970 года (так называемой эпохи UNIX). Для корректной интеграции необходимо уметь преобразовывать даты 1С в UNIX-формат и обратно.

Что такое UNIX-время? UNIX-время - это целое число, отражающее количество секунд, прошедших с 00:00:00 UTC 01.01.1970.
Преимущество: простота хранения и передачи (одно число вместо сложной структуры даты).
Недостаток: требуется преобразование при работе с локальными часовыми поясами и форматами.
Проблема в 1С: Встроенный язык 1С работает с датами как с разницей в сутках. Это значит, что при вычислениях приходится вручную переводить дни в секунды или миллисекунды. Если не учесть этот момент, легко получить смещение или потерю точности.
Функции преобразования в UNIX (туда и обратно):
// Дата → UNIX-время (в секундах)
Функция ДатаВUNIX(Дата) Экспорт
   Результат = Число(Дата - '19700101') * 86400;
   Возврат Результат;
КонецФункции

// UNIX-время (в секундах) → Дата
Функция UNIXВДату(Unix) Экспорт
   Если ПустоеЗначение(Unix) Тогда
       Возврат Дата('00010101');
   КонецЕсли;

   БазоваяДата = Дата(1970,1,1,0,0,0);
   Результат = БазоваяДата + (Число(Unix) / 86400);
   Возврат Результат;
КонецФункции
Практическое применение:
Интеграция с REST API, где даты передаются в UNIX-формате.
Хранение временных меток в базе для последующей аналитики.
Синхронизация событий между 1С и внешними системами (например, CRM, ERP или веб-сервисами).
1
комментарий
Самый умный
15 ноя 2025
Умножать и делить на 86400 не надо
____________________
Copyright©, «Программист 1С в г.Минске», 12.10.2025
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Назад к содержимому