Колонка "Длительность" в СКД

20.03.26

Разработка - СКД

Иногда в отчетах на СКД необходимо выводить длительность операции (она же продолжительность, время в работе, протяжённость и т.д.). Ниже код для вычисляемого поля в СКД.

Операторы берут задания из пула задач. В момент получения задачи выставляется метка времени, когда задача была взята в работу. Требуется создать отчет, в котором будет указана задача, сотрудник и как долго данный сотрудник трудится над задачей. Причем, длительность хотят виде в удобочитаемом виде, например "2 ч. 56 мин.", или "4 д. 7 ч. 12 мин. 56 сек.", ну и т.д.

Решим задачу в общем виде, т.е. "год, месяц, день, час, минут, секунд".

Для того, чтобы в СКД выделить длительность года, достаточно написать:

РазностьДат(Период, ТекущаяДата(), "ГОД") 

Но вот следующий код вернёт количество месяцев которое прошло между двумя датами:

РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ")

Такое значение нам не подойдёт, потому что он может быть любым натуральным положительным числом.

Тут надо вспомнить о делении с остатком, потому что вот такой код:

РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12 

Вернём значение от нуля до 11, причём это именно то что нам надо, т.е. выделение продолжительности в разности двух дат.

Ниже итоговый код который можно использовать в выражении для вычисляемого поля СКД, а можно модернизировать для своих нужд.

Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "ГОД") <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ГОД")) + " л. "
	Иначе ""
Конец
+
Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12 <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "МЕСЯЦ") % 12) + " м. "
	Иначе ""
Конец
+
Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "ДЕНЬ") % 7 <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ДЕНЬ") % 7) + " д. "
	Иначе ""
Конец
+
Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "ЧАС") % 24 <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "ЧАС") % 24) + " ч. "
	Иначе ""
Конец
+
Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "МИНУТА") % 60 <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "МИНУТА") % 60) + " мин. "
	Иначе ""
Конец
+
Выбор
	Когда РазностьДат(Период, ТекущаяДата(), "СЕКУНДА") % 60 <> 0 
	Тогда Строка(РазностьДат(Период, ТекущаяДата(), "СЕКУНДА") % 60 ) + " сек."
	Иначе ""
Конец

 

Вступайте в нашу телеграмм-группу Инфостарт

длительность продолжительность время в работе протяжённость

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • Поиск от одного разработчика до ИТ-команд под проект.
  • Обмен любыми контактами разрешён.
  • 0% комиссии, допускаются расчёты напрямую.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    255061    1403    421    

1153

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    6315    329    shapa_pro    25    

69

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    18594    ovetgana    112    

111

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

01.07.2025    10799    krasnoshchekovpavel    5    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    10334    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    16427    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

СКД – инструмент, на базе которого в современных конфигурациях реализованы практически все отчеты. СКД используется в динамических списках, печатных формах и универсальных механизмах. Если построить простейший отчет может каждый разработчик, то с нюансами знакомы далеко не все. Расскажем о неочевидных на первый взгляд приемах, способных значительно повысить качество отчетов.

24.12.2024    14082    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    10852    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vladimir_korshun 97 20.03.26 13:04 Сейчас в теме
Может лучше сделать функцию в общем модуле?
Это ведь в нескольких отчетах хочется легко получать и выводить.
2. Dragonim 151 21.03.26 13:15 Сейчас в теме
(1) Подобную задачу можно решить огромным количеством способов. Здесь представлено одно из них.
Для отправки сообщения требуется регистрация/авторизация