Как настроить задачу в 1С ДО по условиям заданного периода более одного дня
Цель: создать этап процесса, который будет запускаться только в том случае, если срок командировки (определяемый по датам начала и окончания) составляет более одного дня
Мы имеем следующие реквизиты:
- Дата начала – доп реквизит
- Дата окончания – типовой реквизит
Подготовка: Получение данных о датах командировки
Открываем вид документа, настроенный на заведение командировок «Нормативно-справочная информация» — «Виды документов» — находим нужный.
Переходим по ссылке «Набор дополнительных свойств документов данного вида» и попадаем в раздел «Дополнительные реквизиты»
Справой стороны перечислены реквизиты для данного вида документа
В моём случае нужен реквизит «Дата начала командировки»

Проваливаемся в него. Для работы с этим доп реквизитом, нам нужно узнать его системное имя.
Находим поле «Имя» из раздела «Для разработчиков» . Это имя необходимо для использования в запросе или коде.
Наш пример: ДатаНачалаКомандировки_

Шаг 1: Открытие процесса и добавление исполнителя в этап
- Открываем процесс
Переходим в карточку того процесса, в который нужно добавить условие.

2. Переходим на этап
Выбираем этап процесса, для которого необходимо настроить условия.

3. Добавляем исполнителя и условие:
Добавляем роль исполнителя для данного этапа
Создаём новое условие для запуска задачи данного исполнителя.

Условие выполнения задачи можно сделать двумя вариантами:
1 вариант. Условие с использованием запроса
Выбор типа условий
При создании условий выбираем тип «Произвольный код»
Ввод запроса кода:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
лТекст = " |ВЫБРАТЬ | ЕСТЬNULL(МАКСИМУМ(ВЫБОР | КОГДА ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Имя = ""ДатаНачалаКомандировки"" | ТОГДА ВнутренниеДокументыДополнительныеРеквизиты.Значение | КОНЕЦ), ДАТАВРЕМЯ(1,1,1)) КАК ДатаНачала, | ЕСТЬNULL(ВнутренниеДокументыДополнительныеРеквизиты.Ссылка.СрокИсполнения, ДАТАВРЕМЯ(1,1,1)) КАК ДатаОкончания |ИЗ | Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты |ГДЕ | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &Ссылка |СГРУППИРОВАТЬ ПО | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка"; лЗапрос = Новый Запрос(лТекст); // Установка параметров. лЗапрос.УстановитьПараметр("Ссылка", Предмет); Выборка = лЗапрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ДатаОкончания - Выборка.ДатаНачала >= 1 Тогда Результат = Истина; Иначе Результат = ЛОЖЬ; КонецЕсли; КонецЦикла; |
2 вариант. Условие с использованием ПВХ (Планы видов характеристик)
Выбор типа условий: При создании условий выбираем тип «Произвольный код» .
Вводим код:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Результат = ЛОЖЬ; ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ДатаНачалаКомандировки"); Если ЗначениеЗаполнено(ДопСвойство) И ЗначениеЗаполнено(Предмет.СрокИсполнения) Тогда ДатаНачала = Предмет.ДополнительныеРеквизиты.Найти(ДопСвойство).Значение; ДатаОкончания = Предмет.СрокИсполнения; Если ДатаОкончания - ДатаНачала >= 1 Тогда Результат = ИСТИНА; Иначе Результат = ЛОЖЬ; КонецЕсли; Иначе Результат = ЛОЖЬ; КонецЕсли; |

Шаг 3: Сохранение и запись изменений
- Сохраняем условие
После ввода кода сохраняем созданное условие и указываем его для исполнителя

Сохраняем и записываем изменения в процессе


Комментарии закрыты