Смарт-действия¶
ℹ️ Символом * помечены обязательные параметры
Категории, задачи, связи¶
Ассоциировать задачу с ЛК¶
Ассоциирует задачу в "Первой Форме" с задачей в Личном кабинете (то же самое, что "Связать задачу с личным кабинетом")
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача в "Первой Форме" |
| Личный кабинет* | 1F.CustomerZone | Личный кабинет |
Действие со встречей¶
Выполняет действие с календарным событием
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String | Уникальный идентификатор встречи. Ключ может иметь форматы: - Для пользователя, чей календарь синхронизируется с Exchange: 2157:AAMkAGY4MTUyNTA2LTNiYjMtNGJkNS1hYzMwLTExZDM5NmJkM2VmOABGAAAAAADRbVyYA/QbSaXy1Uq+II/rBwBWwaEeQic9QZatubGPOy5cAAAAAAENAABWwaEeQic9QZatubGPOy5cAACUTmMNAAA= - Для пользователя, чей календарь не синхронизируется с Exchange и встреча создается из задачи: 1forma:{UserID}:{TaskID}, где UserID — ID пользователя, TaskID — Номер задачи. Пример: 1forma:2312:1322 Действие* Выпадающий список действий со встречей. Возможные значения: - Принять - Отменить - Под вопросом - Отклонить |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
ℹ️ Ключ встречи можно увидеть в адресной строке, если открыть её в новой вкладке
Добавить задачу в избранное¶
Добавляет задачу указанным пользователям в блок Избранное
| Параметр | Тип | Описание |
|---|---|---|
| Кто добавляет* | 1F.User | Пользователь, от чьего имени выполняется действие |
| Кому добавляют* | Collection<1F.User> | Пользователи, которым добавляется задача.\ Если нужно указать группу, используйте смарт-выражение |
| Цвет* | Integer | Голубой — 1; Зеленый — 2; Изумрудный — 3; Желтый — 4; Фиолетовый — 5; Красный — 6 |
| Задача* | 1F.Task | Задача в "Первой Форме" |
Добавить комментарий в избранное¶
Добавляет комментарий указанным пользователям в блок Избранное
| Параметр | Тип | Описание |
|---|---|---|
| Кто добавляет* | 1F.User | Пользователь, от чьего имени выполняется действие |
| Кому добавляют* | Collection<1F.User> | Пользователи, которым добавляется комментарий.\ Если нужно указать группу, используйте смарт-выражение |
| Цвет* | Integer | Цвет избранного. Доступные значения: - Голубой — 1; - Зеленый — 2; - Изумрудный — 3; - Желтый — 4; - Фиолетовый — 5; - Красный — 6 |
| ID комментария* | Integer | ID комментария |
Задать аватар задачи¶
Позволяет установить цвет и иконку для аватара задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Пользователь, от чьего имени выполняется действие |
| Файл | 1F.File | ID файла с изображением, которое будет загружено в качестве аватара задачи |
| Цвет | String | Цвет аватара карточки задачи. Доступные значения: - none — Цвет не выбран, по умолчанию аналогичен серому - primary — Цвет бренда "Первой Формы", по умолчанию аналогичен синему - red — Красный - yellow — Желтый - orange — Оранжевый - green — Зеленый - cyan — Бирюзовый - blue — Синий - purple — Фиолетовый - pink — Розовый - brown — Коричневый - grey — Серый |
| Иконка | String | Название иконки из набора, которая будет отображаться в качестве аватара задачи. Набор доступен по адресу: /spa/content-icons |
Запинить задачу¶
Задача (одна или несколько) добавляется в список чатов
| Параметр | Тип | Описание |
|---|---|---|
| Номер задачи* | Collection<1F.Task> | Добавляемые задачи |
| Кому* | Collection<1F.User> | Пользователи, которые будут видеть эти задачи в списке своих чатов |
ℹ️ Возможность выполнения действия ограничивается правами на категориюи доступна для подписчиков задачи или пользователей с правом "Администратор задачи".
Если задача принадлежит системной категории "Общение", то действие не выполняется, и ошибка фиксируется в журнале ошибок. При возникновении перечисленных выше ошибок для какой-то из обрабатываемых задач и для какого-то пользователя выполнение смарт-действия не прерывается, и обрабатываются остальные пользователи\задачи
Зашифровать задачу¶
Задача зашифровывается
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, которая должна быть зашифрована |
| Пользователь* | 1F.User | Пользователь, который зашифровывает задачу |
ℹ️ Шифрование работает только если в категории включен режим шифрования, иначе возвращается ошибка
Копировать задачу¶
Создает копию задачи (возвращает System.Data.Entity.Core.Objects.DataClasses.EntityCollection`1\TCClassLib.Orm.Task)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, которая должна быть скопирована |
| Категория* | 1F.Subcat | Категория, в которой будет создана копия |
| Копировать подписчиков* | Boolean | Если параметр активен, то все подписчики текущей задачи будут подписаны и к создаваемой копии |
| Копировать вложения* | Boolean | Если параметр активен, то файлы, вложенные в текущую задачу, будут вложены в создаваемую копию |
ℹ️ В созданную копию попадут только те ДП, которые отображаются в карточке создания задачи. Если ДП при постановке не отображаются, то они не будут скопированы.
Найти встречи в периоде¶
Возвращает встречи пользователя в указанном периоде
| Параметр | Тип | Описание |
|---|---|---|
| Владелец календаря* | 1F.User | Пользоваель, в календаре которого необходимо найти встречи |
| C* | DateTime | Начало периода, с которого нужно найти встречи |
| По* | DateTime | Конец периода, по который нужно найти встречи |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
Найти встречу по задаче¶
Находит встречу по связанной с ней задаче
| Параметр | Тип | Описание |
|---|---|---|
| Организатор* | 1F.User | Пользователь, от имени которого организована встреча |
| Привязать задачу* | 1F.Task | Задача, из которой была запланирована встреча |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
Обновить встречу¶
Обновляет параметры в календарном событии
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String | Уникальный идентификатор встречи. Ключ может иметь форматы: - Для пользователя, чей календарь синхронизируется с Exchange: 2157:AAMkAGY4MTUyNTA2LTNiYjMtNGJkNS1hYzMwLTExZDM5NmJkM2VmOABGAAAAAADRbVyYA/QbSaXy1Uq+II/rBwBWwaEeQic9QZatubGPOy5cAAAAAAENAABWwaEeQic9QZatubGPOy5cAACUTmMNAAA= - Для пользователя, чей календарь не синхронизируется с Exchange и встреча создается из задачи: 1forma:{UserID}:{TaskID}, где UserID — ID пользователя, TaskID — Номер задачи. Пример: 1forma:2312:1322 |
| Участники | Collection<1F.User> | Пользователи-участники встречи |
| Начало | DateTime | Интервал "С" — время, в которое начнётся встреча |
| Конец | DateTime | Интервал "По" — время, в которое закончится встреча |
| Место | String | Место встречи |
| Тема | String | Тема встречи |
| Html | Boolean | Если настройка активна, описание встречи будет в фрмате "Html" , если нет — то в текстовом формате. |
| Тело | String | Описание встречи |
| Привязать задачу | Boolean | Задача в "Первой Форме". Будет отображена в поле "Связано с" |
| Статус встречи | String | Статус встречи. Возможные значения: - Свободен - Под вопросом - Занят - Под вопросом |
| Доп. email адреса участников | String | Дополнительные адреса электронной почты участников встречи. Содержимое добавляется строкой к полю "Участники встречи" во все созданные календарные задачи. При этом новые встерчи не создаются, так как у них нет заказчиков-пользователей. |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
ℹ️ Ключ встречи можно увидеть в адресной строке, если открыть её в новой вкладке
Отпинить задачу¶
Задача (одна или несколько) удаляется из списка чатов
| Параметр | Тип | Описание |
|---|---|---|
| Номер задачи* | Collection<1F.Task> | Удаляемые задачи |
| Кому* | Collection<1F.User> | Пользователи, которые больше не будут видеть эти задачи в списке своих чатов |
ℹ️ Примечание
Если пользователь не является подписчиком задачи, то действие не выполняется, и ошибка фиксируется в журнале ошибок.
Если задача принадлежит системной категории "Общение", то действие также не выполняется, и ошибка фиксируется в журнале ошибок.
При возникновении перечисленных выше ошибок для какой-то из обрабатываемых задач и для какого-то пользователя выполнение смарт-действия не прерывается, и обрабатываются остальные пользователи\задачи
Перенести задачу¶
Переносит задачу в указанную категорию
| Параметр | Тип | Описание |
|---|---|---|
| Категория* | 1F.Subcat | Целевая категория (куда должна быть перенесена задача) |
| Задача* | Collection<1F.Task> | Одна или несколько задач, которые должны быть перенесены |
| Кто переносит* | 1F.User | Пользователь, от чьего имени выполняется действие |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
ℹ️ Пакет с данным смарт-действием будет выполняться только в исходной категории. Например, если пакет выполняется перед или после наступления какого-либо события, и в обеих категориях (исходной и целевой) для данного события настроена автоматизация, она будет выполняться только в исходной категории
Получить встречу¶
Возвращает все поля встречи по её ключу — используется в Lua смартах
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String | Уникальный идентификатор встречи. Ключ может иметь форматы: - Для пользователя, чей календарь синхронизируется с Exchange: 2157:AAMkAGY4MTUyNTA2LTNiYjMtNGJkNS1hYzMwLTExZDM5NmJkM2VmOABGAAAAAADRbVyYA/QbSaXy1Uq+II/rBwBWwaEeQic9QZatubGPOy5cAAAAAAENAABWwaEeQic9QZatubGPOy5cAACUTmMNAAA= - Для пользователя, чей календарь не синхронизируется с Exchange и встреча создается из задачи: 1forma:{UserID}:{TaskID}, где UserID — ID пользователя, TaskID — Номер задачи. Пример: 1forma:2312:1322 |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
ℹ️ Ключ встречи можно увидеть в адресной строке, если открыть её в новой вкладке
Связать задачи¶
Устанавливает связь между двумя задачами
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, от чьего имени выполняется действие |
| Задача* | 1F.Task | Первая задача |
| Задача* | 1F.Task | Вторая задача |
| Сделать задачу не связанной, а дочерней* | Boolean | Если параметр активен, то первая задача станет родительской, а вторая дочерней. Если параметр неактивен, то задачи станут связанными |
| Тип связи в проекте | Integer | Возможные значения: - Без зависимости = 0 - Начало — начало = 1 - Начало — окончание = 2 - Окончание — начало = 3 - Окончание — окончание = 4 |
ℹ️ Установить связь можно только от имени пользователя, который имеет права доступа к обеим задачам. Можно устанавливать связь действие от имени системного пользователя systemrobot, который имеет максимальные права.
Связать задачу с личным кабинетом¶
Связывает задачу в "Первой Форме" с задачей в Личном кабинете
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача в "Первой Форме" |
| Идентификатор личного кабинета | 1F.CustomerZone | Личный кабинет |
Создать задачу¶
Создает задачу или подзадачу
| Параметр | Тип | Описание |
|---|---|---|
| Заказчик* | 1F.User | Заказчик создаваемой задачи |
| Категория* | 1F.Subcat | Категория, в которой создается задача |
| Текст | String | Текст создаваемой задачи |
| Сделать связанной* | Boolean | Если параметр активен, то создаваемая задача будет связана с текущей задачей линейной связью |
| Сделать подзадачей* | Boolean | Если параметр активен, то создаваемая задача станет подзадачей к текущей задаче |
| Исполнители | Collection<1F.User> | Исполнители создаваемой задачи |
| Срок | DateTime | Срок создаваемой задачи |
| Дата начала работ | DateTime | Дата начала работ по создаваемой задаче |
| Копировать подписчиков из родительской* | Boolean | Если параметр активен, то все подписчики текущей задачи будут подписаны и к создаваемой задаче |
| Копировать вложения* | Boolean | Если параметр активен, то файлы, вложенные в текущую задачу, будут вложены в создаваемую задачу. |
| Включать текст исходной* | Boolean | Если параметр активен, то текст исходной задачи будет добавлен к тексту создаваемой задачи |
| Приоритет* | Integer | Возможные значения: - низкий приоритет = 0 - обычный = 1 - высокий = 3 |
| Уведомить | Collection<1F.User> | Пользователи, которых необходимо уведомить о создании задачи |
| Подписать | Collection<1F.User> | Пользователи, которых надо подписать к создаваемой задаче |
| Каждому исполнителю отдельную копию* | Boolean | Если параметр активен, то каждому исполнителю будет поставлена отдельная задача |
| Создать ссылки на вложения | Boolean | Если параметр активен, то файлы не будут вложены в задачу, а на них будут созданы ссылки |
| Вложить письмо файлом | Boolean | Если параметр активен, то в созданную задачу будет вложен файл письма в формате eml. В карточке задачи файл появится в блоке "Файлы" во вкладке "Письма" . |
| Конфиденциальность | Boolean | Если параметр активен, то у задачи устанавливается признак конфиденциальности |
| Связать от имени | 1F.User | Пользователь, от имени которого устанавливается связь между задачами. Если оставлено пустое значение, связь устанавливается от имени заказчика создаваемой задачи. |
| От чьего имени совершается действие | 1F.User | Сессионный пользователь, от имени которого будет создана задача. Не является заказчиком |
ℹ️ Если при создании задачи заполняются ДП и хотя бы один ДП заполняется смарт-выражением, которое возвращает список ID элементов, то будет создано столько задач, сколько элементов в списке. Подробнее см. здесь
Создать встречу¶
Создает календарное событие
| Параметр | Тип | Описание |
|---|---|---|
| Организатор* | 1F.User | Пользователь, от имени которого будет организована встреча |
| Участники | Collection<1F.User> | Пользователи-участники встречи |
| Начало* | DateTime | Интервал "С" — время, в которое начнётся встреча |
| Конец* | DateTime | Интервал "По" — время, в которое закончится встреча |
| Место | String | Место встречи |
| Тема* | String | Тема встречи |
| Html* | Boolean | Если настройка активна, описание встречи будет в фрмате "Html" , если нет — то в текстовом формате. |
| Тело* | String | Описание встречи |
| Привязать задачу | 1F.Task | Задача в "Первой Форме". Будет отображена в поле "Связано с" Статус встречи* Статус встречи. Возможные значения: - Свободен - Под вопросом - Занят - Нет на месте - Работаю в другом месте - Нет данных |
| Проверять привязанную задачу перед созданием* | Boolean | Параметр отвечает за проверку на существование уже привязанных к задаче встреч во избежание дублей. Если настройка активна и связанная ранее задача существует — смарт не будет создавать новую встречу, а вернет идентификатор существующей. |
| Доп. email адреса участников | String | Дополнительные адреса электронной почты участников встречи. Содержимое добавляется строкой к полю "Участники встречи" во все созданные календарные задачи. При этом новые встерчи не создаются, так как у них нет заказчиков-пользователей. |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
Удалить аватар задачи¶
Удаляет аватар задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задча* | 1F.Task | Задача, в которой удаляется настроенный цвет и иконка аватара. После удаления будет установлен стандартный аватар задачи |
Удалить встречу¶
Удаляет встречу из календаря
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String | Уникальный идентификатор встречи. Ключ может иметь форматы: - Для пользователя, чей календарь синхронизируется с Exchange: 2157:AAMkAGY4MTUyNTA2LTNiYjMtNGJkNS1hYzMwLTExZDM5NmJkM2VmOABGAAAAAADRbVyYA/QbSaXy1Uq+II/rBwBWwaEeQic9QZatubGPOy5cAAAAAAENAABWwaEeQic9QZatubGPOy5cAACUTmMNAAA= - Для пользователя, чей календарь не синхронизируется с Exchange и встреча создается из задачи: 1forma:{UserID}:{TaskID}, где UserID — ID пользователя, TaskID — Номер задачи. Пример: 1forma:2312:1322 |
| Доступ к календарю от имени пользователя | 1F.User | Выбор пользователя, от лица которого будет совершено действие в календаре. По умолчанию выбран системный пользователь (Робот) |
ℹ️ По умолчанию у системного пользователя (Робота) нет доступа к календарю пользователей и режим синхронизации отключен. Рекомендуется указывать пользователя, обладающего соотвествующими правами. Это может быть организатор встречи, инициатор изменений и т.п.
ℹ️ Ключ встречи можно увидеть в адресной строке, если открыть её в новой вкладке
Удалить задачу из избранного¶
Удаляет задачу из блока Избранное у указанных пользователей
| Параметр | Тип | Описание |
|---|---|---|
| Кому удаляют* | Collection<1F.User> | Пользователи, у которых удаляется задача.\ Если нужно указать группу, используйте смарт-выражение |
| Задача* | 1F.Task | Задача в "Первой Форме" |
Удалить комментарий из избранного¶
Удаляет комментарий из блока Избранное у указанных пользователей
| Параметр | Тип | Описание |
|---|---|---|
| Кому удаляют* | Collection<1F.User> | Пользователи, у которых удаляется комментарий.\ Если нужно указать группу, используйте смарт-выражение |
| ID комментария* | Integer | ID комментария |
Удалить связь между задачами¶
Разрывает связь между задачами
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задачи, между которыми существует связь |
| Другая задача* | 1F.Task | |
| Кто разрывает* | 1F.User | Пользователь, от чьего имени выполняется действие |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
Оповещения¶
Вызвать диалоговое окно¶
Вызывает диалоговое окно
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой будет вызвано окно |
| Получатели (пользователи)* | Collection<1F.User> | Строка с email-адресами получателей письма. Eсли получателей несколько, то email-адреса перечисляются через запятую Тип уведомления* Возможные значения: - Ошибка - Успех - Информирование (Временно не используется) |
| Заголовок сообщения | String | Текст заголовка сообщения |
| Сообщение | String | Текст сообщения |
Отображение диалогового окна в пользовательском интерфейсе¶
Вызывает снекбар
| Параметр | Тип | Описание |
|---|---|---|
| Задача | 1F.Task | Задача, в которой будет вызван снекбар. Параметр необязательный, что позволяет осуществлять вызов снекбара без привязки к конкретной задаче. При выполнении действия, в котором отсутствует идентификатор задачи, снекбар с соответствующим текстовым сообщением отображается для указанных пользователей независимо от их текущего местоположения в интерфейсе |
| Получатели (пользователи)* | Collection<1F.User> | Пользователи — получатели снекбара |
| Сообщение | String | Текст сообщения |
Отображение снекбара в пользовательском интерфейсе¶
Создает и отправляет электронное письмо. Действие выполняется от имени указанного пользователя с его пользовательскими настройками почтового провайдера
| Параметр | Тип | Описание |
|---|---|---|
| Email отправителя* | String | Строка с email-адресом, с которого будет отправлено письмо |
| Получатели* | String | Строка с email-адресами получателей письма. Eсли получателей несколько, то email-адреса перечисляются через запятую |
| СС | String | Строка с email-адресами получателей копии письма. Eсли получателей несколько, то email-адреса перечисляются через запятую |
| Тема* | String | Тема письма |
| Текст письма* | String | Текст письма |
| Вложения | Collection<1F.File> | Файлы, вложенные в письмо |
| Каждому адресату отдельное письмо | Boolean | Если параметр активен, то отправляется отдельное письмо каждому получателю. Получатели, указанные в параметре CC, добавляются в копию каждого письма |
| Преобразовывать base64 картинки во вложения | Boolean | По умолчанию включено. Если настройка отключена, в теле письма будет отправлено изображение, а не ссылка на вложение. |
| Id email report | Integer | Существующий отчет, который будет вложен в текст письма в виде html версии. В качестве значения из выпадающего выбирается один из отчетов FastReport |
| Параметры отчета | String | Параметры выбранного отчета. Значения станут доступны для заполнения после того, как в параметре Id email report будет выбран отчет |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок "Разрешена работа с почтой".
Отправить email на группу¶
Создает и отправляет электронное письмо
| Параметр | Тип | Описание |
|---|---|---|
| Email отправителя* | String | Строка с email-адресом, с которого будет отправлено письмо |
| Группы получателей* | String | Строка с ID групп, участники которых являются получателями письма. Eсли групп несколько, то они ID перечисляются через запятую |
| СС | String | Строка с email-адресами получателей копии письма. Eсли получателей несколько, то email-адреса перечисляются через запятую |
| Тема* | String | Тема письма |
| Текст письма* | String | Текст письма |
| Вложения | Collection<1F.File> | Файлы, вложенные в письмо |
| Использовать внешние Email адреса | Boolean | Если параметр активен, то используются внешние email-адреса из профилей пользователей, если выключен — внутренние |
| Каждому адресату отдельное письмо | Boolean | Если параметр активен, то отправляется отдельное письмо каждому получателю. Получатели, указанные в параметре CC, добавляются в копию каждого письма |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок Разрешена работа с почтой.
Отправить push-сообщение¶
Отправляет push-сообщение
| Параметр | Тип | Описание |
|---|---|---|
| ID категории | 1F.Subcat | Категория |
| Кому | Collection<1F.User> | Пользователи, которым направляется пуш-сообщение |
| Сообщение | String | Текст сообщения Если выбрано значение "Оставить пустым", то push-сообщение не отправляется; если выбрано значение "Фиксированное значение" и при этом само значение не задано (поле пустое), то push-сообщение отправляется |
| Счетчик | Integer | Произвольное значение, которое будет отображаться в пуш-сообщении (на iOS). Если выбрано значение "Оставить пустым", то push-сообщение не отправляется; если выбрано значение "Фиксированное значение" и при этом само значение не задано (поле пустое), то push-сообщение отправляется |
| Звук | Integer | Номер мелодии (список и порядок доступных мелодий можно посмотреть в в Профиле пользователя). Если значение не задано, то будет использованы настройки по умолчанию для данного пользователя |
| Тихий пуш* | Boolean | Если параметр активен, то передаваемое push-сообщение будет содержать параметр "content-available":1 Если параметр неактивен, то передаваемое сообщение вообще не будет содержать параметр "content-available" |
| ID задачи | Integer | Задача, к которой относится уведомление |
| Кастомные параметры пуша | String | Произвольное количество пар "ключ-значение". Чтобы добавить новый ключ, введите его имя и нажмите кнопку Добавить. Отобразится поле для задания значения этого ключа. Имя ключа необходимо задавать как строку, а значение — либо фиксированную строку, либо смарт-выражение, возвращающее строку. |
| Приоритет | Integer | Приоритет сообщения. Возможные значения: - 0 — низкий, - 1 — обычный, - 3 — высокий |
| Push-токен | String | Список токенов, на которые отправляется пуш-сообщение (через запятую). С помощью токена можно отправить сообщение на конкретное устройство пользователя. Актуальные токены для пользователей можно получить по таблице PushDeviceTokens в БД |
ℹ️ Адресат пуш-сообщения определяется либо в поле Кому, либо в поле Push-токен. Должно быть обязательно заполнено хотя бы одно из этих полей
Отправить SMS¶
Отправляет SMS
| Параметр | Тип | Описание |
|---|---|---|
| Номер* | String | 10-значный номер (можно без префикса +7 или 8) - в виде строки цифр (в кавычках или без), если номер задается смарт-выражением, - в формате \"9161234567"\, если номер задается фиксированным значением |
| Текст* | String | Текст сообщения |
| Провайдер | Integer | ID провайдера СМС, через которого отправляется оповещение. Если не указан, то используется провайдер, указанный в Общих настройках приложения в параметре "Сервис отправки СМС" |
Отправить voip push-сообщение¶
Отправляет voip push-сообщение
| Параметр | Тип | Описание |
|---|---|---|
| Кому* | Collection<1F.User> | Пользователи, которым направляется пуш-сообщение |
| ID задачи | Integer | Задача, к которой относится уведомление |
| Кастомные параметры пуша | String | Произвольное количество пар "ключ-значение". Чтобы добавить новый ключ, введите его имя и нажмите кнопку Добавить. Отобразится поле для задания значения этого ключа. Имя ключа необходимо задавать как строку, а значение — либо фиксированную строку, либо смарт-выражение, возвращающее строку. |
Отправить комментарий¶
Отправляет сообщение в ленту задачи
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User | Пользователь, от чьего имени будет отправлен комментарий |
| Текст* | String | Текст комментария |
| Задача* | 1F.Task | Задача, в которой будет опубликован комментарий |
| Получатели (пользователи) | Collection<1F.User> | Пользователи — получатели комментария |
| Получатели (группы) | Collection<1F.UserGroup> | Группы пользователей — получатели комментария |
| Принудительно на почту* | Boolean | Если параметр активен, то комментарий отправляется также по электронной почте. |
| Письмо будет отправлено с почтового ящика пользователя, указанного в поле "Автор" | + SMS* | Boolean Если параметр активен, то комментарий отправляется также по SMS на телефонные номера, указанные в профилях получателей. |
| Не подписывать адресатов к задаче* | Boolean | Если параметр неактивен, то все получатели будут подписаны к задаче Текст в формате HTML |
| (Утаревшее, не используется) | Boolean | Если параметр активен, то при обработке комментария будут корректно распознаваться теги в тексте |
| Пометить как вопрос | Boolean | Если параметр активен, то комментарий будет помечен как вопрос |
| Копия (пользователи) | Collection<1F.User> | Пользователи, которые будут указаны не как прямые адресаты, а как получатели копии комментария Тип комментария Соответствует типу комментария Если тип комментария не указан, будет отправлен обычный пользовательский комментарий (типы комментариев можно посмотреть в разделе Справочной информации) |
| Видим в ленте только для настоящих адресатов | Boolean | Если параметр активен, комментарий будет отображаться в ленте только у тех пользователей, которые указаны в качестве адресатов (как пользователи или в составе групп). Если параметр неактивен, комментарий будет виден всем подписчикам задачи, но будет он отображаться в ленте или нет -- зависит от их персональных настроек уведомлений |
| Тихий комментарий | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
| RealUserId | Integer | Если параметр активен, то при отправке комментария в comments будет передано значение RealUserId. Если значение не указано, будет передано значение null |
| Тихий пуш | Boolean | Если параметр активен, то передаваемое push-сообщение будет содержать параметр "content-available":1; Если параметр неактивен, то передаваемое сообщение вообще не будет содержать параметр "content-available" |
| Кастомные параметры пуша | String | Произвольное количество пар "ключ-значение". Чтобы добавить новый ключ, введите его имя и нажмите кнопку Добавить. Отобразится поле для задания значения этого ключа. Имя ключа необходимо задавать как строку, а значение — либо фиксированную строку, либо смарт-выражение, возвращающее строку. |
| Файлы | Collection<1F.File> | Файлы, вложенные в комментарий |
| В ответ на комментарий | Integer | Сообщение будет отправлено как ответ на указанный комментарий. Параметр принимает ID комментария |
| Тред | Integer | Сообщение будет отправлено в сущестующее обсуждение. Параметр принимает ID комментария, из которого было инициировано обсуждение |
| Отображать найденные ссылки | Boolean | По умолчанию все ссылки, найденные в тексте комментария, автоматически скрываются. При явном изменении параметра на "true" все ссылки, обнаруженные в комментарии, будут отображаться. По умолчанию установлен в значение "false" |
ℹ️ Для получения пуш-уведомления в МП отправитель должен обладать правом просмотра задачи, в которой будет опубликован комментарий
Отправить сигнал¶
Сигнализирует о входе в комнату ВКС
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | String | Пользователь — получатель сигнала |
| Текст* | String | Текст сигнала |
| Тип сигнала* | String | Тип сигнала — любое необходимое название события |
Отправить системный email¶
Отправляет почтовое сообщение. В отличие от действия Отправить email выполняется в отельном классе рассылок служебных писем из "Первой Формы" с проверкой валидности системного почтового ящика и настроек всех разрешений
| Параметр | Тип | Описание |
|---|---|---|
| Тема* | String | Тема письма |
| Текст письма* | String | Текст письма |
| Получатели* | String | Строка с email-адресами получателей письма. Eсли получателей несколько, то email-адреса перечисляются через запятую |
| СС | String | Строка с email-адресами получателей копии письма. Eсли получателей несколько, то email-адреса перечисляются через запятую |
| Email отправителя* | String | Строка с email-адресом, с которого будет отправлено письмо. |
| Вложения | Collection<1F.File> | Файлы, вложенные в письмо |
| Каждому адресату отдельное письмо | Boolean | Если параметр активен, то отправляется отдельное письмо каждому получателю. Получатели, указанные в параметре CC, добавляются в копию каждого письма |
| Id email report | Integer | Существующий отчет, который будет вложен в текст письма в виде html версии. В качестве значения из выпадающего выбирается один из отчетов FastReport |
| Параметры отчета | String | Параметры выбранного отчета. Значения станут доступны для заполнения после того, как в параметре Id email report будет выбран отчет |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок "Разрешена работа с почтой".
Отправить уведомление пользователю¶
В веб-клиент пользователя отправляется текстовое сообщение и показывается стандартное окно сообщения
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь — получатель уведомления |
| Текст* | String | Выражение JSON для описания действия. Поддерживаемые типы: - OpenTask — открыть карточку задачи. Пример: { "type": "OpenTask", "taskId": 12345 } - OpenUrl — открыть URL в браузере. Пример: { "type": "OpenUrl", "url": "https://example.com" } - InsertText — вставить текст в поле ввода чата для конкретной задачи. Текст подставляется в поле ввода, но не отправляется автоматически — пользователь может отредактировать его перед отправкой. Пример: { "type": "InsertText", "taskId": 12345, "text": "Предлагаемый текст ответа" } |
ℹ️ Для работы смарт-действия необходимы интеграция с телефонией и настроенная инфраструктура Signal-R
Создать напоминание о задаче¶
Создает напоминание о задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой создается напоминание |
| Пользователь* | 1F.User | Пользователь, которому отправляется напоминание |
| Дата* | DateTime | Дата и время напоминания |
| Текст* | String | Текст напоминания |
| Уведомить по SMS* | Boolean | Если параметр активен, то комментарий отправляется также по SMS на телефонный номер, указанный в профиле пользователя. |
| Создать копию в Outlook* | Boolean | Если параметр активен, то в календаре Outlook будет создано такое же напоминание |
| Получатели (пользователи) | Collection<1F.User> | Пользователи — получатели напоминания. Если не указаны, то напоминание отправляется без конкретного адресата, т.е. всем подписчикам задачи |
Заказчики, исполнители, подписчики¶
Добавить группу исполнителей¶
Добавляет группу пользователей в исполнители задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого (группа)* | Collection<1F.UserGroup> | Одна или несколько групп пользователей, участники которых добавляются в исполнители |
| Задача* | 1F.Task | Задача, в которую добавляются исполнители |
| Не слать письмо* | Boolean | Если параметр активен, то email с сообщением о добавлении исполнителей не отправляется |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий о добавлении исполнителей в задаче будет отправлен только автору действия |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок "Разрешена работа с почтой"
Добавить группу подписчиков¶
Добавляет группу пользователей в подписчики задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого* | Collection<1F.UserGroup> | Одна или несколько групп пользователей, участники которых добавляются в подписчики |
| Задача* | 1F.Task | Задача, в которую добавляются подписчики |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий о добавлении подписчиков в задаче будет отправлен только автору действия |
Добавить исполнителя¶
Добавляет пользователей в исполнители задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого* | Collection<1F.User> | Один или несколько пользователей, которые добавляются в исполнители |
| Задача* | 1F.Task | Задача, в которую добавляются исполнители |
| Не слать письмо* | Boolean | Флажок регламентирует отправку письма в случае написания комментария о назначении исполнителя. Письмо о назначении исполнителя уходит пользователю только в том случае, если выполняются все перечисленные ниже условия: - у пользователя включены уведомления о назначении исполнителей - у пользователя включены уведомления на почту - в смарт-действии не включен флажок "Не писать комментарий" |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий о добавлении исполнителей в задаче будет отправлен только автору действия |
| Ресурс | 1F.Task | Задача из системной категории "Справочник ресурсов". Если параметр не заполнен, то система будет пытаться автоматически подобрать исполнителю ресурс: будут просматриваться записи из системного справочника ресурсов (раздел "Системный", категория "Справочник ресурсов") в поисках ресурса с данным исполнителем (сначала проверяются основные исполнители, затем дополнительные); если такой ресурс не найден, то будет использоваться ресурс "по умолчанию", где в дополнительных исполнителях указана системная группа "Пользователи" |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок "Разрешена работа с почтой"
Подписчики¶
Добавляет группу пользователей в подписчики задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого* | Collection<1F.User> | Один или несколько пользователей, которые добавляются в подписчики |
| Задача* | 1F.Task | Задача, в которую добавляются подписчики |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий о добавлении подписчиков в задаче будет отправлен только автору действия |
Изменить заказчика¶
Меняет заказчика задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется заказчик |
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого* | 1F.User | Пользователь, который назначается заказчиком |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
ℹ️ Действие при событии "Перед переносом задачи из категории" применяется в той категории, в которую переносится задача
Назначить заместителя¶
Назначает для пользователя заместителя на период
| Параметр | Тип | Описание |
|---|---|---|
| Кто назначает* | 1F.User | Пользователь, от имени которого выполняется действие |
| Заместитель* | 1F.User | Пользователь, который назначается заместителем |
| Замещаемый* | 1F.User | Пользователь, для которого назначается заместитель |
| С | DateTime | Дата и время начала периода замещения |
| По | DateTime | Дата и время окончания периода замещения |
Назначить ответственным¶
Назначает пользователя ответственным исполнителем в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой назначается ответственный исполнитель |
| Кто* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого* | 1F.User | Пользователь, который назначается ответственным исполнителем |
Удалить всех исполнителей¶
Удаляет всех исполнителей в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Задача* | 1F.Task | Задача, в которой удаляются исполнители |
| Не слать письмо* | Boolean | Если параметр активен, то email с сообщением о добавлении исполнителей не отправляется |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий об удалении исполнителей в задаче будет отправлен только автору действия |
ℹ️ Для отправки почтового сообщения в Общих настройках приложения должен быть включен флажок "Разрешена работа с почтой"
Удалить всех подписчиков¶
Удаляет всех подписчиков в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Задача* | 1F.Task | Задача, в которой удаляются подписчики |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий об удалении подписчиков в задаче будет отправлен только автору действия |
Удалить исполнителя¶
Удаляет исполнителя в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой удаляется исполнитель |
| Кто удаляет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого удаляют* | 1F.User | Пользователь, которого удаляют из числа исполнителей задачи |
| Причина | String | Причина удаления исполнителя |
| Не слать письмо* | Boolean | Если параметр активен, то email с сообщением о добавлении исполнителей не отправляется |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий об удалении исполнителя будет отправлен только автору действия |
Удалить подписчика¶
Удаляет подписчика в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой удаляется подписчик |
| Кто удаляет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Кого удаляют* | 1F.User | Пользователь, которого удаляют из числа подписчиков задачи |
| Причина | String | Причина удаления подписчика |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий об удалении подписчика в задаче будет отправлен только автору действия |
Работа с операторами ЭДО¶
Диадок - Ответить на электронный документ¶
Используется для отправки в систему Диадок только положительного ответа (подписание) без титула
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | string | ID файла |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Ответить титулом на электронный документ¶
Используется для отправкив систему Диадок только положительного ответа (подписание) с титулом
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | string | ID файла |
| ID xml файла титула | string | ID xml файла титула |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Отправить подписанное извещение о получении¶
Отправляет в Диадок подписанное извещение о получении документа.
Файл извещения должен быть получен с помощью смарт-действия Создать файл извещения о получении
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ID файла извещения* | 1F.File | ID файла извещения о получении документа |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Отправить подписанный отказ от аннулирования¶
Отправляет в Диадок подписанный файл отказа от аннулирования.
Файл отказа от аннулирования должен быть получен с помощью смарт-действия Создать файл отклонения аннулирования подписи.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом, на который формируется аннулирование |
| ID файла отказа* | 1F.File | ID файла отказа |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Отправить подписанный отказ от подписи¶
В ответ на запрошенную из Диадока подпись отправляет обратно документ с отказом от подписи
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ID файла отказа* | 1F.File | ID файла отказа |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
ℹ️ Файл отказа должен быть получен с помощью смарт-действия "Создать файл отказа от подписи"
Диадок - Отправить подписанный файл об аннулировании¶
Отправляет в Диадок подписанный файл об аннулировании
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла |
| ID файла отказа* | 1F.File | ID файла аннулирования |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Отправить подписанный файл соглашения об аннулировании¶
Отправляет контрагенту в Диадок подписанный файл исходящего запроса на аннулирование.
Файл аннулирования должен быть получен с помощью смарт-действия Создать файл аннулирования подписи
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла |
| ID файла отказа* | 1F.File | ID файла аннулирования |
| ID сервиса* | int | ID сервиса |
| Подпись* | string | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | string | МЧД |
Диадок - Отправить электронный документ¶
Отправляет документ в Диадок
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ИНН контрагента* | String | ИНН контрагента |
| КПП контрагента* | String | КПП контрагента |
| Нужна ли ответная подпись | Boolean | Признак, запрашивается ли подпись у контрагента |
| Тип документа | String | Сумма Money Сумма документа |
| ID сервиса* | Int | ID сервиса |
| Уникальный идентификатор организации | String | Уникальный идентификатор организации |
| Подпись* | String | Подпись Если действие выполняется через смарт-скрипт (LUA), то параметр Signature в данном случае не является обязательным и используется только в том случае, если подпись серверная, а не запрошена в "Первой Форме" |
| МЧД* | String | МЧД. Значение задается в формате JSON вида: { "registerNumber":string, //Номер МЧД "issuerInn": string, //ИНН доверителя "useDefault": string //true/false без кавычек } где: RegisterNumber — номер МЧД, IssuerInn — ИНН доверителя, useDefault — если в ЛК Диадок указана одна МЧД или установлена МЧД "по умолчанию", то при UseDefault = true будут проигнорированы документы, которые нельзя подписать с помощью этой МЧД. Необязательный параметр. В качестве значения указывается true или false без кавычек |
| Номер договора* | String | Уникальный идентификатор договора |
| К договору* | String | К договору |
| От (к договору)* | String | От (к договору) |
| Исходный ящик* | String | Исходный ящик |
| Дата документа* | String | Дата документа |
| Код валюты* | Int | Код валюты по стандарту ISO 4217. Пример: 643 — Российский рубль, 840 — Доллар США, 978 — Евро |
Диадок - Получить документ¶
Загрузка в "Первую Форму" целиком пакета документов из системы электронного документооборота Диадок.
Смарт-действие обращается в Диадок и с помощью параметров проверяет, были эти документы получены ранее или нет. И если есть не пришедшие в систему документы, они будут загружены. Его основная задача — проверить наличие расхождений в документах, сравнивая записи в таблице EdocumentLink с фактическим набором документов в Диадоке. Если в ходе проверки обнаруживаются документы, которые присутствуют в Диадоке, но отсутствуют в таблице EdocumentLink, система дозагружает именно эти пропущенные файлы. Для каждого найденного документа в таблицу EdocumentLink добавляется соответствующая строка, после чего задача помещается в очередь на дальнейшую обработку
| Параметр | Тип | Описание |
|---|---|---|
| MessageId* | String | Идентификатор сообщения черновика |
| EntityId* | String | Идентификатор сущности |
| ServiceId | Integer | ID сервиса |
Диадок - Получить идентификатор МЧД (возвращает System.Int32)¶
Получает идентификатор МЧД из системы электронного документооборота Диадок
| Параметр | Тип | Описание |
|---|---|---|
| ID пользователя* | String | ID пользователя (UserID) в системе Диадок |
| ID сервиса* | Integer | ID сервиса |
Диадок - Получить контрагентов (возвращает System.Int32)¶
Получает контрагентов из системы электронного документооборота Диадок
| Параметр | Тип | Описание |
|---|---|---|
| ID сервиса* | Integer | ID сервиса |
Диадок - Получить статус МЧД (возвращает System.Int32)¶
Получить статус МЧД из системы электронного документооборота Диадок
В базе данные хранятся в таблице Edocumentlink
| Параметр | Тип | Описание |
|---|---|---|
| MessageId* | String | Идентификатор сообщения. Поле MessageId в таблице EdocumentLinks, оно же идентификатор письма/пакета документов |
| EntityId* | String | Идентификатор сущности. Поле ContentId в таблице EdocumentLinks, оно же идентификатор каждого файла |
| ID сервиса* | Integer | ID сервиса |
Диадок - Получить тэги документа (возвращает System.Int32)¶
Получает тэги документа Диадок (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID ссылки на электронный документ* | Integer | ID ссылки на электронный документ |
| ID сервиса* | Integer | ID сервиса |
Диадок - Получить файлы МЧД (возвращает System.Int32)¶
Получает файлы МЧД из системы Диадок
В базе данные хранятся в таблице Edocumentlink
| Параметр | Тип | Описание |
|---|---|---|
| ID МЧД* | String | ID МЧД |
| ID сообщения* | String | ID сообщения. Поле MessageId в таблице EdocumentLinks, оно же идентификатор письма/пакета документов |
| ID сервиса* | Integer | ID сервиса |
Диадок - Сгенерировать пустой xml титул покупателя для документа (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Генерирует пустой xml титул покупателя для документа Диадок
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ID сервиса* | Integer | ID сервиса |
| Параметры для титула в формате JSON | String | |
| Параметры для титула в формате JSON в 970 | String |
Диадок - Сгенерировать xml титул для документа (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Генерирует титульный лист для отправки в Диадок
Используется вместе с действием Сгенерировать пустой xml титул покупателя для документа
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ID xml файла* | 1F.File | ID xml файла титула для документа, полученного действием Сгенерировать пустой xml титул покупателя для документа |
| ID сервиса* | Integer | ID сервиса |
Диадок - Синхронизировать статусы документов в сообщении (возвращает System.Int32)¶
Используется для актуализации статуса электронного документа Диадок
Действие возвращает JSON
ℹ️ Действие доступно, начиная с версии 2.260 Пегас
| Параметр | Тип | Описание |
|---|---|---|
| Список ID сообщений* | String | Список идентификаторов сообщений MessageId |
| ID сервиса* | Integer | ID сервиса |
Диадок - Создать файл аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файл аннулирования подписи электронного документа Диадок (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| Причина аннулирования* | String | Строка с причиной аннулирования |
| ID сервиса* | Integer | ID сервиса |
Диадок - Создать файл извещения о получении (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файл извещения о получении электронного документа Диадок (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом, о получении которого формируется извещение |
| ID сервиса* | Integer | ID сервиса |
Диадок - Создать файл отказа от подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
В ответ на запрошенную из Диадока подпись создает файл с отказом от подписи
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом, на который формируется отказ |
| Причина отказа* | String | Строка с причиной отказа |
| ID сервиса* | Integer | ID сервиса |
ℹ️ Файл отказа используется в смарт-действии "Отправить подписанный отказ от подписи"
Диадок - Создать файл отклонения аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файл отклонения аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом, на который формируется отказ |
| Причина аннулирования* | String | Строка с причиной аннулирования |
| ID сервиса* | Integer | ID сервиса |
СБИС - Отправить отказ от аннулирования¶
Отправляет отказ от аннулирования документа в систему СБИС
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | { FileId (int), VersionId (int), AttachmentId (string), DocumentId (string) } В параметр передается массив объектов |
|
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| Комментарий* | String | Комментарий |
| МЧД* | String | МЧД |
СБИС - Отправить подписание¶
Отправляет ответ на электронный документа в систему СБИС
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | String | ID файла |
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| МЧД* | String | МЧД |
СБИС - Отправить подписанное извещение о получении¶
Отправляет в СБИС подписанное извещение о получении документа
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ID файла извещения* | 1F.File | ID файла извещения о получении документа |
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| МЧД* | String | МЧД |
СБИС - Отправить подписанные соглашения об аннулировании¶
Отправляет подписанные соглашения об аннулировании документов из системы СБИС (входящее)
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | { FileId (int), VersionId (int), AttachmentId (string), DocumentId (string) } В параметр передается массив объектов {FileId, VersionId, AttachmentId, DocumentId} для уже подписанных ЭЦП вложений на стороне "Первой Формы" со статусом 27 (в ожидании аннулирования). В данном смарт-действии первостепенно необходимо заполнить FileId и VersionId, т.к. они сохраняются в таблице EdocumentSbisLink и вы получаете его контент, когда он придет как "новый документ". Стоит понимать, что это не полноценный "новый документ", а только соглашение на аннулирование. |
|
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| Комментарий* | String | Комментарий |
| МЧД* | String | МЧД |
СБИС - Отправить подписанный отказ от подписи¶
Отправляет подписанный отказ от подписи документа в систему СБИС
| Параметр | Тип | Описание |
|---|---|---|
| Файлы (id, versionId, attachmentId)* | String | В параметр передается массив объектов |
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| Комментарий* | String | Комментарий |
| МЧД* | String | МЧД |
СБИС - Отправить соглашение об аннулировании¶
Отправляет соглашение об аннулировании документа в систему СБИС (исходящее)
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | { FileId (int), VersionId (int), AttachmentId (string), DocumentId (string) } В параметр передается массив объектов {FileId, VersionId, AttachmentId, DocumentId} для уже подписанных ЭЦП вложений на стороне "Первой Формы" со статусом 27 (в ожидании аннулирования). В данном смарт-действии первостепенно необходимо заполнить FileId и VersionId, т.к. они сохраняются в таблице EdocumentSbisLink и вы получаете его контент, когда он придет как "новый документ". Стоит понимать, что это не полноценный "новый документ", а только соглашение на аннулирование. |
|
| ID сервиса* | Integer | ID сервиса |
| Подпись* | String | Подпись |
| Комментарий* | String | Комментарий |
| МЧД* | String | МЧД |
СБИС - Отправить электронный документ¶
Отправляет документ в СБИС
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| ИНН контрагента* | String | ИНН контрагента |
| КПП контрагента* | String | КПП контрагента |
| Уникальное ID контрагента* | String | Уникальное ID контрагента |
| Нужна ли ответная подпись | Boolean | Признак, запрашивается ли подпись у контрагента Тип документа Сумма Money Сумма документа |
| ID сервиса* | Integer | ID сервиса |
СБИС - Получить архив МЧД (возвращает System.Int32)¶
Запрос архива МЧД из системы СБИС
| Параметр | Тип | Описание |
|---|---|---|
| Идентификатор МЧД* | String | Идентификатор МЧД |
| ИНН доверителя* | String | ИНН доверителя |
| ИНН представителя* | String | ИНН представителя |
| ID сервиса* | Integer | ID сервиса |
СБИС - Получить сертификаты (возвращает System.Int32)¶
Запрос слепка сертификата из системы СБИС
| Параметр | Тип | Описание |
|---|---|---|
| ID сервиса* | Integer | ID сервиса |
| Идентификатор | String | Идентификатор сотрудника в СБИС |
| Идентификатор в ИС | String | Идентификатор сотрудника во внешней системе |
| ИНН | String | ИНН сотрудника |
| Телефон | String | Подтвержденный номер телефона |
| String | Подтвержденный адрес почты | |
| СНИЛС | String | СНИЛС сотрудника |
| Серия документа | String | Серия документа удостоверяющего личность |
| Номер документа | String | Номер документа удостоверяющего личность |
СБИС - Получить статус МЧД (возвращает System.Int32)¶
Получить статус МЧД из системы СБИС
| Параметр | Тип | Описание |
|---|---|---|
| Идентификатор МЧД* | String | Идентификатор МЧД |
| ID сервиса* | Integer | ID сервиса |
СБИС - Получить тэги документа (возвращает System.Int32)¶
Получает тэги документа СБИС (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID ссылки на электронный документ* | Integer | ID ссылки на электронный документ |
| ID сервиса* | Integer | ID сервиса |
СБИС - Синхронизировать статусы документов в сообщении (возвращает System.Int32)¶
Используется для актуализации статуса электронного документа СБИС
ℹ️ Действие доступно, начиная с версии 2.262 Весы
| Параметр | Тип | Описание |
|---|---|---|
| Список ID сообщений* | String | Список идентификаторов сообщений DocumentId |
| ID сервиса* | Integer | ID сервиса |
СБИС - Создать файл аннулирования подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файл аннулирования подписи электронного документа СБИС (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| Причина аннулирования* | String | Строка с причиной аннулирования |
| ID сервиса* | Integer | ID сервиса |
| МЧД* | String | МЧД |
СБИС - Создать файл извещения о получении (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файл извещения о получении электронного документа СБИС (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом, о получении которого формируется извещение |
| Отпечаток сертификата | String | Хеш-функция от сертификата |
| ID сервиса* | Integer | ID сервиса |
| МЧД* | String | МЧД |
СБИС - Создать файлы отказа от аннулирования (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файлы отказа от аннулирования документа СБИС (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| Причина отказа | String | Причина отказа от аннулирования |
| Отпечаток сертификата | String | Хеш-функция от сертификата |
| ID сервиса* | Integer | ID сервиса |
| МЧД* | String | МЧД |
СБИС - Создать файлы отказа от подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файлы отказа от подписи документа СБИС (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| Причина отказа | String | Причина отказа от подписи |
| Отпечаток сертификата | String | Хеш-функция от сертификата |
| ID сервиса* | Integer | ID сервиса |
| МЧД* | String | МЧД |
СБИС - Создать файлы подтверждения подписи (возвращает TCClassLib.Orm.FileStorageFileInfo)¶
Создает файлы подтверждения подписи документа СБИС (возвращает TCClassLib.Orm.FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File | ID файла с документом |
| Причина | String | Причина подтверждения подписи |
| Отпечаток сертификата | String | Хеш-функция от сертификата |
| ID сервиса* | Integer | ID сервиса |
| МЧД* | String | МЧД |
Маршруты, переходы¶
Выполнить переход по маршруту¶
Выполняет переход по маршруту (используется если известен ID перехода)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой выполняется переход |
| Инициатор перехода* | 1F.User | Пользователь, от имени которого выполняется действие |
| Переход* | 1F.Step | Переход |
| Причина | String | Причина перехода |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий о выполнении перехода в задаче будет отправлен только автору действия |
Изменить статус задачи¶
Принудительно меняет статус задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой выполняется переход |
| Инициатор* | 1F.User | Пользователь, от имени которого выполняется действие |
| Статус* | 1F.State | Целевой статус (статус, в который должна перейти задача). Если в поле Задача выбрана Текущая задача, то в списке будут доступны только статусы из текущей категории. Если в поле задано иное значение, то в списке будут доступны все существующие статусы в системе |
| Не проверять права* | Boolean | Если параметр активен, то при переходе не проверяются права пользователя, от имени которого выполняется переход |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий о выполнении перехода в задаче будет отправлен только автору действия |
| Не записывать ошибку, если уже в этом статусе | Boolean | Если параметр активен, то если исходный и целевой статусы совпадают, это не считается ошибкой |
ℹ️ Для принудительной смены статуса необязательно наличие в маршруте перехода между исходным и целевым статусами
ℹ️ При принудительной смене статуса не выполняются автоматизации на переходе, а значит, не выполняется проверка прав пользователя, что может привести к возникновению ошибки
Перейти в заданный статус¶
Выполняет переход в заданный статус (используется если известен ID целевого статуса)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой выполняется переход |
| Инициатор перехода* | 1F.User | Пользователь, от имени которого выполняется действие |
| Статус* | 1F.State | Целевой статус (статус, в который должна перейти задача). Если в поле Задача выбрана Текущая задача, то в списке будут доступны только статусы из текущей категории. Если в поле задано иное значение, то в списке будут доступны все существующие статусы в системе |
| Кинуть ошибку, если не найден переход* | Boolean | При выполнении смарт-действия анализируется текущий статус задачи и целевой статус. Если в маршруте категории существует подходящий переход, то он будет выполнен. Если подходящего перехода на маршруте нет, то при включенном флажке "Кинуть ошибку, если не найден переход" пользователю будет выдано сообщение об ошибке |
| Причина | String | Причина перехода |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. |
Сроки и даты¶
Заблокировать срок¶
Блокирует срок задачи от изменения
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Инициатор* | 1F.User | Пользователь, от имени которого выполняется действие |
ℹ️ Блокировать срок задачи может только заказчик и только при включенном флажке "Заказчик может заблокировать срок" в основных настройках категории, в блоке "Сроки". Это надо учитывать при указании параметра "Инициатор"
ℹ️ Изменения (доступность поля "Срок" и вид иконки "замочек" рядом с полем), как правило, вступают в силу после обновления карточки задачи
Изменить дату начала работ¶
Меняет дату начала работы над задачей
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Дата | DateTime | Дата начала работы над задачей |
| Причина | String | Причина изменения параметра задачи |
Изменить дату планового начала задачи¶
Меняет дату планового начала работы над задачей
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Дата | DateTime | Дата планового начала работы над задачей Изменить дату планового окончания задачи (устаревшее, не используется) Меняет дату планового окончания работы над задачей |
Изменить дату планового окончания задачи (устаревшее, не используется)¶
Меняет дату планового окончания работы над задачей
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Дата | DateTime | ℹ️ Поле "Дата планового окончания" больше не используется. Смарт-действие меняет поле "Срок" |
ℹ️ Рекомендуется во всех смарт-пакетах заменить данное смарт-действие на смарт-действие "Изменить срок"
Изменить дату фактического завершения задачи¶
Меняет дату фактического завершения работы над задачей
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Дата | DateTime | Дата фактического завершения работы над задачей |
Изменить срок¶
Меняет срок задачи
| Параметр | Тип | Описание |
|---|---|---|
| Инициатор* | 1F.User | Пользователь, от имени которого выполняется действие |
| Срок | DateTime | Срок задачи |
| Причина* | String | Причина изменения срока |
| Задача* | 1F.Task | Задача, в которой меняется срок |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий об изменении срока в задаче будет отправлен только автору действия |
Разблокировать срок¶
Разблокирует срок задачи для изменения
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Инициатор* | 1F.User | Пользователь, от имени которого выполняется действие |
ℹ️ Разблокировать срок задачи может только заказчик и только при включенном флажке "Заказчик может заблокировать срок" в основных настройках категории, в блоке "Сроки". Это надо учитывать при указании параметра "Инициатор"
ℹ️ Изменения (доступность поля "Срок" и вид иконки "замочек" рядом с полем), как правило, вступают в силу после обновления карточки задачи
ДП и свойства задачи
Изменить значение ДП¶
Меняет значение ДП
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется параметр |
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Доп. параметр* | 1F.ExtParam | ДП, который должен быть изменен Значение Соответствует типу ДП Новое значение ДП |
| Писать комментарий о смене* | Boolean | Если параметр активен, то в задаче публикуется комментарий об изменении значения ДП |
| Причина | String | Причина изменения ДП |
| Возвращает | String | Новое значение ДП, преобразованное в текст Язык Язык локализации значения ДП. Параметр учитывается только при включенной локализации в настройке ДП "Локализуемый". Значение можно выбрать из выпадающего списка, задать смарт выражением или смарт-скриптом (LUA), а также установить зависимость от того языка, который установлен в профиле пользователя, выполняющего действие (пункт "Текущий пользователь"). |
ℹ️ Если ДП представляет собой список (например, для ДП типа "Выбор пользователей" это список пользователей), то при обработке действие фактически будет выполнено столько раз, сколько значений содержится в списке. Соответственно, столько же раз будет сгенерирован комментарий. Поэтому при обработке списков значений комментарии, по возможности, следует отключать
Изменить конфиденциальность задачи¶
Меняет признак конфиденциальности задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется признак конфиденциальности |
| Заказчик* | 1F.User | Пользователь, от имени которого выполняется действие |
| Конфиденциальность | Boolean | Признак конфиденциальности, который будет установлен для задачи |
Изменить массово значения ДП¶
Меняет значения ДП в задаче-приемнике на основе значений ДП задачи-источника
| Параметр | Тип | Описание |
|---|---|---|
| Доп. параметры приемника* | Соответствует типу ДП Чтобы добавить ДП, выберите его имя в выпадающем списке и нажмите кнопку "Добавить". Отобразится поле для задания значения этого ДП |
|
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Задача источник | 1F.Task | Задача, из которой берутся значения ДП |
| Задача приемник | 1F.Task | Задача, в которой меняются значения ДП |
| Писать комментарий о смене* | Boolean | Если параметр активен, то в задаче публикуется комментарий об изменении значений ДП |
| Причина | String | Причина изменения ДП |
Изменить массово плановые трудозатраты¶
Меняет плановые трудозатраты
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняются плановые трудозатраты |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Данные трудозатрат (JSON строка) | String | JSON строка, включающая в себя Действие, Дата, Ресурс, Исполнитель сотрудник, Исполнитель задача, День |
| Игнорировать возможные ошибки назначения трудозатрат | Boolean | Если параметр активен, ошибки, возникающие при назначении трудозатрат, будут проигнорированы |
| Метод планирования ресурсов | Методы, используемые для планирования ресурсов. Возможные методы: FixLenght, FixResources | |
| Не писать комментарий | Boolean | Если параметр активен, то комментарий о массовом изменении плановых трудозатрат будет отправлен только автору действия |
Пример Данные трудозатрат (JSON строка):
{
"mode": "FixLength",
"resources": [
{
"amount": 60,
"id": 73,
"percent": null,
"performers": \
{
"performer": {
"id": 18013,
"name": "Тест",
"type": "Task"
},
"plannedPerformer": null
}
"plannedAmount": null,
"plannedPercent": null,
"resource": {
"id": 18169,
"name": "Локации",
"type": "Worker",
"isAvaliableForPlanning": true,
"subtype": "Material"
}
}
],
"performerDailyPlans": [
{
"performer": {
"id": 18013,
"name": "Тест",
"fact": 0,
"factLabel": "0.00",
"plan": 0,
"type": "Task",
"isAssigned": null,
"planAmount": "0.00"
},
"manualDays": \
{
"date": "2025-01-18",
"amount": 30,
"type": "plan",
"comment": ""
}
}
]
}
Изменить плановые трудозатраты¶
Меняет плановые трудозатраты
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняются плановые трудозатраты |
| Кто вносит* | 1F.User | Пользователь, от имени которого выполняется действие Действие* Возможные значения: - Добавить плановые трудозатраты - Обновить плановые трудозатраты - Удалить плановые трудозатраты - Удалить исполнителя - Удалить ресурс |
| Ресурс | 1F.Task | Задача из системной категории "Справочник ресурсов" |
| Исполнитель сотрудник | 1F.User | Пользователь, для которого меняются плановые трудозатраты |
| Время (мин.) | Integer | Значение объемно-календарного плана |
| Игнорировать возможные ошибки назначения трудозатрат | Boolean | Если параметр активен, ошибки, возникающие при назначении трудозатрат, будут проигнорированы |
| Исполнитель задача | 1F.Task | Задача из системной категории "Справочник ресурсов" |
| Дата | Date | Если дата указана и выбран сотрудник, то смарт-действие добавляет/меняет/удаляет план сотруднику на конкретную дату. Если дата не указана, то добавляется/меняется/удаляется объемно календарный план по задаче |
ℹ️ Действие "Добавить/Обновить/Удалить плановые трудозартаты"меняет значение объемно-календарного плана на ресурс. Ресурс вычисляется по следующему алгоритму: если указан исполнитель — ищется ресурс этого исполнителя в плане; если ресурс не найден, исполнитель добавляется в план; если исполнитель не указан, должен быть указан ресурс. Алгоритм поддерживается только для ресурсов типа "Сотрудник".
ℹ️ Для действия "Удалить ресурс" ресурс вычисляется аналогично. В смарт-действии можно задавать только одного исполнителя и только одну задачу (массивы не поддерживаются). Если задан исполнитель или задача, то необходимо также указывать ресурс.
ℹ️ Плановые затраты могут назначаться как для конкретного сотрудника (в этом случае заполняется параметр "Исполнитель сотрудник"), так и для ресурса в целом (в этом случае заполняется параметр "Исполнитель задача").
Изменить приоритет¶
Меняет приоритет задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется приоритет |
| Приоритет* | Integer | Возможные значения: - низкий приоритет = 0 - обычный = 1 - высокий = 3 |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
Изменить процент выполнения задачи¶
Меняет процент выполнения задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется процент выполнения |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Процент | Integer | Процент выполнения |
ℹ️ Данное смарт-действие может выполняться только над задачами, которые имеют тип "Для проектных задач"
Изменить текст задачи¶
Меняет текст задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется процент выполнения |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Текст | String | Текст задачи |
| Писать "тихий" комментарий (без адресата) | Boolean | Такой комментарий не имеет адресатов и не увеличивает счетчик индикатора непрочитанных комментариев у подписчиков задачи. "Тихий" комментарий всегда прочитывается автоматически и не отправляет push-уведомления, независимо от настроек уведомлений. Язык Язык локализации текста задачи. Параметр учитывается только при включенной локализации в настройке "Локализовать текст задачи". Значение можно выбрать из выпадающего списка, задать смарт выражением или смарт-скриптом (LUA), а также установить зависимость от того языка, который установлен в профиле пользователя, выполняющего действие (пункт "Текущий пользователь"). |
ℹ️ Комментарий об изменении текста задачи генерируется только в том случае, если указан параметр "Кто меняет". Также при этом обновляется форма (карточка) задачи. Если пользователь не указан, то комментарий не создается и форма задачи не обновляется.
Изменить фактические трудозатраты¶
Меняет фактические трудозатраты
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняются плановые трудозатраты |
| Кто вносит* | 1F.User | Пользователь, от имени которого выполняется действие |
| Исполнитель сотрудник* | 1F.User | Пользователь, для которого меняются плановые трудозатраты |
| Время (мин.)* | Integer | Значение объемно-календарного плана. |
| Дата* | Date | Дата трудозатрат |
| Комментарий | String | Комментарий по вносимым трудозатратам |
| Исполнитель задача | 1F.Task | Для внешних или материальных ресурсов -- задача из категории, в которой ведется справочник нужного типа ресурсов |
Копировать значение ДП¶
Копирует значение ДП из задачи-источника в ДП задачи-приемника
| Параметр | Тип | Описание |
|---|---|---|
| Задача источник | Соответствует типу ДП Задача, в которой берется значение ДП. Если параметр не заполнен, то берется текущая задача |
|
| Доп параметр источник* | 1F.ExtParam | ДП, из которого берется значение ДП |
| Задача приемник | 1F.Task | Задача, в которой меняется значение ДП. Если параметр не заполнен, то берется текущая задача |
| Доп параметр приемник* | 1F.ExtParam | ДП, в котором меняется значение |
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Писать комментарий о смене* | Boolean | Если параметр активен, то в задаче публикуется комментарий об изменении значения ДП |
| Причина | String | Причина изменения ДП |
ℹ️ Типы ДП-источника и ДП-приемника должны совпадать, в противном случае возникнет ошибка
ℹ️ В случае, если Доп параметр источник имеет тип "Файл", значению в Доп параметре источника будет присвоен новый идентификатор файла (fileId)
Настроить чат¶
Настраивает существующий чат
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Номер чата |
| От чьего имени совершается действие | 1F.User | Пользователь, от имени которого выполняется действие. Если пользователь не указан, действие будет выполнено от лица системного робота |
| Название чата* | String | Название чата |
| Описание чата | String | Дополнительная информация о назначении или тематике чата |
| ИД страницы пространства с описанием | Integer | Идентификатор страницы пространства, в которой размещено подробное описание чата (при наличии) |
| Чат является приватным* | Boolean | Если включено, чат будет виден и доступен в поиске только подписчикам. Если опция отключена, чат станет доступен для поиска и подписки всем сотрудникам |
| Идентификатор набора обоев | Integer | Определяет фон чата. По умолчанию пользователи видят системные обои или заданные в своем профиле |
| Видны ли подписчики* | Boolean | Разрешает ли чат отображать список участников |
| Можно ли добавлять подписчиков* | Boolean | Позволяет ли участникам приглашать новых пользователей |
| Можно ли редактировать профиль чата* | Boolean | Разрешает изменение названия, описания и других параметров чата |
| Можно ли отправлять сообщения в основной канал* | Boolean | Если отключено, возможность отправки сообщений в основной канал будет недоступна |
| Можно ли прикреплять сообщения* | Boolean | Разрешает закрепление важных сообщений вверху чата |
| Можно ли создавать опросы* | Boolean | Если опция отключена, то участники не смогут создавать опросы |
| Можно ли использовать ВКС* | Boolean | Разрешает запуск видеоконференций внутри чата |
| Включены ли реакции* | Boolean | Участники могут добавлять реакции на сообщения |
| Можно ли создавать треды* | Boolean | Разрешает создание обсуждений внутри чата |
| Можно ли комментировать в треды* | Boolean | Определяет, могут ли участники отвечать внутри обсуждений |
| Включены ли вложения* | Boolean | Если опция отключена, то участники не смогут отправлять файлы |
| Можно ли создавать аудиосообщения* | Boolean | Если опция отключена, то у участников не будет кнопки "Записать и отправить аудиосообщение" |
| Тип чата | String | Тип чата. Доступные значения: Личный чат — 0, Групповой чат — 1, Канал — 2 |
Обновить папку ToDo-лист¶
Обновляет папку в ДП "Выбор нескольких задач из категории" в схеме оформления "ToDo list"
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой нужно обновить папку в ДП |
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого выполняется действие |
| Доп параметр* | 1F.ExtParam | ДП, которое нужно обновить |
| Id Папки | Integer | ID папки, которую нужно обновить |
| Имя папки | Boolean | Новое имя папки |
| Порядковый номер папки | Integer | Новый номер папки |
Очистить ДП¶
Очищает значение ДП
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой меняется значение ДП |
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Доп параметр* | 1F.ExtParam | ДП, в котором меняется значение |
| Причина | String | Причина изменения ДП |
| Не писать комментарий* | Boolean | Если параметр активен, то комментарий об изменении срока в задаче будет отправлен только автору действия |
Удалить комментарий¶
Удаляет комментарий
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Комментарий* | Integer | ID комментария, который должен быть удален |
Удалить папку ToDo-листа¶
Удаляет папку в ДП "Выбор нескольких задач из категории" в схеме оформления "ToDo list"
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой нужно удалить папку в ДП |
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого выполняется действие |
| Доп параметр* | 1F.ExtParam | ДП, в котором удаляется папка |
| Id Папки | Integer | ID папки, которую нужно удалить |
| Удалить с задачами | Boolean | Удаляет папку вместе с задачами |
Подписи¶
Добавить акцептанта подписи¶
Добавляет пользователя в число акцептантов запрошенной подписи
| Параметр | Тип | Описание |
|---|---|---|
| Добавляющий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Подпись* | 1F.Signature | 1F.RequestedSignature |
| Акцептант* | Collection<1F.User> | Один или несколько пользователей, которые будут добавлены в число акцептантов |
ℹ️ Для выбора нужной подписи можно использовать два параметра: ID и SignatureID. SignatureID соответствует идентификатору подписи в списке всех настроенных подписей в приложении "Первая Форма", а ID соответствует запрошенному экземпляру подписи RequestedSignature (например, если запрошены две подписи, то у более поздней ID будет больше).
Запросить динамическую подпись¶
Запрашивает динамическую должностную подпись в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой запрашивается подпись |
| Инициатор запроса* | 1F.User | Пользователь, от имени которого выполняется действие |
| Подпись* | 1F.Signature | Одна из настроенных в системе подписей |
| Причина | String | Причина запроса подписи |
| Время на подписание (мин.) | Integer | Время, отведенное на обработку подписи |
| Не запрашивать если эта подпись уже на подписи | Boolean | Если параметр активен, то когда данная подпись уже запрошена и еще не обработана в этой задаче, она не запрашивается повторно |
ℹ️ Действие "Запросить динамическую подпись" предназначено для запроса должностной подписи. Для запроса личной подписи используйте действие "Запросить подпись пользователей".
Запросить подпись пользователей¶
Запрашивает динамическую личную подпись в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой запрашивается подпись |
| Инициатор запроса* | 1F.User | Пользователь, от имени которого выполняется действие |
| Акцептанты* | Collection<1F.User> | Акцептанты запрашиваемой подписи |
| Причина | String | Причина запроса подписи |
| Время на подписание (мин.) | Integer | Время, отведенное на обработку подписи |
| Каждому акцептанту отдельную копию | Boolean | Если параметр активен, то у каждого акцептанта запрашивается отдельная подпись. Если параметр неактивен, то запрашивается одна подпись, и решение, вынесенное одним из акцептантов, считается их общим решением |
ℹ️ Действие "Запросить подпись пользователей" предназначено для запроса личной подписи. Для запроса должностной подписи используйте действие "Запросить динамическую подпись".
Изменить причину динамической подписи¶
Меняет причину запрошенной динамической подписи
| Параметр | Тип | Описание |
|---|---|---|
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Подпись* | 1F.Signature | 1F.RequestedSignature |
| Новая причина* | String | Новая причина подписи |
ℹ️ Для выбора нужной подписи можно использовать два параметра: ID и SignatureID. SignatureID соответствует идентификатору подписи в списке всех настроенных подписей в приложении "Первая Форма", а ID соответствует запрошенному экземпляру подписи RequestedSignature (например, если запрошены две подписи, то у более поздней ID будет больше).
Изменить срок динамической подписи¶
Меняет срок запрошенной динамической подписи
| Параметр | Тип | Описание |
|---|---|---|
| Кто меняет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Подпись* | 1F.Signature | 1F.RequestedSignature |
| Новый срок на подписание* | Integer | Новый срок на обработку подписи (в минутах) |
ℹ️ Для выбора нужной подписи можно использовать два параметра: ID и SignatureID. SignatureID соответствует идентификатору подписи в списке всех настроенных подписей в приложении "Первая Форма", а ID соответствует запрошенному экземпляру подписи RequestedSignature (например, если запрошены две подписи, то у более поздней ID будет больше).
Начать новую сессию подписания ЭЦП¶
Запускает транзакцию подписания ЭП
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой запрашивается подпись |
ℹ️ Все подписи, запрошенные в рамках одной сессии, будут относиться к одному и тому же файлу
Отозвать запрошенные подписи¶
Отзывает все запрошенные в задаче подписи
| Параметр | Тип | Описание |
|---|---|---|
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого выполняется действие |
| Задача* | 1F.Task | Задача, в которой отзываются подписи |
| Причина | String | Причина отзыва подписи |
Резолюция подписи¶
Обрабатывает запрошенную подпись
ℹ️ Действие доступно, начиная с версии 2.264 Кассиопея
| Параметр | Тип | Описание |
|---|---|---|
| Инициатор запроса* | 1F.User | Пользователь, от имени которого выполняется действие |
| Запрошенная в задаче подпись* | 1F.Signature | ID запрошенной в задаче подписи из таблицы TaskSignatures |
| Тип резолюции* | Integer | Выбор из списка решения по резолюции. Если значение рассчитывается в смарт-выражении или скрипте, его результатом должен стать ID типа резолюции (в базе данных список типов резолюций хранится в таблице SignatureResolutionTypes) |
| Причина | String | Причина отклонения подписи при отрицательном решении |
| Акцептанты | Collection<1F.User> | Один или несколько пользователей, которые будут добавлены в число акцептантов |
Удалить запрошенную подпись¶
Удаляет запрошенную подпись
| Параметр | Тип | Описание |
|---|---|---|
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого выполняется действие |
| Идентификатор подписи в задаче* | 1F.RequestedSignature | Запрошенная в задаче подпись |
| Причина | String | Причина отзыва подписи |
ℹ️ Необходимо указывать не ID подписи в списке настроенных в системе подписей, а именно ID запрошенной подписи в задаче
Орг.структура, группы, пользователи¶
Восстановить уволенного пользователя¶
Восстанавливает уволенного ранее пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Восстанавливающий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Восстанавливаемый* | Collection<1F.User> | Пользователи, которые восстанавливаются |
ℹ️ При добавлении пользователя в группу, связанную с орг. единицей, пользователь будет автоматически добавлен в эту орг. единицу
Выдать пользователю лицензию¶
Выдает пользователю лицензию для работы с указанным модулем
| Параметр | Тип | Описание |
|---|---|---|
| Выдающий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Для пользователя* | Collection<1F.User> | Пользователи, которым выдаются лицензии Модуль* Возможные значения: - Первая Форма - CRM - Личные кабинеты |
ℹ️ При выдаче лицензии "Первая Форма" автоматически выдается лицензия "Личные кабинеты"
Добавить пользователей в группы¶
Добавляет пользователей в группы
| Параметр | Тип | Описание |
|---|---|---|
| Пользователи* | Collection<1F.User> | Пользователи, которые добавляются в группы |
| Группы* | Collection<1F.UserGroup> | Группы, в которые добавляются пользователи |
| Добавляющий | 1F.User | Пользователь, от имени которого выполняется действие |
ℹ️ При добавлении пользователя в группу, связанную с орг. единицей, пользователь будет автоматически добавлен в эту орг. единицу
Добавить пользователя в орг. структуру¶
Добавляет пользователя в орг. единицу
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, который добавляется в орг. единицу |
| Добавляющий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Орг. единица* | 1F.OrgStructureUnit | Орг. единица, в которую добавляется пользователь |
| Устанавить орг.единицу в качестве основной | Boolean | Если параметр активен, то орг.единица будет установлена в качестве основной |
ℹ️ Если у пользователя это единственная орг.единица, то после добавления она устанавливается по умолчанию как основная, даже если чек-бокс не выбран.
ℹ️ В случае, если у пользователя уже есть основная орг.единица, тогда необходимо менять текущую основную на новую (которая добавляется с помощью смарт-действия).
ℹ️ При добавлении пользователя в орг. единицу пользователь будет автоматически добавлен в группу, связанную с этой эту орг. единицей (если такая есть)
Изменить орг.единицу¶
Изменяет орг.единицу
| Параметр | Тип | Описание |
|---|---|---|
| ID орг. единицы* | 1F.OrgStructureUnit | Орг. единица, которую нужно изменить |
| Имя орг единицы | String | Имя изменяемой орг. единицы |
| Тип орг единицы | String | ID типа изменяемой орг. единицы |
| Родительская орг единица | String | ID родительской орг.единицы |
| Связанная группа | String | ID связанной группы. Если у орг.единицы уже существует связанная группа и в параметре не задано значение, то связь будет не разорвана, для удаления связи с группой воспользуйтесь параметром Разорвать связь с группой. |
| Актуальный | Boolean | Если параметр включен, то изменяемая орг. единица отображается в пользовательском интерфейсе и доступна для выбора в профиле пользователя |
| Не показывать в орг. структуре | Boolean | Не отображать изменяемый элемент в орг. структуре в пользовательском интерфейсе. Корневая орг.структура с активной опцией не будет отображаться в списке доступных для выбора орг.структур в пользовательском интерфейсе |
| Руководитель | Boolean | Отображается только для должностей. Если параметр включен, то должность считается руководящей для родительской орг. единицы. |
| Функциональная единица | Boolean | Функциональный способ организации включения должностей в организационную структуру компании: несколько должностей могут быть объединены в функциональную единицу по определенному признаку. К функциональной единице необходимо добавить должности в блоке "Должности", расположенном справа. Если опция неактивна, используется организационный способ: одна должность может назначаться нескольким сотрудникам из разных подразделений. |
| Не показывать в информации о пользователе | Boolean | Если параметр включен, то информация о пользователе, принадлежащем данной орг. единице, не будет отображаться |
| Является коммерческой информацией | Boolean | Если параметр включен, то информация об орг. единице будет доступна только тем группам пользователей, которые обладают правом видеть коммерческую информацию |
| Примечание | String | Текст, который будет выведен в пользовательском интерфейсе для изменяемой орг.единицы |
| Комментарий | String | Служебный текст, отображается только в интерфейсе администрирования для изменяемой орг.единицы |
| Разорвать связь с группой | Boolean | Если параметр активен, будет разорвана связь орг.единицы со связанной группой |
Изменить расширенное свойство пользователя¶
Изменяет расширенное свойство пользователя
| Параметр | Тип | Описание |
|---|---|---|
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого выполняется действие |
| Для кого будет проводиться обновление* | 1F.User | Пользователь, для которого обновляется расширенное свойство |
| Обновляемое свойство (имя ключа)* | String | Имя ключа Новое значение* Соответствует типу ключа Новое значение свойства |
ℹ️ О расширенных свойствах пользователя можно прочитать в Руководстве администратора в карточке пользователя
Обновить пользователя¶
Обновляет карточку пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Кто обновляет пользователя* | 1F.User | Пользователь, от имени которого выполняется действие |
| Пользователь* | 1F.User | Пользователь, чьи параметры обновляются |
| Email* | String | Корпоративный почтовый адрес |
| Внешний email | String | Внешний почтовый адрес |
| Логин* | String | Логин |
| Фамилия* | String | Фамилия |
| Имя | String | Имя |
| Отчество | String | Отчество |
| Дата рождения | Date | Дата рождения |
| Отображаемое имя* | String | Имя, которое будет отображаться в системе (можно указать псевдоним) |
| В компании с | Date | Дата начала работы сотрудника в компании |
| Пол | Boolean | Если параметр активен, то пол мужской, если НЕ включен — женский |
| Язык* | Integer | ID языка |
| Сменить пароль при входе* | Boolean | Если параметр активен, то при входе в систему пользователь должен будет сменить пароль |
| Не присылать почтовые сообщения* | Boolean | Если параметр активен, то пользователю не будут отправляться почтовые сообщения |
| Пароль | String | Пароль |
| SID | String | SID |
| Может редактировать блок Рабочее* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "Рабочее" |
| Может редактировать блок География* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "География" |
| Может редактировать блок Контакты* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "Контакты" |
| Сотрудник компании* | Boolean | Если параметр активен, то пользователь является сотрудником компании, если НЕ включен — это внешний пользователь |
| Синхронизировать календарь с Exchange* | Boolean | Если параметр активен, то календарь пользователя в "Первой Форме" будет синхронизироваться в календарем в Exchange |
| Автоматически прочитывать комментарии при завершении задачи* | Boolean | Если параметр активен, то при завершении задачи все непрочитанные комментарии помечаются как прочитанные Лицензии Возможные значения: - Отметить все - Первая Форма - CRM - Личные кабинеты - Почтовые ящики |
| SIP | String | Короткий номер телефона (при интеграции с офисной АТС) |
| Рабочий телефон | String | Номер рабочего телефона |
| Мобильный телефон | String | Номер мобильного телефона |
| Страна | String | Страна |
| Город | String | Город Часовой пояс Часовой пояс |
| Домен пользователя | String | Домен пользователя |
| Не отправлять смс | Boolean | Если параметр активен, то пользователю не будут отправляться СМС |
Синхронизировать пользователя с ActiveDirectory¶
Создает или обновляет карточку пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Синхронизируемый пользователь |
| Синхронизация | String | ID настроек синхронизации |
ℹ️ Если в смарт-действии указаны настройки синхронизации, то они имеют приоритет над настройками провайдера, указанного в профиле пользователя.
Если настройки синхронизации в смарт-действии указаны: - если пользователь уже синхронизирован с AD (в профиле указаны провайдер и SID) и в профиле указан тот же провайдер аутентификации, к которому относятся настройки из смарт-действия, то параметры пользователя обновляются согласно настройкам синхронизации; - если пользователь уже синхронизирован с AD (в профиле указаны провайдер и SID), но в профиле указан другой провайдер аутентификации (т.е. указанные в смарт-действии настройки синхронизации к нему не относятся), тогда система игнорирует провайдера, указанного в профиле пользователя, и пробует синхронизировать пользователя по настройкам, указанным в смарт-действии. Если пользователь найден, то его параметры обновляются, если не найден — в журнале фиксируется ошибка о том, что пользователь не найден; - если пользователь не синхронизирован с AD (в профиле пользователя нет провайдера аутентификации и нет SID), то система пробует синхронизировать его согласно указанным настройкам синхронизации. Если система находит пользователя в AD, то записывает в его профиль провайдера аутентификации и SID, а если не находит — в журнале фиксируется ошибка о том, что пользователь не найден.
Если настройки синхронизации в смарт-действии НЕ указаны: - если пользователь уже синхронизирован с AD (в профиле есть провайдер аутентификации и SID), то параметры пользователя обновляются согласно настройкам синхронизации для данного провайдера; - если в профиле пользователя есть провайдер аутентификации, но нет SID, то система пробует синхронизировать пользователя по настройкам провайдера, указанного в его профиле. Если пользователь найден, то его параметры обновляются, если не найден — в журнале фиксируется ошибка о том, что пользователь не найден. - если в профиле пользователя нет провайдера аутентификации — в журнале фиксируется ошибка о том, что параметры синхронизации не заданы.
Для каждого сервиса может быть только один активный провайдер аутентификации и одна активная настройка синхронизации. Иначе сопоставить провайдера и настройку невозможно.
Создать группу¶
Создает новую группу пользователей
| Параметр | Тип | Описание |
|---|---|---|
| Наименование* | String | Наименование создаваемой группы |
| Тип группы* | String | ID типа создаваемой группы (см. Типы групп) |
Создать орг.единицу¶
Создает новую орг.единицу
| Параметр | Тип | Описание |
|---|---|---|
| Имя орг единицы* | String | Наименование единицы орг. единицы |
| Тип орг единицы* | String | ID типа создаваемой орг. единицы |
| Родительская орг единица | String | ID родительской орг. единицы для создаваемой |
Создать пользователя¶
Создает карточку нового пользователя
| Параметр | Тип | Описание |
|---|---|---|
| ID орг. единицы* | 1F.OrgStructureUnit | Орг. единица, в которую добавляется пользователь |
| Email* | String | Корпоративный почтовый адрес |
| Внешний email | String | Внешний почтовый адрес |
| Логин* | String | Логин |
| Фамилия* | String | Фамилия |
| Имя | String | Имя |
| Отчество | String | Отчество |
| Дата рождения | Date | Дата рождения |
| Отображаемое имя* | String | Имя, которое будет отображаться в системе (можно указать псевдоним) |
| В компании с | Date | Дата начала работы сотрудника в компании |
| Пол | Boolean | Если параметр активен, то пол мужской, если НЕ включен — женский |
| Язык* | Integer | ID языка |
| Сменить пароль при входе* | Boolean | Если параметр активен, то при входе в систему пользователь должен будет сменить пароль |
| Не присылать почтовые сообщения* | Boolean | Если параметр активен, то пользователю не будут отправляться почтовые сообщения |
| Пароль | String | Пароль |
| SID | String | SID |
| Может редактировать блок Рабочее* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "Рабочее" |
| Может редактировать блок География* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "География" |
| Может редактировать блок Контакты* | Boolean | Если параметр активен, то пользователь имеет право редактировать в своем профиле блок "Контакты" |
| Сотрудник компании* | Boolean | Если параметр активен, то пользователь является сотрудником компании, если НЕ включен — это внешний пользователь |
| Синхронизировать календарь с Exchange* | Boolean | Если параметр активен, то календарь пользователя в "Первой Форме" будет синхронизироваться в календарем в Exchange |
| Автоматически прочитывать комментарии при завершении задачи* | Boolean | Если параметр активен, то при завершении задачи все непрочитанные комментарии помечаются как прочитанные Лицензии Возможные значения: - Отметить все - Первая Форма - CRM - Личные кабинеты - Почтовые ящики |
| SIP | String | Короткий номер телефона (при интеграции с офисной АТС) |
| Рабочий телефон | String | Номер рабочего телефона |
| Мобильный телефон | String | Номер мобильного телефона |
| Страна | String | Страна |
| Город | String | Город Часовой пояс Часовой пояс |
| Домен пользователя | String | Домен пользователя |
| Не отправлять смс | Boolean | Если параметр активен, то пользователю не будут отправляться СМС |
| Возвращает | 1F.User | Созданный пользователь |
Уволить пользователя¶
Выполняет процедуру увольнения пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Увольняющий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Увольняемый* | 1F.User | Пользователь, которого увольняют |
| Пометить как уволенного* | Boolean | Если параметр активен, то пользователь будет отмечен как уволенный |
| Удалить из групп* | Boolean | Если параметр активен, то пользователь будет удален из всех групп |
| Удалить все уведомления* | Boolean | Если параметр активен, то для пользователя будут сброшены все уведомления |
| Удалить из подписчиков активных задач* | Boolean | Если параметр активен, то пользователь будет удален из подписчиков всех активных задач |
| Удалить из акцептантов активных подписей* | Boolean | Если параметр активен, то пользователь будет удален из акцептантов всех активных подписей |
| Удалить из исполнителей активных задач* | Boolean | Если параметр активен, то пользователь будет удален из исполнителей всех активных задач |
| Удалить из ролей* | Boolean | Если параметр активен, то пользователь будет удален из участников всех ролей |
| Назначить исполнителем вместо увольняемого | 1F.User | Указанный пользователь будет назначен исполнителем вместо увольняемого пользователя |
| Назначить заказчиком в задачи увольняемого | 1F.User | Указанный пользователь будет назначен заказчиком вместо увольняемого пользователя |
| Заменить увольняемого в ролях на | 1F.User | Указанный пользователь будет назначен на роли вместо увольняемого пользователя |
| Заменить увольняемого в подписях на | 1F.User | Указанный пользователь будет назначен акцптантом вместо увольняемого пользователя |
| Игнорировать отмену в смарт-автоматизации | Boolean | Если параметр активен, то при выполнении смарт-автоматизаций в задачах (при изменении исполнителя, заказчика или акцептанта) будет игнорироваться действие "Отменить" |
| Удалить из орг. единиц | Boolean | Если параметр активен, то пользователь будет удален из участников всех орг. единиц |
Удалить заместителя¶
Убирает пользователя из числа заместителей
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет* | 1F.User | Пользователь, от имени которого выполняется действие |
| Заместитель* | 1F.User | Пользователь, который ранее был назначен заместителем |
| Замещаемый* | 1F.User | Пользователь, для которого был ранее назначен заместитель |
| С | DateTime | Дата и время начала периода замещения |
| По | DateTime | Дата и время окончания периода замещения |
Удалить лицензию пользователя¶
Удаляет у пользователей лицензию для работы с указанным модулем
| Параметр | Тип | Описание |
|---|---|---|
| Удаляющий* | 1F.User | Пользователь, от имени которого выполняется действие |
| Для пользователя* | Collection<1F.User> | Пользователи, у которых удаляются лицензии Модуль* Возможные значения: - Первая Форма - CRM - Личные кабинеты - Почтовые ящики |
ℹ️ При удалении лицензии "Первая Форма" автоматически удаляется лицензия "Личные кабинеты"
Удалить орг. единицу¶
Удаляет орг.единицу
ℹ️ При удалении родительской орг.единицы будут удалены все ее дочерние элементы
| Параметр | Тип | Описание |
|---|---|---|
| ID орг. единицы* | 1F.OrgStructureUnit | ID орг. единицы, которая будет удалена |
Удалить пользователей из групп¶
Удаляет пользователей из указанных групп
| Параметр | Тип | Описание |
|---|---|---|
| Пользователи* | Collection<1F.User> | Один или несколько пользователей, которые будут удалены из групп |
| Группы* | Collection<1F.UserGroup> | Одна или несколько групп, из которых удаляются пользователи |
| Кто удаляет* | 1F.User | Кто удаляет |
ℹ️ Нельзя удалять пользователя из группы, связанной с орг. единицей. При этом возникает ошибка
Удалить пользователя из орг. единицы¶
Удаляет пользователя из указанной орг. единицы
| Параметр | Тип | Описание |
|---|---|---|
| Удаляемые пользователи* | Collection<1F.User> | Один или несколько пользователей, которые будут удалены из орг. единицы |
| Орг. единицы* | Collection<1F.OrgStructureUnit> | Одна или несколько орг. единиц, из которых удаляются пользователи\ (в формате \unit_id1,unit_id2,...) |
| Кто удаляет* | 1F.User | Кто удаляет |
ℹ️ Если у пользователя, осуществляющего удаление, не достаточно прав, то действие не выполняется, ошибка регистрируется в журнале ошибок
ℹ️ Если удаляемых пользователей нет в указанных орг. единицах, ошибка не генерируется
Файлы
Архивировать файлы¶
Архивирует файлы из Диска (файлового хранилища) и вкладывает архив в ДП или в задачу
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User | Пользователь, от имени которого выполняется действие |
| Файлы* | 1F.Files | Файлы, которые будут вложены в архив. Параметр может принимать фиксированное значение или выбираться динамически, с помощью смарт-выражения |
| Задача | 1F.Task | Задача, в которую вкладывается файл |
| Доп параметр | Integer | ID ДП, в который вкладывается файл. Если не указан, то файл вкладывается в указанную задачу |
| Название архива* | Integer | Название файла (расширение zip будет добавлено автоматически) |
| Возвращает | 1F.File | Созданный файл с архивом |
Вложить в задачу письмо с указанным ИД¶
Вложить в задачу письмо с указанным ИД (возвращает TCClassLib.Smart.Actions.FileFromLibrary). Позволяет вкладывать письмо в задачу, используя только EmailId (хранится в таблице базы данных dbo.Emails)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которую вкладывается письмо |
| ИД письма* | String | EmailId. Хранится в таблице базы данных dbo.Emails. Письмо будет вложено в задачу как файл в формате .eml |
| Кто привязывает* | 1F.User | Пользователь, от имени которого выполняется действие |
Вложить письмо в задачу¶
Вложить пиьсмо в задачу
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которую вкладывается письмо |
| ИД почтового ящика* | String | Идентификатор почтового ящика (MailBoxId) во встроенном почтовом клиенте |
| Название папки* | String | Название папки (MailFolderName), в которой находится письмо |
| ИД письма* | String | Идентификатор письма (InternetMessageId) во встроенном почтовом клиенте. Оно будет вложено в задачу как файл в формате .eml |
| Кто привязывает* | 1F.User | Пользователь, от имени которого выполняется действие |
Вложить файл¶
Вложить файл в задачу
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которую вкладывается файл |
| Кто вкладывает* | 1F.User | Пользователь, от имени которого выполняется действие |
| Файл | 1F.File | Имя вкладываемого файла. Оно может принимать фиксированное значение (и тогда во все задачи будет вкладываться один и тот же файл). Но на практике имя файла обычно формируется динамически, с помощью смарт-выражения. Опционально файл может быть передан через бинарное представление — в таком случае вместо парметра Файл требуется заполнить Base64 содержимое файла. |
| Описание | String | Комментарий к действию |
| Создать новый файл | Boolean | Если параметр активен, то и при первоначальной загрузке, и при замене файла будет создаваться новый файл. В объекте "Связи файлов с задачами" будет создаваться ссылка на новый файл. Если параметр неактивен, то при замене файла в объекте "Связи файлов с задачами" будет обновляться ссылка на этот файл. В этом случае файл окажется замененным во всех задачах, где он был вложен. |
| Не писать комментарий | Boolean | Если параметр активен, то при вложении файла системный комментарий будет отправлен только автору действия |
| Base64 содержимое файла | String | Контент файла в Base64 — бинарное представление содержимого файла в виде строки символов, закодированной по стандарту Base64 |
| Новое имя файла | String | Название файла. Поле заполняется, если файл передается в виде Base64-контента |
| Id предзагруженного файла | Integer | ID файла из таблицы базы данных PreUploadedOnPostTaskFiles. Поле заполняется, если нужно вложить в задачу предзагруженный файл |
ℹ️ Вложить можно только последнюю, актуальную версию файла (если вкладывается файл из ДП или из задачи, для которого в "Первой Форме" хранится история версий)
Вложить файл в ДП¶
Вложить файл в ДП
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которую вкладывается файл |
| От чьего имени вкладывается файл* | 1F.User | Пользователь, от имени которого выполняется действие |
| Целевой ДП* | Integer | ID ДП, в который вкладывается файл |
| Файл | 1F.File | Имя вкладываемого файла. Оно может принимать фиксированное значение (и тогда во все задачи будет вкладываться один и тот же файл). Но на практике имя файла обычно формируется динамически, с помощью смарт-выражения Опционально файл может быть передан через бинарное представление — в таком случае вместо парметра Файл требуется заполнить Base64 содержимое файла. |
| Комментарий | String | Комментарий к действию |
| Не писать комментарий | Boolean | Если параметр активен, то при вложении файла системный комментарий будет отправлен только автору действия |
| Создать новый файл | Boolean | Создание копии файла. Если параметр неактивен (значение по умолчанию) будет вложен указанный файл. Если параметр активен, то для вложения будет создана копия файла. |
| Base64 содержимое файла | String | Контент файла в Base64 — бинарное представление содержимого файла в виде строки символов, закодированной по стандарту Base64 |
| Новое имя файла | String | Название файла. Поле заполняется, если файл передается в виде Base64-контента |
| Id предзагруженного файла | Integer | ID файла из таблицы базы данных PreUploadedOnPostTaskFiles. Поле заполняется, если нужно вложить в ДП предзагруженный файл |
ℹ️ Вложить можно только последнюю, актуальную версию файла (если вкладывается файл из ДП или из задачи, для которого в "Первой Форме" хранится история версий)
ℹ️ Смарт-действие не влияет на изменение идентификатора вкладываемого файла (fileId)
Вложить файл на Диск (Файловое хранилище)¶
Вложить файл на Диск (Файловое хранилище)
ℹ️ Действие доступно, начиная с версии 2.263 Скорпион
| Параметр | Тип | Описание |
|---|---|---|
| Кто вкладывает* | 1F.User | Пользователь, от имени которого выполняется действие |
| Base64 содержимое файла* | String | Контент файла в Base64 — бинарное представление содержимого файла в виде строки символов, закодированной по стандарту Base64 |
| Новое имя файла* | String | Название файла |
| ClientId папки | String | Значение задается в формате ТипПапки:IdПапки, к примеру: PublicFolder:3293 Тип и ID папки доступны в Url-адресе папки диска: |
Выгрузить файл¶
Выгрузить файл в папку с общим доступом
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл, который выгружается в папку |
| Путь к файлу* | String | Полный адрес папки |
ℹ️ Выгрузить можно только один файл
ℹ️ При работе кластера серверов поддерживается выгрузка только в сетевую папку
ℹ️ Действие будет выполнено от имени учетной записи на сервере, под которой работает "Первая Форма". Эта учетная запись должна иметь право записывать файл в указанную папку. Если доступ к папке выдан на всех пользователей, то пул приложения может быть запущен от имени LocalSystem. Если доступ к папке выдан на конкретных пользователей, то пул приложения должен быть запущен от имени пользователя, который является владельцем папки (настройку пула приложения см. в Руководстве по техподдержке).
Добавить метаданные к файлу¶
Добавляет дополнительную информацию к файлу в Диске (файловом хранилище)
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл в Диске |
| Ключ* | String | Название метаданных (произвольное) |
| Значение* | String | Значение метаданных (произвольное) |
Импорт excel файла в таблицу БД¶
Импортирует данные из excel-файла в таблицу БД
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Идентификатор excel-файла, который необходимо импортировать. Параметр может принимать фиксированное значение или выбираться динамически, с помощью смарт-выражения. Чтобы выбрать файл из ДП, надо в смарт-выражении указывать %ИмяДП%.ExtParamLinks |
| Таблица БД* | String | Название таблицы в БД Формат файла таблицы Выпадающий список для выбора формата файла: - OpenXml - Xls - Xlsx - Csv |
| Создать таблицу в БД* | Boolean | Eсли параметр включен, то будет создана новая таблица БД при условии, что такой таблицы не существует |
| Название колонки для taskId | String | Колонка в таблице БД с типом int, в которую будет записан номер контекстной задачи, из которой осуществляется загрузка Excel |
ℹ️ При повторном использовании смарт-действия данные из файла будут не перезаписаны, а дозаписаны в таблицу БД.
Названия колонок в первой строке файла должны совпадать с названием колонок в таблице БД. Если колонка excel не найдена в таблице БД, то при импорте она будет пропущена.
Конвертировать файл¶
Конвертирует файл из одного формата в другой
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User | Пользователь, от имени которого выполняется действие |
| Файл* | 1F.File | Параметр может принимать фиксированное значение или выбираться динамически, с помощью смарт-выражения. Чтобы выбрать файл из ДП, надо в смарт-выражении указывать %ИмяДП%.ExtParamLinks |
| Формат* | Для преобразования документов в приложении используются конвертеры — они отвечают за то, чтобы содержимое файла (шрифты, разметка, изображения) правильно отображалось при смене формата, например, из .docx в .pdf. В параметре задаются выпадающие списки для исходного и целевого форматов. Исходные форматы: docx, doc (Устаревшее, не используется). Целевые форматы: docx, rtf, txt, epub, xml, html, odt. Выбрать конвертер по умолчанию (Devexpress, SautinSoft или Aspose) для файлов с расширением pdf можно с помощью кастомной настройки приложения DefaultConverterPdf. Если настройка не задана, то проверяется ключ UseDevexpressDocToPdfConverter в системном файле appsettings.json. Если в системе не задан ни ключ UseDevexpressDocToPdfConverter (или задан в значении false), ни настройка DefaultConverterPdf, то по умолчанию используется конвертер SautinSoft. Лицензионный ключ SautinSoft хранится в кастомной настройке SautinSoftLicenseKey | |
| Возвращает | 1F.File | Созданный файл |
ℹ️ Исходный файл может быть взят только из Диска (файлового хранилища)
ℹ️ Созданный файл возвращается в параметре и должен быть обработан (вложен в ДП или в задачу) следующими действиями того же смарт-пакета
Конвертировать файл в pdf¶
Конвертирует файл в формат PDF
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User | Пользователь, от имени которого выполняется действие |
| ID задачи* | 1F.Task | Задача, в которую вложен файл |
| Файл* | 1F.File | Параметр может принимать фиксированное значение, и тогда во все задачи будет вкладываться один и тот же файл. Но на практике файл обычно выбирается динамически, с помощью смарт-выражения. Чтобы выбрать файл из ДП, надо в смарт-выражении указывать %ИмяДП%.ExtParamLinks |
| Защита файла* | Integer | Возможные значения: - 0 — нет защиты - 1 — защита от чтения - 2 — защита от записи (в тестовом режиме) |
| Пароль* | String | Пароль для защищенного файла |
| Целевой ДП | 1F.ExtParam | ДП, в который будет вложен файл PDF. Если ДП не указан, то файл будет вложен в задачу |
| PDF-A | Boolean | Eсли флажок включен, то файл будет сконвертирован в формат pdf-a |
ℹ️ Исходный файл может быть взят только из Диска (файлового хранилища) и должен быть формата doc, docx или pptx. В режиме тестового использования возможно конвертирование из файлов форматов png, html, xlsx, xls, bmp, png, jpg, tiff, а также защита полученного файла от записи
Для преобразования документов в приложении используются конвертеры — они отвечают за то, чтобы содержимое файла (шрифты, разметка, изображения) правильно отображалось при смене формата, например, из .docx в .pdf.
Выбрать конвертер по умолчанию (Devexpress, SautinSoft или Aspose) для файлов с расширением pdf можно с помощью кастомной настройки приложения DefaultConverterPdf.
Если настройка не задана, то проверяется ключ UseDevexpressDocToPdfConverter в системном файле appsettings.json. Если в системе не задан ни ключ UseDevexpressDocToPdfConverter (или задан в значении false), ни настройка DefaultConverterPdf, то по умолчанию используется конвертер SautinSoft
Лицензионный ключ SautinSoft хранится в кастомной настройке SautinSoftLicenseKey.
Наложить изображение на документ¶
Накладывает изображение поверх печатного документа
| Параметр | Тип | Описание |
|---|---|---|
| Тип документа* | String | Возможные значения: - docx |
| Исходный документ* | 1F.File | Файлы, которые должны быть объединены |
| Изображение* | 1F.File | Задача, в которую будет вложен файлы |
| Страницы* | String | Возможные значения: - На каждой странице - На титульной странице - На последней странице |
| Расположение* | String | Возможные значения: - Левый верхний угол - Правый верхний угол - Левый нижний угол - Правый нижний угол |
| Возвращает | 1F.File | Ссылка на созданный файл — строку вида |
ℹ️ Используется для добавления печатей и факсимиле
ℹ️ Данный функционал не кроссплатформенный! Не работает в Linux
Объединить два docx файла (устаревшее, не используется)¶
Сравнивает и объединяет два файла Word
| Параметр | Тип | Описание |
|---|---|---|
| Файл1* | 1F.File | В параметрах "Файл1" и "Файл2" можно указать либо конкретный файл (из файловой системы), либо смарт-выражение, которое вернет ссылку на файл, вложенный в задачу или в ДП. Чтобы получить ссылку на конкретную версию файла, в смарт-выражении можно использовать строку вида FileID.VersionID |
| Файл2* | 1F.File | Режим объединения* Возможные значения (аналог режимов сравнения двух файлов в Word): - Compare — сравнение двух версий документа (изменения из Файла2 будут внесены в текст Файла1 и помечены как исправления) - Merge — объединение исправлений от нескольких авторов в одном документе |
| Название нового файла | String | Название объединенного файла. При создании файла к этому имени автоматически добавляется расширение docx |
| Возвращает | 1F.File | Ссылка на созданный файл — строку вида |
ℹ️ Это смарт-действие имеет смысл использовать для сравнения двух версий одного и того же документа
Объединить файлы¶
Объединяет содержимое файлов в один файл, добавляя последовательно в конец
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User | Пользователь, от имени которого выполняется действие |
| Файлы* | Collection<1F.File> | Файлы, которые должны быть объединены |
| Задача | 1F.Task | Задача, в которую будет вложен файлы |
| Доп параметр | 1F.ExtParam | ДП, в который будет вложен объединенный файл. Если ДП не указан, файл вкладывается в задачу |
| Название нового файла | String | Название объединенного файла |
| Тип файлов* | String | Возможные значения: - docx - pptx |
| Возвращает | 1F.File | Ссылка на созданный файл — строку вида |
ℹ️ Данный функционал не кроссплатформенный! Не работает в Linux
Отклонить правки, внесенные пользователями¶
Отклоняет правки, внесенные в файл Word
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл с правками. Можно указать либо конкретный файл (из файловой системы), либо смарт-выражение, которое вернет ссылку на файл, вложенный в задачу или в ДП. Чтобы получить ссылку на конкретную версию файла, в смарт-выражении можно использовать строку вида FileID.VersionID |
| Авторы | String | Список имен пользователей, вносивших правки в файл. |
| Не создавать новую версию файла | Boolean | Если параметр активен, то правки отклоняются в исходном файле. Если параметр неактивен, то создается новая версия файла без правок |
Пользователи, вносившие правки¶
Возвращает список имен пользователей, вносивших правки в файл Word
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл с правками. Можно указать либо конкретный файл (из файловой системы), либо смарт-выражение, которое вернет ссылку на файл, вложенный в задачу или в ДП. Чтобы получить ссылку на конкретную версию файла, в смарт-выражении можно использовать строку вида FileID.VersionID |
ℹ️ Используются строковые имена, отображаемые в Word. Они могут не соответствовать именам пользователей в "Первой Форме"
Принять правки, внесенные пользователями¶
Принимает правки, внесенные в файл docx
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл с правками в формате docx. Можно указать либо конкретный файл (из файловой системы), либо смарт-выражение, которое вернет ссылку на файл, вложенный в задачу или в ДП. Чтобы получить ссылку на конкретную версию файла, в смарт-выражении можно использовать строку вида FileID.VersionID |
| Авторы | String | Список имен пользователей, вносивших правки в файл. |
| Не создавать новую версию файла | Boolean | Если параметр активен, то правки принимаются в исходном файле; Если параметр неактивен, то создается новая версия файла с принятыми правками |
| От чьего имени совершается действие | 1F.User | Пользователь, от имени которого выполняется действие. |
ℹ️ Если указан служебный пользователь systemrobot, то все ограничения доступа игнорируются; для остальных пользователей проверяются права доступа (к категории, к ДП, по статусу и пр.)"
Разобрать файл по шаблону¶
Извлекает значения из файла и заносит их в соответствующие ДП.
С помощью смарт-действия можно, к примеру, обновить значения ДП Таблица из Excel-файла. При этом для существующей или новой таблицы выполняется импорт значений ячеек из указанного диапазона и листа Excel-файла с сохранением формул и форматирования. При создании новой таблицы названия колонок формируются из строки заголовка указанного диапазона или автоматически генерируются при ее отсутствии.
Права на выполнение операции имеют: администраторы категории, администраторы модуля (для модульных категорий) и глобальные администраторы системы.
Ограничения реализации¶
1. Не поддерживаются ссылки в формулах на ячейки за пределами импортируемого диапазона
2. Не поддерживаются ссылки в формулах на другие листы Excel-файла
3. Не поддерживается работа с объединенными ячейками
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой заполняются ДП |
| От чьего имени заполняются ДП* | 1F.User | Пользователь, от имени которого выполняется действие |
| ДП с файлом для разбора* | 1F.ExtParam | ДП "Файл", в котором содержится файл xls со значениями |
| ID шаблона | String | ID шаблона |
Связать файловую папку с задачей¶
Связывает файловую папку с задачей
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой заполняются ДП |
| Путь к папке* | String | Путь к папке в Диске (файловом хранилище). Файлы для автоматизаций не должны создаваться в разделе Общие файлы. Используйте папку Файлы автоматизации. Пример: AutomationFolder\{Имя_целевой_папки}\ |
| Связать вложенные файлы в задаче с папкой Диска | Boolean | Если параметр активен, то файлы, вложенные в задачу, помещаются в связанную папку |
| Выдать права на родительские папки Диска | Boolean | Если параметр активен, то вместе с правами на данную папку подписчиками задачи выдаются также права на родительские папки |
ℹ️ Подробнее связь папки Диска (файлового хранилища) с задачей описана здесь
Сгенерировать файл по шаблону¶
Генерирует по шаблону файлы docx, txt, pdf, html, xml
| Параметр | Тип | Описание |
|---|---|---|
| От чьего имени файл вкладывается* | 1F.User | Пользователь, от имени которого выполняется действие. |
| Имя целевого файла* | String | Имя создаваемого файла |
| Целевой ДП | 1F.ExtParam | Если ДП указан, то созданный файл вкладывается в него; если ДП не указан -- то в задачу |
| ID шаблона | String | Указывается или ID шаблона, или ДП, из которого брать шаблон. ID шаблона можно посмотреть на странице настроек категории Шаблоны файлов. если значение этого параметра равно -1, то будет использоваться последний шаблон, созданный в категории |
| ДП, из которого брать шаблон | 1F.ExtParam | |
| Обрабатывать шаблон как docx документ | Boolean | Если параметр активен, то шаблон формируется в формате docx, если выключен — то в формате XML |
| Конвертировать файл в | Integer | Для преобразования документов в приложении используются конвертеры — они отвечают за то, чтобы содержимое файла (шрифты, разметка, изображения) правильно отображалось при смене формата, например, из .docx в .pdf. Возможные значения: - не конвертировать - docx - pdf-a - html - txt Выбрать конвертер по умолчанию (Devexpress, SautinSoft или Aspose) для файлов с расширением pdf можно с помощью кастомной настройки приложения DefaultConverterPdf. Если настройка не задана, то проверяется ключ UseDevexpressDocToPdfConverter в системном файле appsettings.json. Если в системе не задан ни ключ UseDevexpressDocToPdfConverter (или задан в значении false), ни настройка DefaultConverterPdf, то по умолчанию используется конвертер SautinSoft |
| Задача - источник шаблона | Integer | Определяет, из какой задачи будет взят файл-шаблон для генерации нового файла в смарт-действии. По умолчанию выбрана текущая задача |
Сгенерировать QR-код¶
Генерирует QR-код в формате png. На выходе получает base64-строку для прямого использования в img. Действует ограничение текста в 4200 символов: если текст пустой или превышает 4200 символов, возникнет ошибка 400 "Недопустимый контент".
| Параметр | Тип | Описание |
|---|---|---|
| Данные | String | Данные для формирования QR-кода |
| Ширина | Integer | Размер изображения QR-кода по горизонтали в px. По умолчанию 400px |
| Высота | Integer | Размер изображения QR-кода по вертикали в px. По умолчанию 400px |
| Цвет (HEX) | String | Цвет QR-кода в формате HEX. По умолчанию черный |
| Цвет фона (HEX) | String | Цвет фона за QR-кодом в формате HEX. По умолчанию белый |
Скачать файл¶
Скачивает файл и вкладывает его в ДП или в задачу
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой содержится файл |
| От чьего имени файл вкладывается* | 1F.User | Пользователь, от имени которого выполняется действие |
| Целевой ДП | 1F.ExtParam | ДП, в который вкладывается файл. Если ДП не указан, файл вкладывается в задачу |
| Ссылка на файл* | String | Строка с адресом расположения файла. Это может быть глобальная ссылка (например, https://docs.google.com/document/d/123456789) или локальная (например, C:\Folder\page.pdf). Локальные ссылки относятся не к ПК пользователя, который запускает смарт-действие, а к веб-серверу, на котором развернута "Первая Форма" (если веб-серверов несколько, то ссылка относится к главному серверу) |
| Комментарий | String | Комментарий |
| Скачать несколько файлов | Boolean | Если параметр активен, то в поле "Ссылка на файл" можно указать путь к папке, тогда будут скачаны все файлы из этой папки (отфильтрованные по маске и датам, если эти ограничения заданы). Обрабатываются только файлы, находящиеся в самой указанной папке, вложенные папки не обрабатываются. Если параметр неактивен, то в поле "Ссылка на файл" можно указать только путь к одному файлу |
| Маска имени файла | String | Будут загружены только файлы, имя которых соответствует указанной маске |
| Дата создания файла с | DateTime | Будут загружены только файлы, созданные не ранее указанной даты |
| Дата создания файла по | DateTime | Будут загружены только файлы, созданные не позднее указанной даты |
| Имя файла | String | Имя файла, который нужно скачать Тип HTTP запроса Возможные значения: - DELETE - GET - POST - PUT |
| Список параметров | String | Возможно добавление нескольких параметров. При добавлении названия параметра появляется поле для ввода его значения |
| Заголовки | String | Возможно добавление нескольких заголовков. При добавлении названия заголовка появляется поле для ввода его значения. Значение по умолчанию: application/x-www-form-urlencoded. Заголовок Content-Type игнорируется, когда параметр Тело HTTP запроса пуст |
| Тело HTTP запроса | String | Используется только для POST, PUT и DELETE запросов.\ Если параметр заполнен, то Список параметров игнорируется.\ При использовании этого параметра указание хедера Content-Type обязательно |
ℹ️ Если файл вкладывается в задачу, то он сохраняется в файловом провайдере, который выбран в настройках категории
ℹ️ Если файл вкладывается в ДП, то он сохраняется в файловом провайдере, который выбран в расширенных настройках данного ДП
ℹ️ Если провайдер в настройках не указан, файл в обоих случаях сохраняется в выбранный по умолчанию провайдер загружаемых файлов системы
ℹ️ Ограничения по маске и датам действуют только при включенном флажке Скачать несколько файлов. Если заданы ограничения по маске и датам, то применяются оба ограничения (логическое "И")
ℹ️ Если включен флажок Скачать несколько файлов, по указанному адресу есть несколько файлов, подходящих под заданную маску и даты, и при этом указан Целевой ДП, то эти файлы будут вкладываться в ДП поочередно (один файл вкладывается, сразу же удаляется и вкладывается следующий), и в итоге в ДП останется некий случайный файл из папки. Лучше в таком случае вкладывать файлы не в ДП, а в задачу, т.е. Целевой ДП не указывать.
ℹ️ Параметры Имя файла, Тип HTTP запроса, Список параметров, Заголовки и Тело HTTP запроса используются, если нужно загрузить файл из сторонней системы, войти в которую нужно под определенными учетными данными.
Создать копию для версии файла¶
Создает копию для выбранной версии файла
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File | Файл, для которого создается копия |
| Системная копия | Boolean | Если параметр активен, то созданная копия будет скрытой (скрытые копии не отображаются в списке версий) |
| Возвращает | 1F.File | Ссылка на созданный файл — строку вида |
Создать файл отчета¶
Формирует отчет и сохраняет его в файл
| Параметр | Тип | Описание |
|---|---|---|
| ID отчета* | String | Выбор созданного в системе отчета из выпадающего списка. Если значение рассчитывается с помощью автоматизации, смарт-выражение или смарт-скрипт должен возвращать строку JSON вида: \'{"Id": 123, "Name": "Название"}\' Параметры отчета Соответствуют параметрам конкретного отчета Параметры выбранного отчета |
| Имя конечного файла* | String | Имя создаваемого файла без расширения Расширение файла* Возможные значения: pdf, html, csv, image, dbf, xml, json. mht, odf, ods, odt, Excel2007, Word2007, rtf, Point2007, XAML, text, svg, ps, ppml |
Убрать связь задачи с файловым хранилищем (Диском)¶
Создает копию для выбранной версии файла
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, связанная с папкой Диска (файлового хранилища) |
| Разорвать связь файлов в задаче с папкой Диска | Boolean | Если параметр активен, то связь файлов в задаче и папки Диска (файловом хранилище) будет разорвана |
ℹ️ Подробнее связь папки Диска (файлового хранилища) с задачей описана здесь
Удалить файл¶
Удаляет файл
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет файл* | 1F.User | Пользователь, от имени которого выполняется действие |
| ИД файла* | Collection<1F.File> | Файлы, которые должны быть удалены |
Установить защиту на файл (устаревшее, не используется)¶
Устанавливает защиту на файл, вкладываемый в ДП |
| Параметр | Тип | Описание |
|---|---|---|
| От чьего имени файл вкладывается* | 1F.User | Пользователь, от имени которого выполняется действие |
| Целевой ДП* | 1F.ExtParam | ДП, в который вкладывается файл |
| Уровень защиты* | Integer | Возможные значения: - 0 — без защиты - 1 — только чтение, без пароля - 2 — отслеживание изменений - 3 — комментирование - 4 — только чтение, с паролем |
Экспорт данных в Excel¶
Выгружает данные, получаемые из хранимой процедуры, в файл формата Excel и вкладывает этот файл в задачу или в ДП
| Параметр | Тип | Описание |
|---|---|---|
| Имя целевого файла* | String | Пользователь, от имени которого выполняется действие |
| Имя TSQL процедуры* | String | Хранимая процедура с параметрами: @TaskID int, @UserID int, @Mode varchar(max). Параметры передаются в полях ID задачи, ID пользователя, Режим выполнения |
| Задача* | 1F.Task | Задача, в которую вкладывается файл. Если указан "Целевой ДП", то файл вкладывается в этот ДП в данной задаче |
| Целевой ДП | 1F.ExtParam | ДП, в который вкладывается файл. Если ДП не указан, то файл будет вложен в задачу, указанную в поле "Задача" |
| От чьего имени файл вкладывается файл* | 1F.User | Пользователь, от имени которого выполняется действие |
| ID задачи | Integer | Номер задачи (параметр @TaskID) |
| ID пользователя | Integer | ID пользователя (параметр @UserID) |
| Режим выполнения | String | Произвольная строка для передачи дополнительного параметра в процедуру, при необходимости (параметр @Mode) |
Прочее¶
Выдать роль в чате¶
Позволяет назначить участника чата администратором, модератором или автором
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Номер чата, в котором назначается роль |
| От чьего имени совершается действие* | 1F.User | Пользователь, от имени которого будет назначена роль |
| Пользователи | 1F.User | Список ID пользователей, которым будет выдана новая роль |
| Роль* | String | Выбор роли, которая будет назначена для указанных пользователей в чате. Доступные значения - Владелец - Администратор - Модератор - Автор |
Вызов внешнего сервиса¶
При помощи данного смарт-действия можно реализовать асинхронную работу системы и сторонних сервисов AI в рамках очереди в "Первой Форме". Данное действие будет выполнять HTTP-запрос - Метод — POST - content-type — application/json или multipart/form-data, если в сервис отправляются файлы (параметр "Список файлов в формате: ключ -> fileId") - url — ApiUrl из настроек сервиса UniversalApiService Если у сервиса UniversalApiService определены параметры callback поток и callback событие,а в смарт-действии передан параметр события "Ключ контекста", то в теле запроса формируется дополнительное свойство callbackUrl следующего вида: {некий роут}/{ключ сервиса}/{контекст очереди}
| Параметр | Тип | Описание |
|---|---|---|
| API Сервис* | Integer | API сервиса с типом UniversalApiService |
| Запрос* | String | Текст запроса (input в body) |
| Контекст запроса* | String | Информация, по которой нужно ответить на вопрос, который пришел в input |
| Требуется обоснование | Boolean | Признак, указывающий на необходимость объяснения результата. В настоящее время не используется для сервиса UniversalApiService |
| Список файлов в формате: ключ -> fileId | String | Массив ID файлов для отправки в сервис. Если параметр имеет значение, то в настроенный сервис отправляются указанные в json файлы |
HTTP ответ¶
Формирует HTTP ответ с результатом выполненного смарт-пакета
| Параметр | Тип | Описание |
|---|---|---|
| Тип возвращаемого результата* | Возможные значения: - Json - Xml - PlainText - Html |
|
| Тело ответа | String | Строка с результатом в выбранном формате |
| Код ответа | Integer | По умолчанию код ответа равен 200 (если значение не указано). Возможные значения и их коды можно посмотреть здесь. |
| Заголовки | String | Возможно добавление нескольких заголовков. При добавлении названия заголовка появляется поле для ввода его значения. Тип файла, то, как он будет обрабатываться браузером, задается в заголовке Content-Type, а имя файла — в Content-Disposition. |
| Файл | 1F.File | Файл для отправки. Можно указать нужную версию в формате FileId.VersionId. Если указать только FileId, будет отправлена последняя версия файла Возвращает Результат |
ℹ️ Смарт-действие доступно только в Общих смартах и используется при работе с публикациями пакетов действий -- это действие обычно является последним в пакете, и результат этого действия возвращается как результат публикации.
При вызове этого смарт-действия из скрипта на LUA результат выполнения нужно передавать в переменную RESULT: RESULT = HTTPresponse(httpContent, httpCode) где httpContent — тело ответа, а httpCode — код ответа. Если указан параметр "Файл", то возвращается http-ответ для отправки указанного файла в бинарном виде
Выполнить sql скрипт¶
Выполняет хранимую процедуру
| Параметр | Тип | Описание |
|---|---|---|
| Список параметров | Параметры, к которым можно обращаться в хранимой процедуре как @\<имя параметра>. Возможно добавление нескольких параметров. При добавлении параметра появляется поле для ввода значения этого параметра |
|
| Sql-скрипт* | String | Строка с вызовом хранимой процедуры вида exec \<имя хранимой процедуры> @\<имя параметра 1>, \<имя параметра 2>... |
| Возвращает | String | Строка с результатом выполнения хранимой процедуры |
ℹ️ Смарт-действие используется при необходимости публикации сложных высоконагруженных скриптов, для которых важен не только результат выполнения, но и признак успешности выполнения. В этом случае в опубликованный пакет действий включается сначала смарт-действие "Выполнить sql скрипт" — в нем вызывается хранимая процедура, которая возвращает строку JSON с телом ответа и кодом ответа. Следующим действием в пакете вызывается "HTTP-ответ", которое использует возвращаемую строку и извлекает из нее отдельно тело ответа и отдельно код ответа.
Выполнить импорт данных¶
Выполняет импорт данных из файла в соответствии с одной из настроек импорта
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, от имени которого выполняется действие |
| Импорт данных* | 1F.Import | Идентификатор одной из заранее созданных настроек импорта, см. Руководство администратора |
| Путь к файлу | String | Если файл с данными, которые должны быть импортированы, находится на сервере, то указывается путь к файлу. Если файл вложен в задачу или в ДП, то указывается ID файла |
| Параметры контекста | String | Сериализованные в json настройки импорта. Настройки зависят от выбранного импорта |
Выполнить смарт-скрипт¶
Выполняет смарт-выражение или Lua-скрипт
| Параметр | Тип | Описание |
|---|---|---|
| Скрипт* | Смарт-действие или Lua-скрипт, который необходимо выполнить | |
| Возвращает | String | Строка с результатом выполнения скрипта |
Добавить новое событие в очередь¶
Добавляет данные в указанный поток очереди событий
| Параметр | Тип | Описание |
|---|---|---|
| Тип* | Возможные значения: - Task — действие над задачей - Custom — произвольное действие |
|
| Поток* | Integer | ID потока событий Событие Выбор одного из смарт-событий, реализованных в системе |
| Кастомное действие | Integer | ID кастомного действия |
| Внутренний ID | Integer | Для типа Task — номер задачи |
| Внешний ID | Integer | GUID или ID объекта во внешней системе Параметры Параметры, к которым можно обращаться в хранимой процедуре как @\<имя параметра>. Возможно добавление нескольких параметров. При добавлении параметра появляется поле для ввода значения этого параметра |
ℹ️ Набор параметров (поле Параметры) должен соответствовать выбранному событию. Набор параметров для события можно посмотреть окне помощи для lua-скриптов
ℹ️ Подробнее об очередях
Завершить опрос¶
Помечает опрос завершенным для определенного пользователя в указанной задаче. После завершения опрос становится недоступным для изменений. Пользователям при настроенной смарт-автоматизации не требуется вручную нажимать кнопку завершения внутри самого опроса
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, который проходит опрос |
| Задача* | 1F.Task | Задача, в которой запущен опрос |
Записать в регистр¶
Добавляет в регистр новую запись или меняет (перезаписывает) существующую
| Параметр | Тип | Описание |
|---|---|---|
| Регистр* | 1F.Registry | ID регистра Измерения и ресурсы* Соответствуют выбранному регистру |
| Задача | 1F.Task | Задача, к которой привязано изменение данных в регистре |
| Перезаписать | Boolean | Если параметр активен, то новые данные будут записаны вместо имеющихся.\ Если параметр неактивен, то будет добавлена новая запись |
| Дата | DateTime | Дата, на которую фиксируются данные |
ℹ️ Подробнее о регистрах
Инициировать произвольное событие¶
Инициирует произвольное событие
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой инициируется событие |
| Событие* | 1F.Event | Одно из заранее настроенных произвольных событий |
| Задача инициатор | 1F.Task | Задача, из которой инициируется событие |
| Пользователь инициатор | 1F.User | Пользователь, от имени которого инициируется событие |
ℹ️ Подробнее о произвольных событиях
Обновить шаблон опроса¶
Обновляет шаблон опроса в JSON редакторе
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой выполняется действие |
| Шаблон опроса* | String | Шаблон опроса в формате JSON. Если шаблона в опросе нет, он будет создан. Если шаблон есть, он будет обновлен |
Отменить¶
Позволяет отменить или подтвердить выполнение смарт-событие
| Параметр | Тип | Описание |
|---|---|---|
| Причина | String | Причина отклонения смарт-события |
| Действие | 1F.Event |
Доступные варианты¶
- Отмена (по умолчанию) — выводит окно с уведомлением о невозможности совершить действие. В заголовке модального окна отображается слово "Внимание".
Если смарт-действие настроено для события перед сменой ДП, то причина будет отображаться не в модальном окне, а красным текстом под соответствующим параметром.
- Подтверждение — выводит предупреждение с вариантами: Отмена — нажатие отменяет действие, событие будет прервано Ок — нажатие подтверждает действие, событие будет успешно совершено
ℹ️ Отменить можно только смарт-событие, которое начинается со слова "Перед...", например, "Перед созданием задачи", "Перед сменой срока" и т.п. При отмене события оно не происходит, т.е. задача не создается, срок не изменяется и т.п.
ℹ️ Внимание: Для корректного вывода смарт-отмены на событии "Перед сменой ДП" необходимо в файле web.config отключить кастомные ошибки (установить СustomErrors mode="Off")
Если в категории настроена смарт-автоматизация отмены перед изменением ДП, после выполнения условий автоматизации, когда новое значение поля не прошло валидацию, система автоматически возвращает пользователя в режим редактирования этого же поля. Поле сразу приобретает статус ошибки с визуальным выделением красным цветом и активирует автофокус с установленным курсором, позволяя без дополнительных кликов продолжить редактирование. Индикация ошибки сохраняется до тех пор, пока пользователь не внесет исправления. Краснота снимается мгновенно в процессе ввода новых корректных данных или возвращению к прежнему значению до редактирования. Для отката изменений можно воспользоваться стандартной комбинацией клавиш Ctrl/Cmd+Z: при ее использовании поле восстанавливает предыдущее (валидное) значение, а фокус ввода автоматически снимается, завершая редактирование.
ℹ️ Внимание: если, в соответствии с бизнес-процессом, требуется создание более одного смарта "Отменить" с типом "Подтверждение", необходимо использовать один смарт для одного события. Недопустимо использование нескольких смарт-подтверждений
Отправить HTTP-запрос¶
Отправляет http-запрос
| Параметр | Тип | Описание |
|---|---|---|
| Тип HTTP запроса* | Возможные значения: - DELETE - GET - POST - PUT |
|
| Url* | String | URL запроса |
| Список параметров | String | Возможно добавление нескольких параметров. При добавлении названия параметра появляется поле для ввода его значения |
| Список хедеров | String | Возможно добавление нескольких хедеров. При добавлении названия хедера появляется поле для ввода его значения |
| Тело HTTP запроса | String | Используется только для POST, PUT и DELETE запросов.\ Если параметр заполнен, то Список параметров игнорируется.\ При использовании этого параметра указание хедера Content-Type обязательно |
| Не преобразовывать json в объект | Boolean | Если параметр активен, то в ResponseContent возвращается строка. Если флажок не включен, то в ResponseContent возвращается объект. Параметр используется для совместимости с прежними версиями платформы, предпочтительнее не включать флажок и возвращать объект |
| Таймаут (миллисекунды) | Integer | Настройка времени ожидания ответа. Позволяет задать необходимое время в миллисекундах для увеличения стандартного лимита. Таймаут по умолчанию — 60 секунд С помощью смарт-действия "Отправить HTTP-запрос" можно получать данные от внешних веб-сервисов и отправлять данные внешним веб-сервисам. |
Смарт-действие "Отправить HTTP-запрос" возвращает JSON со следующими атрибутами¶
- InnerError — текст сообщения об ошибке или пустая строка;
- HttpResponse — в свою очередь, содержит два атрибута StatusCode — код успешности (200 — успешно), ResponseContent — строка с ответом веб-сервиса.
{"InnerError":"","HttpResponse":{"StatusCode":200,"ResponseContent":"ответ_веб_сервиса"}}
С текстом ответа можно работать как с выражением в формате JSON — например, с помощью функций JSON_VALUE, JSON_QUERY и OPENJSON.
ℹ️ Отправляемый GET запрос имеет вид \<Url>?\<параметр1=значение1>&\<параметр2=значение2>...
Смарт-действие возвращает строку вида {"InnerError":"","HttpResponse":{"StatusCode":200,"ResponseContent":"\<ответ_веб_сервиса>"}} Для SOAP запросов параметры игнорируются, используется только тело запроса. Если HTTP-сервер требует логин и пароль, их можно передавать в хедере с названием Authorization и значением вида Basic XXXXXXX, где XXXXXXX это логин и пароль в формате Base64.
Примеры использования HTTP запросов¶
Получение курса валюты
Рассмотрим пример получения актуального курса валюты евро с сайта ЦБ с помощью смарт-действия Отправить HTTP-запрос. По запросу , отправленному на URL https://www.cbr-xml-daily.ru/daily_json.js, возвращается JSON выражение, содержащее курсы всех валют на текущий день. Для получения курса евро достаточно пакета с двумя смарт-действиями: отправка запроса и разбор ответа.
Смарт-пакет для работы с курсом валюты в формате JSON
Во втором смарт-действии для вычисления значения ДП используется выражение T-SQL
select top 1 JSON_VALUE ( @ActionResult8688, '$.HttpResponse.ResponseContent.Valute.EUR.Value' )
См. аналогичный пример, реализованный с помощью Lua-скрипта.
Калькулятор
Если веб-сервис работает с данными в XML-формате, в смарт-действии Отправить HTTP запрос нужно использовать параметр Тело POST запроса. При этом необходимо передавать в хедере ключ Content-Type. Для примера рассмотрим работу с он-лайн калькулятором http://www.dneonline.com/calculator.asmx и выполним простейшее действие — сложение двух чисел 2+3. Результат запишем в ДП "Число". Смарт-пакет состоит из двух действий — отправка HTTP-запроса и обработка полученного результата. 1. Отправка HTTP-запроса.
В соответствии с API веб-сервиса, тело POST-запроса должно быть таким:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<Add xmlns="http://tempuri.org/">
<intA>2</intA>
<intB>3</intB>
</Add>
</soap12:Body>
</soap12:Envelope>
Структура
-InnerError — текст сообщения об ошибке или пустая строка.
-HttpResponse — в свою очередь, содержит два атрибута.
-StatusCode — код успешности (200 — успешно).
-ResponseContent — строка с ответом веб-сервиса.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AddResponse xmlns="http://tempuri.org/">
<AddResult>5</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>
DECLARE @xml_text xml;
DECLARE @text varchar(max);
set @text = (select top 1 JSON_VALUE (@ActionResult10670, '$.HttpResponse.ResponseContent') for xml path(''));
set @xml_text = replace(replace(@text, '<', '<'),'>','>');
;WITH XMLNAMESPACES ('http://www.w3.org/2003/05/soap-envelope' AS SOAP, 'http://tempuri.org/' AS NS)
SELECT n.value('.', 'VARCHAR(MAX)')
FROM @xml_text.nodes('/SOAP:Envelope/SOAP:Body/NS:AddResponse/NS:AddResult') N ( n );
Отправить команду (Обновить задачу)¶
Открывает карточку задачи
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, для которого выполняется действие |
ℹ️ Команда обновляет карточку задачи, кроме блока "Используется"
Отправить команду (Открыть ссылку)¶
Открывает задачу или указанную ссылку в текущей вкладке, новой вкладке или в модальном окне
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User | Пользователь, для которого выполняется действие |
| № задачи | 1F.Task | Задача, карточка которой должна быть открыта. Если по с |
| Открывать в | String | Определяет, где будет открываться ссылка или задача. - Текущая вкладка — карточка задачи или ссылка будет открыта в текущей вкладке (по умолчанию). - Модальное окно — карточка задачи или ссылка будет открыта во всплывающем окне. - Новая вкладка — карточка задачи или ссылка будет открыта в новой вкладке браузера. - True — аналогично значению Модальное окно - False — аналогично значению Текущая вкладка |
| Url | String | Ссылка, которая должна быть открыта. Если нужная страница должна быть открыта не в модальном окне, то адрес должен быть относительным без spa. Пример: если необходимо открыть портал с ID 1234 в текущем окне, то ссылка должна быть /portal/1234. Если портал должен открываться в модальном окне, следует указать ссылку вида /spa/portal/1234 |
ℹ️ Если указан URL, то открывается ссылка, если URL не указан — открывается задача, указанная в параметре "№ задачи"
Пересчитать смарт-доступ в задачах¶
Пересчитывает правила смарт-доступа к задачам в категории
| Параметр | Тип | Описание |
|---|---|---|
| Правило* | 1F.SmartAccess | Одно из заранее настроенных правил смарт-доступа |
| ID задачи* | Collection<1F.Task> | Если поле пустое или смарт-выражение вернуло пустой список, то пересчет не выполняется |
| Обновить все активные задачи* | Boolean | Если параметр активен, то поле "ID задачи" не учитывается. В этом случае при выполнении пакета в категории пересчет выполняется для всех активных задач этой категории, а при выполнении общего смарта — во всех активных задачах всех категорий |
ℹ️ Параметр "Обновить все активные задачи" следует включать обдуманно, поскольку это может вызвать обработку большого числа задач и приведет к высокой нагрузке на сервер
Пересчитать смарт-доступ для доп. параметров в задачах¶
Пересчитывает правила смарт-доступа к ДП в задачах категории
| Параметр | Тип | Описание |
|---|---|---|
| Правило* | 1F.SmartAccess | Одно из заранее настроенных правил смарт-доступа |
| ID задачи* | Collection<1F.Task> | Если поле пустое или смарт-выражение вернуло пустой список, то пересчет не выполняется |
| Обновить все активные задачи* | Boolean | Если параметр активен, то поле "ID задачи" не учитывается. В этом случае при выполнении пакета в категории пересчет выполняется для всех активных задач этой категории, а при выполнении общего смарта — во всех активных задачах всех категорий |
ℹ️ Параметр "Обновить все активные задачи" следует включать обдуманно, поскольку это может вызвать обработку большого числа задач и приведет к высокой нагрузке на сервер
Связать письмо с задачей
(устаревшее, не используется) Устанавливает связь между задачей и почтовым сообщением
| Параметр | Тип | Описание |
|---|---|---|
| Почтовое сообщение* | 1F.Email | Почтовое сообщение, с которым устанавливается связь |
| Задача* | 1F.Task | Задача, с которой устанавливается связь |
| Кто привязывает* | 1F.User | Пользователь, от имени которого выполняется действие |
Создать или изменить пакет действий¶
Создает или редактирует существующий пакет действий. Используется для работы ИИ-агентов
ℹ️ Действие доступно, начиная с версии 2.264 Кассиопея
| Параметр | Тип | Описание |
|---|---|---|
| Id пакета | Integer | ID пакета действий. Параметр заполняется, если требуется отредактировать уже существующий пакет |
| Категория | Integer | ID категории, в которой создается или редактируется пакет действий |
| Название* | String | Название пакета действий |
| Описание | String | Описание пакета действий |
| Циклический* | Boolean | У пакета включен признак циклического выполнения |
| Id смарта для циклического итератора | Integer | ID смарт-выражения, которое возвращает строку с идентификаторами итерируемых объектов. Необходимо указать, если активен параметр Циклический |
| Id фильтра прерывания цикла | Integer | ID смарт-выражения, в котором задано условие прерывания цикла. Необходимо указать, если активен параметр Циклический Режим без контекста* Признак использования параметров события |
| Идентификатор события | Integer | ID события, в котором создается или редактируется пакет действий |
| Origin | Integer | ID источника. Возможные значения: - 0 — Почтовый смарт - 1 — Кастомная страница - 2 — Категория - 3 — Очередь - 4 — Электронный документ - 5 — Электронный документ СБИС |
| Для почты* | Boolean | Используется для Smart-обработка почты |
| Для очереди* | Boolean | Используется для привязки к событиям очереди |
Создать или изменить смарт-фильтр¶
Создает или редактирует существующий смарт-фильтр. Используется для работы ИИ-агентов
ℹ️ Действие доступно, начиная с версии 2.264 Кассиопея
| Параметр | Тип | Описание |
|---|---|---|
| Идентификатор смарт-фильтра | Integer | ID смарт-фильтра. Параметр заполняется, если требуется отредактировать уже существующий смарт-фильтр |
| Название смарт-фильтра* | String | Название фильтра |
| Идентификатор события* | Integer | ID события, в котором создается или редактируется смарт-фильтр |
| Идентификатор пакета действий | Integer | ID смарт-правила, выполнение которого проверяет смарт-фильтр |
| Идентификатор пользователя-владельца | Integer | Владелец смарт-фильтра. Если фильтр не является публичным (параметр Является публичным выключен), он будет доступен только указанному пользователю |
| Категория | Integer | ID категории, в которой создается или редактируется смарт-фильтр |
| Режим без контекста* | Boolean | Признак использования параметров события |
| Идентификатор Origin* | Integer | ID источника. Возможные значения: - 0 — Почтовый смарт - 1 — Кастомная страница - 2 — Категория - 3 — Очередь - 4 — Электронный документ - 5 — Электронный документ СБИС |
| Доступен как смарт-отбор* | Boolean | Используется в готовых фильтрах для быстрого отбора задач |
| Является публичным* | Boolean | Если параметр активен, смарт-фильтр доступен всем пользователям. В обратном случае он будет доступен только пользователю, который указан как владелец в параметре Идентификатор пользователя-владельца. |
| T-SQL* | String | T-SQL выражение фильтра |
| Значение параметра | String | Не используется |
| Является циклическим контекстом* | Boolean | Является контекстом циклического смарт-пакета |
| Идентификатор действия | Integer | Не используется |
Создать новый тред¶
Создание нового обсуждения
ℹ️ Действие доступно, начиная с версии 2.262 Весы
| Параметр | Тип | Описание |
|---|---|---|
| Комментарий, от которого создаем тред | Integer | ID сообщения, из которого будет инициировано новое обсуждение |
| Тема треда* | String | Название обсуждения |
| Пользователь, который создает тред* | Integer | ID пользователя, от лица которого будет создано обсуждение |
| Задача источник | Integer | Номер задачи, в которой будет создано обсуждение |
ℹ️ Параметр необходимо заполнить только в том случае, если тред создается без привязки к определенному сообщению. При этом параметр Комментарий, от которого создаем тред должен быть не заполнен
Удалить повторение¶
Удалить настройки повторения задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача | 1F.Task | Задача, в которой было настроено повторение |
Установить повторение¶
Установить повторение задачи (соответствует настройкам пользовательского режима, см. Руководство пользователя)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task | Задача, в которой настраивается повторение |
| Дата начала повторения* | DateTime | Дата и время начала серии повторений |
| Прекратить после N раз | Integer | Число повторов в серии |
| Повторять до | DateTime | Дата и время окончания серии повторений Действия с файлами* Возможные значения: - DoNotCopy - CreateCopy - CreateLink Тип повторения Возможные значения: - Minutely - Daily - Weekly - Monthly - Yearly |
| Периодичность | Integer | Периодичность повторов в минутах, днях, неделях, месяцах, годах |
| Только рабочее время | Boolean | Если параметр активен, то при расчете периодичности учитываются только рабочие минуты или дни |
| День | Integer | Номер дня в месяце |
| День недели | Integer | Номер дня в неделе |
| Неделя месяца | Integer | Номер недели в месяце |
| Месяц | Integer | Номер месяца в году |
| Минут на выполнение | Integer | Срок создаваемой задачи Рабочий день Возможные значения: - Первый - Последний - 10-й |
| Смещение, дней | Integer | Количество дней |
| Срок выполнения | DateTime | Срок выполнения |
| Кастомные дни | String | Принимает массив дат в формате JSON для определения дней-исключений и дополнительных дней. Каждый элемент массива является объектом с полями dayType (тип дня) и dayDate (конкретная дата и время). Пример значения параметра: { "dayType":1, "dayDate":"2025-12-05T18:00:04.723" }, { "dayType":0, "dayDate":"2025-02-10T18:00:04.723" } \ |
ℹ️ Если в задаче уже установлено повторение, то при выполнении смарт-действия конфигурация обновляется
Из сторонних dll¶
В этом разделе собраны смарт-действия, не включенные в базовый состав "Первой Формы" и поставляемые дополнительно.
Обновить параметры с помощью TSQL-вычислений¶
Кастомная обработка данных с помощью хранимой процедуры SQL
| Параметр | Тип | Описание |
|---|---|---|
| Номер задачи | Integer | Номер задачи; если необходима массовая обработка — номер задачи не указывается |
| ID категории | Integer | ID категории; если необходима обработка одной задачи — номер категории не указывается |
| ID параметра | Integer | ID параметра; если необходимо обновить несколько параметров — номер параметра не указывается |
| Имя TSQL процедуры* | Date | Имя выполняемой процедуры Входящие параметры: - @UserID int -- ID пользователя, от имени которого будут выполняться действия, - @TaskID int = null -- ID задачи, - @SubcatID int = null -- ID категории, - @ExtParamID int = null -- ID ДП, - @Mode varchar(max) = null -- любое значение, не предусмотренное другими параметрами, - @ErrorMessage varchar(1000) = null out -- текст сообщения об ошибке, которое при определенных условиях будет выдаваться пользователю во всплывающем окне. Все входящие параметры, кроме ID пользователя, необязательные (их можно оставлять пустыми). Процедура должна возвращать набор данных вида SELECT NULL TaskID, NULL ExtParamID, NULL Value, NULL UserID где: - TaskID — номер задачи, в которой надо изменить значение ДП, - ExtParamID — ID ДП, значение которого будет изменено, - Value — значение, которое надо записать в ДП, - UserID — ID пользователя, от имени которого будет выполнено действие. В простом случае набор данных содержит одну запись, т.е. значение указанного ДП надо изменить только в одной указанной задаче. В более сложных случаях набор данных содержит несколько записей, что позволяет изменять несколько ДП в нескольких задачах |
| Режим выполнения | String | Произвольная строка для передачи дополнительного параметра в процедуру, при необходимости |
| ID пользователя | Integer | ID пользователя, от имени которого будут изменяться ДП; если не указан — используется служебный пользователь systemrobot |
Примеры вызова SQL-процедуры из смарта
Пример 1. Формирование и возврат набора данных
/* расчет рейтинга клиента по объему продаж */
ALTER proc [dbo].[Update_Ratings]
@TaskID int = null,
@SubcatID int = null,
@ExtParamID int = null,
@Mode varchar(max) = null,
@UserID int,
@ErrorMessage varchar(1000) = null out
As
/* проверки */
if @TaskID is not null begin
set @ErrorMessage = 'Данное действие не может принимать в качестве параметра номер задачи. Оно предназначено только для массовой обработки'
return
end
if @SubcatID is null begin
set @ErrorMessage = 'Укажите номер категории'
return
end
/* формирование промежуточной таблицы с расчетами */
declare @TargetObjects table (TaskID int, SaleAmount money, Rating varchar(max))
insert into @TargetObjects (TaskID, SaleAmount, Rating)
select Tasks.TaskID, Sales.SaleAmount, 'NOT_VIP' as Rating
from Tasks (nolock)
join Sales (nolock) on Sales.TaskID = Tasks.TaskID
where Tasks.SubcatID = @SubcatID and Tasks.IsClosed = 1
update @TargetObjects
set Rating = 'VIP'
where SaleAmount > 1000000
/* возвращаемый набор данных */
select t.TaskID, @ExtParamID ExtParamID, t.Rating Value, @UserID UserID
from @TargetObjects t
Пример 2. Работа через веб-сервисы
/* написание предупреждающего комментария */
ALTER proc [dbo].[Allert_Subscriber]
@TaskID int = null,
@SubcatID int = null,
@ExtParamID int = null,
@Mode varchar(max) = null,
@UserID int,
@ErrorMessage varchar(1000) = null out
as
declare @min_sale_taskid int
select @min_sale_taskid = Tasks.TaskID, MIN(Sales.SaleAmount)
from Tasks (nolock)
join Sales (nolock) on Sales.TaskID = Tasks.TaskID
where Tasks.SubcatID = @SubcatID and Tasks.IsClosed = 1
group by Tasks.TaskID
exec dbo. tc_ws_addComment @UserID, @min_sale_taskid, 'Минимальный объем продаж!'
Связывание файла с задачей по штрих-коду¶
Связать файл с задачей по штрих-коду
| Параметр | Тип | Описание |
|---|---|---|
| Вложенный файл | 1F.File | Файл |
| Разбить файл на части, ориентируясь на штрихкоды | Boolean | Если параметр активен, то входящий файл разбивается на отдельные файлы на основе штрих-кодов, нанесенных на некоторые страницы, и эти файлы распределяются по задачам |
ℹ️ Возможные сценарии использования смарт-действия описаны здесь
Синхронизировать доп.параметры задач¶
Получение всех ДП из 1С (при настроенной синхронизации между системами)
| Параметр | Тип | Описание |
|---|---|---|
| Имя настроек синхронизации 1С | Integer | Имя настроек синхронизации Полезные ссылки Особенности работы с различными типами ДП Общие настройки приложения |