В практической работе часто возникает задача визуального контроля важных событий: наступления даты перезвона клиенту, окончания срока трудового договора сотрудника или завершения срока действия документа. Разберем, как сделать так, чтобы при наступлении указанной даты соответствующий документ автоматически подсвечивался красным цветом и поднимался наверх списка.
В управляемом приложении платформы 1С:Предприятие 8.3 формы списков строятся на базе элемента ДинамическийСписок. Он позволяет гибко настроить как цвет строк, так и порядок их вывода без внесения изменений в конфигурацию и написания кода.
Проанализируем пошаговый порядок настройки оформления и сортировки:
ПриемНаРаботу).Цвет текста или Цвет фона и выберем красный цвет.ДатаОкончанияСрокаДоговора). В качестве вида сравнения укажем Меньше или равно, а в значении выберем относительную дату — Начало этого дня или Сегодня.ДатаОкончанияСрокаДоговора с порядком По возрастанию. В таком случае документы с прошедшими датами будут выводиться в самом начале списка.Если требуется зафиксировать статус истечения срока непосредственно в базе данных или форма списка работает в режиме обычного приложения, рассмотрим вариант с использованием дополнительного реквизита типа Булево.
Разберем логику реализации этого подхода:
СрокДоговораИстек с типом Булево.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриемНаРаботу.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриемНаРаботу КАК ПриемНаРаботу
|ГДЕ
| ПриемНаРаботу.ДатаОкончанияСрокаДоговора <= &ТекущаяДата
| И НЕ ПриемНаРаботу.СрокДоговораИстек";
Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата()));
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
ДокументОбъект.СрокДоговораИстек = Истина;
ДокументОбъект.Записать();
КонецЦикла;
После выполнения этого задания в форме списка достаточно настроить условное оформление по условию СрокДоговораИстек = Истина, а также установить сортировку по этому полю по убыванию, чтобы все просроченные записи сгруппировались в начале таблицы.
Рассмотрим альтернативный вариант решения бизнес-задачи. Принудительное перекрашивание и постоянная пересортировка общего списка документов могут мешать повседневной работе других пользователей. В типовых конфигурациях на базе Библиотеки Стандартных Подсистем (БСП) для подобных целей предусмотрены специальные механизмы:
ЗадачаИсполнителя. В этом случае нужная запись появится у ответственного сотрудника на рабочем столе в виджете «Мои задачи».