Справочник смарт-действий¶
⚠️ Символом * помечены обязательные параметры
Вызов смарт-действий из SmartScript¶
Все смарт-действия вызываются из Lua/JS-скриптов через SMART:execute_action (Lua) или SMART.execute_action_in_task_context (JS). Кодовое имя действия (enum StandardAction) — первый аргумент вызова.
Топ-10 действий — кодовые имена и примеры¶
| Русское название | Кодовое имя (StandardAction) | Enum ID |
|---|---|---|
| Отправить комментарий | PostComment |
1 |
| Создать задачу | CreateTask |
0 |
| Добавить подписчика | AddSubscriber |
2 |
| Добавить исполнителя | AddPerformer |
3 |
| Изменить значение ДП | ChangeExtParamValue |
5 |
| Изменить статус задачи | ChangeTaskStateForcibly |
38 |
| Выполнить переход | MakeStep |
4 |
| Отправить email | SendEmail |
17 |
| Отправить HTTP-запрос | SendHttpRequest |
85 |
Отправить HTTP-запрос с JSON и ретраями (HttpRequestJson)¶
Выполняет HTTP-запрос с автоматической сериализацией JSON, обработкой статус-кодов, retry-логикой и backoff. Заменяет ручной сбор URL, headers и парсинг ответа в Lua/JS.
| Параметр | Тип | Описание |
|---|---|---|
| Method* | String |
HTTP-метод: GET, POST, PUT, PATCH, DELETE |
| Url* | String |
Базовый URL запроса |
| Query | Object |
Объект query-параметров (автоматически добавляется к URL) |
| Headers | Object |
Заголовки запроса (например, { "Authorization": "Bearer ..." }) |
| BodyJson | Object |
Тело запроса (автоматически сериализуется в JSON для POST/PUT/PATCH) |
| TimeoutMs | Integer |
Таймаут запроса в мс (по умолчанию 15000) |
| ExpectedStatusCodes | Collection<Integer> |
Ожидаемые успешные статус-коды (по умолчанию [200]) |
| FailOnUnexpected | Boolean |
Если true — неожиданный статус считается ошибкой (по умолчанию true) |
| RetryPolicy | Object |
Политика повторных попыток: { Retries: 3, BackoffMs: 500, BackoffMultiplier: 2, RetryOnStatuses: [429, 500, 502, 503, 504] } |
| ResponseMode | String |
Формат ответа: Json (авто-парсинг) или Text |
Возвращает:
{
"Ok": true,
"StatusCode": 200,
"ResponseHeaders": { "content-type": "application/json" },
"Json": { "result": "..." },
"Text": null,
"Attempts": 1,
"FinalUrl": "https://api.example.com/resource?a=1&b=text",
"Error": null
}
Если FailOnUnexpected=false и получен неожиданный статус:
{
"Ok": false,
"StatusCode": 403,
"Json": null,
"Text": "Forbidden",
"Attempts": 1,
"Error": {
"Code": "unexpected_status",
"Message": "Expected [200], got 403"
}
}
Пример (Lua):
local r = SMART:execute_action('HttpRequestJson', CONTEXT.Id, 'task', {
Method = "POST",
Url = "https://api.example.com/users",
Headers = { ["Authorization"] = "Bearer token123" },
BodyJson = { name = "Иван", email = "ivan@example.com" },
ExpectedStatusCodes = { 201 },
RetryPolicy = { Retries = 3, BackoffMs = 500, BackoffMultiplier = 2, RetryOnStatuses = { 429, 500 } }
})
if r.Ok then
SS:log("Пользователь создан: id=" .. r.Json.id)
else
SS:log("Ошибка: " .. r.Error.Message)
end
| Создать файл отчёта | CreateReportFile | 75 |
| Выполнить смарт-скрипт | ExecuteSmartScript | 106 |
Примеры вызова из SmartScript¶
Отправить комментарий (PostComment)¶
Lua:
SMART:execute_action('PostComment', CONTEXT.Id, 'task', {
Task = CONTEXT.Id, -- ОБЯЗАТЕЛЬНО, иначе NullRef
CommentText = 'Текст комментария',
Recipients = {181}, -- адресаты (массив UserID)
NeedsAnswer = false -- пометить как вопрос
})
JavaScript:
SMART.execute_action_in_task_context("PostComment", taskId, {
Task: taskId, // ОБЯЗАТЕЛЬНО, иначе NullRef
CommentText: "Текст комментария",
Recipients: [181], // адресаты (массив UserID)
NeedsAnswer: false // пометить как вопрос
});
Gotcha: параметр
Taskобязателен даже при использованииexecute_action_in_task_context. Без него —NullReferenceException.
Создать задачу (CreateTask)¶
Lua:
SMART:execute_action('CreateTask', CONTEXT.Id, 'task', {
Subcat = 5641, -- ID категории (пример SubcatID, тип параметра: 1F.Subcat)
Owner = 28, -- заказчик (UserID)
Text = 'Текст задачи',
MakeLinked = true, -- связать с текущей
MakeSubTask = false
})
Изменить значение ДП (ChangeExtParamValue)¶
Lua:
SMART:execute_action('ChangeExtParamValue', CONTEXT.Id, 'task', {
ExtParamId = 12408,
Value = 'новое значение'
})
Изменить статус (ChangeTaskStateForcibly)¶
Lua:
SMART:execute_action('ChangeTaskStateForcibly', CONTEXT.Id, 'task', {
Task = CONTEXT.Id,
Initiator = SESSION_USER.Id,
State = 3 -- ID целевого статуса
})
Асинхронный вызов¶
Последний аргумент true — выполнение в фоне (не блокирует скрипт):
SMART:execute_action('PostComment', CONTEXT.Id, 'task', {
Task = CONTEXT.Id,
CommentText = 'Фоновый комментарий'
}, true)
Полный список кодовых имён¶
Enum StandardAction определён в core/Valhalla.Integration/Enums/Smart/StandardAction.cs. Полный список (209 действий) доступен через редактор SmartScript → вкладка «Смарт-действия».
Связанные документы¶
- Lua API:
admin.md—SMART:execute_action, контекст, примеры - JS API:
docs/domains/smart-actions/js-scripting-jint.md—SMART.execute_action_in_task_context - JS gotchas и паттерны:
docs/domains/smart-actions/js-jint-patterns.md(секция 4 — SMART)
Полный справочник смарт-действий¶
Ниже — описание каждого смарт-действия с параметрами. Кодовое имя (где известно) указано в скобках после русского названия.
Категории, задачи, связи¶
Ассоциировать задачу с ЛК (LinkTaskWithCZ, ID 59)¶
Ассоциирует задачу в "Первой Форме" с задачей в Личном кабинете (то же самое, что "Связать задачу с личным кабинетом" ниже — оба используют тот же enum LinkTaskWithCZ).
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача в "Первой Форме" |
| Личный кабинет* | 1F.CustomerZone |
Личный кабинет |
Действие со встречей (ActionMeeting, ID 137)¶
Выполняет действие с календарным событием
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String |
Уникальный идентификатор встречи. Форматы: для Exchange — 2157:AAMkAGY4..., для 1Ф — 1forma:{UserID}:{TaskID} |
| Действие* | — | Принять / Отменить / Под вопросом / Отклонить |
| Доступ к календарю от имени пользователя | 1F.User |
Пользователь для действия в календаре (по умолчанию — Робот) |
⚠️ По умолчанию у Робота нет доступа к календарю. Рекомендуется указывать пользователя с правами (организатор встречи и т.п.)
Добавить задачу в избранное (AddTaskToFavorites, ID 92)¶
Добавляет задачу указанным пользователям в блок Избранное
| Параметр | Тип | Описание |
|---|---|---|
| Кто добавляет* | 1F.User |
От чьего имени выполняется действие |
| Кому добавляют* | Collection<1F.User> |
Пользователи-получатели (для группы — смарт-выражение) |
| Цвет* | Integer |
1=Голубой, 2=Зеленый, 3=Изумрудный, 4=Желтый, 5=Фиолетовый, 6=Красный |
| Задача* | 1F.Task |
Задача в "Первой Форме" |
Добавить комментарий в избранное (AddCommentToFavorites, ID 94)¶
Добавляет комментарий указанным пользователям в блок Избранное
| Параметр | Тип | Описание |
|---|---|---|
| Кто добавляет* | 1F.User |
От чьего имени выполняется действие |
| Кому добавляют* | Collection<1F.User> |
Пользователи-получатели |
| Цвет* | Integer |
1=Голубой, 2=Зеленый, 3=Изумрудный, 4=Желтый, 5=Фиолетовый, 6=Красный |
| ID комментария* | Integer |
ID комментария |
Задать аватар задачи (UpdateOrInsertTaskAvatar, ID 193)¶
Позволяет установить цвет и иконку для аватара задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Файл | 1F.File |
ID файла с изображением для аватара |
| Цвет | String |
none, primary, red, yellow, orange, green, cyan, blue, purple, pink, brown, grey |
| Иконка | String |
Название иконки из набора /spa/content-icons |
Запинить задачу (PinTask, ID 97)¶
Задача (одна или несколько) добавляется в список чатов
| Параметр | Тип | Описание |
|---|---|---|
| Номер задачи* | Collection<1F.Task> |
Добавляемые задачи |
| Кому* | Collection<1F.User> |
Пользователи, которые будут видеть задачи в списке чатов |
⚠️ Ограничивается правами на категорию. Доступно подписчикам или администраторам задачи. Не работает для категории "Общение".
Зашифровать задачу (EncryptTask, ID 122)¶
Задача зашифровывается
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача для шифрования |
| Пользователь* | 1F.User |
Кто зашифровывает |
⚠️ Работает только если в категории включен режим шифрования
Копировать задачу (CopyTask)¶
Создает копию задачи (возвращает EntityCollection<Task>)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача для копирования |
| Категория* | 1F.Subcat |
Категория для копии |
| Копировать подписчиков* | Boolean |
Копировать подписчиков |
| Копировать вложения* | Boolean |
Копировать файлы |
⚠️ Копируются только ДП, отображаемые в карточке создания задачи
Найти встречи в периоде (FindMeetingsByPeriod, ID 139)¶
Возвращает встречи пользователя в указанном периоде
| Параметр | Тип | Описание |
|---|---|---|
| Владелец календаря* | 1F.User |
Пользователь, в чьём календаре искать |
| С* | DateTime |
Начало периода |
| По* | DateTime |
Конец периода |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Найти встречу по задаче (FindMeetingByTaskId, ID 138)¶
Находит встречу по связанной с ней задаче
| Параметр | Тип | Описание |
|---|---|---|
| Организатор* | 1F.User |
Организатор встречи |
| Привязать задачу* | 1F.Task |
Задача, из которой запланирована встреча |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Обновить встречу (UpdateMeeting, ID 135)¶
Обновляет параметры в календарном событии
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String |
Уникальный идентификатор встречи |
| Участники | Collection<1F.User> |
Участники встречи |
| Начало | DateTime |
Время начала |
| Конец | DateTime |
Время окончания |
| Место | String |
Место встречи |
| Тема | String |
Тема встречи |
| Html | Boolean |
Описание в HTML-формате |
| Тело | String |
Описание встречи |
| Привязать задачу | Boolean |
Задача в поле "Связано с" |
| Статус встречи | String |
Свободен / Под вопросом / Занят |
| Доп. email адреса участников | String |
Дополнительные email |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Отпинить задачу (UnpinTask, ID 98)¶
Задача (одна или несколько) удаляется из списка чатов
| Параметр | Тип | Описание |
|---|---|---|
| Номер задачи* | Collection<1F.Task> |
Удаляемые задачи |
| Кому* | Collection<1F.User> |
Пользователи |
⚠️ Если пользователь не подписчик — ошибка в журнале. Не работает для категории "Общение".
Перенести задачу (MoveTask)¶
Переносит задачу в указанную категорию
| Параметр | Тип | Описание |
|---|---|---|
| Категория* | 1F.Subcat |
Целевая категория |
| Задача* | Collection<1F.Task> |
Задачи для переноса |
| Кто переносит* | 1F.User |
От чьего имени |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
⚠️ Пакет выполняется только в исходной категории
Получить встречу (GetMeeting, ID 140)¶
Возвращает все поля встречи по её ключу (для Lua смартов)
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String |
Уникальный идентификатор встречи |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Связать задачи (LinkTasks)¶
Устанавливает связь между двумя задачами
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User |
От чьего имени |
| Задача* | 1F.Task |
Первая задача |
| Задача* | 1F.Task |
Вторая задача |
| Сделать задачу не связанной, а дочерней* | Boolean |
Первая=родительская, вторая=дочерняя |
| Тип связи в проекте | Integer |
0=Без зависимости, 1=Начало-начало, 2=Начало-окончание, 3=Окончание-начало, 4=Окончание-окончание |
⚠️ Пользователь должен иметь права на обе задачи. Можно использовать
systemrobot.
Связать задачу с личным кабинетом (LinkTaskWithCZ, ID 59)¶
Связывает задачу в "Первой Форме" с задачей в Личном кабинете
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача в "Первой Форме" |
| Идентификатор личного кабинета | 1F.CustomerZone |
Личный кабинет |
Создать задачу (CreateTask)¶
Создает задачу или подзадачу
| Параметр | Тип | Описание |
|---|---|---|
| Заказчик* | 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 |
Сессионный пользователь |
⚠️ Параметр «Копировать подписчиков из родительской» не управляет копированием подписчиков: при создании подзадачи через смарт-действие подписчики родительской задачи копируются всегда. Управление через параметры действия работает только для исполнителей (флаг копирования и режим «только ответственный»). Чтобы убрать лишних подписчиков, добавьте в тот же пакет смарт-действие «Удалить подписчика» или «Удалить всех подписчиков».
Создать встречу (CreateMeeting, ID 134)¶
Создает календарное событие
| Параметр | Тип | Описание |
|---|---|---|
| Организатор* | 1F.User |
Организатор встречи |
| Участники | Collection<1F.User> |
Участники |
| Начало* | DateTime |
Время начала |
| Конец* | DateTime |
Время окончания |
| Место | String |
Место |
| Тема* | String |
Тема |
| Html* | Boolean |
Описание в HTML |
| Тело* | String |
Описание |
| Привязать задачу | 1F.Task |
Задача в "Связано с" |
| Статус встречи* | — | Свободен / Под вопросом / Занят / Нет на месте / Работаю в другом месте / Нет данных |
| Проверять привязанную задачу перед созданием* | Boolean |
Проверка на дубли |
| Доп. email адреса участников | String |
Дополнительные email |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Удалить аватар задачи (DeleteTaskAvatar, ID 192)¶
Удаляет аватар задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача, в которой удаляется аватар |
Удалить встречу (DeleteMeeting, ID 136)¶
Удаляет встречу из календаря
| Параметр | Тип | Описание |
|---|---|---|
| Ключ встречи* | String |
Уникальный идентификатор встречи |
| Доступ к календарю от имени пользователя | 1F.User |
От чьего лица действие |
Удалить задачу из избранного (DeleteTaskFromFavorites, ID 93)¶
Удаляет задачу из блока Избранное у указанных пользователей
| Параметр | Тип | Описание |
|---|---|---|
| Кому удаляют* | Collection<1F.User> |
Пользователи |
| Задача* | 1F.Task |
Задача |
Удалить комментарий из избранного (DeleteCommentFromFavorites, ID 95)¶
Удаляет комментарий из блока Избранное у указанных пользователей
| Параметр | Тип | Описание |
|---|---|---|
| Кому удаляют* | Collection<1F.User> |
Пользователи |
| ID комментария* | Integer |
ID комментария |
Удалить связь между задачами (RemoveTasksLink, ID 21)¶
Разрывает связь между задачами
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Первая задача |
| Другая задача* | 1F.Task |
Вторая задача |
| Кто разрывает* | 1F.User |
От чьего имени |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
Оповещения¶
Вызвать диалоговое окно (CallUpDialogBox, ID 152)¶
Вызывает диалоговое окно
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Получатели (пользователи)* | Collection<1F.User> |
Получатели |
| Тип уведомления* | — | Ошибка / Успех / Информирование |
| Заголовок сообщения | String |
Заголовок |
| Сообщение | String |
Текст сообщения |
Вызвать снекбар (CallSnackBar, ID 151)¶
Вызывает снекбар
| Параметр | Тип | Описание |
|---|---|---|
| Задача | 1F.Task |
Задача (необязательно — можно без привязки) |
| Получатели (пользователи)* | Collection<1F.User> |
Получатели |
| Сообщение | String |
Текст сообщения |
Отправить email (SendEmail)¶
Создает и отправляет электронное письмо от имени указанного пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Email отправителя* | String |
Email для отправки |
| Получатели* | String |
Email-адреса через запятую |
| СС | String |
Копия (email через запятую) |
| Тема* | String |
Тема письма |
| Текст письма* | String |
Текст |
| Вложения | Collection<1F.File> |
Файлы из Диска |
| Каждому адресату отдельное письмо | Boolean |
Отдельное письмо каждому |
| Преобразовывать base64 картинки во вложения | Boolean |
По умолчанию включено |
| Id email report | Integer |
ID отчета FastReport для вложения в HTML |
| Параметры отчета | String |
Параметры отчета |
⚠️ В Общих настройках должен быть включен флажок "Разрешена работа с почтой"
Отправить email на группу (SendMailBoxEmailToGroup, ID 54)¶
Создает и отправляет электронное письмо группе
| Параметр | Тип | Описание |
|---|---|---|
| Email отправителя* | String |
Email для отправки |
| Группы получателей* | String |
ID групп через запятую |
| СС | String |
Копия |
| Тема* | String |
Тема |
| Текст письма* | String |
Текст |
| Вложения | Collection<1F.File> |
Файлы |
| Использовать внешние Email адреса | Boolean |
Внешние email из профилей |
| Каждому адресату отдельное письмо | Boolean |
Отдельное письмо каждому |
Отправить push-сообщение (SendPush)¶
Отправляет push-сообщение
| Параметр | Тип | Описание |
|---|---|---|
| ID категории | 1F.Subcat |
Категория |
| Кому | Collection<1F.User> |
Получатели |
| Сообщение | String |
Текст |
| Счетчик | Integer |
Значение для iOS |
| Звук | Integer |
Номер мелодии |
| Тихий пуш* | Boolean |
content-available:1 |
| ID задачи | Integer |
Задача для уведомления |
| Кастомные параметры пуша | String |
Пары ключ-значение |
| Приоритет | Integer |
0=низкий, 1=обычный, 3=высокий |
| Push-токен | String |
Токены устройств через запятую |
⚠️ Заполнить "Кому" или "Push-токен"
Отправить SMS (SendSms)¶
Отправляет SMS
| Параметр | Тип | Описание |
|---|---|---|
| Номер* | String |
10-значный номер |
| Текст* | String |
Текст сообщения |
| Провайдер | Integer |
ID провайдера SMS |
Отправить voip push-сообщение (SendVoipPush, ID 125)¶
Отправляет voip push-сообщение
| Параметр | Тип | Описание |
|---|---|---|
| Кому* | Collection<1F.User> |
Получатели |
| ID задачи | Integer |
Задача |
| Кастомные параметры пуша | String |
Пары ключ-значение |
Отправить комментарий (PostComment)¶
Отправляет сообщение в ленту задачи. Это основной способ добавить комментарий из SmartScript.
| Параметр | Тип | Описание |
|---|---|---|
| Автор* | 1F.User |
Автор комментария |
| Текст* | String |
Текст |
| Задача* | 1F.Task |
Задача |
| Получатели (пользователи) | Collection<1F.User> |
Адресаты |
| Получатели (группы) | Collection<1F.UserGroup> |
Группы-адресаты |
| Принудительно на почту* | Boolean |
Также по email |
| + SMS* | Boolean |
Также по SMS |
| Не подписывать адресатов к задаче* | Boolean |
Не подписывать получателей |
| Пометить как вопрос | Boolean |
Пометить вопросом |
| Копия (пользователи) | Collection<1F.User> |
Получатели копии |
| Тип комментария | — | Тип комментария |
| Видим в ленте только для настоящих адресатов | Boolean |
Видимость только адресатам |
| Тихий комментарий | Boolean |
Без увеличения счётчика |
| RealUserId | Integer |
Значение RealUserId |
| Тихий пуш | Boolean |
content-available:1 |
| Кастомные параметры пуша | String |
Пары ключ-значение |
| Файлы | Collection<1F.File> |
Вложения |
| В ответ на комментарий | Integer |
ID комментария для ответа |
| Тред | Integer |
ID комментария-начала обсуждения |
| Отображать найденные ссылки | Boolean |
Показывать ссылки (по умолчанию false) |
Отправить сигнал¶
Сигнализирует о входе в комнату ВКС
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | String |
Получатель |
| Текст* | String |
Текст сигнала |
| Тип сигнала* | String |
Тип события |
Отправить системный email (SendMailBoxEmail, ID 44)¶
Отправляет почтовое сообщение с проверкой системного почтового ящика
| Параметр | Тип | Описание |
|---|---|---|
| Тема* | String |
Тема |
| Текст письма* | String |
Текст |
| Получатели* | String |
Email через запятую |
| СС | String |
Копия |
| Email отправителя* | String |
Email отправителя |
| Вложения | Collection<1F.File> |
Файлы |
| Каждому адресату отдельное письмо | Boolean |
Отдельное письмо каждому |
| Id email report | Integer |
ID отчета FastReport |
| Параметры отчета | String |
Параметры отчета |
Отправить уведомление пользователю (SendCustomMessageToUser, ID 124)¶
В веб-клиент пользователя отправляется текстовое сообщение
| Параметр | Тип | Описание |
|---|---|---|
| Пользователь* | 1F.User |
Получатель |
| Текст* | String |
JSON-описание действия, например { type: 'OpenTask', taskId: 12345 } |
⚠️ Требуется интеграция с телефонией и Signal-R
Создать напоминание о задаче (CreateTaskNotification, ID 41)¶
Создает напоминание о задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Пользователь* | 1F.User |
Получатель |
| Дата* | DateTime |
Дата и время |
| Текст* | String |
Текст напоминания |
| Уведомить по SMS* | Boolean |
Отправить SMS |
| Создать копию в Outlook* | Boolean |
Создать в Outlook |
| Получатели (пользователи) | Collection<1F.User> |
Дополнительные получатели |
Заказчики, исполнители, подписчики¶
Добавить группу исполнителей (AddPerformerGroup, ID 55)¶
Добавляет группу пользователей в исполнители задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User |
От чьего имени |
| Кого (группа)* | Collection<1F.UserGroup> |
Группы для добавления |
| Задача* | 1F.Task |
Задача |
| Не слать письмо* | Boolean |
Не отправлять email |
| Не писать комментарий* | Boolean |
Комментарий только автору |
Добавить группу подписчиков (AddSubscriberGroup, ID 18)¶
Добавляет группу пользователей в подписчики задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User |
От чьего имени |
| Кого* | Collection<1F.UserGroup> |
Группы |
| Задача* | 1F.Task |
Задача |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
| Не писать комментарий | Boolean |
Комментарий только автору |
Добавить исполнителя (AddPerformer)¶
Добавляет пользователей в исполнители задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User |
От чьего имени |
| Кого* | Collection<1F.User> |
Пользователи |
| Задача* | 1F.Task |
Задача |
| Не слать письмо* | Boolean |
Не отправлять email |
| Не писать комментарий* | Boolean |
Комментарий только автору |
| Ресурс | 1F.Task |
Задача из "Справочник ресурсов" |
Подписчики (AddSubscriber)¶
Добавляет пользователей в подписчики задачи
| Параметр | Тип | Описание |
|---|---|---|
| Кто* | 1F.User |
От чьего имени |
| Кого* | Collection<1F.User> |
Пользователи |
| Задача* | 1F.Task |
Задача |
| Не писать комментарий* | Boolean |
Комментарий только автору |
Изменить заказчика (ChangeTaskOwner)¶
Меняет заказчика задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Кто* | 1F.User |
От чьего имени |
| Кого* | 1F.User |
Новый заказчик |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
Назначить заместителя (AssignAssistant, ID 30)¶
Назначает для пользователя заместителя на период
| Параметр | Тип | Описание |
|---|---|---|
| Кто назначает* | 1F.User |
От чьего имени |
| Заместитель* | 1F.User |
Заместитель |
| Замещаемый* | 1F.User |
Замещаемый |
| С | DateTime |
Начало периода |
| По | DateTime |
Конец периода |
Удалить заместителя (RemoveAssistant, ID 31)¶
Удаляет назначенного заместителя пользователя.
| Параметр | Тип | Описание |
|---|---|---|
| Замещаемый* | 1F.User |
Чей заместитель удаляется |
| Заместитель* | 1F.User |
Удаляемый заместитель |
Назначить ответственным (MakePerformerResponsible)¶
Назначает пользователя ответственным исполнителем в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Кто* | 1F.User |
От чьего имени |
| Кого* | 1F.User |
Ответственный исполнитель |
Удалить всех исполнителей (RemoveAllPerformers, ID 7)¶
Удаляет всех исполнителей в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет* | 1F.User |
От чьего имени |
| Задача* | 1F.Task |
Задача |
| Не слать письмо* | Boolean |
Не отправлять email |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
| Не писать комментарий | Boolean |
Комментарий только автору |
Удалить всех подписчиков (RemoveAllSubscribers, ID 57)¶
Удаляет всех подписчиков в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Кто удаляет* | 1F.User |
От чьего имени |
| Задача* | 1F.Task |
Задача |
| Не писать комментарий | Boolean |
Комментарий только автору |
Удалить исполнителя (RemovePerformer, ID 14)¶
Удаляет исполнителя в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Кто удаляет* | 1F.User |
От чьего имени |
| Кого удаляют* | 1F.User |
Удаляемый исполнитель |
| Причина | String |
Причина удаления |
| Не слать письмо* | Boolean |
Не отправлять email |
| Писать "тихий" комментарий (без адресата) | Boolean |
Тихий комментарий |
| Не писать комментарий | Boolean |
Комментарий только автору |
Удалить подписчика (RemoveSubscriber, ID 19)¶
Удаляет подписчика в задаче
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Кто удаляет* | 1F.User |
От чьего имени |
| Кого удаляют* | 1F.User |
Удаляемый подписчик |
| Причина | String |
Причина удаления |
| Не писать комментарий | Boolean |
Комментарий только автору |
Работа с операторами ЭДО¶
Диадок¶
Полный реестр enum-имён и ID — в
reference/automation/smart-actions-enum.md, группаEdiDiadoc. Соответствие подразделов и enum:
| Подраздел | Enum | ID |
|---|---|---|
| Ответить на электронный документ | AttachSignature |
117 |
| Ответить титулом на электронный документ | AttachTitleSignature |
133 |
| Отправить подписанное извещение о получении | AttachInvoiceReceiptSignature |
149 |
| Отправить подписанный отказ от подписи | AttachRejectionSignature |
118 |
| Отправить подписанный отказ от аннулирования | AttachRevocationRejectionSignature |
146 |
| Отправить подписанный файл об аннулировании | AttachRevocationSignature |
128 |
| Отправить подписанный файл соглашения об аннулировании | AttachRevocationRequestedSignature |
144 |
| Отправить электронный документ | SendEdocument |
113 |
| Получить документ (Сохранить содержимое по ссылке) | SaveEdocumentContentByLink |
114 |
| Получить печатную форму по ссылке | SaveEdocumentPrintFormByLink |
115 |
| Получить архивную форму по ссылке | SaveEdocumentArchiveFormByLink |
127 |
| Получить идентификатор МЧД | GetUserMCHDDiadoc |
165 |
| Получить контрагентов | GetCounteragents |
164 |
| Получить статус МЧД | GetMCHDStatusDiadoc |
171 |
| Получить тэги документа | GetTagsFromDocument |
142 |
| Получить файлы МЧД | GetMCHDFilesDiadoc |
166 |
| Получить пропущенные документы | ReceiveMissedDocDiadoc |
150 |
| Сгенерировать xml титул для документа | GenerateXmlTitle |
132 |
| Сгенерировать пустой xml титул покупателя | GenerateXmlBuyerTitle |
131 |
| Создать файл аннулирования подписи | SaveRevocationFile |
143 |
| Создать файл извещения о получении | GenerateInvoiceReceiptXml |
148 |
| Создать файл отказа от подписи | GenerateRejectionSignature |
119 |
| Создать файл аннулирования (генерация) | GenerateRevocationSignature |
129 |
| Создать файл отклонения аннулирования подписи | GenerateRejectRevocationSignature |
145 |
| Синхронизировать статусы документов в сообщении | SyncMessageStatus |
163 |
| Universal-сообщения (новый канал): | ||
| Отправить подписанный отказ от подписи (Universal) | AttachRejectionSignatureUniversal |
202 |
| Отправить подписанный отказ от запроса аннулирования (Universal) | AttachRevocationRejectionSignatureUniversal |
203 |
| Отправить подписанный файл извещения о получении (Universal) | AttachInvoiceReceiptSignatureUniversal |
204 |
| Создать файл отклонения аннулирования подписи (Universal) | GenerateRevocationRejectionSignatureUniversal |
205 |
| Создать файл отказа от подписи (Universal) | GenerateRejectionSignatureUniversal |
206 |
Диадок - Ответить на электронный документ¶
Отправка положительного ответа (подписание) без титула
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | String |
ID файла |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись (необязательна для серверной подписи в Lua) |
| МЧД* | String |
МЧД |
Диадок - Ответить титулом на электронный документ¶
Отправка положительного ответа (подписание) с титулом
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | String |
ID файла |
| ID xml файла титула | String |
ID xml файла титула |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить подписанное извещение о получении¶
Отправляет подписанное извещение о получении документа
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла с документом |
| ID файла извещения* | 1F.File |
ID файла извещения |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить подписанный отказ от аннулирования¶
Отправляет подписанный файл отказа от аннулирования
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла с документом |
| ID файла отказа* | 1F.File |
ID файла отказа |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить подписанный отказ от подписи¶
В ответ на запрошенную подпись отправляет документ с отказом
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID файла отказа* | 1F.File |
ID файла отказа |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить подписанный файл об аннулировании¶
Отправляет подписанный файл об аннулировании
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID файла отказа* | 1F.File |
ID файла аннулирования |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить подписанный файл соглашения об аннулировании¶
Отправляет подписанный файл исходящего запроса на аннулирование
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID файла отказа* | 1F.File |
ID файла аннулирования |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| МЧД* | String |
МЧД |
Диадок - Отправить электронный документ¶
Отправляет документ в Диадок
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ИНН контрагента* | String |
ИНН |
| КПП контрагента* | String |
КПП |
| Нужна ли ответная подпись | Boolean |
Запрос подписи |
| Тип документа | String |
— |
| Сумма | Money |
Сумма документа |
| ID сервиса* | Integer |
ID сервиса |
| Уникальный идентификатор организации | String |
ID организации |
| Подпись* | String |
Подпись |
| МЧД* | String |
JSON: {registerNumber, issuerInn, useDefault} |
| Номер договора* | String |
ID договора |
| К договору* | String |
К договору |
| От (к договору)* | String |
От |
| Исходный ящик* | String |
Исходный ящик |
| Дата документа* | String |
Дата |
| Код валюты* | Integer |
ISO 4217 (643=RUB, 840=USD, 978=EUR) |
Диадок - Получить документ¶
Загрузка пакета документов из Диадока
| Параметр | Тип | Описание |
|---|---|---|
| MessageId* | String |
ID сообщения |
| EntityId* | String |
ID сущности |
| ServiceId | Integer |
ID сервиса |
Диадок - Получить идентификатор МЧД¶
Получает идентификатор МЧД (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID пользователя* | String |
UserID в Диадок |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Получить контрагентов¶
Получает контрагентов (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID сервиса* | Integer |
ID сервиса |
Диадок - Получить статус МЧД¶
Получает статус МЧД (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| MessageId* | String |
ID сообщения (поле MessageId в EdocumentLinks) |
| EntityId* | String |
ID сущности (поле ContentId в EdocumentLinks) |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Получить тэги документа¶
Получает тэги документа (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID ссылки на электронный документ* | Integer |
ID ссылки |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Получить файлы МЧД¶
Получает файлы МЧД (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID МЧД* | String |
ID МЧД |
| ID сообщения* | String |
ID сообщения |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Сгенерировать пустой xml титул покупателя¶
Генерирует пустой xml титул покупателя (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID сервиса* | Integer |
ID сервиса |
| Параметры для титула в формате JSON | String |
— |
| Параметры для титула в формате JSON в 970 | String |
— |
Диадок - Сгенерировать xml титул для документа¶
Генерирует титульный лист (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID xml файла* | 1F.File |
ID xml файла титула |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Синхронизировать статусы документов в сообщении¶
Актуализация статуса (возвращает JSON, с версии 2.260 Пегас)
| Параметр | Тип | Описание |
|---|---|---|
| Список ID сообщений* | String |
Список MessageId |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Создать файл аннулирования подписи¶
Создает файл аннулирования (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина аннулирования* | String |
Причина |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Создать файл извещения о получении¶
Создает файл извещения (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Создать файл отказа от подписи¶
Создает файл отказа от подписи (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина отказа* | String |
Причина |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Создать файл отклонения аннулирования подписи¶
Создает файл отклонения аннулирования (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина аннулирования* | String |
Причина |
| ID сервиса* | Integer |
ID сервиса |
Диадок - Создать файл отказа от подписи (Universal)¶
Расширенная версия с явным отпечатком сертификата (возвращает FileStorageFileInfo). Enum: 206.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла документа контрагента |
| Причина отказа | String |
Причина отказа (необязательна) |
| Отпечаток сертификата* | String |
Thumbprint сертификата ЭП в формате HEX |
| ID сервиса | Integer |
ID сервиса |
Диадок - Отправить подписанный отказ от подписи (Universal)¶
Подписывает и отправляет отказ от подписи с возможностью передать причину напрямую. Enum: 202.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID исходного документа контрагента |
| ID файла отказа* | 1F.File |
ID XML-файла отказа (из «Создать файл отказа от подписи (Universal)») |
| ID сервиса | Integer |
ID сервиса |
| Подпись | String |
Подпись в формате Base64 |
| Причина отказа | String |
Текстовая причина отказа |
| МЧД | String |
МЧД |
Диадок - Создать файл отклонения аннулирования подписи (Universal)¶
Расширенная версия с явным отпечатком сертификата. Enum: 205.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID документа, по которому пришёл запрос аннулирования |
| Причина отказа | String |
Причина отклонения аннулирования |
| Отпечаток сертификата* | String |
Thumbprint сертификата ЭП в формате HEX |
| ID сервиса | Integer |
ID сервиса |
Диадок - Отправить подписанный отказ от запроса аннулирования (Universal)¶
Подписывает и отправляет отклонение запроса аннулирования. Enum: 203.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID исходного документа |
| ID файла отказа* | 1F.File |
ID XML-файла отклонения аннулирования |
| ID сервиса | Integer |
ID сервиса |
| Подпись | String |
Подпись в формате Base64 |
| Причина отказа | String |
Текстовая причина отклонения |
| МЧД | String |
МЧД |
Диадок - Отправить подписанный файл извещения о получении (Universal)¶
Подписывает и отправляет извещение о получении счёта-фактуры. Enum: 204.
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID исходного счёта-фактуры от контрагента |
| ID файла извещения* | 1F.File |
ID XML-файла извещения (из «Создать файл извещения о получении») |
| ID сервиса | Integer |
ID сервиса |
| Подпись | String |
Подпись в формате Base64 |
| Комментарий | String |
Комментарий к извещению |
| МЧД | String |
МЧД |
СБИС¶
Полный реестр enum-имён и ID — в
reference/automation/smart-actions-enum.md, группаEdiSbis. Соответствие подразделов и enum:
| Подраздел | Enum | ID |
|---|---|---|
| Приложить подпись | SbisAttachSignature |
154 |
| Приложить подпись отказа | SbisAttachRejectSignature |
155 |
| Приложить подпись аннулирования | SbisAttachRevocationSignature |
159 |
| Приложить подпись отказа от аннулирования | SbisAttachRevocationRejectionSignature |
160 |
| Приложить запрошенную подпись аннулирования | SbisAttachRevocationRequestedSignature |
167 |
| Приложить подпись к счёту-фактуре | SbisAttachInvoiceSignature |
175 |
| Сохранить содержимое документа | SbisSaveDocumentContent |
156 |
| Сохранить печатную форму по ссылке | SbisSavePrintFormByLink |
157 |
| Сохранить архив по ссылке | SbisSaveArchiveByLink |
158 |
| Получить теги документа | SbisGetDocumentTags |
161 |
| Отправить электронный документ | SbisSendEdocument |
162 |
| Сгенерировать подпись отказа | GenerateRejectionSbisSignature |
168 |
| Сгенерировать титул аннулирования | SbisGenerateRevocationTitle |
169 |
| Сгенерировать подпись отказа от аннулирования | GenerateRevocationRejectionSbisSignature |
170 |
| Получить статус МЧД | GetMCHDStatusSbis |
172 |
| Получить архив МЧД | GetMCHDArchiveSbis |
173 |
| Сгенерировать счёт-фактуру | GenerateInvoiceSbis |
174 |
| Получить сертификаты | SbisGetCertificates |
176 |
| Сгенерировать подпись подтверждения | SbisGenerateConfirmSignature |
177 |
| Синхронизировать статус сообщения | SyncMessageStatusSbis |
188 |
СБИС - Отправить отказ от аннулирования¶
Отправляет отказ от аннулирования
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | Array<{FileId, VersionId, AttachmentId, DocumentId}> |
Массив объектов |
| 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 |
МЧД |
СБИС - Отправить подписанные соглашения об аннулировании¶
Отправляет подписанные соглашения (входящее)
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | Array<{FileId, VersionId, AttachmentId, DocumentId}> |
Массив для вложений со статусом 27 |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| Комментарий* | String |
Комментарий |
| МЧД* | String |
МЧД |
СБИС - Отправить подписанный отказ от подписи¶
Отправляет подписанный отказ
| Параметр | Тип | Описание |
|---|---|---|
| Файлы (id, versionId, attachmentId)* | String |
Массив объектов |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| Комментарий* | String |
Комментарий |
| МЧД* | String |
МЧД |
СБИС - Отправить соглашение об аннулировании¶
Отправляет соглашение (исходящее)
| Параметр | Тип | Описание |
|---|---|---|
| Файлы* | Array<{FileId, VersionId, AttachmentId, DocumentId}> |
Массив для вложений со статусом 27 |
| ID сервиса* | Integer |
ID сервиса |
| Подпись* | String |
Подпись |
| Комментарий* | String |
Комментарий |
| МЧД* | String |
МЧД |
СБИС - Отправить электронный документ¶
Отправляет документ в СБИС
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| ИНН контрагента* | String |
ИНН |
| КПП контрагента* | String |
КПП |
| Уникальное ID контрагента* | String |
ID контрагента |
| Нужна ли ответная подпись | Boolean |
Запрос подписи |
| Тип документа | — | — |
| Сумма | Money |
Сумма |
| ID сервиса* | Integer |
ID сервиса |
СБИС - Получить архив МЧД¶
Запрос архива МЧД (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| Идентификатор МЧД* | String |
ID МЧД |
| ИНН доверителя* | String |
ИНН доверителя |
| ИНН представителя* | String |
ИНН представителя |
| ID сервиса* | Integer |
ID сервиса |
СБИС - Получить сертификаты¶
Запрос слепка сертификата (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID сервиса* | Integer |
ID сервиса |
| Идентификатор | String |
ID сотрудника в СБИС |
| Идентификатор в ИС | String |
ID во внешней системе |
| ИНН | String |
ИНН сотрудника |
| Телефон | String |
Телефон |
String |
||
| СНИЛС | String |
СНИЛС |
| Серия документа | String |
Серия |
| Номер документа | String |
Номер |
СБИС - Получить статус МЧД¶
Получает статус МЧД (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| Идентификатор МЧД* | String |
ID МЧД |
| ID сервиса* | Integer |
ID сервиса |
СБИС - Получить тэги документа¶
Получает тэги документа (возвращает System.Int32)
| Параметр | Тип | Описание |
|---|---|---|
| ID ссылки на электронный документ* | Integer |
ID ссылки |
| ID сервиса* | Integer |
ID сервиса |
СБИС - Синхронизировать статусы документов в сообщении¶
Актуализация статуса (с версии 2.262 Весы)
| Параметр | Тип | Описание |
|---|---|---|
| Список ID сообщений* | String |
Список DocumentId |
| ID сервиса* | Integer |
ID сервиса |
СБИС - Создать файл аннулирования подписи¶
Создает файл аннулирования (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина аннулирования* | String |
Причина |
| ID сервиса* | Integer |
ID сервиса |
| МЧД* | String |
МЧД |
СБИС - Создать файл извещения о получении¶
Создает файл извещения (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Отпечаток сертификата | String |
Хеш сертификата |
| ID сервиса* | Integer |
ID сервиса |
| МЧД* | String |
МЧД |
СБИС - Создать файлы отказа от аннулирования¶
Создает файлы отказа (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина отказа | String |
Причина |
| Отпечаток сертификата | String |
Хеш сертификата |
| ID сервиса* | Integer |
ID сервиса |
| МЧД* | String |
МЧД |
СБИС - Создать файлы отказа от подписи¶
Создает файлы отказа (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина отказа | String |
Причина |
| Отпечаток сертификата | String |
Хеш сертификата |
| ID сервиса* | Integer |
ID сервиса |
| МЧД* | String |
МЧД |
СБИС - Создать файлы подтверждения подписи¶
Создает файлы подтверждения (возвращает FileStorageFileInfo)
| Параметр | Тип | Описание |
|---|---|---|
| ID файла* | 1F.File |
ID файла |
| Причина | String |
Причина |
| Отпечаток сертификата | String |
Хеш сертификата |
| ID сервиса* | Integer |
ID сервиса |
| МЧД* | String |
МЧД |
Маршруты, переходы¶
Выполнить переход по маршруту (MakeStep)¶
Выполняет переход по маршруту (если известен ID перехода)
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Инициатор перехода* | 1F.User |
От чьего имени |
| Переход* | 1F.Step |
Переход |
| Причина | String |
Причина перехода |
| Не писать комментарий* | Boolean |
Комментарий только автору |
Изменить статус задачи (ChangeTaskStateForcibly)¶
Принудительно меняет статус задачи
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
Задача |
| Инициатор* | 1F.User |
От чьего имени |
| Статус* | 1F.State |
Целевой статус |
| Не проверять права* | Boolean |
Не проверять права пользователя |
| Не писать комментарий | Boolean |
Комментарий только автору |
| Не записывать ошибку, если уже в этом статусе | Boolean |
Не считать ошибкой совпадение статусов |
⚠️ Для принудительной смены статуса не требуется наличие перехода между статусами в маршруте
Оргструктура, группы, пользователи¶
Создать пользователя (CreateUser)¶
Создает нового пользователя в системе (возвращает Integer — UserID)
| Параметр | Тип | Описание |
|---|---|---|
| ID орг. единицы* | Integer |
Подразделение оргструктуры |
String |
Email (обязательность зависит от настроек) | |
| Внешний email | String |
Внешний email (обязательность зависит от настроек) |
| Логин* | String |
Логин пользователя |
| Фамилия* | String |
Фамилия |
| Имя | String |
Имя |
| Отчество | String |
Отчество |
| Дата рождения | DateTime |
Дата рождения (обязательность зависит от настроек) |
| Отображаемое имя* | String |
Отображаемое имя |
| В компании с | DateTime |
Дата приёма на работу |
| Пол | Boolean |
True = мужской, False = женский |
| Язык* | 1F.Language |
Язык интерфейса |
| Сменить пароль при входе* | Boolean |
Потребовать смену пароля |
| Не присылать почтовые сообщения* | Boolean |
Отключить email-уведомления |
| Пароль | String |
Пароль (если не указан — генерируется) |
| SID | String |
SID из Active Directory |
| Может редактировать блок Рабочее* | Boolean |
Право редактирования |
| Может редактировать блок География* | Boolean |
Право редактирования |
| Может редактировать блок Контакты* | Boolean |
Право редактирования |
| Может редактировать блок Личное* | Boolean |
Право редактирования |
| Сотрудник компании* | Boolean |
Признак сотрудника |
| Синхронизировать календарь с Exchange* | Boolean |
Синхронизация |
| Автоматически прочитывать комментарии при завершении задачи* | Boolean |
Автопрочитка |
| Лицензии | Collection<Module> |
Лицензионные модули |
| Рабочий телефон | String |
Телефон |
| Мобильный | String |
Мобильный |
| Страна | String |
Страна |
| Город | String |
Город |
| Часовой пояс | 1F.TimeZone |
Часовой пояс |
| Домен пользователя | String |
Домен AD |
| Не отправлять смс | Boolean |
Отключить SMS |
| От чьего имени совершается действие | 1F.User |
Сессионный пользователь |
⚠️ При создании пользователя ФИО автоматически записываются как локализованное значение для выбранного языка. Для указания ФИО на дополнительных языках используйте SQL-скрипт или Localization API после создания. См.
/docs/domains/localization/backend.md
Обновить пользователя (UpdateUser)¶
Обновляет данные существующего пользователя
| Параметр | Тип | Описание |
|---|---|---|
| Кто обновляет* | 1F.User |
От чьего имени |
| Пользователь* | 1F.User |
Обновляемый пользователь |
String |
||
| Внешний email | String |
Внешний email |
| Логин | String |
Логин |
| Фамилия | String |
Фамилия |
| Имя | String |
Имя |
| Отчество | String |
Отчество |
| Дата рождения | DateTime |
Дата рождения |
| Отображаемое имя | String |
Отображаемое имя |
| В компании с | DateTime |
Дата приёма |
| Пол | Boolean |
True = мужской, False = женский |
| Язык | 1F.Language |
Язык интерфейса |
| Сменить пароль при входе | Boolean |
Потребовать смену пароля |
| Не присылать почтовые сообщения | Boolean |
Отключить email |
| Пароль | String |
Новый пароль |
| SID | String |
SID из AD |
| Может редактировать блок Рабочее | Boolean |
Право редактирования |
| Может редактировать блок География | Boolean |
Право редактирования |
| Может редактировать блок Контакты | Boolean |
Право редактирования |
| Может редактировать блок Личное | Boolean |
Право редактирования |
| Сотрудник компании | Boolean |
Признак сотрудника |
| Синхронизировать календарь с Exchange | Boolean |
Синхронизация |
| Автоматически прочитывать комментарии при завершении задачи | Boolean |
Автопрочитка |
| Лицензии | Collection<Module> |
Лицензионные модули |
| Рабочий телефон | String |
Телефон |
| Мобильный | String |
Мобильный |
| Страна | String |
Страна |
| Город | String |
Город |
| Часовой пояс | 1F.TimeZone |
Часовой пояс |
| Домен пользователя | String |
Домен AD |
| Не отправлять смс | Boolean |
Отключить SMS |
⚠️ Все параметры (кроме "Кто обновляет" и "Пользователь") необязательные — обновляются только заполненные поля. Локализация ФИО обновляется только для языка сессионного пользователя.
Уволить пользователя (FireUser, ID 34)¶
Увольняет пользователя (устанавливает признак IsFired)
Восстановить пользователя (UnfireUser, ID 101)¶
Восстанавливает уволенного пользователя
Синхронизировать пользователя с AD (SyncUserWithAD, ID 105)¶
Выполняет синхронизацию данных пользователя с Active Directory
Добавить модуль пользователю (AddModuleToUser, ID 102)¶
Добавляет лицензионный модуль пользователю
Удалить модуль у пользователя (DeleteModuleFromUser, ID 103)¶
Удаляет лицензионный модуль у пользователя
Добавить пользователя в орг. единицу (AddUserToOrgUnit, ID 64)¶
Добавляет пользователя в подразделение оргструктуры
Удалить пользователя из орг. единицы (RemoveUserFromOrgUnit, ID 100)¶
Удаляет пользователя из подразделения оргструктуры
Задать значение поля пользовательского инфо (SetUserInfoExtValue, ID 58)¶
Устанавливает значение расширенного поля профиля пользователя
Добавить пользователей в группы (AddUsersToGroups, ID 71)¶
Массовое добавление набора пользователей в один или несколько групп.
| Параметр | Тип | Описание |
|---|---|---|
| Пользователи* | Collection<1F.User> |
Список пользователей |
| Группы* | Collection<1F.UserGroup> |
Список групп |
Удалить пользователей из групп (RemoveUsersFromGroups, ID 72)¶
Массовое удаление пользователей из групп. Параметры — те же, что у AddUsersToGroups.
Создать орг. единицу (CreateOrgUnit, ID 180)¶
Создаёт новое подразделение в оргструктуре.
| Параметр | Тип | Описание |
|---|---|---|
| Название* | String |
Название орг. единицы |
| Родительская единица | 1F.OrgUnit |
Родитель в иерархии (если не указано — корень) |
| Описание | String |
Описание |
Обновить орг. единицу (UpdateOrgUnit, ID 181)¶
Обновляет атрибуты существующего подразделения. Все поля кроме «Орг. единица» опциональны — обновляются только заполненные.
| Параметр | Тип | Описание |
|---|---|---|
| Орг. единица* | 1F.OrgUnit |
Целевое подразделение |
| Новое название | String |
— |
| Новый родитель | 1F.OrgUnit |
Перенос в другую ветвь |
| Описание | String |
— |
Удалить орг. единицу (DeleteOrgUnit, ID 182)¶
Удаляет подразделение. Удаление с не-пустыми пользователями / дочерними подразделениями зависит от стратегии — обычно требует предварительного переноса.
| Параметр | Тип | Описание |
|---|---|---|
| Орг. единица* | 1F.OrgUnit |
Удаляемое подразделение |
Файлы и отчёты¶
Создать файл отчёта (CreateReportFile)¶
Генерирует файл отчёта FastReport и загружает его в задачу. Enum ID = 75.
| Параметр | Кодовое имя | Тип | Описание |
|---|---|---|---|
| ID отчёта* | ReportIdActionParam |
Report |
Отчёт из справочника (объект { Id: reportId }) |
| Параметры отчёта | ParametersOfReportActionParam |
Collection<ReportParameter> |
Параметры для передачи в FastReport (необязательно) |
| Имя файла* | ReportFileNameActionParam |
String |
Имя выходного файла (без расширения) |
| Формат файла | ReportFileExtActionParam |
ReportFileExt |
Формат: Excel2007 (xlsx), Word2007 (docx), Pdf, Csv, Html, Rtf, Json, Png и др. По умолчанию Pdf |
Lua:
SMART:execute_action('CreateReportFile', CONTEXT.Id, 'task', {
ReportIdActionParam = { Id = reportId },
ReportFileNameActionParam = 'Отчёт_' .. os.date('%Y%m%d'),
ReportFileExtActionParam = 'Excel2007'
})
JavaScript:
// Без параметров — отчёт берёт данные из контекста задачи
SMART.execute_action_in_task_context("CreateReportFile", taskId, {
ReportIdActionParam: { Id: reportId },
ReportFileNameActionParam: "Отчёт_" + new Date().toISOString().slice(0,10),
ReportFileExtActionParam: "Excel2007"
});
// С параметрами — передача значений в фильтры отчёта
SMART.execute_action_in_task_context("CreateReportFile", taskId, {
ReportIdActionParam: { Id: reportId },
ParametersOfReportActionParam: [
{ ParameterName: "TaskID", FixedValue: String(taskId) },
{ ParameterName: "DateFrom", FixedValue: "2026-01-01" }
],
ReportFileNameActionParam: "Выгрузка",
ReportFileExtActionParam: "Pdf"
});
Gotcha — ParametersOfReportActionParam: каждый элемент массива — объект с
ParameterName(имя параметра в FR) и одним из:FixedValue(строка) илиSmartExpressionId(ID смарт-выражения, значение вычисляется). Если SmartExpression возвращает несколько строк — берётся только первая.Gotcha — результат: действие возвращает
FileFromLibrary(JSON сIdфайла). Для прикрепления к задаче используйте действие «Вложить файл» (UploadFile) в том же пакете.
Форматы (enum ReportFileExt): Pdf, Excel2007 (xlsx), Word2007 (docx), Csv, Html, Rtf, Json, Png, Jpg, Xml, Odf, Ods, Odt, Point2007 (pptx), Text (txt), Svg.
Вложить файл (UploadFile)¶
Загружает файл в задачу (комментарий или ДП типа Файл).
| Параметр | Тип | Описание |
|---|---|---|
| Файл* | 1F.File |
Файл (из результата CreateReportFile или другого действия) |
| Задача* | 1F.Task |
Куда загрузить |
Данные¶
Записать в регистр (WriteRegistryValue)¶
Добавляет запись в регистр или перезаписывает существующую. Enum ID = 109.
Что такое регистр. Регистр — именованное многомерное хранилище данных, которое накапливает историю изменений. Состоит из измерений (разрезы: номенклатура, склад и т.п.) и значений (данные: количество, сумма). Опциональная дискретность добавляет временное измерение (Секунда / День / Месяц).
Где настраивается: Администрирование → Бизнес-логика → Регистры (dbo.Registers, dbo.RegisterDimensions, dbo.RegisterValues).
| Параметр | Кодовое имя | Тип | Описание |
|---|---|---|---|
| Регистр* | RegistryActionParam |
1F.Registry |
Регистр из справочника |
| Измерения и значения* | (динамические) | — | Колонки соответствуют выбранному регистру |
| Задача | TaskActionParam |
1F.Task |
Задача, к которой привязывается запись (опционально) |
| Перезаписать | OverwriteActionParam |
Boolean |
true — перезаписать существующую запись; false (по умолчанию) — добавить новую |
| Дата | DateActionParam |
DateTime |
Дата фиксации (для регистров с дискретностью) |
Lua:
SMART:execute_action('WriteRegistryValue', CONTEXT.Id, 'task', {
RegistryActionParam = { Id = registryId },
Nomenclature = nomenclatureId, -- имена колонок из настроек регистра
Warehouse = warehouseId,
Quantity = 42,
OverwriteActionParam = true,
DateActionParam = os.date('%Y-%m-%dT%H:%M:%S')
})
⚠️ После появления хотя бы одной записи в регистре изменить его дискретность и состав измерений нельзя.
Удалить из регистра (DeleteRegistryValue, ID 110)¶
Удаляет запись из регистра по ключу (комбинация измерений). Параметры аналогичны WriteRegistryValue: указывается регистр и значения измерений, идентифицирующих запись.
| Параметр | Кодовое имя | Тип | Описание |
|---|---|---|---|
| Регистр* | RegistryActionParam |
1F.Registry |
Регистр |
| Измерения | (динамические) | — | Колонки соответствуют выбранному регистру |
| Дата | DateActionParam |
DateTime |
Для регистров с дискретностью |
Очистить регистр по владельцу (ClearRegistryByOwner, ID 111)¶
Удаляет все записи регистра, привязанные к конкретной задаче. Используется при удалении/архивации задачи или при переинициализации.
| Параметр | Тип | Описание |
|---|---|---|
| Регистр* | 1F.Registry |
Регистр |
| Задача* | 1F.Task |
Владелец записей |
📌 Канонический реестр кодовых имён —
reference/automation/smart-actions-enum.md(207 действий, ID 0–206 без 190). Все ID и enum-имена ниже сверены с этим источником.
Сроки и трудозатраты¶
Заблокировать срок (LockDue, ID 33) / Разблокировать срок (UnLockDue, ID 52)¶
Управление флагом блокировки срока (Tasks.IsLocked-семантика). После блокировки автоматические сдвиги срока (смарты, иерархия ПУ) игнорируются — изменить срок можно только разблокировав его.
Обновить плановое время задачи (UpdateTaskOrderedTime, ID 8)¶
Смена Tasks.OrderedTime. Если срок заблокирован — действие пропускается. Параметры: задача, новый срок, причина (опц.).
Изменить плановое начало (ChangeTaskPlannedStart, ID 35) / окончание (ChangeTaskPlannedEnd, ID 36) / фактическое окончание (ChangeTaskFactEnd, ID 37)¶
Меняют соответствующие даты задачи. Используются в проектном управлении и при автогенерации. Также есть отдельное действие «Изменить плановое время начала задачи» (ChangePlannedTaskStartTime, ID 11).
Установить плановый объём (SetPlanAmount, ID 61) / Установить фактический объём (SetFactAmount, ID 32)¶
Скалярное обновление плановых / фактических трудозатрат. ⚠️ По умолчанию плановые «фиксируются» при превышении факта; разрешить изменение — CustomSetting NoValidateFixLengthPlan=true.
Обновить процент выполнения (UpdatePercentDone, ID 24)¶
Меняет Tasks.CompletePercent. Применяется в проектных задачах.
Установить приоритет (SetPriority, ID 22)¶
Смена Tasks.Priority (нумерация приоритетов — в dbo.Priorities).
Изменить текст задачи (ChangeTaskText, ID 12)¶
Смена Tasks.TaskText. Поддерживает шаблонизацию (значения ДП через ##ExtParam{ID}##, см. academy-patterns.md).
Изменить конфиденциальность (ChangeConfidentiality, ID 62)¶
Смена режима конфиденциальности задачи (см. tasks/business.md § «Конфиденциальность и шифрование»).
Обновить ресурсный план (ResourcePlanUpdate, ID 130)¶
Пересчёт ресурсного плана задачи — корректирует распределение трудозатрат по ресурсам.
ДП — модификация значений¶
Изменить значение ДП (ChangeExtParamValue, ID 5)¶
Самое частое смарт-действие. Меняет одно значение ДП в одной задаче.
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
— |
| ДП* | 1F.ExtParam |
Какой параметр менять |
| Значение* | (зависит от типа ДП) | Для составных типов (Lookup, Multilookup, Table, Файл, Выбор пользователей, Email) — JSON-синтаксис, см. admin.md § «JSON-синтаксис модификации ДП» |
Для табличного ДП формат строки и форматы значений по типам колонок (включая отличие колонки
SelectUsersот самостоятельного ДПSelectUsers) — детальный референс с примерами вdocs/domains/ext-params/types-reference.md, раздел «ДП «Таблица» → Операции через API/SmartScript».Очистка значения («Оставить пустым»): в редакторе пакета можно выбрать «Оставить пустым» вместо конкретного значения — при срабатывании действия ДП будет сброшен в
null. v2.268+: такая конфигурация корректно сохраняется и выполняется. До v2.268: ДП с пустым значением молча выпадали из конфигурации при сохранении пакета — используйтеClearExtParamValue(ID 26) для надёжной очистки на более ранних версиях.
Изменить массово значение ДП (MassChangeExtParamValue, ID 50)¶
Тот же эффект, но для пачки задач (отбор через смарт-фильтр или явный список). Использует SQL-обновление в одну транзакцию — в разы быстрее цикла одиночных вызовов.
Скопировать значение ДП (CopyEpValue, ID 27)¶
Переносит значение ДП из исходной задачи в целевую (например, при копировании задач). Поддерживает преобразование между совместимыми типами.
Очистить значение ДП (ClearExtParamValue, ID 26)¶
Сброс значения ДП в задаче (null). Для Multilookup/Table — очищает все строки.
Подписи¶
Запросить динамическую подпись (RequestDynamicSignature, ID 13)¶
Запрашивает подпись (в любом непереходящем статусе задачи). Подпись становится в очередь акцептантам, задача ждёт резолюции.
| Параметр | Тип | Описание |
|---|---|---|
| Задача* | 1F.Task |
— |
| Подпись* | 1F.Signature |
Шаблон подписи (Signatures) с разрешённой «Может быть динамической» |
| Срок | DateTime |
Дедлайн вынесения резолюции |
| Причина | String |
— |
Запросить динамическую пользовательскую подпись (RequestDynamicUserSignature, ID 51)¶
Динамическая подпись с явным списком акцептантов (вместо настроенных в шаблоне).
Изменить причину ЭЦП (DSignChangeReason, ID 46) / Изменить срок ЭЦП (DSignChangeDueDate, ID 47)¶
Редактирование уже запрошенной подписи (без отзыва).
Резолюция по подписи задачи (TaskSignatureResolution, ID 123)¶
Программно вынести резолюцию (от имени пользователя). Используется для автоматизации согласований по условиям.
| Параметр | Тип | Описание |
|---|---|---|
| Подпись* | 1F.TaskSignature |
Запрошенная подпись |
| Резолюция* | 1F.SignatureResolution |
Тип резолюции (Согласовано / Отклонено / Возврат и т. п.) |
| Комментарий | String |
— |
| От пользователя | 1F.User |
— |
Отозвать подписи (RevokeSignatures, ID 48) / Удалить запрошенную подпись (RemoveRequestedSignature, ID 73)¶
Отзывает все или одну запрошенную подпись задачи.
Добавить акцептанта ЭЦП (DSignAddAcceptant, ID 45)¶
Добавляет дополнительного акцептанта к уже запрошенной подписи.
Начать новую сессию подписания ЭЦП (StartNewEdsSession, ID 99)¶
Запускает сессию ЭЦП для группы подписей (используется при пакетном подписании в КриптоПро / DSS / PayControl / Контур.Облако).
Приложить подпись (AttachSignature, ID 117) / Приложить подпись отказа (AttachRejectionSignature, ID 118) / Приложить подпись аннулирования (AttachRevocationSignature, ID 128) / Приложить подпись отказа от аннулирования (AttachRevocationRejectionSignature, ID 146)¶
Прикрепляет соответствующую подпись к задаче. Используется в пайплайнах ЭДО (Диадок/СБИС) — см. отдельный раздел.
Сгенерировать подпись отказа (GenerateRejectionSignature, ID 119) / аннулирования (GenerateRevocationSignature, ID 129)¶
Создание PKCS#7-подписей отказа/аннулирования для последующей передачи в ЭДО.
Чаты, комментарии, ToDo-лист¶
Удалить комментарий (DeleteComment, ID 116)¶
Удаление одного комментария (по ID или по контексту события). Эквивалент UI-действия для пользователя с правом удаления.
Создать тред (CreateThread, ID 183)¶
Создаёт новую ветку обсуждения в рамках задачи (ответ на корневой комментарий или новая тема в чате).
Настроить чат (ConfigureChat, ID 195)¶
Изменяет параметры чата задачи: имя, иконка, режим (открытый / закрытый), модераторы.
Назначить роль в чате (AssignRoleInChat, ID 197)¶
Назначает роль (Owner / Moderator / Member) пользователю в чате.
Обновить папку мультилукапа (MultilookupFolderUpdate, ID 199) / Удалить папку мультилукапа (MultilookupFolderDelete, ID 200)¶
Управление папками в ДП Multilookup со схемой «Чек-лист» (см. user-ui/admin.md § ToDoListSettings).
Файлы (расширение)¶
Скачать файл (DownloadFile, ID 49) / Загрузить файл в файловое хранилище (UploadFileToFileStorage, ID 185) / Выгрузить файл в сетевую папку (UploadFileToDisk, ID 87)¶
Получение файла из ДП «Файл» / общих вложений в переменную смарт-действия и обратная загрузка в файловое хранилище / сетевую папку (для передачи во внешний сервис, конвертации и т. п.). Базовая UploadFile (ID 28) — простая загрузка из переменной в задачу.
Заполнить файл расширенного параметра (FillEpFile, ID 43)¶
Загрузка файла (из переменной, URL или результата CreateReportFile) в ДП «Файл» задачи.
Прикрепить email к задаче (AttachEmailToTask, ID 153) / по Mail ID (AttachEmailToTaskByMailId, ID 186) / Связать письмо с задачей (LinkEmailToTask, ID 23) / Связать письмо с задачей — общее (LinkLetterToTask, ID 82)¶
Прикрепляет email из почтового ящика по различным критериям (по контексту события джоба, по явному EmailID, по результату обработки).
Архивировать файлы (ArchiveFiles, ID 89) / Распаковать архив (UnzipArchive, ID 179) / Объединить файлы (MergeFiles, ID 83) / Объединить docx-файлы (MergeDocxFiles, ID 79)¶
- Архивировать — упаковка нескольких файлов в ZIP.
- Распаковать — извлечение содержимого архива.
- MergeFiles — слияние PDF/изображений в один документ.
- MergeDocxFiles — слияние нескольких .docx в один с сохранением форматирования.
Сгенерировать QR-код (GenerateQRCode, ID 194)¶
Генерация QR-картинки из текста / URL и привязка к задаче.
Конвертировать файл в другой формат (ConvertFileTo, ID 86) / Конвертировать в PDF (ConvertFileToPdf, ID 70) / Вставить картинку в pdf/doc (InsertPictureIntoDocument, ID 112)¶
Использует конвертеры из appsettings.json (UseDevexpressDocToPdfConverter) или CustomSetting DefaultConverterPdf. Вставка картинки — водяные знаки, печати, подписи.
Получить список редакторов Word-файла (GetRevisionersList, ID 76) / Принять правки авторов (RemoveRevisionsByAuthors, ID 77) / Отклонить правки авторов (DeclineRevisionsByAuthors, ID 78)¶
Применяет / отклоняет track-changes в Word-документе. Используется в маршрутах согласования документов.
Импортировать лист Excel в таблицу БД (ImportSheetToDb, ID 141)¶
Парсит загруженный XLSX и записывает строки в указанную таблицу или ДП «Таблица».
Разобрать по шаблону (ParseByTemplate, ID 42)¶
OCR + распознавание полей по шаблону (для счёт-фактур, актов и т. п.). Зависит от FileIdToStartOcr и TikaJob.
Сгенерировать по шаблону (GenerateByTemplate, ID 39)¶
Генерация документа из Word-шаблона (.docx) с подстановкой тегов вида ##ExtParam{ID}##. Подробности — в reports/academy-patterns.md § «Word-шаблоны».
Связать файловую папку с задачей (LinkFileFolderToTask, ID 66) / Отвязать (UnLinkFileFolderFromTask, ID 67)¶
Привязка / отвязка папки на Диске к задаче (см. files/admin.md § «Привязка папки Диска к задаче»).
Защитить файл (ProtectFile, ID 40) / Удалить файл перманентно (DeleteFilePermanently, ID 126) / Создать копию версии файла (CreateFileVersionCopy, ID 80) / Добавить метаданные к файлу (AddFileInfoExtValue, ID 81)¶
Базовые операции с файловым хранилищем.
Экспортировать данные в Excel (ExportDataToExcel, ID 91)¶
Экспорт результатов смарт-выражения в файл Excel.
Системные действия (HTTP, SQL, SmartScript, события, повторения)¶
Отправить HTTP-запрос (SendHttpRequest, ID 85)¶
Произвольный HTTP-вызов из смарт-пакета. Помимо стандартного режима, в SmartScript есть helper-обёртка HttpRequestJson (с ретраями и JSON-сериализацией) — описана в начале документа § «Топ-10 действий».
Отправить универсальный API-запрос (SendUniversalApiRequest, ID 184)¶
HTTP-запрос через сервис UniversalApi (с типизацией, шифрованием callback-URL по EnableCipherInUniversalApiCallbackUrls, AI-вызовами).
Выполнить SQL-скрипт (ExecuteSql, ID 96)¶
Произвольный TSQL/PGSQL без возврата результата. Используется для вспомогательных обновлений вне типизированных смартов. Запрещено при DisableSqlShell=true.
Выполнить смарт-скрипт (ExecuteSmartScript, ID 106)¶
Запуск SmartScript (Lua / JS / C# / Python) синхронно или асинхронно. В JS-движке параметры передаются через params: {...} и доступны в скрипте через PARAMS.
Добавить новое событие в очередь (AddNewEventToQueue, ID 107) / Запустить пользовательское событие (FireCustomEvent, ID 56)¶
Постановка события в очередь обработки или прямой запуск произвольного события. Используется для асинхронных пайплайнов между категориями (когда нужен trigger без прямой ссылки).
Добавить внешний ключ (AddExternalKey, ID 108)¶
Привязка внешнего идентификатора (из стороннего сервиса) к задаче. Используется в интеграциях.
Создать или обновить пакет действий (CreateOrUpdateActionPack, ID 189) / смарт-фильтр (CreateOrUpdateSmartFilter, ID 187)¶
Программная конфигурация автоматизации (используется при импорте конфигов и в конструкторах решений).
Установить повторение (AddRecurrence, ID 121) / Добавить правило повторения (AddRecurrenceCalculator) / Удалить рекуррентность (DeleteRecurrence, ID 120) / Создать периодические задачи (CreatePeriodicTasks, ID 198)¶
Управление расписанием повторяющихся задач (см. categories/admin.md § «Повторения задач»).
Параметры «Установить повторение» (AddRecurrence)¶
| # | Название | Тип | Описание |
|---|---|---|---|
| 18 | Поведение при нерабочем дне | enum | NonWorkingDayBehavior — что делать, если дата попадает на выходной |
| 19 | Материализовывать | bool? | Включить материализацию повторений → IsMaterializationEnabled. Если не задан — оставляет текущее значение (по умолчанию false) |
Параметры «Добавить правило повторения» (AddRecurrenceCalculator)¶
| # | Название | Тип | Описание |
|---|---|---|---|
| 13 | Номер рабочего дня | int? | Порядковый номер рабочего дня в месяце (1–31) → WorkDayNumber. Только при WorkDayType = custom, иначе ошибка. При превышении числа рабочих дней в месяце — fallback на последний |
v2.267 — добавлены параметры #19 «Материализовывать» в
AddRecurrenceи #13 «Номер рабочего дня» вAddRecurrenceCalculator.
Формат итоговой метки правила повторения (v2.267+)¶
Итоговый текст правила отображается в контроле выбора и заголовке настройки. Для комбинации «год + конкретный рабочий день» применяются следующие правила форматирования:
Компонент «рабочий день» (аналогично месячным правилам):
Тип (WorkDayType) |
Отображение |
|---|---|
Первый (first) |
«Первый рабочий день» |
Последний (last) |
«Последний рабочий день» |
Первый и последний (firstAndLast) |
«Первый и последний рабочий день» |
Конкретный (custom, WorkDayNumber = N) |
«N-й рабочий день» |
Компонент «год»:
| Значение | Отображение |
|---|---|
| 1 | «каждый год» |
| N > 1 | «каждый N год» |
Примеры итоговых меток:
| Настройка | Отображаемый текст |
|---|---|
| 5-й раб. день, Январь, каждый год | «5-й рабочий день, каждый Январь, каждый год» |
| 5-й раб. день, Январь, каждый 2-й год | «5-й рабочий день, каждый Январь, каждый 2 год» |
| Первый раб. день, Январь, каждый год | «Первый рабочий день, каждый Январь, каждый год» |
| Последний раб. день, Январь, каждый год | «Последний рабочий день, каждый Январь, каждый год» |
| Первый и последний, Январь, каждый год | «Первый и последний рабочий день, каждый Январь, каждый год» |
Обновить текст задач, зависящих от лукапа (UpdateTasksTextDependentOnLookup, ID 201)¶
Принудительное обновление TaskText в задачах, ссылающихся на изменённую через Lookup-связь задачу.
Пересчитать смарт-доступ по правилу (CountedSmartAccessByRule, ID 74) / для расширенного параметра в подкатегории (RecalculateSmartAccessForExtParamInSubcat, ID 90)¶
Пересборка прав по правилам SmartAccess для конкретного набора задач (после изменения правила, чтобы не ждать batch-job).
Отправить сообщение пользователю (SendMessageToUser, ID 68) / с открытием задачи (SendMessageToUserOpenTask, ID 69) / с обновлением задачи (SendMessageToUserRefreshTask, ID 84) / VoIP push (SendVoipPush, ID 125) / кастомное (SendCustomMessageToUser, ID 124)¶
SignalR-команды клиенту: - OpenTask — посылает SPA-команду открыть карточку задачи (или произвольный URL). - RefreshTask — форсирует перезагрузку карточки задачи в открытых вкладках пользователей. - VoipPush — push для VoIP-звонков.
Завершить опрос (CompleteSurvey, ID 196) / Обновить шаблон опроса (UpdateSurveyTemplate, ID 191)¶
Управление опросами SurveyJS / SurveyProject (см. tasks/admin.md § UseOldSurveys).
Импорт данных (DataImport, ID 63)¶
Массовый импорт задач из CSV / xlsx / другой источник (см. CSVImportMaxThreadsCount в grids/admin.md).
Установить клиентскую зону задачи (SetTaskCustomerZone, ID 65) / Связать с клиентской зоной (LinkTaskWithCZ, ID 59)¶
Привязка задачи к Личному Кабинету (CZ).
Установить определённый статус (SetState, ID 9) / Принудительно изменить статус (ChangeTaskStateForcibly, ID 38)¶
Прямое изменение Tasks.StateID без прохождения по маршруту. Принудительная смена обходит проверки переходов.
Ответить (Response, ID 88)¶
Ответ на предыдущий комментарий с привязкой к контексту обсуждения.
Синхронизировать статус сообщения (SyncMessageStatus, ID 163) / СБИС (SyncMessageStatusSbis, ID 188)¶
Опрос статусов исходящих документов в ЭДО.
Создать уведомление по задаче (CreateTaskNotification, ID 41)¶
Создание системного уведомления (показывается в индикаторах пользователя).
Переместить email-сообщение (MoveEmailMessage, ID 60)¶
Перемещение письма между папками почтового ящика.
Отменить (Cancel, ID 6)¶
Прерывает обработку события (только в пакетах, привязанных к «Перед …»-событиям). Используется для запретов («нельзя понизить приоритет, если заказчик — гендиректор»).
Добавить базовый план проекта (AddProjectBasePlan, ID 147)¶
Создание baseline-плана проекта (для сравнения «план-факт»).
Полный список параметров каждого действия — в admin-manual
pages/smart_actions_list.md(исходный справочник, ~8900 строк). Канонический реестр enum-имён (с группами MCP и ID) —reference/automation/smart-actions-enum.md.
Типы данных¶
| Тип | Описание |
|---|---|
1F.Task |
Задача в системе |
1F.User |
Пользователь |
1F.UserGroup |
Группа пользователей |
1F.Subcat |
Категория |
1F.State |
Статус задачи |
1F.Step |
Переход по маршруту |
1F.File |
Файл |
1F.CustomerZone |
Личный кабинет |
Collection<T> |
Коллекция объектов типа T |
String |
Строка |
Integer |
Целое число |
Boolean |
Логическое значение |
DateTime |
Дата и время |
Money |
Денежная сумма |
Каталог событий (EventID)¶
Полный реестр всех 197 событий C# enum (Valhalla.Integration/Enums/Smart/Event.cs) с EventID, служебным именем, группой и контекстными параметрами @eventParam* — в reference/automation/smart-events-catalog.md. Используется для проектирования пакетов действий и SmartScript: на какое событие подписать пакет, какие данные доступны в контексте.
Покрытие:
- Всего событий: 197 (значения 0–196).
- С описанием параметров контекста: 127.
- Без задокументированного контекста: 69.
Распределение по группам:
| Группа | Событий |
|---|---|
| Не классифицировано | 69 |
| Задачи и комментарии | 30 |
| Подписи | 22 |
| Ресурсное планирование | 15 |
| Сроки и даты | 12 |
| Связи и подзадачи | 12 |
| ДП и свойства задачи | 9 |
| Пользователи | 8 |
| Глобальные | 7 |
| Файлы | 6 |
| Другое | 3 |
| Exchange | 3 |
Ключевые правила:
- События
Перед ...отменяемы, если в пакете есть действиеОтменить. - Группы
Exchange,Глобальные,Пользователиработают как глобальные (используются в «Общих SMART»). - С 2.268 Скульптор — флаг
CanBeGlobalвEventInfo: категорийное событие может срабатывать без категории (SubcatID=NULL). Первое такое событие —AfterPostComment(29). - Для событий ресурсного планирования параметр
Датаприходит массивом — в SQL читается черезOPENJSON. - Нумерация в C# enum нелинейная:
AfterSignatureSigned=70объявлен послеBeforeSubscriberAdded=58. В реестре — точные числовые значения.
См. полный каталог: reference/automation/smart-events-catalog.md.