Примеры SMART¶
Задачи
Срок в зависимости от приоритета:
Из Категории А в Категорию Б автоматически ставится подзадача. При постановке подзадачи в ней устанавливается срок: -если у задачи А высокий приоритет, то у задачи Б срок будет +1 рабочий день с момента постановки; -если обычный -- 3 рабочих дня; -если низкий -- 2 недели. В задаче используются Категория А и Категория Б. Пользователь ставит задачу в Категории А, а подзадача должна автоматически создаваться в Категории Б. Поэтому все smart-выражения надо создавать в Категории А, но в пакете действий в качестве категории постановки выбрать Категорию Б. Напоминаем, что в "Первой Форме" приоритеты имеют численные эквиваленты: самый низкий приоритет — -1, низкий приоритет — 0; обычный — 1; высокий — 3, критичный — 4. 1 способ решения Для реализации данного кейса необходимо выполнить три аналогичных последовательности операций по привязке пакетов действий к событию. Ниже рассматривается только один цикл — создание подзадачи для задачи с низким приоритетом. Аналогичным образом нужно создать привязки пакетов действий к событиям для задач с высоким и обычным приоритетами. Создайте пакет действий, привязанный к событию После постановки задачи. Если smart-фильтр вернул true, то должен выполняться пакет действий Срок (приоритет род задачи — низкий или самый низкий) с единственным действием Создать задачу. При помощи smart-выражения необходимо к сроку добавить 2 недели (т.е. 14 дней). Создание смарт-правила: Создание смарт-правила Смарт-фильтр: Смарт-фильтр Создание действия в пакете: Создание действия в пакете Смарт-выражение для расчета параметра Срок: Смарт-выражение для расчета параметра Срок 2 способ решения 1. В блоке привязки пакетов действий к событиям создайте пакет, привязанный к событию После постановки задачи. Пакет содержит единственное действие Создать задачу. Создание смарт-правила: Создание смарт-правила Создание действия в пакете: Создание действия в пакете Значение поля Срок установите с помощью smart-выражения, в котором рассматриваются три варианта значений поля Приоритет. Обратите внимание, что для добавления календарных и рабочих дней используются разные функции. Смарт-выражение для расчета параметра Срок Проверка проектов на готовность к закрытию:
В категории "Проекты" настроен ДП "Дата закрытия". Каждый месяц 20 числа все проекты из этой категории проверяются на готовность к закрытию: закрывать можно проекты, находящиеся в статусе "Подготовка к закрытию" и у которых месяц даты закрытия совпадает с текущим месяцем. Для закрытия каждого проекта ставится отдельная подзадача в категории "Закрытие проектов" со сроком "Дата закрытия + 3 дня". Так как действие нужно выполнять каждый месяц, настройте smart-расписание в категории "Проекты". Заполните параметры расписания: ежемесячно, 20 число каждого 1 месяца; продолжительность повторения — без ограничений.
Смарт-расписание В фильтре для отбора проектов на закрытие для проверки статуса используйте возможность выбора ID объекта вместо конкретного ID статуса.
Фильтр Пакет действий смарт-расписания:
Пакет действий Смарт-выражение для расчета параметра Срок:
Смарт-выражение для расчета параметра Срок Ежемесячная проверка превышения сроков задач:
Есть категория, для которой назначен куратор. В последний день каждого месяца ко всем завершенным задачам в этой категории, выполнявшимся больше 10 рабочих дней, подписывается куратор с уведомлением "По данной задаче был превышен максимальный срок в 10 дней". Т.к событие нужно вызывать каждый месяц, то необходимо составить smart-расписание. В нужной категории создайте новое smart-расписание c параметрами: Ежемесячно, каждую последнюю пятницу (считаем, что это последний рабочий день месяца); продолжительность повторения: без ограничений.
Смарт-расписание Смарт-фильтр с проверкой завершенных задач со сроком выполнения более 10 дней:
Проверка завершенных задач со сроком выполнения более 10 дней Для смарт-фильтра, отбирающего завершенные задачи со сроком выполнения более 10 раб. дней, возможен и другой вариант. В этом случае проверяется, что задача была именно завершена, а не отклонена. Для проверки статуса используйте возможность выбора ID объекта вместо конкретного ID статуса.
Второй вариант фильтра Пакет действий смарт-расписания:
Пакет действий Обработка заявок в техподдержку:
Категория Заявки предназначена для регистрации обращений в службу техподдержки, а категория Типы обращений — это справочник типов обращений. В этом справочнике для каждого типа обращения указан исполнитель и максимальное время устранения проблемы. В Категории Заявки есть ДП Тип обращения (Lookup), указывающий на соответствующий справочник. При создании нового обращения пользователь описывает суть проблемы и выбирает из справочника подходящий тип обращения. Поля Исполнитель и Срок в форме создания нового обращения не отображаются — их значения формируются автоматически при регистрации обращения, на основании соответствующих параметров из выбранной записи справочника. Для того, чтобы после постановки задачи в Категории Заявки заполнялись параметры Срок и Исполнитель, необходимо создать привязку пакета действий к событию После постановки задачи.
Создание смарт-правила Смарт-фильтр проверяет, выбрана ли запись справочника, то есть заполнен ли ДП Тип обращения (можно обойтись и без фильтра, сделав этот ДП обязательным при создании задачи в настройках ДП в категории). Смарт-фильтр В пакете должны быть два действия: Изменить срок и Добавить исполнителя. Пакет действий Действие "Изменить срок": Действие "Изменить срок" Срок назначается при помощи smart-выражения, которое обращается к записи справочника, указанного в ДП Тип обращения. Расчет срока в смарт-выражении Действие "Добавить исполнителя": Действие "Добавить исполнителя" Исполнитель назначается при помощи smart-выражения, которое обращается к записи справочника, указанного в ДП Тип обращения. Расчет исполнителя в смарт-выражении Проверка прав исполнителей и подписчиков:
В Категории А при постановке задачи назначается исполнитель и добавляются подписчики. При этом есть необходимость запретить менять исполнителя, запретить добавлять других подписчиков, а также запретить кому-либо кроме исполнителя осуществлять переходы по маршруту. В данном случае нужно создать три привязки пакетов действий к событиям, так как есть необходимость проверки событий "Перед назначением исполнителя", "Перед назначением подписчика" и "Перед переходом". Привязки пакетов действий к событиям Привязка действий к событию 1 запрещает менять и добавлять исполнителя. Смарт-правило: Смарт-правило Смарт-фильтр: Смарт-фильтр Действие в пакете: Действие в пакете Привязка действий к событию 2 запрещает добавлять подписчика. Настройки аналогичны предыдущему пункту, но проверяется наличие подписчиков, а не исполнителей. Подписчики у задачи появятся в момент постановки задачи, т.к. заказчик и исполнители всегда становятся подписчиками (если заказчик пользователь, а не служебный робот). Смарт-правило: Смарт-правило Смарт-фильтр: Смарт-фильтр Действие в пакете: Действие в пакете Привязка действий к событию 3 запрещает всем, кроме исполнителя, осуществлять переход. Смарт-правило: Смарт-правило Смарт-фильтр: Смарт-фильтр Действие в пакете: Действие в пакете Комментарий при переходе:
В Категории "Запросы" при переходе задачи из статуса с "Новая" в статус "Принято" должен формироваться комментарий с сообщением: "Ваш запрос зарегистрирован. Регистрационный номер запроса № (НОМЕР ЗАДАЧИ) от дд.мм.гг. (ДАТА начала работ). Назначен Исполнитель (ФИО)". Создайте пакет с единственным действием "Отправить комментарий" и привяжите его к действию "Выполнить переход", выбрав переход "Новая — Выполняется". Смарт-событие Пакет действий: Пакет действий Смарт-выражение для расчета текста комментария: Смарт-выражение для расчета текста комментария Текст комментария может быть сформирован как с указанием ответственного исполнителя (см. выше), так и с указанием любого из исполнителей. Другой вариант формирования текста комментария Проверка уникальности записи справочника:
Есть категория-справочник Контрагенты. Каждый контрагент имеет уникальный код, который хранится в соответствующем ДП. При постановке задачи надо проверять, существует ли контрагент c задаваемым кодом, если есть -- отменять постановку задачи. Создайте пакет действий для события Перед постановкой задачи. Пакет должен содержать единственное действие Отменить. Смарт-правило Условие выполнения пакета определяется смарт-фильтром, в котором проверяется наличие контрагента с таким же кодом. Смарт-фильтр Действие в пакете: Действие в пакете Итоговая строка таблицы:
В категории А есть таблица Сводная ведомость, которая содержит два столбца: Наименование (текстовый) и Сумма . Под таблицей располагается поле Итого, которое содержит сумму значений столбца Сумма по всем строкам таблицы. При изменении значений в таблице автоматически пересчитывается итоговая сумма. Для события После смены ДП создайте пакет с единственным действием Изменить значение ДП.
Смарт-правило Действие в пакете:
Действие в пакете В нем рассчитывается и заполняется итоговая сумма (ДП "Итого") по колонке таблицы Сводная ведомость (ID колонки "Сумма" равен 172). Значение параметра рассчитывается при помощи TSQL-выражения.
Расчет суммы по колонке таблицы Итоговые значения для блока "Используется":
В категории Договоры регистрируются заключенные договоры, а в категории Фактические приходы — платежи по этим договорам. Для связи между этими двумя категориями используется Lookup Договор контрагента. Сумма поступившего платежа хранится в категории Фактические приходы в ДП Сумма платежа. В категории Договоры настроен блок Используется, в котором на вкладке Поступления отображаются все записи из категории Фактические приходы, относящиеся к данному договору. Итоговый ДП Сумма фактических приходов должен формироваться как общая сумма по колонке Сумма платежа (кроме приходов, находящихся в статусе Отменен). Разместите рядом с блоком "Используется" ДП с итоговой суммой, которая будет рассчитываться с помощью смартов. Создайте пакет действий и настройте в нем действие Изменить значение ДП. Смарт-выражение должно суммировать все приходы по нужному договору (кроме задач, находящихся в статусе Отменен). Привяжите этот пакет действий к событиям После постановки задачи и После смены статуса (в т.ч. принудительно).
Привязки пакетов действий к событиям Смарт-правило:
Смарт-правило Действие в пакете:
Действие в пакете Расчет значения суммы:
Расчет значения суммы Проверка статуса сопутствующих договоров:
Для завершения сделки определенного типа необходимо согласовать все сопутствующие договоры (предположим, что все такие договоры создается автоматически при создании сделки). Связь между сделкой и договорами осуществляется через ДП "Родительский договор" (типа Lookup). Необходимо настроить автоматизацию, которая не позволяла бы перевести сделку в следующий статус, пока не все договоры согласованы. В категории Сделки к событию Перед переходом в определенный статус (например, в статус Завершена) привяжите пакет с единственным действием Отменить.
Привязка к событию "Перед переходом" Пакет выполняется, если соблюдается условие смарт-фильтра, в котором проверяются задачи в категории Согласование договора, связанные с данной сделкой (т.е. у которых в ДП Родительский договор указана ссылка на исходную задачу) и находящиеся в статусе Согласовано. Таким образом, если на момент перехода для данной сделки не все договоры находятся в нужном статусе, то переход не совершается и выдается соответствующее предупреждение.
Смарт-фильтр Пакет с действием "Отменить":
Пакет с действием "Отменить" Объединение нескольких элементов списка в строку:
Организация-контрагент отказывает различные виды услуг. В справочнике контрагентов, в карточке задачи, эти услуги хранятся в ДП "Выбор нескольких задач из категории". При заключении договора с этой организацией необходимо создать задачу, в тексте которой все выбранные услуги перечислены одной строкой. При изменении списка услуг строка должна обновляться. Для этого необходимо собрать в один текстовый ДП значения из нескольких элементов массива (перечислить их, разделяя пробелами). Например, список услуг (ДП "Выбор нескольких задач из категории") содержит значения:
Список услуг В итоге должна получиться строка:
Результирующая строка Создайте пакет действий на событие После смены ДП, и в этом пакете объедините все значения списка в одну строку с помощью смарт-функции конкатенации. Обратите внимание, что в категории-справочнике услуг в тексте задач должны быть отключены html-теги, иначе при конкатенации они попадут в итоговую строку.
Смарт-событие Пакет действий:
Пакет действий Расчет значения поля в смарт-выражении:
Расчет значения поля в смарт-выражении Автоподписка на изменение ДП:
Отдельные пользователи заинтересованы в том, чтобы контролировать изменение одного или нескольких ДП в Категории А. Список заинтересованных пользователей хранится в категории Контролеры, в ДП "Подписчики" (типа "Выбор пользователей").\ В Категории А есть ДП Ссылка (типа Lookup), который указывает на соответствующую задачу в категории Контролеры. Для заинтересованных пользователей необходимо организовать автоподписку: как только один или несколько ДП в данной категории изменятся, эти пользователи должны получать уведомление. В Категории А для каждого из ДП, изменения которого необходимо контролировать, создайте пакет действий, привязанный к событию После смены ДП. Смарт-правило Пакет действий содержит одно действие Подписчики. Как только значение этого ДП изменится, пользователи из ДП Подписчики в категории Контролеры будут добавлены в качестве подписчиков в Категорию А, а значит, будут получать уведомления об изменении ДП. Добавление подписчика Вместо действия Добавить подписчика можно использовать действие Отправить комментарий. В этом случае то же самое смарт-выражение можно использовать для формирования значения параметра Получатели (пользователи). Смарт-выражение Создание плановых платежей к договору:
Договор с клиентом предусматривает поэтапную оплату. Для этого в категории Договоры есть ДП График платежей типа "Таблица" со столбцами: Назначение платежа (Текст), Дата платежа (Дата) и Сумма платежа (Деньги). После перехода договора в статус Согласован в категории Плановые платежи создаются подзадачи — по одной подзадаче для каждой строки таблицы График платежей. В категории Договоры для события После перехода в статус Согласован создайте пакет с единственным действием Создать задачу.
Смарт-событие Поскольку действия должны быть выполнены столько раз, сколько строк содержит ДП График платежей, пакет должен быть циклическим.
Настройка повторений Смарт-выражение для расчета списка итерируемых объектов:
Смарт-выражение для расчета списка итерируемых объектов Смарт-выражение для определения условия прерывания цикла:
Смарт-выражение для определения условия прерывания цикла Пакет действий:
Пакет действий Смарт-выражение расчета текста задачи:
Расчет текста задачи Смарт-выражения для определения даты и суммы очередного платежа аналогичны смарт-выражению для определения назначения очередного платежа, меняется только ID колонки. Создание задачи с договором по итогам согласования:
Согласование договора с контрагентом ведется в категории Согласование договоров. В этой категории есть ДП Договор с контрагентом. После завершения процесса согласования создается новая задача в категории Договоры, и ссылка на нее записывается в ДП Договор с контрагентом. В категории Согласование договоров создайте пакет действий, привязанный к событию После перехода для перехода Подготовка договора - Договор согласован.
Смарт-правило Пакет действий содержит два действия: Создать задачу в категории Договоры и Изменить значение ДП, где ID этой задачи записывается в ДП Договор с контрагентом.
Действия в пакете Действие Создать задачу:
Действие "Создать задачу" Смарт-выражение для расчета текста задачи:
Смарт-выражение для расчета текста задачи Действие Изменить значение ДП:
Действие "Изменить значение ДП" ID только что созданной задачи передается между действиями одного пакета как значение переменной.
Ссылка на задачу записывается в ДП Бизнес-кейсы
Назначение исполнителя в зависимости от набора условий:
Среди сотрудников юридического отдела поддерживается специализация: договоры по определенной тематике передаются на проверку определенному юристу. Все задачи, поступающие в отдел, автоматически распределяются между юристами в зависимости набора условий, которые описываются в отдельном справочнике. Необходимо настроить автоматизацию таким образом, что на каждое возможное сочетание условий назначается определенный сотрудник или группа сотрудников юридического отдела и отводится определенный срок на выполнение задачи. 1. Создайте справочник Распределение полномочий юристов. В нем должны быть следующие ДП: № | Название ДП | Тип | Описание 1 | Хозяйственная операция | Выпадающий список | Возможные темы договоров (аренда недвижимости, размещение рекламы, консультационные услуги и т.п.) 2 | Вид документа | Выпадающий список | Возможные виды документов
| | | (приложение, доп.соглашение, спецификация и т.п.) 3 | Тип документа | Выпадающий список | Возможные типы документов (стандартный, нестандартный. Значение выбирается на основании наличия шаблона договора с таким же типом и хоз. операцией в справочнике шаблонов договоров) 4 | Ответственная группа | Текст | Название группы исполнителей 5 | Необходимый срок для юриста | Число | Количество рабочих дней на проверку договора 2. В категории Согласование договоров, содержащей задачи для юридического отдела, создайте следующие ДП (соответствующие аналогичным ДП в справочнике из п.1): № | Название ДП | Тип | Описание 1 | Хозяйственная операция | Выпадающий список | Возможные темы договоров (аренда недвижимости, размещение рекламы, консультационные услуги и т.п.) 2 | Вид документа | Выпадающий список | Возможные виды документов
| | | (приложение, доп.соглашение, спецификация и т.п.) 3 | Тип документа | Выпадающий список | Возможные типы документов (стандартный, нестандартный. Значение выбирается на основании наличия шаблона договора с таким же типом и хоз. операцией в справочнике шаблонов договоров) 3. Настройте смарт-автоматизацию в категории Согласование договоров. 3.1. Выбор исполнителей:
Выбор исполнителей 3.2. Установка срока:
Установка срока Параметры из текущей категории находятся в папке Параметры исходной задачи, которая доступна в дереве только в режиме редактирования условия функции.
Параметры исходной задачи Нумерация входящих и исходящих документов:
При регистрации входящих и исходящих документов необходимо обеспечить сквозную нумерацию. При этом более ранние документы должны иметь меньшие номера. Для обеспечения сквозной нумерации используйте эмулятор нумератора — специально созданный ДП, в котором ведется учет номеров задач в категории. Эмулятор нумератора может быть полезен в следующих случаях: -Иногда по некоторым причинам документ сразу не может быть зарегистрирован в системе, но в дальнейшем регистрировать его придется "задним числом", поэтому для него надо заранее зарезервировать номер. В списке задач категории или на форме создания новой задачи настраивается кнопка "Зарезервировать номер". По нажатию на нее создается задача в специальном статусе "Зарезервировано". Никакие данные в нее не записываются (кроме значения ДП, эмулирующего нумератор). В дальнейшем когда нужные документы придут и их необходимо будет зарегистрировать в системе, пользователь сможет найти задачу с нужным номером в статусе "Зарезервировано", перевести ее в обычный статус (в соответствии с настроенным маршрутом) и продолжить работу в обычном режиме. -С помощью такого эмулятора можно вести сложную нумерацию, включающую проверку дополнительных условий (например, приказы регистрируются с различными типами номеров в зависимости от вида приказа). -Если один из прошлых документов по каким-то причинам удаляется из системы, то создать новый документ под этим номером эмулятор уже не даст. Эмуляторы могут быть двух типов: 1. При создании новой задачи с помощью смарта проверяется максимальное значение ДП, который хранит номера, среди всех задач данной категории, и к этому значению прибавляется 1. 2. При создании новой задачи подсчитывается число задач данной категории, и к этому значению прибавляется 1. Такой эмулятор может применяться не всегда, поскольку правильность нумерации нарушается при удалении задач. Пример эмулятора нумератора по максимальному значению ДП для категории Приказы. Генерирует уникальные значения для документов в течение года, с нового года нумерация начинается заново с 1.
Генерация номера по максимальному значению ДП Пример эмулятора нумератора по числу задач в категории Входящая корреспонденция для документов в статусах, отличных от Проект документа и Не регистрировать (ID этих исключаемых из нумерации статусов равны 1 и 2).
Генерация уникального номера по числу задач в категории Параметры из текущей категории находятся в папке Параметры исходной задачи, которая доступна в дереве только в режиме редактирования условия функции.
Параметры исходной задачи Распределение бюджета:
От разных подразделений поступают запросы на выдачу денежных средств. Эти запросы фиксируются в категории Запросы на выдачу ДС (каждый запрос — в отдельной задаче). В запросе указываются необходимая (плановая) сумма и фактически выделенная сумма. Финансовая служба время от времени выделяет определенные объемы денежных средств, которые затем необходимо распределить по поступившим ранее запросам. Задачи на распределение фиксируются в категории Распределение ДС. В задаче на распределение автоматически формируется таблица, содержащая список поступивших запросов и запрошенные суммы. В отдельной колонке таблицы сотрудник финансовой службы указывает фактически выделяемые суммы. После подтверждения платежа фактические выделенные суммы проставляются в соответствующих запросах. Необходимо настроить автоматическое формирование таблицы и автоматическое разнесение выделенных сумм по запросам. 1. В категории Запросы на выдачу ДС создайте четыре ДП: № | Название | Тип | Описание 1 | Требуется | Деньги | \ 2 | Выдано | Деньги | \ 3 | Выдача ДС | Lookup | Ссылка на категорию "Распределение ДС" (скрытый) 4 | Триггер | Булево | (скрытый) 2. В категории "Распределение ДС" создайте два ДП: № | Название | Тип | Описание 1 | Наличные платежи | Таблица | Колонки:
| | | -Статья затрат (Lookup), ссылка на категорию "Запросы на выдачу ДС"
| | | -План (Деньги), сколько требуется
| | | -Факт (Деньги), сколько выдано 2 | Буферный | Lookup | Ссылка на категорию "Запрос на выдачу ДС" (скрытый) 3. В категории Распределение ДС настройте смарт-автоматизацию: 3.1. На событие После постановки задачи В ДП Буферный последовательно передаются все подходящие задачи из категории Запросы на выдачу ДС:
Отбор подходящих задач Во всех отобранных задачах из категории "Запросы на выдачу ДС" в ДП Выдача ДС прописывается ссылка на текущую задачу. 3.2. На событие "При изменении ДП" для ДП "Буферный" Изменить значение ДП "Таблица", добавив в нее данные из задачи, на которую ссылается ДП "Буферный" (в формате json)
Обновление таблицы ДП Буферный поменяет свое значение столько раз, сколько подходящих задач будет отобрано (в п.3.1). Столько же раз отработает смарт-действие При изменении ДП (п.3.2), а значит, столько же строк будет добавлено в таблицу. 4. После того, как таблица сформирована и пользователь внес необходимые изменения в колонке Факт, необходимо вернуть исправленные данные в соответствующие запросы на выдачу ДС. Для этого на форме задачи в категории Распределение ДС создайте кнопку Подтвердить платеж, которая будет отвечать за выполнение фиктивного перехода, и настройте автоматизацию: 4.1. В категории Распределение ДС при выполнении фиктивного перехода Подтвердить платеж во всех запросах из таблицы изменить значение ДП Триггер (например, с 1 на 0) 4.2. В категории Запросы на получение ДС для события При изменении ДП для ДП Триггер создайте смарт-действие, которое получит данные о фактически выданных средствах из соответствующей строки таблицы в задаче из ДП Выдача ДС и запишет скорректированные данные в ДП Выдано:
Корректировка данных Параметры из текущей категории находятся в папке Параметры исходной задачи, которая доступна в дереве только в режиме редактирования условия функции.
Параметры исходной задачи Сопоставление плановых и фактических платежей:
В категории Договоры регистрируются заключенные договоры. Категории Плановые платежи и Фактические платежи связаны с ней с помощью ДП Договор (типа Lookup).\ Задачи в категории Плановые платежи создаются в момент заключения договора — в каждой задаче указываются срок и сумма очередного платежа. Задачи в категории Фактические платежи создаются в момент поступления очередного платежа по договору. Сроки и суммы фактических платежей не всегда совпадают с плановыми. В момент поступления очередного фактического платежа эту сумму необходимо распределить между плановыми платежами так, чтобы он "закрывались" в порядке возрастания дат (т.е. чтобы сначала закрывались самые ранние платежи). Распределение очередного фактического платежа между плановыми осуществляется итерационно: Схема распределения платежей В категории Плановые платежи есть следующие ДП: -Сумма план — сумма планового платежа; -Таблица оплаты — таблица, в которую записываются фактические платежи, закрывающие его. В таблице есть две колонки: Сумма оплаты и Дата поступления оплаты; -Сумма факт — сумма всех поступивших на текущий момент фактических платежей, закрывающих данных платеж. Этот ДП рассчитывается как итоговая сумма по всем строкам таблицы; -Остаток — рассчитывается как "Сумма план"-"Сумма факт". Вся автоматизация по распределению поступивших платежей реализуется в категории Фактические платежи. Список всех пакетов в привязке к событиям: Список настроенных в категории смартов 1. Создайте в категории Фактические платежи три вспомогательных ДП: -Плановый платеж (lookup) — в этот ДП на каждой итерации цикла распределения записывается ссылка на очередной плановый платеж; -Остаток (число) — в этот ДП на каждой итерации цикла распределения загружается неоплаченный остаток по очередному плановому платежу; по умолчанию (т.е. на момент создания задачи) этот ДП равен 0; -Нераспределенный остаток (число) — в этот ДП на каждой итерации цикла распределения записывается остаток от фактического платежа, еще не распределенный к текущему моменту между плановыми платежами. 2. Подготовка к запуску цикла распределения. 2.1. Подготовьте начальное значение ДП Нераспределенный остаток. На начало первой итерации цикла распределения он должен быть равен полной сумме поступившего фактического платежа. Настройте пакет из единственного смарт-действия, в котором будет заполняться этот ДП, и привяжите его к событию После постановки задачи: Смарт-событие Действие в пакете: Действие в пакете Смарт-выражение для заполнения ДП Нераспределенный остаток: Заполнение ДП "Нераспределенный остаток" 2.2. Подготовьте начальные значения ДП Плановый платеж и Остаток. Для этого настройте еще один пакет из двух смарт-действий и также привяжите его к событию После постановки задачи. Смарт-событие В качестве смарт-фильтра используйте выражение, которое определяет, есть ли незакрытые плановые платежи по этому договору: Смарт-фильтр для определения незакрытого платежа по договору Список действий в пакете: Список действий в пакете Первое действие пакета записывает в ДП Плановый платеж ссылку на первый (самый ранний) плановый платеж. Первое действие в пакете Смарт-выражение для расчета ДП Плановый платеж: Смарт-выражение для расчета ДП "Плановый платеж" Второе действие записывает в ДП Остаток сумму из этого планового платежа. Запись остатка 3. Итерация цикла распределения заключается в следующем: очередной плановый платеж закрывается исходя из значения текущего нераспределенного остатка, а затем сам нераспределенный остаток уменьшается на списанную сумму. Событием, запускающим очередную итерацию цикла, является очередное изменение ДП Остаток. Создайте два пакета, привязанных к событию После смены ДП для ДП Остаток. Смарт-событие 3.1. Пакет состоит из единственного действия, которое записывает данные о поступивших средствах в новую строку таблицы платежей в текущем плановом платеже (который "закрывается" на данной итерации). Действие в пакете Смарт-выражение для расчета таблицы оплаты: Смарт-выражение для расчета таблицы оплаты 3.2. Второй пакет рассчитывает нераспределенный остаток после закрытия текущего планового платежа. Смарт-событие Он тоже состоит из единственного действия: Действие в пакете Смарт-выражение для расчета неопределенного остатка: Смарт-выражение для расчета неопределенного остатка 4. Финальные проверки. Изменение ДП Нераспределенный остаток инициирует выполнение еще двух пакетов действий, которые привязаны к событию изменения этого ДП. Эти пакеты определяют, является ли эта итерация последней или нет, и в зависимости от этого выполняют переход на следующую итерацию цикла или подведение итогового нераспределенного остатка (на последней итерации). 4.1. Первый пакет срабатывает, если еще остался нераспределенный остаток и остались незакрытые плановые платежи, то есть цикл нужно продолжать. Смарт-событие Условие смарт-фильтра выглядит так: Проверка наличия нераспределенного остатка Пакет состоит из двух действий. Список действий в пакете Первое действие записывает в ДП Плановый платеж ссылку на очередной плановый платеж (выражение "План платеж с ближайшим сроком" уже использовалось на шаге 2.2). Первое действие в пакете Второе действие записывает в ДП Остаток неоплаченный остаток из этого планового платежа. Второе действие Изменение ДП Остаток снова запускает пакеты, определенные на шаге 3, т.е. начинает очередную итерацию цикла. 4.2. Второй пакет срабатывает, если еще остался нераспределенный остаток, но незакрытых плановых платежей уже не осталось, то есть цикл нужно прекращать.
Смарт-событие Такая ситуация может возникнуть, если клиент оплатил большую сумму, чем было запланировано. Условие смарт-фильтра выглядит так:
Смарт-фильтр для наличия нераспределеного остатка при отсутствии незакрытых плановых платежей Сам пакет состоит из трех действий.
Список действий в пакете Первое действие записывает в ДП Плановый платеж ссылку на последний закрытый плановый платеж.
Первое действие в пакете Ссылка на последний закрытый плановый платеж:
Ссылка на последний закрытый плановый платеж Второе действие записывает в этот последний платеж в таблицу поступивших оплат строку с переплатой, равной нераспределенному остатку.
Второе действие в пакете Запись строки с переплатой:
Запись строки с переплатой Третье действие обнуляет оставшийся нераспределенный остаток.
Обнуление остатка Параметры из текущей категории находятся в папке Параметры исходной задачи, которая доступна в дереве только в режиме редактирования условия функции.
Параметры исходной задачи Почтовые смарты
Постановка задач из электронной почты:
Для подразделения выделен общий почтовый ящик crm@1forma.ru. Если на него приходит письмо, в теме которого содержится слово "Заявка", создается задача в категории "Входящие заявки". Заказчик задачи — или отправитель письма (если он пользователь системы — например, один из уже существующих клиентов отправляет новую заявку), или служебный пользователь Systemrobot. Если в адресатах письма есть не только ящик crm@1forma.ru, но и конкретный сотрудник, он назначается исполнителем. Если в письмо вложены файлы, они вкладываются в эту заявку. Для почтового ящика crm@1forma.ru настроен смарт-пакет со смарт-фильтром и двумя действиями: Создать задачу и Вложить файл. 1. Создать задачу.
Смарт-выражение для определения заказчика:
Смарт-выражение для определения заказчика Смарт-выражение для определения исполнителей:
Смарт-выражение для определения исполнителей 2. Вложить файл.
Вложение файла из письма Смарт-выражение для определения задачи:
Смарт-выражение для определения задачи Смарт-выражение для определения файла:
Смарт-выражение для определения файла 3. Смарт-фильтр:
Смарт-фильтр для почты Параметры из текущей категории находятся в папке Параметры исходной задачи, которая доступна в дереве только в режиме редактирования условия функции.
Параметры исходной задачи