Как отформатировать время в формате ЧЧ:ММ в СКД 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке отчетов в Системе компоновки данных (СКД) часто возникает необходимость вывести только время без даты в привычном формате ЧЧ:ММ (часы и минуты). По умолчанию платформа 1С может выводить дату целиком или использовать стандартные системные конструкторы формата, которые не всегда дают нужный визуальный результат. Рассмотрим по шагам, как правильно настроить форматную строку и избежать распространенных ошибок.

Настройка формата поля в наборе данных

Проанализируем стандартный механизм установки формата времени в СКД:

  1. Откроем схему компоновки данных и перейдем на закладку «Наборы данных».
  2. Найдем нужное поле с типом Дата и в колонке «Оформление» нажмем кнопку открытия параметров.
  3. В строке «Формат» введем значение вручную: ДФ=ЧЧ:мм (или на латинице ДФ=HH:mm).

Критически важный нюанс: регистр символов имеет решающее значение!

Выясним причину, почему при попытке указать ЧЧ:ММ выводится некорректный результат (например, 14:05 вместо минут выводится номер месяца):

Обработка пустых дат

Посмотрим на ситуацию, когда реквизит даты не заполнен. По умолчанию тип Дата хранит значение 01.01.0001 00:00:00. При применении формата ДФ=ЧЧ:мм в отчете отобразится значение 00:00, что может вводить пользователей в заблуждение.

Чтобы скрыть вывод нулей для пустых значений, дополним форматную строку параметром незаполненной даты НЗ:

ДФ=ЧЧ:мм; НЗ=''

Альтернативные варианты форматирования в СКД

Рассмотрим другие способы применения формата вывода времени в зависимости от структуры отчета:

  1. Выражение представления: В свойствах поля на вкладке «Наборы данных» можно явно задать функцию форматирования в колонке «Выражение представления»:

    Формат(ПолеДата, "ДФ=ЧЧ:мм")

  2. Условное оформление: На закладке «Настройки» -> «Условное оформление» можно добавить элемент оформления для поля и задать формат. Этот способ удобен, если формат должен применяться динамически в зависимости от условий или настраиваться пользователями в режиме «1С:Предприятие».

Форматирование времени, заданного числом (секунды или длительность)

Проанализируем случай, когда время хранится не в типе Дата, а в виде числа секунд. Прямое применение ДФ= к числовым полям не работает. В таком случае разберем два пути решения:

1. Преобразование секунд в дату:

В запросе СКД или в выражении ресурса переведем секунды в дату относительно нулевой даты:

ДобавитьКДате(ДатаВремя(1, 1, 1), "Секунда", Сумма(ВремяВСекундах))

После такого преобразования к полю можно свободно применять оформление ДФ=ЧЧ:мм.

2. Вывод длительности свыше 24 часов:

Если суммарная продолжительность превышает 24 часа (например, 30 часов), стандартный формат даты сбросит циклический отсчет и покажет 06:00. Чтобы вывести полные часы длительности, воспользуемся «Выражением представления» и сформируем строку вручную:


Строка(Цел(ВремяВСекундах / 3600)) + ":" + Формат(Цел((ВремяВСекундах % 3600) / 60), "ЧЦ=2; ЧВН=")

В этом выражении функция Цел рассчитывает количество полных часов, а спецификатор ЧЦ=2; ЧВН= гарантирует вывод минут с лидирующим нулем.

← На главную