Перейти к содержанию

Справочник смарт-действий

⚠️ Символом * помечены обязательные параметры

Вызов смарт-действий из 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.mdSMART:execute_action, контекст, примеры
  • JS API: docs/domains/smart-actions/js-scripting-jint.mdSMART.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 комментария

Разрывает связь между задачами

Параметр Тип Описание
Задача* 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 Телефон
Email String Email
СНИЛС 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 Подразделение оргструктуры
Email 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 Обновляемый пользователь
Email String Email
Внешний 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

Ключевые правила:

  1. События Перед ... отменяемы, если в пакете есть действие Отменить.
  2. Группы Exchange, Глобальные, Пользователи работают как глобальные (используются в «Общих SMART»).
  3. С 2.268 Скульптор — флаг CanBeGlobal в EventInfo: категорийное событие может срабатывать без категории (SubcatID=NULL). Первое такое событие — AfterPostComment (29).
  4. Для событий ресурсного планирования параметр Дата приходит массивом — в SQL читается через OPENJSON.
  5. Нумерация в C# enum нелинейная: AfterSignatureSigned=70 объявлен после BeforeSubscriberAdded=58. В реестре — точные числовые значения.

См. полный каталог: reference/automation/smart-events-catalog.md.