Swagger¶
ℹ️ Этот раздел не актуализируется. Актуальная документация по API доступна через Swagger-интерфейс системы (путь: /swagger).
Примеры веб-сервисов Valhalla¶
Пример (PowerShell): связывание задач при win-аутентификации:
$versionTaskId = 123456 #номер задачи для связывания
cd C:\\Source\\1f #путь к репозиторию
$log = git shortlog 2.109..origin/master #получение списка коммитов
$cred = Get-Credential #запрос учетных данных для аутентификации
ForEach ($line in $log)
{
if($line)
{
$lineTrimmed = $line.Trim(); #получение номера задачи из коммита
if ($lineTrimmed\[1\ -match \'\0-9\\')]
{
if ($lineTrimmed\[0\ -match \'\0-9\\')]
{
$lineTrimmed = $lineTrimmed.SubString(0,6);
}
else
{
$lineTrimmed = $lineTrimmed.SubString(1,7);
}
$url = "http://web-server.1forma.ru/app/v1.0/api/subtasks/"+$versionTaskId+"/link/" + $lineTrimmed; #где web-server.1forma.ru — адрес веб-сервера приложения "Первая Форма"
write-host $url
Invoke-WebRequest -Method POST -Uri $url -Credential $cred #вызов веб метода для связывания задач
}
}
}
ℹ️ В примере используются библиотеки JsonRules.dll и FirstFormJsonObjects.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
namespace TCClassLib.Test.ReadOnly.JsonStructureTest {
public class JsonStructureTest {
static FFClient client = null;
static FFClient Client {
get {
if (client == null) {
client = new FFClient(Settings.FFUrl);
client.Login(Settings.FFLogin, Settings.FFPassword);
}
return client;
}
}
public void GetMyChats_Call() {
var jChats = Client.Post(DataService.GetMyChats, JObject.Parse("{\\"openedChatId\\":null}"));
new FirstFormJsonObjects.Responses.Chats().Check(jChats);
}
}
public class FFClient {
public string BaseFFUrl {
get;
private set;
}
CookieCollection cookies = new CookieCollection();
public FFClient(string baseFFUrl) {
BaseFFUrl = baseFFUrl;
}
public JObject Login(string login, string password) {
var url = "iOSClientServices/Auth.ashx";
var content = new FormUrlEncodedContent(new Dictionary \< string, string \> {
{
"UserName",
login
},
{
"Pass",
password
}
});
var result = PostRequestHelper \< string \> (url, content, async response =\> {
string res = await response.Content.ReadAsStringAsync();
return res;
}).Result;
bool isError = false;
try {
new FirstFormJsonObjects.Responses.AuthError().Check(result);
isError = true;
} catch (JsonRules.RuleException) {}
if (isError) {
throw new Exception(result.ToString());
}
return result;
}
public JObject Post(string url, object pars) {
var result = PostRequestHelper \< string \> (url, pars, async response =\> {
string res = await response.Content.ReadAsStringAsync();
return res;
}).Result;
return result;
}
string RemoveAspNetDProperty(string response) {
if (!string.IsNullOrWhiteSpace(response)) {
const string dPropertyPrefix = "{\\"d\\":";
if (response.StartsWith(dPropertyPrefix)) {
response = response.Substring(dPropertyPrefix.Length, response.Length — dPropertyPrefix.Length — 1);
}
}
return response;
}
async Task \< JObject \> PostRequestHelper \< T \> (string requestUri, object content, Func \< HttpResponseMessage, Task \< T \>\> handleResult) {
var handler = new HttpClientHandler();
handler.CookieContainer = new CookieContainer();
using(handler) {
using(var client = new HttpClient(handler)) {
client.BaseAddress = new Uri(BaseFFUrl);
if (cookies != null) {
handler.CookieContainer.Add(client.BaseAddress, cookies);
}
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = null;
if (content is HttpContent) {
response = await client.PostAsync(requestUri, (HttpContent) content);
} else {
response = await client.PostAsJsonAsync(requestUri, content);
}
cookies = handler.CookieContainer.GetCookies(client.BaseAddress);
if (response.IsSuccessStatusCode) {
string res = await response.Content.ReadAsStringAsync();
res = RemoveAspNetDProperty(res);
return JObject.Parse(res);
} else {
string res = await response.Content.ReadAsStringAsync();
throw new Exception(res);
}
}
}
}
}
}
Для работы с объектами используются следующие методы:
-
GET — для получения данных.
-
POST — для добавления данных.
-
PUT — для изменения данных.
-
DELETE — для удаления данных.
ℹ️ В приложении не реализована отправка Header и Body для DELETE запроса
ℹ️ API веб-сервиса "Первой Формы" можно посмотреть, добавив в браузере к адресу вашего приложения "Первая Форма" строку /swagger:\
https://%3Cyour_1forma%3E/swagger Порядок действий:
1. Найдите нужный объект в общем списке объектов.
- Найдите нужный метод объекта.
3. Заполните параметры метода, если они есть. Если для параметра есть схема, то по щелчку на поле со схемой она будет скопирована в поле со значением параметра. В эту схему подставьте правильные значения (см. пример ниже).
ℹ️ Для обращения к API системы безопасным способом рекомендуется использовать выделенную сервисную учетную запись. Чаще всего для этой цели применяется системный аккаунт systemrobot (Робот 1Ф), либо специально созданный пользователь с правами администратора. Эта учетная запись может быть как локальной, так и синхронизированной с Active Directory, что особенно полезно при настроенном разделении доступа по доменам.
Права, с которыми будет выполнен HTTP-запрос, полностью определяются правами выбранного пользователя в системе. Это означает, что доступ через API будет идентичен доступу через веб-интерфейс, поэтому выбор пользователя должен основываться на тех операциях, которые необходимо выполнить на сервере
Пример заполнения параметра для создания задачи¶
Задача создается в категории с ID=123 от имени системного пользователя с ID=1. Исполнители не назначаются. В категории настроены ДП "Имя" ID=1111, Email ID=2222, "Телефон" ID=3333, "Комментарий" ID=4444.
{
"subcatId": 123,
"owner": 1,
"performers": []
"extParams": [
{
"id": 1111,
"value": "Антон",
},
{
"id": 2222,
"value": "test@1forma.ru"
},
{
"id": 3333,
"value": "+7 (916) 123-45-67"
},
{
"id": 4444,
"value": "Текст комментария"
}
]
}
- Ниже будет сформирован адрес (URL) для вызова метода, а также отобразятся результаты вызова сервиса (например, номер созданной задачи и пр.), чтобы вы могли убедиться в правильности ваших настроек или проанализировать ошибки. В поле Response Code значение 200 означает корректное выполнение вызова, а 500 — ошибку.
ℹ️ Методы класса CommentsAdmin могут вызывать только пользователи, входящие в системную группу Administrators
Наиболее используемые API методы
Agenda (Повестка дня)
Устаревшее POST /api/agenda:
Возвращает повестку дня пользователя в диапазоне
Параметр
Формат
Описание
userId
integer
Пользователь, чья повестка дня запрашивается. При пустом значении (null), берется идентификатор сессионного пользователя.
subcatIds
array
Фильтр категорий.
catIds
array
Фильтр разделов.
dateTo
string
Окончание диапазона. При пустом значении (null) диапазон равен началу сегодняшнего дня.
dateFrom
string
Начало диапазона. При пустом значении (null) диапазон равен окончанию сегодняшнего дня.
includes
array
Что включать в запрос повестки дня.
Возможные значения: \"events", "tasks", "signatures", "reminders", "providersEvents". По умолчанию providersEvents.
Пример:
{ "userId": 123, "subcatIds": \ 111 \,{.f_CodeExample style="font-size: 0.82rem;"} "catIds": \ 222 \,{.f_CodeExample style="font-size: 0.82rem;"} "dateTo": "2023-07-12T08:20:44.631Z", "dateFrom": "2023-07-12T08:20:44.631Z",
"includes":
"Events"
\{.f_CodeExample style="font-size: 0.82rem;"}
}
GET /api/emails/{emailId}:
Получить письмо
Параметр
Формат
Описание
emailId
integer
Уникальный идентификатор письма
POST /api/emails/delete:
Массовое удаление писем из почтовой папки
Параметр
Формат
Описание
emailIds
array
Список id писем
folderId
integer
Уникальный идентификатор почтовой папки
fromSearchFolder
boolean
Из папки поиска
Пример:
{ "emailIds": \ 111, 112 \,{.f_CodeExample style="font-size: 0.82rem;"} "folderId": 123, "fromSearchFolder": true } Администрирование
GET /api/admin/forms/tree:
Получить дерево настроек администрирования [Пример результата](../ [\
{
"nodeType": "Form",
"parentId": 7,
"objectId": 67,
"actions": null,
"rowActions": null,
"alias": "categories",
"allowAddF": true,
"allowDeleteF": true,
"notes": null,
"url": "/admin/subcategories/default.aspx",
"id": 1,
"name": "Разделы"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2,
"actions": null,
"rowActions": "",
"alias": "2",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 2,
"name": "Колонки форм"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 4,
"actions": null,
"rowActions": null,
"alias": "7",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 7,
"name": "Колонки всего"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 5,
"actions": null,
"rowActions": null,
"alias": "8",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 8,
"name": "Объекты БД"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 400,
"actions": null,
"rowActions": null,
"alias": "portals",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/PortalGrid/EditPortalGrid.aspx",
"id": 9,
"name": "Порталы"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 11,
"actions": null,
"rowActions": null,
"alias": "absencetype",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/AbsenceTypes.aspx",
"id": 10,
"name": "Типы отсутствий"
},
{
"nodeType": "Form",
"parentId": 9,
"objectId": 489,
"actions": null,
"rowActions": null,
"alias": "signatures",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/signatures/AddEditSignatures.aspx",
"id": 11,
"name": "Подписи"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 27,
"actions": null,
"rowActions": null,
"alias": "containers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/API/Container/default.aspx",
"id": 12,
"name": "Контейнеры"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 28,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 13,
"name": "Ключи шаблона в контейнере"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 487,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 14,
"name": "Типы резолюций"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 32,
"actions": null,
"rowActions": null,
"alias": "templates",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/API/Template/default.aspx",
"id": 15,
"name": "Шаблоны"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 33,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 16,
"name": "Ключи шаблонов"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 34,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 17,
"name": "Значения шаблонов"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 440,
"actions": null,
"rowActions": null,
"alias": "quick-replies",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/quickReplies/EditQuickReplies.aspx",
"id": 18,
"name": "Быстрые ответы"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 255,
"actions": null,
"rowActions": null,
"alias": "print-forms",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/administration/entity/printForms/represent/table",
"id": 19,
"name": "Печатные формы"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 346,
"actions": null,
"rowActions": null,
"alias": "mail-templates",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/mailtemplates/MailTemplates.aspx",
"id": 20,
"name": "Почтовые шаблоны"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 466,
"actions": null,
"rowActions": null,
"alias": "roles",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/roles/RoleList.aspx",
"id": 21,
"name": "Роли"
},
{
"nodeType": "Form",
"parentId": 2,
"objectId": 303,
"actions": null,
"rowActions": null,
"alias": "group-types",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/groups/GroupsTypes.aspx",
"id": 22,
"name": "Типы групп"
},
{
"nodeType": "Form",
"parentId": 3,
"objectId": 214,
"actions": null,
"rowActions": null,
"alias": "extparamlinks",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/extparams/ExtParamLinks.aspx",
"id": 23,
"name": "Связи доп.параметров"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 415,
"actions": null,
"rowActions": null,
"alias": "publications",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/userInfoExt.aspx",
"id": 24,
"name": "Публикации"
},
{
"nodeType": "Form",
"parentId": 5,
"objectId": 482,
"actions": null,
"rowActions": null,
"alias": "short-links",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/ShortLinks.aspx",
"id": 25,
"name": "Короткие ссылки"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 2073,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/UserTaskOnlySettings.aspx",
"id": 26,
"name": "Общие настройки табличного вида"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 325,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/LocalizationResources.aspx",
"id": 27,
"name": "Ресурсы локализации"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 557,
"actions": null,
"rowActions": null,
"alias": "summary-categories",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/subcategories/SummaryCategories.aspx",
"id": 28,
"name": "Сводные разделы"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 588,
"actions": null,
"rowActions": null,
"alias": "task-ds",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/MobileApps/TaskDataSource.aspx",
"id": 29,
"name": "Источники данных задач"
},
{
"nodeType": "Form",
"parentId": 10,
"objectId": 2063,
"actions": null,
"rowActions": null,
"alias": "users",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/users/default.aspx",
"id": 30,
"name": "Пользователи"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2059,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 31,
"name": "Уведомления пользователя"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2067,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 32,
"name": "SIP номера"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2068,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 33,
"name": "Настройки пользователей"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2075,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 34,
"name": "Настройки интерфейса"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 2046,
"actions": null,
"rowActions": null,
"alias": "workplaces",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Favourites",
"id": 35,
"name": "Групповые настройки пользователей"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2043,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 36,
"name": "Избранные папки"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 2042,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 37,
"name": "Избранные категории"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 125,
"actions": null,
"rowActions": null,
"alias": "imports",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/DataImport/DataImports.aspx",
"id": 38,
"name": "Импорт данных"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 309,
"actions": null,
"rowActions": null,
"alias": "includes-global",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Includes/ListIncludeCollection.aspx",
"id": 39,
"name": "Общие JS/CSS вставки"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 505,
"actions": null,
"rowActions": null,
"alias": "smart-global",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 40,
"name": "Smart расписание"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 503,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 41,
"name": "Smart выражения"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 504,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 42,
"name": "Смарт запросы"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 506,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 43,
"name": "LUA скрипты"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 492,
"actions": null,
"rowActions": null,
"alias": "smart-access",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/SmartAccess/default.aspx",
"id": 44,
"name": "Смарт доступ"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 493,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 45,
"name": "Смарт доступ ДП"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 464,
"actions": null,
"rowActions": null,
"alias": "reports",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/stats/statAdmin.aspx",
"id": 46,
"name": "Отчеты"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 450,
"actions": null,
"rowActions": null,
"alias": "registries",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/spa.aspx/admin/registries",
"id": 47,
"name": "Регистры"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 330,
"actions": null,
"rowActions": null,
"alias": "geo-settings",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/spaex.aspx/admin/location/monitoring-settings",
"id": 48,
"name": "Настройка сбора геоданных"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 118,
"actions": null,
"rowActions": null,
"alias": "queues",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Queues/default.aspx",
"id": 49,
"name": "Очереди событий"
},
{
"nodeType": "Form",
"parentId": 1,
"objectId": 287,
"actions": null,
"rowActions": null,
"alias": "freebusystate",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/freebusystatuses.aspx",
"id": 50,
"name": "Статусы отсутствий"
},
{
"nodeType": "Form",
"parentId": 2,
"objectId": 299,
"actions": null,
"rowActions": null,
"alias": "special-permissions",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/groups/GroupsSpecPermissions.aspx",
"id": 51,
"name": "Специальные права"
},
{
"nodeType": "Form",
"parentId": 2,
"objectId": 298,
"actions": null,
"rowActions": null,
"alias": "groups",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/groups/default.aspx",
"id": 52,
"name": "Группы"
},
{
"nodeType": "Form",
"parentId": 3,
"objectId": 222,
"actions": null,
"rowActions": null,
"alias": "extparams",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/extparams/ExtParamsList.aspx",
"id": 53,
"name": "Доп.параметры"
},
{
"nodeType": "Form",
"parentId": 5,
"objectId": 460,
"actions": null,
"rowActions": null,
"alias": "autoreplace",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Replacer.aspx",
"id": 54,
"name": "Автозамена"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 3,
"actions": null,
"rowActions": null,
"alias": "55",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 55,
"name": "Секции форм"
},
{
"nodeType": "Form",
"parentId": null,
"objectId": 1,
"actions": null,
"rowActions": null,
"alias": "56",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": null,
"id": 56,
"name": "Формы"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 600,
"actions": null,
"rowActions": null,
"alias": "task-hierarchies",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Hierarchy/TaskHierarchies.aspx",
"id": 58,
"name": "Иерархии задач"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 475,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Scheduler/Configurations.aspx",
"id": 59,
"name": "Планировщик"
},
{
"nodeType": "Form",
"parentId": 7,
"objectId": 536,
"actions": null,
"rowActions": null,
"alias": "subcategories",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/subcategories/default.aspx",
"id": 60,
"name": "Управление категориями"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 1997,
"actions": null,
"rowActions": null,
"alias": "task-templates",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/spa.aspx/admin/mobile/templates",
"id": 61,
"name": "Шаблоны задач"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 384,
"actions": null,
"rowActions": null,
"alias": "mobile-password-policy",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/PasswordPolicy.aspx",
"id": 62,
"name": "Мобильная политика паролей"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 419,
"actions": null,
"rowActions": null,
"alias": "push-settings",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/PushSettings.aspx",
"id": 63,
"name": "Настройки PUSH"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 2049,
"actions": null,
"rowActions": null,
"alias": "user-info-ext",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/administration/entity/userInfoExt/represent/table",
"id": 64,
"name": "Расширенные настройки пользователя"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 2049,
"actions": null,
"rowActions": null,
"alias": "mobile-builds",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/MobileApps/Builds.aspx",
"id": 65,
"name": "Сборки мобильных приложений"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 356,
"actions": null,
"rowActions": null,
"alias": "mobile-client-stat",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/stats/MobileClientStats.aspx",
"id": 66,
"name": "Статистика использования МП"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 20,
"actions": null,
"rowActions": null,
"alias": "address-providers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/AddressProviders/default.aspx",
"id": 67,
"name": "Адресные провайдеры"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 203,
"actions": null,
"rowActions": null,
"alias": "external-objects",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/ExternalObjects/default.aspx",
"id": 68,
"name": "Внешние объекты"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 147,
"actions": null,
"rowActions": null,
"alias": "domains",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Domains.aspx",
"id": 69,
"name": "Домены приложения"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 105,
"actions": null,
"rowActions": null,
"alias": "cryptopro-verification-centers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/CryptoPro/CryptoProCertificationCenters.aspx",
"id": 70,
"name": "КриптоПро: Удостоверяющие центры"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 480,
"actions": null,
"rowActions": null,
"alias": "system-settings",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/EditInstanceInfo.aspx",
"id": 71,
"name": "Общие настройки приложения"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 481,
"actions": null,
"rowActions": null,
"alias": "custom-settings",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/administration/entity/usersettings/represent/table",
"id": 72,
"name": "Пользовательские настройки"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 179,
"actions": null,
"rowActions": null,
"alias": "mail-servers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Email/MailServerList.aspx",
"id": 73,
"name": "Почтовые сервера"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 49,
"actions": null,
"rowActions": null,
"alias": "authentication-providers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Authentication/AuthenticationProviders.aspx",
"id": 74,
"name": "Провайдеры аутентификации"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 259,
"actions": null,
"rowActions": null,
"alias": "file-providers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/FileProviders/default.aspx",
"id": 75,
"name": "Провайдеры загружаемых файлов"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 507,
"actions": null,
"rowActions": null,
"alias": "sms-providers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/MVC/HookServiceSettingManager",
"id": 76,
"name": "Сервис отправки СМС"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 405,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/spa.aspx/admin/production-calendar",
"id": 77,
"name": "Производственный календарь"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 479,
"actions": null,
"rowActions": null,
"alias": "system-services",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Services/ServicesList.aspx",
"id": 78,
"name": "Сервисы"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 571,
"actions": null,
"rowActions": null,
"alias": null,
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Sync1C/SettingsExtForm.aspx",
"id": 79,
"name": "Синхронизация 1С"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 568,
"actions": null,
"rowActions": null,
"alias": "synchronizations",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Synchronization/SynchronizationProfiles.aspx",
"id": 80,
"name": "Синхронизации"
},
{
"nodeType": "Form",
"parentId": 11,
"objectId": 491,
"actions": null,
"rowActions": null,
"alias": "sip-providers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/SipProviders/default.aspx",
"id": 81,
"name": "SIP провайдеры"
},
{
"nodeType": "Form",
"parentId": 12,
"objectId": 292,
"actions": null,
"rowActions": null,
"alias": "global-step-settings",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/states/GlobalStepList.aspx",
"id": 82,
"name": "Глобальные настройки переходов"
},
{
"nodeType": "Form",
"parentId": 12,
"objectId": 516,
"actions": null,
"rowActions": null,
"alias": "states",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/states/default.aspx",
"id": 83,
"name": "Управление статусами"
},
{
"nodeType": "Form",
"parentId": 10,
"objectId": 375,
"actions": null,
"rowActions": null,
"alias": "org-structure",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/OrgStructureUnits.aspx",
"id": 84,
"name": "Орг.структура"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 350,
"actions": null,
"rowActions": null,
"alias": "tickers",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Tickers.aspx",
"id": 85,
"name": "Индикаторы"
},
{
"nodeType": "Form",
"parentId": 8,
"objectId": 417,
"actions": null,
"rowActions": null,
"alias": "push-device-tokens",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/PushSettings.aspx",
"id": 88,
"name": "Push-токены"
},
{
"nodeType": "Form",
"parentId": 6,
"objectId": 131,
"actions": null,
"rowActions": null,
"alias": "custom-data-sources",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/administration/custom-data-sources",
"id": 89,
"name": "Произвольные источники данных"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 13,
"actions": null,
"rowActions": null,
"alias": "log-action",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/log/default.aspx",
"id": 90,
"name": "Лог"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 52,
"actions": null,
"rowActions": null,
"alias": "log-automation-scripts",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/log/AutomationDurationLog.aspx",
"id": 91,
"name": "Лог выполнения автоматизации"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 316,
"actions": null,
"rowActions": null,
"alias": "log-job",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Jobs/log.aspx",
"id": 92,
"name": "Лог выполненных заданий"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 356,
"actions": null,
"rowActions": null,
"alias": "log-mobile",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/stats/MobileClientStats.aspx",
"id": 94,
"name": "Лог МП"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 418,
"actions": null,
"rowActions": null,
"alias": "push-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/log/PushLog.aspx",
"id": 95,
"name": "Лог отправки PUSH уведомлений"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 354,
"actions": null,
"rowActions": null,
"alias": "queue-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Queues/QueueLog.aspx",
"id": 96,
"name": "Лог очередей"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 199,
"actions": null,
"rowActions": null,
"alias": "error-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/ErrorLog/default.aspx",
"id": 97,
"name": "Лог ошибок"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 199,
"actions": null,
"rowActions": null,
"alias": "log-error-bl",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/ErrorLog/default.aspx",
"id": 98,
"name": "Лог ошибок бизнес логики"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 353,
"actions": null,
"rowActions": null,
"alias": "flows-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Queues/FlowsLog.aspx",
"id": 99,
"name": "Лог потоков"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 170,
"actions": null,
"rowActions": null,
"alias": "email-job-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Email/JobLog.aspx",
"id": 100,
"name": "Лог сессии почтовых джобов"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 565,
"actions": null,
"rowActions": null,
"alias": "sync-1c-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/Sync1C/SyncLog.aspx",
"id": 101,
"name": "Лог синхронизации с 1С"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 388,
"actions": null,
"rowActions": null,
"alias": "phone-calls-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/PhoneCalls/Log.aspx",
"id": 102,
"name": "Лог телефонных звонков"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 150,
"actions": null,
"rowActions": null,
"alias": "dss-transaction-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/DSSTransactionLog.aspx",
"id": 103,
"name": "Лог транзакций DSS"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 137,
"actions": null,
"rowActions": null,
"alias": "deleted-tasks-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/admin/log/DeletedTasksLog.aspx",
"id": 104,
"name": "Лог удаленных задач"
},
{
"nodeType": "Form",
"parentId": 4,
"objectId": 198,
"actions": null,
"rowActions": null,
"alias": "excel-export-log",
"allowAddF": false,
"allowDeleteF": false,
"notes": null,
"url": "/spaex.aspx/admin/excel-export-logs",
"id": 105,
"name": "Лог экспорта в Excel"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 1,
"name": "Бизнес-логика"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 2,
"name": "Группы"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 3,
"name": "Доп.параметры"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 4,
"name": "Журналы"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 5,
"name": "Инструменты"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 6,
"name": "Интерфейс"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 7,
"name": "Категории"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 8,
"name": "МП"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 9,
"name": "Подписи"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 10,
"name": "Пользователи"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 11,
"name": "Система"
},
{
"nodeType": "Folder",
"parentId": null,
"id": 12,
"name": "Статусы"
}
]{.f_CodeExample style="font-weight: bold;"} GET /api/admin/smart/packs-on-events/list/{subcatId}/{state}:
Получить список смарт пакетов на статусе
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор статуса
state*
string
Статус. Возможные значения: All (Все), Enabled (Включено), Disabled (Отключено)
Пример результата:
{
"data":
{
"id": 123,
"enabled": true,
"parameterValue": 111,
"smartFilterID": 222,
"eventID": 111,
"actionsPackID": 123,
"smartFilterName": "string",
"actionsPackName": "string",
"toolTipText": "string",
"eventName": "string",
"eventGroup": "ExtParamAndTaskProperty",
"eventGroupName": "string",
"parameterValueName": "string",
"actionPackDescription": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
GET /api/admin/smart/packs-on-events/list/{subcatId}:
Получить список смарт-расписаний категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Пример результата:
{
"data":
{
"id": 123,
"recurrenceInfoID": 111,
"packID": 112,
"packName": "string",
"filterID": 113,
"filterName": "string",
"periodicity": "string",
"enabled": true,
"subcatID": 1234,
"lastExecutionDateTime": "2024-03-30T05:22:44.322Z"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Создать смарт-правило [Пример](../
{
"subcatId": 123,
"smartFilterId": 111,
"actionPackId": 222,
"eventId": 333,
"eventParameterValueId": 444,
"isEnabled": true,
"isAsync": true
}
Получение всех смарт-событий и всех возможных значений [Пример](
{
"eventActionId": 1234,
"originId": 111,
"subcatId": 222,
"onlyCurrentStep": true
}
POST /api/admin/smart/recurrences/execute/{id}:
Выполнить смарт-расписание
Параметр
Формат
Описание
Id*
integer
Уникальный идентификатор смарт-расписания
DELETE /api/admin/smart/recurrences/delete/{id}:
Удалить смарт-расписание
Параметр
Формат
Описание
Id*
integer
Уникальный идентификатор смарт-расписания
POST /api/admin/smart/recurrences/delete/{id}:
Удалить смарт-расписание
Параметр
Формат
Описание
Id*
integer
Уникальный идентификатор смарт-расписания
Пакеты действий
GET /api/admin/smart/packs/list/{subcatId}:
Получить список пакетов действий категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
isForMailbox
query
Для почтового ящика. Значение по умолчанию: false
Пример результата:
{
"data":
{
"id": 123,
"name": "string",
"eventID": 111,
"parameterValue": 222,
"eventName": "string",
"isUnused": true,
"packDescription": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить пакеты действия (глобальные и в категориях) [Пример](../
{
"subcatId": 123,
"isForMailbox": true,
"eventId": 111,
"eventParameterValue": 222,
"showCancel": true
}
Удалить пакет действий из категории
Параметр
Формат
Описание
packId *
integer
Уникальный идентификатор пакета действий
Пример результата:
{
"data":
{
"id": 124,
"name": "string",
"eventID": 111,
"parameterValue": 222,
"eventName": "string",
"isUnused": true,
"packDescription": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Удалить пакет действий из категории
Параметр
Формат
Описание
packId *
integer
Уникальный идентификатор пакета действий
Пример результата:
{
"data":
{
"id": 124,
"name": "string",
"eventID": 111,
"parameterValue": 222,
"eventName": "string",
"isUnused": true,
"packDescription": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
GET /api/admin/smartexpressions/list/{subcatId}:
Получить список смарт-выражений в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Пример результата:
{
"data":
{
"id": 123,
"name": "string",
"eventId": "BeforeExtParamChange",
"isFilter": true,
"subcatId": 0,
"noContextMode": true,
"originId": "Mail",
"availableAsSmartSearch": true,
"isPublic": true,
"tSql": "string",
"xhtml": "string",
"parameterValue": 0,
"isUnused": true,
"groupFilter": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить все существующие в категории smart-выражения [Пример](
{
"eventId": 123,
"originId": 111,
"subcatId": 222,
"selectFilters": true,
"eventParameterValue": 333,
"onlyCurrentStep": true
}
Удалить смарт-выражение из категории
Параметр
Формат
Описание
Id*
integer
Уникальный идентификатор смарт-выражения
DELETE /api/admin/smartexpressions/delete/{id}:
Удалить смарт-выражение из категории
Параметр
Формат
Описание
Id*
integer
Уникальный идентификатор смарт-выражения
Категории и разделы
POST /api/admin/subcategories:
Создать категорию [Пример](
{
"categoryId": 123,
"subcategoryName": "Название категории"
}
Копировать категорию
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор копируемой категории
Пример результата:
{
"subcategoryName": "string"
}
Получить список всех разделов [Пример результата](
{
"data":
{
"categoryName": "Название категории",
"parentCategoryId": 123,
"defaultViewType": "feed",
"additionalSyndicateLink": " ",
"id": 0
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Создать раздел [Пример](
{
"categoryName": "Название категории",
"parentCategoryId": 123,
"defaultViewType": "feed",
"additionalSyndicateLink": " "
}
Редактирует параметры раздела
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
Пример:
{
"categoryName": "string",
"parentCategoryId": 0,
"defaultViewType": "feed",
"additionalSyndicateLink": "string"
}
Удаляет раздел рекурсивно, все его категории, ДП, задачи
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
POST /api/admin/categories/{categoryId}/copy:
Копирует раздел и все его категории
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
Пример:
{
"categoryName": "Название категории"
}
Устанавливает уведомления на события во всех категориях раздела
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
Пример:
{ "type": "MailNewTask", "recipients": { "users": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "groups": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "orgUnits": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "mailBoxes": \ 0 \,{.f_CodeExample style="font-weight: bold;"}
"unresolvedRecipients":
"string"
\{.f_CodeExample style="font-weight: bold;"}
}
}
Снимает уведомления на события во всех категориях раздела
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
Пример:
{ "type": "MailNewTask", "recipients": { "users": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "groups": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "orgUnits": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "mailBoxes": \ 0 \,{.f_CodeExample style="font-weight: bold;"}
"unresolvedRecipients":
"string"
\{.f_CodeExample style="font-weight: bold;"}
}
}
Отбирает права у всех групп на все категории в разделе
Параметр
Формат
Описание
categoryId*
integer
Уникальный идентификатор раздела
GET /api/admin/enums:
Получить список всех "бизнесовых" enum в сборках. [Пример результата](
{
"data":
{
"id": "string",
"name": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Возвращает список значений запрошенного enum. Если enum локализован, то вернутся названия элементов в текущей локали.
Параметр
Формат
Описание
type*
string
Тип.
Пример: /api/admin/enums/SubcatNotificationTypes - возвращает локализованный список значений enum SubcatNotificationTypes.
Пример:
{
"data":
{
"id": "string",
"name": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
GET /api/admin/subcategories/steps:
Получает переходы в категории
Параметр
Формат
Описание
subcatId
integer
Уникальный идентификатор категории
Пример:
{
"data":
{
"stepId": 1234,
"stateId": 111,
"actionId": 222,
"stateDescription": "string",
"stateNextId": 34,
"stateNextDescription": "string",
"stepDescription": "string",
"actionDesciption": "string",
"termMinutes": 0,
"userOnly": true,
"ownerOnly": true,
"hiddenStep": true,
"isMainRouteStep": true,
"hasSubTask": true,
"isSignature": true,
"isProcedure": true,
"stepEventActionsExists": true,
"hasExtParamsRestrictions": true,
"hasAutoperformer": true,
"hasActionsWithExtParams": true
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Создание перехода [Пример](
{
"stateId": 0,
"stateNextId": 0,
"actionId": 0,
"ownerOnly": true,
"userOnly": true,
"subcatId": 0,
"stepDescription": "string",
"hiddenStep": false, // необязателен, по умолчанию false (кнопка видна)
"stepToolTip": "string",
"autoPerformerSignatureId": 0,
"autoperformerAssingAction": "RemoveOldSetResponsible",
"termMinutes": 0,
"transparentApproval": true,
"forceComment": true,
"resetDueTime": true,
"stepOwnerToolTip": "string",
"stepUserToolTip": "string",
"isButtonPresserAutoPerformer": true,
"autoAssignCustomer": true,
"cycleApproval": true,
"disableMail": true,
"autoPerformStepOnSubtasksClose": true,
"onOverduePerformStepId": 0,
"stepConfirmationMode": "None",
"confirmText": "string",
"stepConfirmationSmartExpressionId": 0,
"termDateSourceExtParamId": 0,
"requestDirectorSignatureOnReject": true,
"forAdmin": true,
"forViewver": true,
"taskStartTimeAction": 0,
"askPermissionToPerformTSTAction": true,
"autoPerformerSourceExtParamId": 0,
"isAutoPerfomedOnPostTask": true,
"guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"storedProcedures": "string",
"changeTaskText": true,
"changeTaskTextTemplate": "string",
"forPerfRight": true,
"forAddRight": true,
"forResponsiblePerformer": true,
"notifyUsersInSubcat": true,
"notifyUsersInSubcatText": "string",
"notifyUsersInSubcatGroupId": 0,
"actionsWithExtParams": 0,
"visibilitySmartFilterId": 0,
"disallowRevisionsOnSign": true,
"doSetComplainted": true,
"removeCommentsOnSignWhenEP": 0,
"redirectUrlAfterStepSmartExpressionId": 0,
"isMainRouteStep": true,
"isMainRouteAvailable": true,
"requireChangeDateBefore": true,
"localizedStepDescrId": 0,
"localizedStepTooltipId": 0,
"localizedStepOwnerTooltipId": 0,
"localizedStepUserTooltipId": 0,
"localizedConfirmTextId": 0,
"taskEntityPermissionSetId": 0,
"taskEntityPermissionControl": true,
"orderId": 0
}
Восстановление маршрута по умолчанию в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
GET /api/admin/subcategories/steps/{stepId}:
Получить переход
Параметр
Формат
Описание
stepId*
integer
Уникальный идентификатор перехода
Пример результата:
{
"data": {
"stateId": 0,
"stateNextId": 0,
"actionId": 0,
"ownerOnly": true,
"userOnly": true,
"subcatId": 0,
"stepDescription": "string",
"hiddenStep": true,
"stepToolTip": "string",
"autoPerformerSignatureId": 0,
"autoperformerAssingAction": "RemoveOldSetResponsible",
"termMinutes": 0,
"transparentApproval": true,
"forceComment": true,
"resetDueTime": true,
"stepOwnerToolTip": "string",
"stepUserToolTip": "string",
"isButtonPresserAutoPerformer": true,
"autoAssignCustomer": true,
"cycleApproval": true,
"disableMail": true,
"autoPerformStepOnSubtasksClose": true,
"onOverduePerformStepId": 0,
"stepConfirmationMode": "None",
"confirmText": "string",
"stepConfirmationSmartExpressionId": 0,
"termDateSourceExtParamId": 0,
"requestDirectorSignatureOnReject": true,
"forAdmin": true,
"forViewver": true,
"taskStartTimeAction": 0,
"askPermissionToPerformTSTAction": true,
"autoPerformerSourceExtParamId": 0,
"isAutoPerfomedOnPostTask": true,
"guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"storedProcedures": "string",
"changeTaskText": true,
"changeTaskTextTemplate": "string",
"forPerfRight": true,
"forAddRight": true,
"forResponsiblePerformer": true,
"notifyUsersInSubcat": true,
"notifyUsersInSubcatText": "string",
"notifyUsersInSubcatGroupId": 0,
"actionsWithExtParams": 0,
"visibilitySmartFilterId": 0,
"disallowRevisionsOnSign": true,
"doSetComplainted": true,
"removeCommentsOnSignWhenEP": 0,
"redirectUrlAfterStepSmartExpressionId": 0,
"isMainRouteStep": true,
"isMainRouteAvailable": true,
"requireChangeDateBefore": true,
"localizedStepDescrId": 0,
"localizedStepTooltipId": 0,
"localizedStepOwnerTooltipId": 0,
"localizedStepUserTooltipId": 0,
"localizedConfirmTextId": 0,
"taskEntityPermissionSetId": 0,
"taskEntityPermissionControl": true,
"orderId": 0,
"stepId": 0
},
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Обновление перехода
Параметр
Формат
Описание
stepId*
integer
Уникальный идентификатор перехода
Пример результата:
{
"stateId": 0,
"stateNextId": 0,
"actionId": 0,
"ownerOnly": true,
"userOnly": true,
"subcatId": 0,
"stepDescription": "string",
"hiddenStep": true,
"stepToolTip": "string",
"autoPerformerSignatureId": 0,
"autoperformerAssingAction": "RemoveOldSetResponsible",
"termMinutes": 0,
"transparentApproval": true,
"forceComment": true,
"resetDueTime": true,
"stepOwnerToolTip": "string",
"stepUserToolTip": "string",
"isButtonPresserAutoPerformer": true,
"autoAssignCustomer": true,
"cycleApproval": true,
"disableMail": true,
"autoPerformStepOnSubtasksClose": true,
"onOverduePerformStepId": 0,
"stepConfirmationMode": "None",
"confirmText": "string",
"stepConfirmationSmartExpressionId": 0,
"termDateSourceExtParamId": 0,
"requestDirectorSignatureOnReject": true,
"forAdmin": true,
"forViewver": true,
"taskStartTimeAction": 0,
"askPermissionToPerformTSTAction": true,
"autoPerformerSourceExtParamId": 0,
"isAutoPerfomedOnPostTask": true,
"guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"storedProcedures": "string",
"changeTaskText": true,
"changeTaskTextTemplate": "string",
"forPerfRight": true,
"forAddRight": true,
"forResponsiblePerformer": true,
"notifyUsersInSubcat": true,
"notifyUsersInSubcatText": "string",
"notifyUsersInSubcatGroupId": 0,
"actionsWithExtParams": 0,
"visibilitySmartFilterId": 0,
"disallowRevisionsOnSign": true,
"doSetComplainted": true,
"removeCommentsOnSignWhenEP": 0,
"redirectUrlAfterStepSmartExpressionId": 0,
"isMainRouteStep": true,
"isMainRouteAvailable": true,
"requireChangeDateBefore": true,
"localizedStepDescrId": 0,
"localizedStepTooltipId": 0,
"localizedStepOwnerTooltipId": 0,
"localizedStepUserTooltipId": 0,
"localizedConfirmTextId": 0,
"taskEntityPermissionSetId": 0,
"taskEntityPermissionControl": true,
"orderId": 0
}
Удаление перехода
Параметр
Формат
Описание
stepId*
integer
Уникальный идентификатор перехода
POST /api/admin/subcategories/steps/copy/{stepId}:
Копирование перехода
Параметр
Формат
Описание
stepId*
integer
Уникальный идентификатор перехода
Пример результата:
{
"data": {
"stateId": 0,
"stateNextId": 0,
"actionId": 0,
"ownerOnly": true,
"userOnly": true,
"subcatId": 0,
"stepDescription": "string",
"hiddenStep": true,
"stepToolTip": "string",
"autoPerformerSignatureId": 0,
"autoperformerAssingAction": "RemoveOldSetResponsible",
"termMinutes": 0,
"transparentApproval": true,
"forceComment": true,
"resetDueTime": true,
"stepOwnerToolTip": "string",
"stepUserToolTip": "string",
"isButtonPresserAutoPerformer": true,
"autoAssignCustomer": true,
"cycleApproval": true,
"disableMail": true,
"autoPerformStepOnSubtasksClose": true,
"onOverduePerformStepId": 0,
"stepConfirmationMode": "None",
"confirmText": "string",
"stepConfirmationSmartExpressionId": 0,
"termDateSourceExtParamId": 0,
"requestDirectorSignatureOnReject": true,
"forAdmin": true,
"forViewver": true,
"taskStartTimeAction": 0,
"askPermissionToPerformTSTAction": true,
"autoPerformerSourceExtParamId": 0,
"isAutoPerfomedOnPostTask": true,
"guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"storedProcedures": "string",
"changeTaskText": true,
"changeTaskTextTemplate": "string",
"forPerfRight": true,
"forAddRight": true,
"forResponsiblePerformer": true,
"notifyUsersInSubcat": true,
"notifyUsersInSubcatText": "string",
"notifyUsersInSubcatGroupId": 0,
"actionsWithExtParams": 0,
"visibilitySmartFilterId": 0,
"disallowRevisionsOnSign": true,
"doSetComplainted": true,
"removeCommentsOnSignWhenEP": 0,
"redirectUrlAfterStepSmartExpressionId": 0,
"isMainRouteStep": true,
"isMainRouteAvailable": true,
"requireChangeDateBefore": true,
"localizedStepDescrId": 0,
"localizedStepTooltipId": 0,
"localizedStepOwnerTooltipId": 0,
"localizedStepUserTooltipId": 0,
"localizedConfirmTextId": 0,
"taskEntityPermissionSetId": 0,
"taskEntityPermissionControl": true,
"orderId": 0,
"stepId": 0
},
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить подписи на переходе в категории
Параметр
Формат
Описание
stepId
integer
Уникальный идентификатор перехода
Пример результата:
{ [ "data": \ { "id": 0, "stepId": 0, "signatureId": 0, "isNecessary": true, "description": "string", "isSignRestriction": true, "isSignInfo": true, "signatureOrder": 0, "maxTimeToSign": 0, "timeToSignSmartId": 0, "isByExtParameter": true, "spName": "string", "reason": "string", "reasonSmartId": 0, "canChangeSigRequestReason": true, "sigRequestReasonRequired": true, "returnIfNotSignedStateId": 0, "actionIfNotSigned": 0, "excludeAlreadySigned": true, "requestReasonOnAccept": true, "splitForEachAcceptor": true, "canBeEscalated": true, "escalateOnOverDue": true, "isOwnerSignature": true, "enabled": true, "acceptorsEvalutionBaseUser": 0, "canBeDelegated": true, "isEds": true, "isAsyncAvailable": true, "excludeSystemSubstitutes": true, "canSignedOnlyOnce": true, "smartFilterId": 0, "stepsIfNotSigned": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForRestriction": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForInfo": \ 0 \,{.f_CodeExample style="font-weight: bold;"}
"stepSignatureConditions":
{
"extParamId": 0,
"fixedValue": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
\,]{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Создать подпись на переходе в категории [Пример](../ {
"stepId": 0,
"signatureId": 0,
"isNecessary": true,
"description": "string",
"isSignRestriction": true,
"isSignInfo": true,
"signatureOrder": 0,
"maxTimeToSign": 0,
"timeToSignSmartId": 0,
"isByExtParameter": true,
"spName": "string",
"reason": "string",
"reasonSmartId": 0,
"canChangeSigRequestReason": true,
"sigRequestReasonRequired": true,
"returnIfNotSignedStateId": 0,
"actionIfNotSigned": 0,
"excludeAlreadySigned": true,
"requestReasonOnAccept": true,
"splitForEachAcceptor": true,
"canBeEscalated": true,
"escalateOnOverDue": true,
"isOwnerSignature": true,
"enabled": true,
"acceptorsEvalutionBaseUser": "Owner",
"canBeDelegated": true,
"isEds": true,
"isAsyncAvailable": true,
"excludeSystemSubstitutes": true,
"canSignedOnlyOnce": true,
"smartFilterId": 0,
"stepsIfNotSigned": \
0
\,{.f_CodeExample style="font-weight: bold;"}
"stepSignExtParamsIdForRestriction": \
0
\,{.f_CodeExample style="font-weight: bold;"}
"stepSignExtParamsIdForInfo": \
0
\,{.f_CodeExample style="font-weight: bold;"}
"stepSignatureConditions":
{
"extParamId": 0,
"fixedValue": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получение подписи на переходе в категории
Параметр
Формат
Описание
stepId*
integer
Уникальный идентификатор перехода
stepSignatureId*
integer
Уникальный идентификатор подписи на переходе
Пример результата:
{ "data": { "id": 0, "stepId": 0, "signatureId": 0, "isNecessary": true, "description": "string", "isSignRestriction": true, "isSignInfo": true, "signatureOrder": 0, "maxTimeToSign": 0, "timeToSignSmartId": 0, "isByExtParameter": true, "spName": "string", "reason": "string", "reasonSmartId": 0, "canChangeSigRequestReason": true, "sigRequestReasonRequired": true, "returnIfNotSignedStateId": 0, "actionIfNotSigned": 0, "excludeAlreadySigned": true, "requestReasonOnAccept": true, "splitForEachAcceptor": true, "canBeEscalated": true, "escalateOnOverDue": true, "isOwnerSignature": true, "enabled": true, "acceptorsEvalutionBaseUser": 0, "canBeDelegated": true, "isEds": true, "isAsyncAvailable": true, "excludeSystemSubstitutes": true, "canSignedOnlyOnce": true, "smartFilterId": 0, "stepsIfNotSigned": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForRestriction": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForInfo": \ 0 \,{.f_CodeExample style="font-weight: bold;"}
"stepSignatureConditions":
{
"extParamId": 0,
"fixedValue": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
},
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Обновление подписи на переходе в категории
Параметр
Формат
Описание
stepSignatureId*
integer
Уникальный идентификатор подписи на переходе
Пример:
{ "stepId": 0, "signatureId": 0, "isNecessary": true, "description": "string", "isSignRestriction": true, "isSignInfo": true, "signatureOrder": 0, "maxTimeToSign": 0, "timeToSignSmartId": 0, "isByExtParameter": true, "spName": "string", "reason": "string", "reasonSmartId": 0, "canChangeSigRequestReason": true, "sigRequestReasonRequired": true, "returnIfNotSignedStateId": 0, "actionIfNotSigned": 0, "excludeAlreadySigned": true, "requestReasonOnAccept": true, "splitForEachAcceptor": true, "canBeEscalated": true, "escalateOnOverDue": true, "isOwnerSignature": true, "enabled": true, "acceptorsEvalutionBaseUser": "Owner", "canBeDelegated": true, "isEds": true, "isAsyncAvailable": true, "excludeSystemSubstitutes": true, "canSignedOnlyOnce": true, "smartFilterId": 0, "stepsIfNotSigned": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForRestriction": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "stepSignExtParamsIdForInfo": \ 0 \,{.f_CodeExample style="font-weight: bold;"}
"stepSignatureConditions":
{
"extParamId": 0,
"fixedValue": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Удаление подписи на переходе в категории
Параметр
Формат
Описание
stepSignatureId*
integer
Уникальный идентификатор подписи на переходе
Уведомления в категории
POST /api/subcategories/{subcatId}/notifications/add:
Добавление уведомления в категорию
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Пример:
{
"id": 123,
"type": "User"
},
{
"id": 456,
"type": "Group"
}
Получить все уведомления в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Пример:
{
"data":
{
"id": 1234,
"type": "User",
"displayName": "Иванов Иван",
"mailNewTask": true,
"autoSubscribe": true,
"mailOrderDataChange": true,
"autoPerformer": true,
"isAutoPerformerResponsible": true,
"mailRejectedTask": true
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Изменение настроек уведомления
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Пример:
{
"id": 1234,
"type": "User",
"mailNewTask": true,
"autoSubscribe": true,
"mailOrderDataChange": true,
"mailStatusChange": true,
"autoPerformer": true,
"isAutoPerformerResponsible": true,
"mailRejectedTask": true
}
Удаление уведомлений в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
ДП в категории
GET /api/admin/subcat/extparam:
Получить все ДП в категории
Параметр
Формат
Описание
subcatId
integer
Уникальный идентификатор категории
Пример результата:
{ [ "data": \ { "extParamId": 0, "extParamName": "string", "extParamType": "string", "isRequired": true, "toolTip": "string", "isReadonly": true, "newTaskMode": { "id": "string", "name": "string" }, "accessControl": { "id": "string", "name": "string" }, "regExp": "string", "subcatOrder": 0, "stateControl": true, "smartAccessControl": true, "syncToParent": true, "hidden": true, "hideIfEmpty": true, "syncToChild": true, "defaultValue": "string", "notifyOnChange": true, "allowHistory": true, "allowEditHistory": true, "changeWithComment": true, "defaultValueSmartExpressionId": 0, "targetExtParamId": 0, "extParamBlock": { "id": "string", "name": "string" }, "validatorId": 0, "colspan": 0, "maxLength": 0, "encrypt": true, "extParamInSubcatName": "string", "extParamInSubcatId": 0, "useInSearch": true, "isValidatorUsed": true, "supportsChangeWithComment": true, "defaultValueSmartExpressionName": "string", "taskEntityPermissionControl": true, "askSaveConfirm": true, "uniqueValues": true, "changeWithCommentMode": { "id": "string", "name": "string" }, "extParamStateViews": \ { "stateId": 0, "stateName": "string", "canEdit": true, "canRead": true } \,{.f_CodeExample style="font-weight: bold;"} "smartAccessForExtParamInfos": \ { "id": 0, "name": "string", "usersSmartExpressionId": 0, "canRead": true, "canWrite": true, "usersSmartExpressionName": "string", "subcatId": 0, "subcatName": "string", "triggerExtParamNames": "string", "triggerGroupNames": "string", "extParamId": 0, "extParamName": "string" } \,{.f_CodeExample style="font-weight: bold;"} "extParamsInSubcatValidator": { "valdatorId": 0, "smartExpressionId": 0, "runOnSave": true, "runOnTaskCreated": true, "steps": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "customButtons": \ 0 {.f_CodeExample style="font-weight: bold;"} } } \,]{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Создать ДП в категории
Параметр
Формат
Описание
subcatId
integer
Уникальный идентификатор категории
Параметры доп. параметра в категории:
{ "extParamId": 0, "extParamName": "string", "extParamType": "string", "isRequired": true, "toolTip": "string", "isReadonly": true, "newTaskMode": { "id": "string", "name": "string" }, "accessControl": { "id": "string", "name": "string" }, "regExp": "string", "subcatOrder": 0, "stateControl": true, "smartAccessControl": true, "syncToParent": true, "hidden": true, "hideIfEmpty": true, "syncToChild": true, "defaultValue": "string", "notifyOnChange": true, "allowHistory": true, "allowEditHistory": true, "changeWithComment": true, "defaultValueSmartExpressionId": 0, "targetExtParamId": 0, "extParamBlock": { "id": "string", "name": "string" }, "validatorId": 0, "colspan": 0, "maxLength": 0, "encrypt": true, "extParamInSubcatName": "string", "extParamInSubcatId": 0, "useInSearch": true, "isValidatorUsed": true, "supportsChangeWithComment": true, "defaultValueSmartExpressionName": "string", "taskEntityPermissionControl": true, "askSaveConfirm": true, "uniqueValues": true, "changeWithCommentMode": { "id": "string", "name": "string" }, "extParamStateViews": \ { "stateId": 0, "stateName": "string", "canEdit": true, "canRead": true } \,{.f_CodeExample style="font-weight: bold;"} "smartAccessForExtParamInfos": \ { "id": 0, "name": "string", "usersSmartExpressionId": 0, "canRead": true, "canWrite": true, "usersSmartExpressionName": "string", "subcatId": 0, "subcatName": "string", "triggerExtParamNames": "string", "triggerGroupNames": "string", "extParamId": 0, "extParamName": "string" } \,{.f_CodeExample style="font-weight: bold;"} "extParamsInSubcatValidator": { "valdatorId": 0, "smartExpressionId": 0, "runOnSave": true, "runOnTaskCreated": true, "steps": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "customButtons": \ 0 {.f_CodeExample style="font-weight: bold;"} } } POST /api/extparams/update:
Обновить ДП в задаче
Параметр
Формат
Описание
initiatorUserId
integer
Уникальный идентификатор инициирующего действие пользователя
confirmed
boolean
Если true, то смарт-отмена будет проигнорирована.
Значение по умолчанию: false
Пример:
Значения: -extParamStr — строка ДП-значений через разделитель :: "#n#v1\<значение>::#n#\< значение>" -writeComment — Писать комментарий об изменении. -commentText — Текст комментария. -addOnly — Только добавить, не очищая имеющееся значение. -taskId — Номер задачи -userId — ID меняющего пользователя body: [\
{
"extParamStr": "\#n1767\#v17342730::\#n2426\#vтесттекст",
"taskId": 17516164,
"userId": 4013,
"writeComment": true
}
Получить все ДП в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
extParamId*
integer
Уникальный идентификатор ДП
Пример результата:
{ "data": { "extParamId": 0, "extParamName": "string", "extParamType": "string", "isRequired": true, "toolTip": "string", "isReadonly": true, "newTaskMode": { "id": "string", "name": "string" }, "accessControl": { "id": "string", "name": "string" }, "regExp": "string", "subcatOrder": 0, "stateControl": true, "smartAccessControl": true, "syncToParent": true, "hidden": true, "hideIfEmpty": true, "syncToChild": true, "defaultValue": "string", "notifyOnChange": true, "allowHistory": true, "allowEditHistory": true, "changeWithComment": true, "defaultValueSmartExpressionId": 0, "targetExtParamId": 0, "extParamBlock": { "id": "string", "name": "string" }, "validatorId": 0, "colspan": 0, "maxLength": 0, "encrypt": true, "extParamInSubcatName": "string", "extParamInSubcatId": 0, "useInSearch": true, "isValidatorUsed": true, "supportsChangeWithComment": true, "defaultValueSmartExpressionName": "string", "taskEntityPermissionControl": true, "askSaveConfirm": true, "uniqueValues": true, "changeWithCommentMode": { "id": "string", "name": "string" }, "extParamStateViews": \ { "stateId": 0, "stateName": "string", "canEdit": true, "canRead": true } \,{.f_CodeExample style="font-weight: bold;"} "smartAccessForExtParamInfos": \ { "id": 0, "name": "string", "usersSmartExpressionId": 0, "canRead": true, "canWrite": true, "usersSmartExpressionName": "string", "subcatId": 0, "subcatName": "string", "triggerExtParamNames": "string", "triggerGroupNames": "string", "extParamId": 0, "extParamName": "string" } \,{.f_CodeExample style="font-weight: bold;"} "extParamsInSubcatValidator": { "valdatorId": 0, "smartExpressionId": 0, "runOnSave": true, "runOnTaskCreated": true, "steps": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "customButtons": \ 0 {.f_CodeExample style="font-weight: bold;"} } },
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Удаление ДП в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
extParamId*
integer
Уникальный идентификатор ДП
POST /api/admin/subcat/extparams/{subcatId}:
Обновить ДП в категории
Параметр
Формат
Описание
subcatId*
integer
Уникальный идентификатор категории
Параметры доп. параметра в категории:
{ "extParamId": 0, "extParamName": "string", "extParamType": "string", "isRequired": true, "toolTip": "string", "isReadonly": true, "newTaskMode": { "id": "string", "name": "string" }, "accessControl": { "id": "string", "name": "string" }, "regExp": "string", "subcatOrder": 0, "stateControl": true, "smartAccessControl": true, "syncToParent": true, "hidden": true, "hideIfEmpty": true, "syncToChild": true, "defaultValue": "string", "notifyOnChange": true, "allowHistory": true, "allowEditHistory": true, "changeWithComment": true, "defaultValueSmartExpressionId": 0, "targetExtParamId": 0, "extParamBlock": { "id": "string", "name": "string" }, "validatorId": 0, "colspan": 0, "maxLength": 0, "encrypt": true, "extParamInSubcatName": "string", "extParamInSubcatId": 0, "useInSearch": true, "isValidatorUsed": true, "supportsChangeWithComment": true, "defaultValueSmartExpressionName": "string", "taskEntityPermissionControl": true, "askSaveConfirm": true, "uniqueValues": true, "changeWithCommentMode": { "id": "string", "name": "string" }, "extParamStateViews": \ { "stateId": 0, "stateName": "string", "canEdit": true, "canRead": true } \,{.f_CodeExample style="font-weight: bold;"} "smartAccessForExtParamInfos": \ { "id": 0, "name": "string", "usersSmartExpressionId": 0, "canRead": true, "canWrite": true, "usersSmartExpressionName": "string", "subcatId": 0, "subcatName": "string", "triggerExtParamNames": "string", "triggerGroupNames": "string", "extParamId": 0, "extParamName": "string" } \,{.f_CodeExample style="font-weight: bold;"} "extParamsInSubcatValidator": { "valdatorId": 0, "smartExpressionId": 0, "runOnSave": true, "runOnTaskCreated": true, "steps": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "customButtons": \ 0 {.f_CodeExample style="font-weight: bold;"} } } POST /app/v1.2/api/eps/multilookup/{epId}/{taskId}/update:
Заполнить ДП MultiLookup
Параметр
Формат
Описание
taskId*
integer
Номер задачи
epId*
integer
ID ДП. Значения необходимо передавать в виде строки taskId с разделителем ]||\||\ при добавлении задач и # для множественных операций (удаление и добавление)
[Подробнее про формат значения ДП Multilookup
Пример:
body:
| \'17527471\||\||\17505804\'\' -- добавить задачи 17527471, 17505804\'\' | | \'-17527471#17515247\||\||\17514596\' -- удалить 17527471 и добавить 17515247, 17514596\' |
Настройки портального блока
POST /api/portals/block/add:
Добавить портальный блок
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
GET /api/portals/block/{blockId}:
Получить общие настройки портального блока
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
Пример результата:
{
"data": {
"userId": 0,
"blockId": 0,
"name": "string",
"type": {
"id": 0,
"name": "string"
},
"isRequired": true,
"isEnabled": true,
"headerColor": "string",
"icon": "string",
"footerText": "string",
"footerLink": "string",
"showFooter": true,
"startPageBlockId": 0,
"templateId": 0,
"guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"contextType": {
"id": 0,
"name": "string"
},
"isFilterHidden": true,
"isHideableByUser": true,
"isHeaderHidden": true,
"localizedNameId": 0,
"canExpand": true,
"widgetNameType": "Fixed",
"widgetNameSmartId": 0,
"widgetColorMode": "Default",
"groups":
{
"id": 0,
"name": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"sections":
{
"id": 0,
"name": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
},
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить список разделов
Параметр
Формат
Описание
Пример результата:
{
"data":
{
"id": 1234,
"name": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить список типов
Параметр
Формат
Описание
Пример результата:
{
"data":
{
"id": 1234,
"name": "string"
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Изменить настройки портального блока
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
Пример:
{ "userId": 111, "name": "Name", "typeId": 222, "isRequired": true, "isEnabled": true, "headerColor": "string", "icon": "string", "footerText": "string", "footerLink": "string", "showFooter": true, "startPageBlockId": 0, "templateId": 0, "contextTypeId": 0, "isFilterHidden": true, "isHideableByUser": true, "isHeaderHidden": true, "localizedNameId": 0, "canExpand": true, "widgetNameType": "Fixed", "widgetNameSmartId": 0, "widgetColorMode": "Default", "groupsIds": \ 0 \,{.f_CodeExample style="font-weight: bold;"} "sectionsIds": \ 0 {.f_CodeExample style="font-weight: bold;"} } DELETE /api/portals/block/{blockId}/delete:
Удалить портальный блок
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
GET /api/portals/block/{blockId}/type-params:
Получить дополнительные настройки портального блока
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
Пример результата:
{
"data": {},
"errors":
{
"errorType": "TestPurposes",
"message": "string",
"exceptionTitle": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Изменить дополнительные настройки портального блока
Параметр
Формат
Описание
blockId*
integer
Уникальный идентификатор виджета
Пример результата:
{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
GET /api/auth/info:
Получить информацию для авторизации (по текущему пользователю) [Пример результата](../
{
"data": {
"userId": 1234,
"isAdmin": true,
"groups":
{
"id": 1,
"description": "Administrators",
"typeId": 345,
"code": "abc",
"customerId": 1,
"adSid": null,
"details": "Администраторы системы",
"domain": null
},
{
"id": 2,
"description": "Все пользователи",
"typeId": 123,
"code": null,
"customerId": 1,
"adSid": null,
"details": "В данной группе содержатся все активные учетные записи. Состав группы поддерживается автоматически.",
"domain": null
}
\{.f_CodeExample style="font-weight: bold;"}
}
}
Перевоплщение в пользователя
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя, в которого необходимо перевоплотиться
POST /api/auth/{userId}/stopimpersonate:
Прекратить перевоплощение
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя, перевоплощение в которого необходимо прекратить
POST /api/auth/token/refresh:
Запрос нового токена по refresh-токену. Доступен только из аутентифицированного контекста (с валидным access-токеном)
Параметр
Формат
Описание
refreshToken
string
refresh-токен
Метод может работать анонимно
Брендирование
POST /api/admin/spa/branding:
Принимает архив с SPA-файлами, которые могут быть подвержены брендированию, и выдает архив с брендированными файлами и иконками
Параметр
Формат
Описание
file
string
Архив с SPA-файлами:
-
/spa/favicon.ico
-
/spa/index.html
-
/spa/manifest.json
-
/spa/ngsw.json
-
/spa/assets/icons/brand/default
Группы
GET /api/group/group-card:
Получить пользователей, входящих в группу
Параметр
Формат
Описание
groupId
integer
Уникальный идентификатор группы
Пример результата:
{
"data": {
"id": 123,
"description": "Внештатные сотрудники",
"users":
{
"id": 345,
"name": "Иванов Иван",
"isFired": false,
"isInMaternityLeave": false,
"isOnline": false,
"isEmployee": true,
"isAway": true,
"awayColor": null
}
\{.f_CodeExample style="font-weight: bold;"}
}
}
GET /app/v1.0/api/subcategories/tree¶
Возвращает список категорий для текущего пользователя.
Параметр
Формат
Описание
allTasksCount
integer
Общее количество задач в категории
newTasksCount
integer
Количество новых задач
overdueTasksCount
integer
Количество просроченных задач
allTasksUserOwns
integer
Количество задач, в которых текущий пользователь является заказчиком
allTasksUserPerforms
integer
Количество задач, в которых текущий пользователь является исполнителем
parentId
integer
Идентификатор родительской категории
nodeType
string
Тип. Варианты значений: Category, Subcategory
isDictionary
boolean
Является справочником
isSpace
boolean
Является пространством
canEdit
boolean
Можно редактировать
openType
string
Представление категории. Варианты значений: feed, grid, additionalsyndicate, filebrowser_thumbnailsview, kanban.
portalId
integer
Идентификатор портала
canCreateTask
boolean
Право создавать задачи
details
string
Описание категории
availableRepresentations
array
Массив объектов доступных представлений категории. Варианты значений: Grid, Feeds, Calendar, Gantt, Kanban, Channel, Chat, Files
name
string
Наименование категории
id
integer
Идентификатор категории
total
integer
Общее количество
Пример результат:
{ "data": [ { "tasksCounters": { "allTasksCount": 100, "newTasksCount": 12, "overdueTasksCount": 1, "allTasksUserOwns": 34, "allTasksUserPerforms": 0 }, "parentId": 1234, "nodeType": "Category", "isDictionary": true, "isSpace": true, "canEdit": true, "openType": "feed", "portalId": 0, "canCreateTask": true, "details": "Категория для данных по клиентам", "availableRepresentations": \ "Grid" \, "name": "Клиенты", "id": 55563 } \,] "total": 1, "aggregates": {} } GET /api/tasks:
Получить задачу
Параметр
Формат
Описание
id
integer
Номер задачи
Пример результата:
{
"data": {
"subcategory": {
"allowSetTimeParamsInPast": true,
"srokRequired": true,
"id": 1234
},
"subcatId": 111,
"plannedEnd": "2022-12-28T07:59:02.903Z",
"commentQuestionsAllow": true,
"commentNotMeAnswerRequired": true,
"id": 122
},
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
}
Получить доступные действия для задачи. Включены пошаговые и пользовательские кнопки.
Параметр
Формат
Описание
taskId
integer
Номер задачи
Пример результата:
{
"data": [
{
"id": 123,
"description": "Описание",
"disabled": true,
"otherActions": true,
"forceComment": true,
"startTimeChangeConfirmText": null,
"stepTooltip": null,
"stateDescription": "Новая",
"doSetPerformer": true,
"closeTask": true,
"finishWork": true,
"newDueDateRequired": true,
"overdueReasonRequired": true,
"signatures":
{
"id": 123,
"description": "Описание",
"reason": "Причина"
}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
}
Метод для получения основного маршрута по задаче и доступных пользователю переходов из текущего статуса
Параметр
Формат
Описание
taskId
integer
Номер задачи
Пример результата:
{
"taskMainRoute": {
"isConfigured": true,
"isValid": true,
"states":
{
"description": "Новая",
"isPassed": true,
"isCurrent": false,
"isRejected": false,
"startDate": "2023-06-16T10:15:49",
"endDate": "2023-06-26T11:44:31",
"stateTime": "Начало: 16 июня 10:15\\r\\nОкончание: 26 июня 11:44\\r\\nДлительность: 10 дней 1 час 28 минут",
"realState": null,
"name": "Новая",
"id": 1
},
{
"description": "Выполняется",
"isPassed": false,
"isCurrent": true,
"isRejected": false,
"startDate": "2023-06-26T11:44:31",
"endDate": null,
"stateTime": "Начало: 26 июня 11:44\\r\\nДлительность: 2 дня 5 часов 56 минут",
"realState": null,
"name": "Выполняется",
"id": 2
},
{
"description": "Завершена",
"isPassed": false,
"isCurrent": false,
"isRejected": false,
"startDate": null,
"endDate": null,
"stateTime": null,
"realState": null,
"name": "Завершена",
"id": 3
}
"steps":
{
"stateId": 2,
"stateNextId": 3,
"fromUserId": null,
"confirmText": null,
"needRates": false,
"requireChangeDateBefore": false,
"isMainRouteAvailable": true,
"isMainRoute": true,
"name": "Завершить",
"id": 12946
},
{
"stateId": 2,
"stateNextId": 523,
"fromUserId": null,
"confirmText": "",
"needRates": false,
"requireChangeDateBefore": false,
"isMainRouteAvailable": false,
"isMainRoute": false,
"name": "Отложить",
"id": 23831
},
{
"stateId": 2,
"stateNextId": 4,
"fromUserId": null,
"confirmText": "",
"needRates": false,
"requireChangeDateBefore": false,
"isMainRouteAvailable": false,
"isMainRoute": false,
"name": "Отклонить",
"id": 13568
}
"terminalStates":
{
"description": "Отклонена",
"isPassed": false,
"isCurrent": false,
"isRejected": true,
"startDate": null,
"endDate": null,
"stateTime": null,
"realState": null,
"name": "Отклонена",
"id": 4
}
}
Проверить задачу на существование и доступ
Параметр
Формат
Описание
taskId
integer
Номер задачи
Пример результата:
{
"data": {
"isTaskExists": true,
"isUserHasAccess": true,
"taskShortInfo": {
"taskId": [1190635](https://ru.1forma.ru/spa/tasks/1190635),
"subcatId": 21001,
"subcatDescription": "Договор оказания услуг",
"isEncrypted": false,
"isClosed": false,
"isWaitingSign": false,
"isConfidential": false,
"taskText": "Согласование платежа",
"priority": 1,
"stateId": 2,
"stateDescription": "Выполняется",
"owner": {
"userId": 29155,
"userName": "Герасимов Михаил",
"isLastOnlineFromMobileApp": false,
"lastOnlineTime": "2022-11-29T14:56:40",
"lastPersonalInfoUpdateTime": "2022-10-13T13:10:00",
"gender": 1,
"birthDate": null,
"birthDaySoon": false,
"hasAvatar": true,
"userAvatarFile": {
"fileId": 1473372,
"latestVersionId": 1
},
"absences": []
"isEmployee": false,
"isFired": false,
"displayName": "Герасимов Михаил"
}
}
}
}
Получить статусы задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
Пример результата:
{
"data": {
"states":
{
"id": 1,
"name": "Новая"
},
{
"id": 4,
"name": "Отклонена"
},
{
"id": 313,
"name": "Архив"
},
{
"id": 983,
"name": "Действует"
}
\{.f_CodeExample style="font-weight: bold;"}
}
}
Отдает аватар задачи, если он есть
Параметр
Формат
Описание
taskId
integer
Номер задачи
scaleX
integer
Ось X
scaleY
integer
Ось Y
fullImg
boolean
Полное изображение
enlargeImage
boolean
Увеличить изображение
doNotSendDefaultAvatar
boolean
Не отправлять аватар по умолчанию
GET /api/tasks/linked/{taskId}:
Получить связанные задачи
Параметр
Формат
Описание
taskId
integer
Номер родительской задачи
Пример результата:
{
"data":
{
"taskID": 123,
"createdTask": "2022-09-09T09:03:15",
"taskAssigner": "Иванов Иван",
"subcat": "Договор оказания услуг",
"description": "Договор №12193786",
"stateName": "Отклонена",
"taskPerformer": "Иванов Иван",
"isClosed": true,
"sourceTaskId": 345
}
}
Разорвать связь с задачей
Параметр
Формат
Описание
taskId
integer
Номер родительской задачи
subtaskId
integer
Задача для удаления
POST /app/v1.2/api/tasks/feeds:
Получить ленту задач
Параметр
Формат
Описание
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
subcatId
integer
Уникальный идентификатор категории
catId
integer
startTime
string
Дата начала
endTime
string
Дата окончания
taskParamFilter
array
Массив объектов
feedTypes
array
Массив объектов
extParamFilters
string
Пример:
{
"limit": 20,
"offset": 0,
"subcatId": 1234,
"catId": null,
"startTime": "2022-12-27T07:33:42.294Z",
"endTime": "2022-12-27T07:33:42.294Z",
"taskParamFilter":
{
"type": "string",
"startValue": {},
"endValue": {},
"operation": "string"
}
Получить ленту задач
Параметр
Формат
Описание
resultRowsCount
integer
Количество выводимых строк
resultSetOffset
integer
Количество пропускаемых элементов при генерации страницы
include
array
Массив объектов для отображения. Пример: ДП ("ExtParams"), комментарии ("CommentCounters"), подписчики ("Subscribers")
showLastComment
boolean
Показывать последний комментарий
openOnlyF
boolean
Задачи в активном статусе
closedOnlyF
boolean
Закрытые задачи
favoritesOnlyF
boolean
Избранные задачи
taskHelperOnlyF
boolean
Задачи, где пользователь исполнитель
subscriberOnlyF
boolean
Задачи, где пользователь подписчик
Пример:
{ "resultRowsCount": 50, "resultSetOffset": 0, "include": \ "ExtParams", "CommentCounters", "Commenters", "Subscribers" \, "showLastComment": true, "openOnlyF": false, "closedOnlyF": false, "favoritesOnlyF": false, "taskHelperOnlyF": false, "subscriberOnlyF": true, "oneFMainVisibilityModeF": true, "workNotStartedOnlyF": false, "orderByLastCommentIdF": true, "reversedOrderF": true, "outLastCommentF": true, "orderByCreatedTaskF": false, "lastCommentUnreadOnlyF": false, "topCommentersCount": 10 } POST /api/tasks:
Получить информацию о задаче с некоторыми информационными частями
Параметр
Формат
Описание
taskId
integer
Номер задачи
selectedInfoParts
array
Массив данных, по которым получаем информацию. Пример: ДП ("ExtParams")
addToHistory
boolean
При необходимости добавить задачу в историю.
Пример:
body:
{
"taskId": 17516164,
"selectedInfoParts":
"ExtParams"
}
Ответ: { "errors": null, "unreadCommentsCount": 0, "otherActionsButtonText": null, "threadsCount": 0, "extParams": \ { "hideLink": false, "id": 2429, "name": "Лид", "type": "LookUpField", "value": { "taskId": 17414895, "taskText": "Новый лид: ООО \"1Форма\" (7704719651), код (Комплектующие Смазка, Комплектующие Балки, Изоляция Звукоизоляция)", "taskColor": "None", "taskIcon": "task-list-document-text" } }... ... } POST /api/tasks/create:
Создать задачу
Параметр
Формат
Описание
subcatId
integer
Идентификатор категории, в которой необходимо создать задачу
taskText
string
Текст задачи
orderedTime
string
Дата создания
priorityId
integer
Приоритет. Низкий приоритет — 0; обычный — 1; высокий — 3.
userToMakeOwnerId
integer
Идентификатор заказчика задачи
addToFavourites
boolean
Добавить задачу в избранное
extParams
array
Список ДП
subscriberIds
array
Список подписчиков задачи
notifyIds
array
Список пользователей, уведомлённых о создании задачи
parentTaskId
integer
Родительская задача
linkedTaskId
integer
Связанная задача
Пример:
{
"subcatId": 111,
"taskText": "CreateTask {{TodayDateFromPost}}",
"orderedTime": "{{TomorrowDateFromPost}}",
"performerIds":
\,{.f_CodeExample style="font-weight: bold;"}
"priorityId": 1,
"userToMakeOwnerId": 3,
"addToFavourites": false,
"extParams": {},
"subscriberIds":
\,{.f_CodeExample style="font-weight: bold;"}
"notifyIds":
\,{.f_CodeExample style="font-weight: bold;"}
"parentTaskId": 123,
"linkedTaskId": 456,
"guid": "JHGhjgjyiuej"
}
Добавить задачу в избранное
Параметр
Формат
Описание
taskId
integer
Номер задачи, которую необходимо добавить в избранное
color
string
Цвет текста задачи после добавления в избранное
favsFolderId
integer
Идентификатор папки избранного
Пример:
{
"taskId": {{taskPost}},
"color": "\#FF3333",
"favsFolderId": null
}
Удалить список задач
Параметр
Формат
Описание
taskIDs
array
Список номеров задач, которые необходимо удалить
initiatorUserId
integer
Пользователь от имени которого выполнится удаление
Пример:
{ "taskIDs": \ { 111, 112, 113 }, "initiatorUserId": 123 {.f_CodeExample style="font-weight: bold;"} } POST /api/tasks/{taskId}/set-priority:
Изменить приоритет задачи
Параметр
Формат
Описание
TaskId
integer
Номер задачи, в которой необходимо изменить приоритет
priority
string
Низкий приоритет — Low; обычный — Normal; высокий — High.
Пример:
{
"priority": "Low"
}
Заблокировать срок исполнения
Параметр
Формат
Описание
taskId
integer
Номер задачи
POST /api/tasks/{taskId}/unlock-due-date:
Разблокировать срок исполнения
Параметр
Формат
Описание
taskId
integer
Номер задачи
POST /api/tasks/{taskId}/change-duedate:
Изменить срок задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
newDate
string
Новый срок
reason
string
Причина смены срока
addToQuickReply
boolean
Добавить в быстрый ответ
initiatorUserId
integer
Идентификатор пользователя-инициатора
Пример:
{
"newDate": "{{TomorrowDateFromPost}}",
"reason": "TEST",
"аddToQuickReply": true
}
Добавить и/или удалить подписчиков в задачу
Параметр
Формат
Описание
taskId
integer
Номер задачи
addUsers
array
Идентификаторы пользователей, которые нужно добавить подписчиками в задачу
removeUsers
array
Идентификаторы пользователей, которых нужно удалить из подписчиков задачи
addGroups
array
Идентификаторы групп, пользователей которых нужно добавить подписчиками в задачу
removeGroups
array
Идентификаторы групп, пользователей из которых нужно удалить из подписчиков задачи
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
Пример:
{ "taskId": 123, "addUsers": \ 111, 112 \,{.f_CodeExample style="font-weight: bold;"} "initiatorUserId": 456 } POST /api/tasks/{taskId}/remove-all-subscribers:
Удалить всех подписчиков
Параметр
Формат
Описание
taskId
integer
Номер задачи
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
POST /api/tasks/{taskId}/change-performers:
Сменить исполнителей задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
add
array
Идентификаторы пользователей, которых нужно добавить исполнителями задачи
remove
array
Идентификаторы пользователей, которых нужно удалить из исполнителей задачи
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
Пример:
{ "taskId": 123, "add": \ 111, 112 \,{.f_CodeExample style="font-weight: bold;"} "initiatorUserId": 456 } POST /api/tasks/{taskId}/responsible-performer/{userId}:
Назначить исполнителя отвественным
Параметр
Формат
Описание
taskId
integer
Номер задачи
userId
integer
Идентификаторы пользователя, которого нужно назначить ответственным исполнителем
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
Пример:
{
"taskId": 123,
"userId": 111,
"initiatorUserId": 456
}
Закрепить всем задачу как чат
Параметр
Формат
Описание
taskId
integer
Номер задачи
POST /api/tasks/{taskId}/new-doc/{docType}:
Добавить новый документ в задачу
Параметр
Формат
Описание
taskId
integer
Номер задачи
docType
string
Тип нового документа
POST /api/tasks/{taskId}/responsible-performer/{userId}:
Добавить подзадачу для задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
subtaskId
integer
Идентификаторы категории подзадачи
needCopySubscribers
boolean
Копировать подписчиков из родительской задачи
needCopyFiles
boolean
Копировать вложения из родительской задачи
deletePreviousParent
boolean
Удалить предыдущую родительскую задачу
Пример:
{
"subtaskId": {{taskPost2Copy}},
"needCopySubscribers": true,
"needCopyFiles": true,
"deletePreviousParent": true
}
Связать задачу с задачей
Параметр
Формат
Описание
taskId
integer
Номер задачи
subtaskId
integer
Идентификаторы категории
needCopySubscribers
boolean
Копировать подписчиков из родительской задачи
needCopyFiles
boolean
Копировать вложения из родительской задачи
isSilent
boolean
Тихий комментарий
linkType
string
Возможные варианты: "None", "StartToStart", "StartToFinish", "FinishToStart", "FinishToFinish"
Пример:
{
"subtaskId": 123,
"needCopySubscribers": true,
"needCopyFiles": true,
"isSilent": true,
"linkType": "None"
}
Смена исполнителя задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
newOwnerId
integer
Идентификатор нового исполнителя
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
Пример:
{
"taskId": 123,
"newOwnerId": 112
}
Изменить статус задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
newStateId
integer
Идентификатор нового статуса
initiatorUserId
integer
Идентификатор пользователя-инициатора действия
Пример:
{
"taskId": 123,
"newStateId": 2,
"initiatorUserId": 112
}
Получить шаблон для редактирования задачи
Параметр
Формат
Описание
subcatId
integer
Идентификатор подкатегории
parentTaskId
integer
Идентификатор родительской задачи
taskId
integer
Идентификатор задачи
action
string
Действие с задачей. Возможные варианты: \'NewTask\', \'CopyTask\', \'MoveTask\', \'NewLinkTask\', \'NewSubtask\'\
Пример:
{ "isChat": true, "subcatDescription": "string", "subcatMobileTemplate": "string", "epSourceTaskId": 0, "pinToChat": true, "canPerform": true, "extParams": \ {} \, "template": { "description": "string", "subcatId": 0, "subcatName": "string", "content": {}, "guid": "string", "standardMTFTemplate": true, "standardNTFTemplate": true, "templateContext": "Cell", "complexContextName": "string", "modifiedUserID": 0, "modifiedUser": "string", "oldContent": {}, "currentLanguageId": 0, "id": 0, "name": "string", "typeId": "string", "modified": "2023-04-05T12:38:25.277Z", "created": "2023-04-05T12:38:25.277Z" },
"mainParams":
{
"type": "TaskId",
"value": {},
"isRequired": true,
"canEdit": true,
"placeholder": "string",
"settings": {
"singleChoice": true,
"allowDeleteSelf": true,
"allowGroups": true
},
"name": "string"
}
}
Изменение запросом системных и дополнительных параметров задачи
Параметр
Формат
Описание
updateParamsDtoJson
string
Список параметров в формате JSON
Пример body:
{ "taskIds": \ 1178846 \, "extParams": [ { "id": 5999, "value": { "add": \ 28813 } }, { "id": 6017, "value": "text" }, { "id": 5992, "value": \ 1246532 }, { "id": 6006, "value": "inbox\@1forma.ru" }, { "id": 6007, "value": "да" }, { "id": 6009, "value": "2022-10-20T14:00:00" }, { "id": 6010, "value": "2,0" }, { "id": 5998, "value": \ 596695, 596694, 596696 },
{
"id": 10023,
"value": "1 форма"
}
Получить доступные смарт-кнопки.
Параметр
Формат
Описание
tasksIds
integer
Задачи для совершения действия.
initiatorUserId
integer
Пользователь, от имени которого совершается действие. Если не указан - действие совершается от имени сессионного пользователя.
Пример:
{
[ "data":
{
"id": "string",
"description": "string",
"disabled": true,
"otherActions": true,
"forceComment": true,
"startTimeChangeConfirmText": "string",
"stepTooltip": "string",
"stateDescription": "string",
"doSetPerformer": true,
"closeTask": true,
"finishWork": true,
"newOrderedTimeRequired": true,
"overdueReasonRequired": true,
"requireChangeDateBefore": true,
"alertText": "string",
"confirmText": "string",
"signatures":
{
"id": 0,
"description": "string",
"reason": "string"
}
\,{.f_CodeExample style="font-size: 0.82rem;"}
"orderId": 0,
"stepOrderedTime": "2024-01-18T13:24:10.373Z"
}
\,]{.f_CodeExample style="font-size: 0.82rem;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-size: 0.82rem;"}
}
Получение полной истории изменения значения ДП "Файл" в задаче
Параметр
Формат
Описание
taskId
integer
Идентификатор задачи
extParamId
integer
Идентификатор ДП "Файл"
Пример:
{
"data":
{
"id": 123,
"name": "File",
"user": {
"userId": 45,
"displayName": "File"
},
"uploadDate": "2024-01-23T10:24:33.379Z",
"size": 100,
"isDeleted": true,
"versionId": 1,
"extParamLinkId": 123
}
\,{.f_CodeExample style="font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Пакетное копирование задач
Параметр
Формат
Описание
tasksIds
array
Задачи для совершения действия
initiatorUserId
integer
Пользователь, от имени которого совершается действие. Если не указан - действие совершается от имени сессионного пользователя
subcatId
integer
Целева категория
taskName
string
Название для новых задач
orderedTime
string
Срок выполнения для новых задач
noOrderedTime
boolean
Не задавать срок выполнения для новых задач
linkToCopiedTask
boolean
Связать новые задачи с исходными задачами
assignAsSubtaskForCopiedTask
boolean
Назначить новые задачи подзадачами исходных задач
extParams
array
ДП. В массиве передаются параметры: id (идентификатор ДП) и value (значение ДП)
Пример:
{ "tasksIds": \ 12345 \,{.f_CodeExample style="font-weight: bold;"} "subcatId": 222, "taskName": "Текст задачи", "orderedTime": "2024-03-15T19:06:00.000Z", "noOrderedTime": false, "linkToCopiedTask": true, "assignAsSubtaskForCopiedTask": false,
[ "extParams":
{
"id": 5992,
"value": "1421600"
},
{
"id": 6001,
"value": "{\\"Users\\":{\\"Deleted\\":[\,\\"Added\\":\5144,28477\,\\"Selected\\":\5144,28477\},\\"Groups\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\},\\"OrgUnits\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\}}"]{.f_CodeExample style="font-weight: bold;"}
},
{
"id": 6002,
"value": "{\\"Users\\":{\\"Deleted\\":[\,\\"Added\\":\\,\\"Selected\\":\\},\\"Groups\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\},\\"OrgUnits\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\}}"]{.f_CodeExample style="font-weight: bold;"}
},
{
"id": 6003,
"value": "{\\"Users\\":{\\"Deleted\\":[\,\\"Added\\":\29531\,\\"Selected\\":\29531\},\\"Groups\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\},\\"OrgUnits\\":{\\"Deleted\\":\\,\\"Added\\":\\,\\"Selected\\":\\}}"]{.f_CodeExample style="font-weight: bold;"}
},
{
"id": 6004,
"value": "Loren"
},
{
"id": 6011,
"value": "111111"
},
{
"id": 6018,
"value": "null"
},
{
"id": 6022,
"value": "{\\"file\\":{\\"id\\":\\"0bfcd13f-90ae-4860-a723-8da6f4e8cf70\\"},\\"name\\":\\"test.json\\",\\"fileName\\":\\"test.json\\",\\"size\\":52848,\\"fileSize\\":52848,\\"mime\\":\\"application/json\\",\\"fileMime\\":\\"application/json\\",\\"guid\\":\\"3543b828-7ad5-4d00-9f33-d5a020d6a4f2\\"}"
},
{
"id": 12545,
"value": "{\\"textValue\\":null,\\"addressId\\":null}"
},
{
"id": 5996,
"value": "тест"
},
{
"id": 6017,
"value": "test14"
}
]{.f_CodeExample style="font-weight: bold;"}
}
GET /app/v1.2/api/ep/tableSettings/{tableId}/subcat/{subcatId}/{taskId}:
Получить настройки ДП Таблица: общие настройки и список столбцов
Параметр
Формат
Описание
tableId
integer
Идентификатор таблицы
subcatId
integer
Идентификатор категории
taskId
integer
Номер задачи
Пример результата:
{
"tableSettings": {
"multiselectColumnId": null,
"useRowIdAsKeyColumn": false,
"uploadWhenFileAttach": false,
"numberOfParallelDownloads": 0,
"numberOfIterationsForDownloadOneFile": 1,
"timeToWaitForDownloadOneFile": 0,
"timeToWaitForReloadFile": 0,
"webServerKey": "",
"importEnabled": false,
"exportEnabled": false,
"autosaveEnabled": true,
"id": 69860,
"scrollingHeight": 0,
"rowsPerPage": 0,
"canRemoveRows": false
},
"tableColumnsSettings":
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Required",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17641,
"name": "Степень родства",
"orderId": 1,
"columnType": "Text",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "2fc0095a-acb9-ec11-a447-00505682abf5",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
},
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Required",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17651,
"name": "ФИО",
"orderId": 2,
"columnType": "Text",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "c10ba166-acb9-ec11-a447-00505682abf5",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
},
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Default",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17661,
"name": "Дата рождения",
"orderId": 3,
"columnType": "DateOnly",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "f1d6367e-acb9-ec11-a447-00505682abf5",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
},
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Default",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17671,
"name": "Место работы",
"orderId": 4,
"columnType": "Text",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "cf7ae287-acb9-ec11-a447-00505682abf5",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
},
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Default",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17731,
"name": "Место жительства",
"orderId": 5,
"columnType": "Text",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "2dc982b4-43ba-ec11-a446-005056822fbb",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
},
{
"extParamId": 69860,
"defaultValue": null,
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"setOfElementsAsDataSource": false,
"maxHeight": null,
"isMultifile": false,
"mask": "",
"lookupParamSettingId": null,
"smartExpressionId": null,
"referencedExtParamId": null,
"taskIdContextField": null,
"mode": "Required",
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"isVirtual": false,
"referencedExtParamNumberSettings": null,
"referencedExtParamLookupSettings": null,
"buttons": null,
"winAppLinks": false,
"defaultValueSmartExpressionId": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"referencedExtParamSelectUserSettings": null,
"selectUsersDefaultValue": null,
"defaultSort": 0,
"showEdsIcon": false,
"showInputPicIcon": false,
"id": 17741,
"name": "Телефон",
"orderId": 6,
"columnType": "Text",
"align": 1,
"columnWidth": 0,
"enableTotal": false,
"guid": "991438bb-43ba-ec11-a446-005056822fbb",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null
}
Получить указанный столбец таблицы.
Параметр
Формат
Описание
tableExtParamId
integer
Идентификатор таблицы
columnId
integer
Идентификатор столбца
Пример результата:
{
"id": 17651,
"extParamId": 69860,
"name": "ФИО",
"localizedNameId": null,
"orderID": 2,
"type": "Text",
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"mask": "",
"guid": "c10ba166-acb9-ec11-a447-00505682abf5",
"defaultValue": null,
"defaultSort": "None",
"setOfElementsAsDataSource": false,
"lookupParamSettingID": null,
"modeID": "Required",
"enableTotal": false,
"align": 1,
"smartExpressionId": null,
"columnWidth": 0,
"referencedExtParamId": null,
"taskIdContextField": null,
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"usedInMultiselect": false,
"multiselectWidth": null,
"multiselectOrder": null,
"multiselectLocked": "none",
"locked": "none",
"template": null,
"showImagePreview": false,
"isMultifile": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null,
"defaultValueSmartExpressionId": null,
"maxHeight": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"showEdsIcon": false,
"showInputPicIcon": false,
"extParam": null,
"extParamsVirtualColumnReferencedExtParamId": null,
"extParamTableCommonSettings": null,
"extParamTableOptions": null,
"extParamTableSettingsInSubcatColumnIds": null,
"extParamTableSettingsInSubcatGroupPermissionsColumnIds": null,
"extParamTableSettingsInSubcatStatePermissionsColumnIds": null,
"extParamTableValues": null,
"fileStorageFileToExtParamLinksTableColumnIDs": null,
"virtualColumnReferencedLookupColumn": null,
"virtualColumnReferencedLookupColumns": null,
"referencedExtParam": null,
"lookupParamSetting": null,
"actionButtons": null,
"msOfficeInteractionSetting": null,
"subcategorySpecialTemplateSettings": null,
"defaultValueSmartExpression": null,
"taskUniversalTemplateSettings": null,
"smartExpression": null,
"extParamSelectUsersValues": null,
"extParamSelectUsersValuesGroups": null,
"extParamSelectUsersValuesOrgUnits": null,
"localizedName": null
}
Обновление данных в ДП Таблица
Параметр
Формат
Описание
rows
array
Массив объектов
id
integer
Идентификатор строки
modifyType
string
Тип операции со строкой \'create\', \'update\', \'delete\'\
cols
array
Массив объектов с id колонки и значением
Пример:
{
"rows": [
{
"id": 0,
"modifyType": "create",
"cols":
{
"id": 0,
"value": "string",
"dataSourceItemId": "string"
}
}
Добавить указанный столбец таблицы
Параметр
Формат
Описание
tableExtParamId
integer
Идентификатор таблицы
columnSetting
array
Настройки столбца
Пример columnSetting:
{
"id": 123,
"extParamId": 4567,
"name": "Текст",
"localizedNameId": null,
"orderID": 1,
"type": "Text",
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"mask": "",
"guid": "HTJHJJKWHKWUYWKJD",
"defaultValue": null,
"defaultSort": null,
"setOfElementsAsDataSource": false,
"lookupParamSettingID": null,
"modeID": "Default",
"enableTotal": false,
"align": 1,
"smartExpressionId": null,
"columnWidth": 0,
"referencedExtParamId": null,
"taskIdContextField": null,
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"usedInMultiselect": false,
"multiselectWidth": null,
"multiselectOrder": null,
"multiselectLocked": "none",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null,
"defaultValueSmartExpressionId": null,
"maxHeight": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"extParam": null,
"extParamsVirtualColumnReferencedExtParamId": null,
"extParamTableCommonSettings": null,
"extParamTableOptions": null,
"extParamTableSettingsInSubcatColumnIds": null,
"extParamTableSettingsInSubcatGroupPermissionsColumnIds": null,
"extParamTableSettingsInSubcatStatePermissionsColumnIds": null,
"extParamTableValues": null,
"fileStorageFileToExtParamLinksTableColumnIDs": null,
"virtualColumnReferencedLookupColumn": null,
"virtualColumnReferencedLookupColumns": null,
"referencedExtParam": null,
"lookupParamSetting": null,
"actionButtons": null,
"msOfficeInteractionSetting": null,
"subcategorySpecialTemplateSettings": null,
"defaultValueSmartExpression": null,
"taskUniversalTemplateSettings": null,
"smartExpression": null,
"extParamSelectUsersValues": null,
"extParamSelectUsersValuesGroups": null,
"extParamSelectUsersValuesOrgUnits": null,
"localizedName": null
}
Редактировать указанный столбец таблицы
Параметр
Формат
Описание
tableExtParamId
integer
Идентификатор таблицы
columnId
integer
Идентификатор столбца
columnSetting
array
Настройки столбца
Пример columnSetting:
{
"id": 123,
"extParamId": 4567,
"name": "Текст",
"localizedNameId": null,
"orderID": 1,
"type": "Text",
"dataSource": null,
"dataValueField": null,
"dataTextField": null,
"mask": "",
"guid": "HTJHJJKWHKWUYWKJD",
"defaultValue": null,
"defaultSort": null,
"setOfElementsAsDataSource": false,
"lookupParamSettingID": null,
"modeID": "Default",
"enableTotal": false,
"align": 1,
"smartExpressionId": null,
"columnWidth": 0,
"referencedExtParamId": null,
"taskIdContextField": null,
"msOfficeInteractionSettingId": null,
"createSystemFileVersionsOnSignatureSign": false,
"virtualColumnReferencedLookupColumnId": null,
"virtualColumnReferencedExtParamId": null,
"usedInMultiselect": false,
"multiselectWidth": null,
"multiselectOrder": null,
"multiselectLocked": "none",
"locked": "none",
"template": null,
"showImagePreview": false,
"imagePreviewWidth": null,
"imagePreviewHeight": null,
"defaultValueSmartExpressionId": null,
"maxHeight": null,
"importEnabled": false,
"exportEnabled": false,
"allowScanning": false,
"extParam": null,
"extParamsVirtualColumnReferencedExtParamId": null,
"extParamTableCommonSettings": null,
"extParamTableOptions": null,
"extParamTableSettingsInSubcatColumnIds": null,
"extParamTableSettingsInSubcatGroupPermissionsColumnIds": null,
"extParamTableSettingsInSubcatStatePermissionsColumnIds": null,
"extParamTableValues": null,
"fileStorageFileToExtParamLinksTableColumnIDs": null,
"virtualColumnReferencedLookupColumn": null,
"virtualColumnReferencedLookupColumns": null,
"referencedExtParam": null,
"lookupParamSetting": null,
"actionButtons": null,
"msOfficeInteractionSetting": null,
"subcategorySpecialTemplateSettings": null,
"defaultValueSmartExpression": null,
"taskUniversalTemplateSettings": null,
"smartExpression": null,
"extParamSelectUsersValues": null,
"extParamSelectUsersValuesGroups": null,
"extParamSelectUsersValuesOrgUnits": null,
"localizedName": null
}
Редактировать указанный столбец таблицы
Параметр
Формат
Описание
tableExtParamId
integer
Идентификатор таблицы
columnId
integer
Идентификатор столбца
Избранное
GET /api/history/tasks:
Удалить папку из избранного
Параметр
Формат
Описание
folderId
integer
Идентификатор папки
POST /api/favorite/addLink:
Добавить ссылку в Избранное
Параметр
Формат
Описание
link
string
Ссылка
name
string
Название
isJsFunction
boolean
JS функция
customImagePath
string
Путь к изображению
customImageClass
string
Название класса изображения
type
string
Тип ссылки. Варианты значений: \'None\', \'Subcategory\', \'Category\', \'Task\', \'SearchReport\', \'NewTaskInSubcat\', \'Report\', \'User\', \'Comment\', \'MailFolder\', \'SummaryCategory\', \'SearchMailFolder\', \'PortalGrid\', \'PublicLink\', \'SmartSearch\'\
linkedObjectId
integer
Идентификатор связанного объекта
folderId
integer
Идентификатор папки избранного
[Пример](../
{
"link": "https:/www.google.com/",
"name": "Google",
"isJsFunction": true,
"customImagePath": "string",
"customImageClass": "string",
"type": "None",
"linkedObjectId": 0,
"folderId": null
}
Добавить папку в Избранное
Параметр
Формат
Описание
name
string
Название папки
parentId
integer
Идентификатор родительской папки
Пример:
{
"name": "Documents",
"parentId": null
}
Переместить ссылку в папку
Параметр
Формат
Описание
linkId
integer
Идентификатор ссылки
folderId
integer
Идентификатор папки
groupId
integer
Идентификатор группы
[Пример](
{
"linkId": 123,
"folderId": 345,
"groupId": null
}
Поделиться ссылкой
Параметр
Формат
Описание
linkId
integer
Идентификатор ссылки
userIds
array
Список пользователей-получателей ссылки
[Пример](
{ "linkId": 123, "userIds": / 111, 112 / } POST /api/favorite/renameLink:
Переименовать ссылку
Параметр
Формат
Описание
linkId
integer
Идентификатор ссылки
newName
string
Новое наименование ссылки
[Пример](
{
"linkId": 123,
"newName": "Rename"
}
Переименовать папку
Параметр
Формат
Описание
linkId
integer
Идентификатор папки
newName
string
Новое наименование папки
[Пример](
{
"linkId": 123,
"newName": "Rename"
}
Обновить иконку
Параметр
Формат
Описание
linkId
integer
Идентификатор ссылки
customImageClass
string
Класс изображения
[Пример](
{
"linkId": {{linkPost}},
"customImageClass": "fa-home"
}
Удалить ссылку из избранного
Параметр
Формат
Описание
linkId
integer
Идентификатор ссылки
Индикаторы
GET /api/tickers/all:
Получить все тикеры [Пример результата]( {
"data": {
"systemTickers": {
"assistantUsers": [\,]
"availableTypes": \
"Unread",
"Milestones",
"Overdue",
"Signatures",
"Question",
"FavoriteComments"
\,
"unreadCommentsCount": 0,
"questionsCount": 0,
"overDueTasksCount": 0,
"signaturesCount": 0,
"directorSignaturesCount": 0,
"overdueSigns": 0,
"missedCalls": 0,
"milestones": 0,
"myQuestionsCount": 0,
"unreadChatCommentsCount": 0,
"badge": 0,
"allTasksUserOwns": 31,
"allTasksUserPerforms": 14,
"favoriteComments": 1,
"allNewTasksUserPerforms": 2,
"allNewTasksUserOwns": 25
},
"customTickers":
{
"iconSet": "material",
"iconFromSet": "vh-calendar-24",
"iconCss": "smallTickerBubble",
"url": "/spa/calendar-events",
"type": "custom",
"clickAction": "openLink",
"color": "blue",
"value": 0,
"gridUrl": "/spa/calendar-events",
"name": "Календарные события",
"id": 113
},
{
"iconSet": "material",
"iconFromSet": "alarm",
"iconCss": "",
"url": "/NewCustomGrid.aspx?TickerID=333",
"type": "custom",
"clickAction": "openTasksList",
"color": "red",
"value": 0,
"gridUrl": "/NewCustomGrid.aspx?TickerID=333",
"name": "Просроченные задачи без исполнителя",
"id": 83
}
\,
"customAssistantTickers": [\,]
"systemTickersNames": {
"unreadCommentsCount": "Непрочитанные комментарии",
"questionsCount": "Вопросы мне",
"overDueTasksCount": "Просроченные задачи",
"signaturesCount": "Ожидающие вашей подписи",
"directorSignaturesCount": "Ожидающие вашей подписи",
"overdueSigns": "Просроченные задачи",
"missedCalls": "Пропущенные вызовы",
"myQuestionsCount": "Мои вопросы",
"unreadChatCommentsCount": "Чаты",
"badge": "Непрочитанные комментарии",
"favoriteComments": "Избранные комментарии"
}
}
} GET /api/tickers/custom:
Получить кастомные тикеры [Пример результата](
{
"data":
{
"iconSet": "material",
"iconFromSet": "vh-calendar-24",
"iconCss": "smallTickerBubble",
"url": "/spa/calendar-events",
"type": "custom",
"clickAction": "openLink",
"color": "blue",
"value": 0,
"gridUrl": "/spa/calendar-events",
"name": "Календарные события",
"id": 113
},
{
"iconSet": "material",
"iconFromSet": "alarm",
"iconCss": "",
"url": "/NewCustomGrid.aspx?TickerID=333",
"type": "custom",
"clickAction": "openTasksList",
"color": "red",
"value": 0,
"gridUrl": "/NewCustomGrid.aspx?TickerID=333",
"name": "Просроченные задачи без исполнителя",
"id": 83
}
}
Получить системные тикеры [Пример результата](
{
"data": {
"assistantUsers": []{.f_CodeExample style="font-size: 0.82rem;"}
"availableTypes":
"Unread",
"Milestones",
"Overdue",
"Signatures",
"Question",
"FavoriteComments"
\,{.f_CodeExample style="font-size: 0.82rem;"}
"unreadCommentsCount": 0,
"questionsCount": 0,
"overDueTasksCount": 0,
"signaturesCount": 0,
"directorSignaturesCount": 0,
"overdueSigns": 0,
"missedCalls": 0,
"milestones": 0,
"myQuestionsCount": 0,
"unreadChatCommentsCount": 0,
"badge": 0,
"allTasksUserOwns": 31,
"allTasksUserPerforms": 14,
"favoriteComments": 1,
"allNewTasksUserPerforms": 2,
"allNewTasksUserOwns": 25
}
}
Получить имена системных тикеров [Пример результата](
{
"data": {
"unreadCommentsCount": "Непрочитанные комментарии",
"questionsCount": "Вопросы мне",
"overDueTasksCount": "Просроченные задачи",
"signaturesCount": "Ожидающие вашей подписи",
"directorSignaturesCount": "Ожидающие вашей подписи",
"overdueSigns": "Просроченные задачи",
"missedCalls": "Пропущенные вызовы",
"myQuestionsCount": "Мои вопросы",
"unreadChatCommentsCount": "Чаты",
"badge": "Непрочитанные комментарии",
"favoriteComments": "Избранные комментарии"
}
}
GET /api/history/tasks:
Получить сотрудников (группа + сотрудники)
Параметр
Формат
Описание
count
integer
Количество
Пример результата:
{
"data": [
{
"id": 1234,
"isTask": true,
"key": "1232003",
"name": "Задача",
"avatarSubscribers": [
{
"userId": 111,
"userName": "Герасимов Сергей",
"isLastOnlineFromMobileApp": false,
"lastOnlineTime": "2023-01-17T12:57:32",
"lastPersonalInfoUpdateTime": "2022-11-17T14:38:00",
"gender": 0,
"birthDate": "28.11.1991",
"birthDaySoon": false,
"hasAvatar": true,
"userAvatarFile": {
"fileId": 2222,
"latestVersionId": 1
},
"absences": []
"isEmployee": true,
"isFired": false,
"displayName": "Герасимов Сергей"
},
{
"userId": 112,
"userName": "Иванов Иван",
"isLastOnlineFromMobileApp": false,
"lastOnlineTime": "2023-01-17T12:54:02",
"lastPersonalInfoUpdateTime": "2023-01-13T14:55:00",
"gender": 0,
"birthDate": "10.10.1999",
"birthDaySoon": false,
"hasAvatar": true,
"userAvatarFile": {
"fileId": 1111,
"latestVersionId": 1
},
"absences": []
"isEmployee": true,
"isFired": false,
"displayName": "Иванов Иван"
}
Получить сотрудников (группа + сотрудники)
Параметр
Формат
Описание
groupsCount
integer
Количество групп
coworkersCount
integer
Количество сотрудников
Пример результата:
{ "data": [ { "lastOnlineTime": null, "id": 111, "isGroup": true, "name": "1Форма", "isOnline": null, "userStatus": null, "hasAvatar": false, "userAvatarFile": null, "gender": 0, "isEmployee": false }, { "lastOnlineTime": "2023-01-17T13:52:38", "id": 123, "isGroup": false, "name": "Иванов Иван", "isOnline": false, "userStatus": { "isOnline": false, "state": \ "None" \, "absences": [\,] "id": 8323 }, "hasAvatar": true, "userAvatarFile": { "fileId": 3333, "latestVersionId": 1 }, "gender": 1, "isEmployee": true } ] } Календарь
GET /api/calendar/userConfig:
Получить используемого провайдера по умолчанию
Параметр
Формат
Описание
providerName
string
Наименование провайдера
enableRecurrence
boolean
Включить повторения
Пример:
{
"providerName": "ews",
"enableRecurrence": true
}
Получить карточку встречи
Параметр
Формат
Описание
key
string
Ключ встречи
GET /api/calendar/attachment:
Получить вложения встречи
Параметр
Формат
Описание
key
string
Ключ вложения. Его можно получить через get/update/create.
GET /api/calendar/all-attachments:
Получить все вложения встречи
Параметр
Формат
Описание
key
string
Ключ встречи
api/calendar/all-attachments?key={meetingKey}
GET /api/calendar/permissions:
Проверка прав на почтовый ящик
Параметр
Формат
Описание
toUserId
integer
Идентификатор пользователя, права которого необходимо проверить.
/api/calendar/permissions?toUserId=123
fromUserId
integer
Идентификатор пользователя, права к которому необходимо проверить. Позволяет осуществить проверку прав от одного пользователя к другому:
/api/calendar/permissions?toUserId=123&fromUserId=456
noCache
boolean
Сброс кеша. Значение по умолчанию: false
Пример результата:
{ "provider": "VirtualAppointmentsCalendarProvider", "canCreateItems": true, "readItems": "FullDetails", "deleteItems": "All", "editItems": "All", "areNeighbours": false, "usedServiceOfUserId": 0 }, { "provider": "VirtualTaskRecurrenceCalendarProvider", "canCreateItems": true, "readItems": "FullDetails", "deleteItems": "All", "editItems": "All", "areNeighbours": false, "usedServiceOfUserId": 0 }, { "provider": "1forma", "canCreateItems": true, "readItems": "FullDetails", "deleteItems": "All", "editItems": "All", "areNeighbours": false, "usedServiceOfUserId": 0 }, { "provider": "ews", "canCreateItems": true, "readItems": "FullDetails", "deleteItems": "All", "editItems": "All", "areNeighbours": false, "usedServiceOfUserId": 1234 } GET /api/calendar/resolveName:
Поиск пользователей по email
Параметр
Формат
Описание
name
string
Email-адрес
contextMeetingKey
string
Ключ встречи
Пример результата:
{ "id": 0, "key": null, "displayName": "User", "routingType": null, "type": "Unknown", "userId": 123, "email": "test\@1forma.ru", "hasAvatar": false, "userAvatarFile": null }, { "id": 0, "key": null, "displayName": "User2", "routingType": null, "type": "Unknown", "userId": 456, "email": "testcompany\@1forma.company", "hasAvatar": false, "userAvatarFile": null }, { "id": 0, "key": null, "displayName": "User3", "routingType": null, "type": "Unknown", "userId": 789, "email": "testtt\@1forma.ru", "hasAvatar": false, "userAvatarFile": null }, { "id": 0, "key": null, "displayName": "User4", "routingType": null, "type": "Unknown", "userId": 101, "email": "test1\@1forma.ru", "hasAvatar": false, "userAvatarFile": null }, { "id": 0, "key": null, "displayName": "User5", "routingType": null, "type": "User", "userId": 102, "email": "test2\@1forma.ru", "hasAvatar": false, "userAvatarFile": null } GET /api/calendar/events:
Список всех календарных событий за период
Параметр
Формат
Описание
from
datetime
Начало периода
to
datetime
Окончание периода
calendarOwnerUserId
integer
Календарь пользователя. По умолчанию сессионного.
taskId
integer
Идентификатор задачи
Пример результата:
[ { "title": "Совещание", "start": "2023-07-11T10:00:00", "end": "2023-07-11T11:00:00", "location": "https://video.1forma.ru/task1234567", "backgroundColor": "#DEEAFF", "textColor": "#192880", "appointmentType": "Occurrence", "taskId": 0, "actions": [\,] "state": "MeetingReceivedCanceled", "isCanceled": true, "isAllDayEvent": false, "freeBusyState": "Free", "myResponseType": "NoResponseReceived", "hasAttachments": false, "organizer": { "id": 0, "key": null, "displayName": "Иванов Иван", "routingType": null, "type": "User", "userId": 1234, "email": "ivanov\@1forma.ru", "hasAvatar": true, "userAvatarFile": { "fileId": 1512829, "latestVersionId": 1 } }, "onlyStatus": false, "key": "ews:28694:AAMkAGU0MzkyODFmLWI3NWEtNGU5Yy05MTA1LTgyZjM1M2E1NTNjMQ4FRAAgI24GhxSBAAEYAAAAAaOz/po0gmEKkV+oA4c0YtwcA0ibBHMew80+8fdyU2U93NgAAAABDQAA40ibBHMew80+8fdyU293NgABXXCcTwAAEA==", "attachments": null, "masterKey": null }, { "title": "Вебинар", "start": "2023-07-11T11:00:00", "end": "2023-07-11T13:00:00", "location": "https://events.webinar.ru/123/4567", "backgroundColor": "#DEEAFF", "textColor": "#192880", "appointmentType": "Single", "taskId": 0, "actions": \ "Accept", "AcceptTentatively", "AcceptTentativeWithNewTime", "Decline", "DeclineWithNewTime" \, "state": "MeetingReceived", "isCanceled": false, "isAllDayEvent": false, "freeBusyState": "Busy", "myResponseType": "Accept", "hasAttachments": false, "organizer": { "id": 0, "key": null, "displayName": "Иванов Иван", "routingType": null, "type": "User", "userId": 1234, "email": "ivanov\@1forma.ru", "hasAvatar": true, "userAvatarFile": { "fileId": 1359502, "latestVersionId": 1 } }, "onlyStatus": false, "key": "ews:28694:AAMkAGU0MzkyODFmLWI3NWEtNGU5Yy05MTA1LgyZjM1M2E1NTNjMQBGAAAAAABo7P+mjSCYQqRX6gDhzRi3BwDSJsEcx7DzT7x93JTZT3c2AAAAAAENAADSJsEcx7D32T7x93JTZT3c2AAGKKfj7AAA=", "attachments": null, } ] Значения freeBusyState:
-
"Free" ="Свободен"
-
"Busy" = "Занят"
-
"Tentative" = "Под вопросом"
-
"OOF" = "Нет на месте"
-
"WorkingElsewhere"= "Работаю в другом месте"
GET /app/v1.2/api/calendar/nonworkingdays:
Возвращает все нерабочие дни производственного календаря (как праздничные, так и выходные) в диапазоне "от" и "до" включительно.
Параметр
Формат
Описание
from
datetime
Дата начала
to
datetime
Дата окончания
Пример результата:
"2022-12-03T00:00:00", "2022-12-04T00:00:00", "2022-12-10T00:00:00", "2022-12-11T00:00:00", "2022-12-17T00:00:00", "2022-12-18T00:00:00", "2022-12-24T00:00:00", "2022-12-25T00:00:00" GET /app/v1.2/api/calendar/menuItems:
Возвращает элементы всплывающего меню календаря
Параметр
Формат
Описание
subcatId
integer
Идентификатор календарной категории
take
integer
Сколько занимают категории календаря (по умолчанию 20)
Пример результата:
{
"data":
{
"value": "CalendarApp",
"name": "Создать"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Возвращает все нерабочие дни из производственного календаря (праздничные, выходные и предпраздничные дни) в диапазоне "от" и "до" включительно
Параметр
Формат
Описание
year
integer
Год
from
datetime
Дата начала
to
datetime
Дата окончания
Пример результата:
[\
{
{
"date": "2022-12-24T00:00:00",
"isHoliday": true,
"isPreHoliday": false
},
{
"date": "2022-12-25T00:00:00",
"isHoliday": true,
"isPreHoliday": false
},
{
"date": "2022-12-31T00:00:00",
"isHoliday": true,
"isPreHoliday": false
}
Прочтение сообщения о календарном событии
Параметр
Формат
Описание
key
string
Ключ встречи
action
string
Действие
args
object
"args": {
"additionalProp1": [
"string"
\,]
"additionalProp2": [
"string"
\,]
"additionalProp3": [
"string"
]
}
Пример:
{
"key": "ews:28694:AAMkAGU0MzkyODFmLWI3NWEtNGU5Yy05MTA1LTgyZjM1M2E1NTNjMQBGAAAAAABo7P+mjSCYQqRX6gDhzRi3BwDSJsEcx7DzT7x93JTZT3c2AAAAAAENAADSJsEcx7DzT7x93JTZT3c2AAGKKfj7AAA=",
"action": "Read"
}
Прочтение списка календарных событий в диапазоне
Параметр
Формат
Описание
dateFrom
string
Начало диапазона
dateTo
string
Окончание диапазона
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
meetingKey
string
Ключ встречи
Пример:
{
"dateFrom": "2023-07-11T09:42:35.502Z",
"dateTo": "2023-07-12T09:42:35.502Z",
"limit": 10,
"offset": 50,
"meetingKey": "ews:28694:AAMkAGU0MzkyODFmLWI3NWEtNGU5Yy05MTA1LTgyZjM1M2E1NTNjMQBGAAAAAABo7P+mjSCYQqRX6gDhzRi3BwDSJsEcx7DzT7x93JTZT3c2AAAAAAENAADSJsEcx7DzT7x93JTZT3c2AAGKKfj7AAA="
}
Количество непрочитанных сообщений о календарных событиях в диапазоне
Параметр
Формат
Описание
dateFrom
string
Начало диапазона
dateTo
string
Окончание диапазона
Пример:
{
"dateFrom": "2023-07-11T09:42:35.502Z",
"dateTo": "2023-07-12T09:42:35.502Z"
}
Создать встречу
Параметр
Формат
Описание
calendarOwnerUserId
integer
Календарь пользователя. По умолчанию сессионного.
Пример:
{ "subject":"тест", ["requiredAttendees":\ {"userId":5144}, {"userId":28813} \,]{.f_CodeExample style="font-weight: bold;"} "start":"2023-07-12T13:00:00", "end":"2023-07-12T13:10:00", "isAllDayEvent":false, "location":"https://video.1forma.ru/user1234", "freeBusyState":"Busy", "linkedTaskId":1257513, "textBody":" ВКС Первая Форма\n Присоединиться на компьютере или в мобильном приложении \n \n Щелкните здесь, чтобы присоединиться к собранию\n",
"attachments":
{"fileId": 1547931},
{"preUploadedFileId": 123456678890}
\,{.f_CodeExample style="font-weight: bold;"}
"recurrence":null
}
-
"Free" ="Свободен"
-
"Busy" = "Занят"
-
"Tentative" = "Под вопросом"
-
"OOF" = "Нет на месте"
-
"WorkingElsewhere"= "Работаю в другом месте"
POST /app/v1.2/api/calendar/isWorkingDateTime:
Раздельная проверка времени на вхождение в допустимый рабочий инервал и проверка даты на пересечение с выходными и праздниками
Параметр
Формат
Описание
timestamp
number
Интервал времени
performerId
integer
Идентификатор исполнителя
Пример:
{
"timestamp": 1630679041,
"performerId": 3
}
Отображение календарных событий
Параметр
Формат
Описание
dateFrom
string
Начало периода
dateTo
string
Конец периода
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
meetingKey
string
Ключ встречи
Пример:
{
"dateFrom": "2023-01-18T10:19:40.996Z",
"dateTo": "2023-01-18T10:19:40.996Z",
"limit": 10,
"offset": 50,
"meetingKey": "12345"
}
Удаление встречи
Параметр
Формат
Описание
key
string
Ключ встречи
PUT /api/calendar/update:
Внесение изменений в существующую встречу в календаре
Параметр
Формат
Описание
key
string
Ключ встречи
Пример:
{
"key":"ews:5144:AAMkADM59Dc1MGRjLTViZWMtNDVkZi05ZjdjLTdjODg4MzRiNTIyOABGAAAAAAC2IrZhhFuPRKYaA8UOavIZBwB9fKp/5kTvSJDnSteOIxH3AAAA9it5AACAbR3/sEnaRKf+xlXp0g14AAX4ZrcRAAA=",
"subject":"test",
"requiredAttendees":[]
"start":"2023-07-11T10:45:00",
"end":"2023-07-11T11:15:00",
"isAllDayEvent":false,
"location":"test",
"freeBusyState":"Tentative",
"linkedTaskId":null,
"textBody":null
}
-
"Free" ="Свободен"
-
"Busy" = "Занят"
-
"Tentative" = "Под вопросом"
-
"OOF" = "Нет на месте"
-
"WorkingElsewhere"= "Работаю в другом месте"
Комментарии
GET /app/v1.2/api/mobile/comments/{commentId}/likedby:
Получение списка пользователей которые лайкнули комментарий
Параметр
Формат
Описание
commentId
integer
Идентификатор комментария
GET /api/comments/recipients/{commentId}/{searchInArchiveIfNotFound}:
Получить получателей комментария
Параметр
Формат
Описание
commentId
integer
Идентификатор комментария
searchInArchiveIfNotFound
boolean
Искать в архиве, если получатели не найдены
POST /api/comments/lenta:
Отображать ленту комментариев
Параметр
Формат
Описание
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
subcatId
integer
Уникальный идентификатор категории
catId
integer
lentaCommTypes
array
Массив объектов
commentId
integer
Идентификаор комментария, от которого отображается лента
limitBefore
integer?
Количество комментариев до указанного комментария в параметре commentId. При одновременной передаче limitBefore и limitAfter без commentId включается anchor mode — сервер использует lastSeenCommentId пользователя как якорь. Если сохранённой позиции нет, загружаются последние комментарии.
limitAfter
integer?
Количество комментариев после указанного комментария в параметре commentId. См. описание limitBefore для anchor mode.
Пример:
{
"limit": 10,
"offset": 1,
"subcatId": 111,
"catId": null,
"lentaCommTypes": \"0"\, {.f_CodeExample style="font-weight: bold;"}
"commentId": 123,
"limitBefore": 0,
"limitAfter": 10
}
Поля ответа (anchor mode):
Поле
Формат
Описание
lastSeenCommentId
integer?
ID последнего просмотренного комментария пользователя. null — пользователь открывает ленту впервые или запрос не в anchor mode.
hasMoreBefore
boolean?
Есть ли комментарии выше якоря (не вошедшие в ответ). null если запрос не в anchor mode.
hasMoreAfter
boolean?
Есть ли комментарии ниже якоря (не вошедшие в ответ). null если запрос не в anchor mode.
POST /api/comments/add:
Оставить комментарий
Параметр
Формат
Описание
taskId
integer
Номер задачи, в которой необходимо отправить комментарий
commentText
string
Текст комментария
recipientIds
array
Список идентификаторов (ID) получателей комментария
copyRecipientsIds
array
Список идентификаторов (ID) получателей копии комментария
inReplyToCommentId
integer
Идентификатор комментария, в ответ на который написан текущий комментарий
fileIds
array
Массив объектов
isChat
boolean
Комментарий в чате
needsAnswer
boolean
Пометить комментарий как вопрос
guid
string
Comments.GUID
Пример:
{ "taskId": 1234, "commentText": "comment", "recipientIds": \ 1, 2 \,{.f_CodeExample style="font-weight: bold;"}
"copyRecipientsIds":
\,{.f_CodeExample style="font-weight: bold;"}
"inReplyToCommentId": null,
"fileIds":
\,{.f_CodeExample style="font-weight: bold;"}
"isChat": false,
"needsAnswer": false,
"guid": "KJHiuhiuehjIU"
}
Удалить комментарии
Параметр
Формат
Описание
ids
array
Массив идентификаторов комментариев, которые нужно удалить
Пример:
{ "ids": \ 111, 112, 113 {.f_CodeExample style="font-weight: bold;"} } POST /api/comments/previous-task-comments:
Отображать предыдущие комментарии в задаче
Параметр
Формат
Описание
taskId
integer
Номер задачи
maxCommentId
integer
Идентификатор комментария
maxCommentsToReturn
integer
Количество предыдущих комментариев для отображения
Пример:
{
"taskId": 123,
"maxCommentId": 111,
"maxCommentsToReturn": 10
}
Отметить комментарий как вопрос
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор комментария, которой необходимо отметить как вопрос
POST /api/comments/mark-comments-as-read:
Отметить комментарий как прочитанный
Параметр
Формат
Описание
commentIds
integer
Уникальный идентификатор комментария, которой необходимо отметить прочитанным
POST /api/comments/mark-as-not-my-question/{commentId}:
Отметить комментарий как "Вопрос не мне"
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор комментария, которой необходимо отметить как "Вопрос не мне"
POST /api/comments/mark-as-answered:
Отметить вопрос как отвеченный
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор пользователя
commentText
string
Текст ответа на вопрос
isForAll
boolean
Вопрос отвечен для всех
Пример:
{
"commentId": 123,
"commentText": "Ответ на вопрос",
"isForAll": true
}
PUT /api/comments/last-seen:
Сохранить позицию скролла пользователя в ленте комментариев. При повторном открытии задачи лента будет загружена с сохранённой позиции.
Параметр
Формат
Описание
taskId
integer
Номер задачи (обязательный)
lastSeenCommentId
integer
ID последнего просмотренного комментария (обязательный)
threadCommentId
integer?
ID комментария-треда. null = основная лента.
Ответ: 204 No Content. 403 — нет доступа к задаче.
Пример:
{
"taskId": 1234,
"lastSeenCommentId": 5678,
"threadCommentId": null
}
Обновление текста комментария
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор пользователя
text
string
Текст комментария
Пример:
{
"text": "Комментарий изменен + {{TodayDateFromPost}} "
}
Поставить лайк комментарию
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор комментария
likesCount
integer
Количество лайков
isLikedByCurrentUser
boolean
Лайкт от текущего пользователя
canBeLiked
boolean
Комментарий, которому можно поставить лайк
Пример:
{
"likesCount": 2,
"isLikedByCurrentUser": false,
"canBeLiked": true
}
Убрать лайк с комментария
Параметр
Формат
Описание
commentId
integer
Уникальный идентификатор комментария
likesCount
integer
Количество лайков
isLikedByCurrentUser
boolean
Лайкт от текущего пользователя
canBeLiked
boolean
Комментарий, которому можно поставить лайк
Пример:
{
"likesCount": 2,
"isLikedByCurrentUser": false,
"canBeLiked": true
}
Добавить комментарий в избранное
Параметр
Формат
Описание
commentId
integer
Идентификатор комментария, который необходимо добавить в избранное
color
string
Цвет текста комментария после добавления в избранное
Пример:
{
"commentId": 123,
"color": "\#FF3333"
}
GET /api/languages:
Получить все используемые языки [Пример результата](../
{
"data":
{
"alias": "fr",
"isDefault": false,
"culture": "fr-FR",
"code": "fr",
"isInternational": false,
"display": "Français(fr-FR)",
"name": "Français",
"id": 5
},
{
"alias": "cn",
"isDefault": false,
"culture": "zh-CN",
"code": "zh-Hans",
"isInternational": false,
"display": "简体中文(zh-CN)",
"name": "简体中文",
"id": 3
},
{
"alias": "es",
"isDefault": false,
"culture": "es-ES",
"code": "es",
"isInternational": false,
"display": "Español(es-ES)",
"name": "Español",
"id": 7
},
{
"alias": "rus",
"isDefault": true,
"culture": "ru-RU",
"code": "ru",
"isInternational": false,
"display": "Русский(ru-RU)",
"name": "Русский",
"id": 1
},
{
"alias": "ja",
"isDefault": false,
"culture": "ja-JP",
"code": "ja",
"isInternational": false,
"display": "日本語(ja-JP)",
"name": "日本語",
"id": 10
},
{
"alias": "da",
"isDefault": false,
"culture": "da-DA",
"code": "da",
"isInternational": false,
"display": "Dansk(da-DA)",
"name": "Dansk",
"id": 8
},
{
"alias": "de",
"isDefault": false,
"culture": "de-DE",
"code": "de",
"isInternational": false,
"display": "Deutsch(de-DE)",
"name": "Deutsch",
"id": 4
},
{
"alias": "eng",
"isDefault": false,
"culture": "en-US",
"code": "en",
"isInternational": true,
"display": "English(en-US)",
"name": "English",
"id": 2
},
{
"alias": "it",
"isDefault": false,
"culture": "it-IT",
"code": "it",
"isInternational": false,
"display": "Italiana(it-IT)",
"name": "Italiana",
"id": 6
},
{
"alias": "pl",
"isDefault": false,
"culture": "pl-PL",
"code": "pl",
"isInternational": false,
"display": "Polski(pl-PL)",
"name": "Polski",
"id": 9
}
}
Получить язык пользователя [Пример результата](../
{
"data": {
"alias": "string",
"isDefault": true,
"culture": "string",
"code": "string",
"isInternational": true,
"display": "string",
"name": "string",
"id": 0
},
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-weight: bold;"}
}
Получить системный язык по умолчанию [Пример результата](
{
"data": {
"alias": "rus",
"isDefault": true,
"culture": "ru-RU",
"code": "ru",
"isInternational": false,
"display": "Русский(ru-RU)",
"name": "Русский",
"id": 1
}
}
GET /app/v1.2/api/mobile/tasks/{taskId}:
Отзыв подписей у задачи
Параметр
Формат
Описание
taskId
integer
Уникальный идентификатор задачи
includeToolbar
boolean
Отдавать панель инструментов задачи
POST /app/v1.2/api/mobile/tasks/{taskId}/pin:
Закрепить задачу как чат
Параметр
Формат
Описание
taskId
integer
Уникальный идентификатор задачи, которую нужно закрепить
POST /app/v1.2/api/mobile/tasks/{taskId}/unpin:
Открепить задачу от чата
Параметр
Формат
Описание
taskId
integer
Уникальный идентификатор задачи, которую нужно открепить
POST /api/mobile-app/settings/update:
Обновить настройки мобильных приложений пользователя
Параметр
Формат
Описание
notifInCallOnWorkPhone
boolean
Уведомлять о вызове
notifyUntilOpen
boolean
Уведомлять до открытия
showUserAvatars
boolean
Показывать аватары пользователей
twoStepsAuthenticatorNotificationType
string
Тип двухфакторной аутентификации. Примеры значений: \'None\', \'Sms\', \'Push\'\
Пример:
{
"notifInCallOnWorkPhone": false,
"notifyUntilOpen": false,
"showUserAvatars": false,
"twoStepsAuthenticatorNotificationType": "None"
}
Отправлять ссылку на мобильное приложение на почту
Параметр
Формат
Описание
string
Идентификатор комментария, который необходимо добавить в избранное
appType
string
Тип приложеня. Примеры значений: \'OneFChat\', \'AndroidOneFChat\', \'OneFChat_AppStore_1f\', \'DirectorsClub\', \'DirectorsClub_AppStore_1f\', \'iOSMobile_1\', \'iOSMobile_1_AppStore\', \'iOSMobile_2\', \'iOSMobile_2_AppStore\', \'iOSMobile_3\', \'iOSMobile_3_AppStore\', \'iOSMobile_4\', \'iOSMobile_4_AppStore\', \'iOSMobile_5\', \'iOSMobile_5_AppStore\', \'AnyClient\'\
Пример:
{
"email": "mail@1forma.ru",
"appType": "OneFChat"
}
GET /api/org-structure/card:
Получить краткую карточку элемента орг.структуры
Параметр
Формат
Описание
orgUnitId
integer
Уникальный идентификатор элемента орг.структуры
Подписи
GET /api/signatures/dynamic/{signatureId}/acceptors:
Возвращает акцептантов запроса динамической подписи
Параметр
Формат
Описание
signatureId
integer
Динамическая подпись
taskId
integer
Задача, в которой запрашивается подпись
GET /api/signatures/dynamic:
Возвращает динамические подписи с настройками
Параметр
Формат
Описание
taskId
integer
Задача, в которой допустим запрос подписи (опционально). Если не указан — вернет все настроенные в системе динамические подписи
acceptantId
integer
Допустимый акцептант подписи (опционально). Если указан — возвращаются только подписи, где пользователь может быть акцептантом
GET /api/storage/signatures/{id}:
Получает совокупность подписей по идентификатору
Параметр
Формат
Описание
id
integer
Идентификатор подписи
GET /api/storage/signatures:
Получает совокупность подписей по диапазону
Параметр
Формат
Описание
skip
integer
Пропустить в порядке хранения
take
integer
Принять в порядок хранения
POST /api/signatures/dynamic/request:
Запросить динамическую подпись
Параметр
Формат
Описание
taskId
integer
Номер задачи
due
string
Срок подписи
reason
string
Причина запроса подписи
acceptors
array
Список акцептантов
signatureId
integer
Идентификатор подписи
separateForEach
boolean
Отдельная подпись для каждого акцептанта
Пример:
{ "taskId": 123, "reason": "Согласование", "acceptors": { "users": \ 111, 112 {.f_CodeExample style="font-weight: bold;"} }, "signatureId": 444, "separateForEach": false } Пользователи
GET /api/user/{userId}/info:
Получить информацию о пользователе
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
Пример результата:
{
"data": {
"userId": 28988,
"displayName": "Иванов Иван",
"firstName": "Иван",
"lastName": "Иванов",
"cellPhone": "",
"homePhone": "",
"phone2": "",
"phone3": "",
"phone": "",
"email": "mail@gmail.com",
"externalEmail": "",
"externalDisplayName": "",
"country": "",
"city": "",
"room": "Фармстандарт",
"appointment": "Пользователи",
"lastOnlineTime": "2023-01-09T10:03:48",
"isLastOnlineFromMobileApp": false,
"lastPersonalInfoUpdateTime": "2022-10-13T13:12:00",
"absenceMessage": "",
"pinCode": null,
"pinCodeIssued": null,
"linkedId": null,
"sip": "",
"absences": []{.f_CodeExample style="font-weight: bold;"}
"userGroups": {
"2085": "Все пользователи",
"2123": "Сотрудники"
},
"description": null,
"hasAvatar": true,
"userAvatarFile": {
"fileId": 1473393,
"latestVersionId": 1
},
"gender": 1,
"userInfoExtParams": []{.f_CodeExample style="font-weight: bold;"}
"counters":
{
"userId": 28988,
"counterType": "UsersLikes",
"type": "UsersLikes",
"exists": true,
"active": true,
"changed": false,
"counter": 0
}
\,{.f_CodeExample style="font-weight: bold;"}
"voipTokens": []{.f_CodeExample style="font-weight: bold;"}
"isEmployee": false,
"isFired": false
}
}
Получить пользовательские настройки
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
Пример результата:
{
"data": {
"startPage": "spa.aspx/portal/1",
"showUserTooltip": false,
"enableDesktopNotifications": false,
"fileOnClickActionMode": "Default",
"navigationPanelLogo": "",
"createButtonVisible": "NoSet",
"calendarVisible": "NoSet",
"lentaVisible": "NoSet",
"staffVisible": "NoSet",
"searchVisible": "Invisible",
"chooseLanguageVisible": "NoSet",
"categoryVisible": "NoSet",
"personalVisible": "NoSet",
"favoriteVisible": "NoSet",
"reportVisible": "NoSet",
"mailVisible": "NoSet",
"personalMenuTimeSheet": "NoSet",
"personalMenuKanban": "NoSet",
"personalMenuOthers": "NoSet",
"userProfileCustomer": "NoSet",
"userProfilePerformer": "NoSet",
"userProfileActivity": "NoSet",
"userProfileCalendar": "NoSet",
"userProfileJournal": "NoSet",
"userProfileLaborCost": "NoSet",
"userProfileReport": "NoSet",
"userProfileAgenda": "NoSet",
"showCreatePersonalTaskButton": "NoSet",
"ownTaskSubcatId": 43350,
"openConversationOnCommentClick": true,
"removeFromSubscribersAfterDecision": false,
"sendCommentByEnter": false,
"notAutoSetCommentAsQuestion": false,
"orgChartVisible": "Invisible",
"useNewTaskCard": true,
"forceChangePassword": false,
"accessToOtherUserProfiles": false,
"jitsiServicePersonalRoomVisible": "Invisible",
"jitsiServicePersonalRoom": "user28988",
"autoReadCommentsInTask": true,
"userUISettings": {
"useNewTaskCard": true,
"viewTaskState": "Bottom",
"viewCommentsInTaskState": "Bottom",
"showUserCardOnMouseOver": false,
"filterCommentsDependByLentaSettings": false,
"showDateInHumanFormat": true,
"showIAndMeInsteadOfDisplayName": false,
"userNameMode": "SurNameName",
"translateCommentsInFeed": false,
"useStartUpPage": true,
"showStartupPageOnLogoClick": true,
"userStartPageType": "Default",
"colorTheme": "Light",
"fontSize": "Middle",
"panelsFontSize": "Middle",
"navigationPanelPosition": "Above",
"navigationPanelColor": null,
"showCalendarInNavigationPanel": true,
"allowUnreadCommentsDesktopNotification": false,
"allowOverdueTasksDesktopNotification": false,
"allowSignaturesDesktopNotification": true,
"allowQuestionsDesktopNotification": false,
"allowChatsDesktopNotification": true,
"apenCharts": false,
"contextModalWindows": false,
"popupChats": false,
"showNavigationAlways": true
},
"useNewGridSubcats": {
"subcatIds": []{.f_CodeExample style="font-weight: bold;"}
"allSubcats": true,
"myTasks": true,
"tickers": true
},
"useNewExtParamsAndTaskUsedSubcats": []{.f_CodeExample style="font-weight: bold;"}
"click2call": true,
"groupChatSubCatId": 978,
"canEditUserProfile": true,
"canImpersonate": true,
"canSetAbsence": true,
"notSetNeedAnswerCheckboxAutomatically": false,
"removeFinishedTasksFromFavourites": false,
"id": 28988
}
}
Получить информацию о пользователе
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
includeUserEvents
boolean
Получить события пользователя
inlcudeCoWorkers
boolean
Получить информацию о коллегах
Пример результата:
{
"data": {
"processAssistantOf": []{.f_CodeExample style="font-weight: bold;"}
"phone3Additional": "",
"phoneAdditional": "",
"homePhoneAdditional": "",
"fax": "",
"skype": "",
"twitter": "",
"liveJournal": "",
"zoom": "",
"telegram": "tg@1forma.ru",
"computerName": "",
"phone2Additional": "",
"icq": "",
"telegramId": "",
"timeZone": "Russian Standard Time (UTC+03:00) Moscow, St. Petersburg",
"currentTime": "13.01.2023 13:56",
"coWorkers": null,
"userEvents": null,
"birthDate": null,
"hideBirthYear": false,
"userText": "",
"englishDisplayName": "",
"orgUnits":
{
"name": "Отдел",
"id": 3010
},
{
"name": "Пользователи",
"id": 3077
}
\,{.f_CodeExample style="font-weight: bold;"}
[ "userOrgUnits":
{
"isPrimary": true,
"units":
{
"name": "Отдел",
"id": 3010
},
{
"name": "Пользователи",
"id": 3077
}
\{.f_CodeExample style="font-weight: bold;"}
}
\,]{.f_CodeExample style="font-weight: bold;"}
"workStartDate": null,
"directors": []{.f_CodeExample style="font-weight: bold;"}
"hasSubordinates": false,
"helpers": []{.f_CodeExample style="font-weight: bold;"}
"helperOf": []{.f_CodeExample style="font-weight: bold;"}
"processAssistants": []{.f_CodeExample style="font-weight: bold;"}
"assistants": []{.f_CodeExample style="font-weight: bold;"}
"assistantOf": []{.f_CodeExample style="font-weight: bold;"}
"canEditUserProfile": true,
"canImpersonate": true,
"canSetAbsence": true,
"jitsiServicePersonalRoom": "user28988",
"userId": 28988,
"displayName": "Иванов Иван",
"firstName": "Иван",
"lastName": "Иванов",
"cellPhone": "",
"homePhone": "",
"phone2": "",
"phone3": "",
"phone": "",
"email": "mail@gmail.com",
"externalEmail": "",
"externalDisplayName": "",
"country": "",
"city": "",
"room": "Фармстандарт",
"appointment": "Пользователи",
"lastOnlineTime": "2023-01-09T10:03:48",
"isLastOnlineFromMobileApp": false,
"lastPersonalInfoUpdateTime": "2022-10-13T13:12:00",
"absenceMessage": "",
"pinCode": null,
"pinCodeIssued": null,
"linkedId": null,
"sip": "",
"absences": []{.f_CodeExample style="font-weight: bold;"}
"userGroups": {
"2085": "Все пользователи",
"2123": "Сотрудники"
},
"description": null,
"hasAvatar": true,
"userAvatarFile": {
"fileId": 1473393,
"latestVersionId": 1
},
"gender": 1,
"userInfoExtParams": []{.f_CodeExample style="font-weight: bold;"}
"counters":
{
"userId": 28988,
"counterType": "UsersLikes",
"type": "UsersLikes",
"exists": true,
"active": true,
"changed": false,
"counter": 0
}
\,{.f_CodeExample style="font-weight: bold;"}
"voipTokens": []{.f_CodeExample style="font-weight: bold;"}
"isEmployee": false,
"isFired": false
}
}
Получить заместителей пользователя
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
GET /api/user/assistants/restrictions/{assistanceId}:
Получает ограничения для заместителя
Параметр
Формат
Описание
assistanceId
integer
Уникальный идентификатор заместителя
POST /api/user/change-password:
Смена пароля пользователя
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
newPassword
string
Новый пароль
Пример:
{
"userId": 123,
"newPassword": "HHgduieuh290fj\*"
}
Восстановление пароля пользователя
Параметр
Формат
Описание
mode
string
Режим. Пример значений: \'Email\', \'SMS\'.
restoreByLogin
boolean
Восстановление по логину
cellPhone
string
Номер телефона
string
Почта
login
string
Логин
captchaKey
string
Публичный ключ
captchaSecret
string
Приватный ключ
language
string
Язык локализации
Пример:
{
"mode": "Email",
"restoreByLogin": true,
"cellPhone": "8374829",
"email": "ttt@mail.ru",
"login": "login123",
"captchaKey": "12342d2-52f3-45ec-8aj7-41c99c053d63",
"captchaSecret": "iVBORw0KGgoAAAANSUhEUgAAAZAAAABkCAIAAAAnqfEgAAAAAXNSR0IArs4c6QAAAARnQU1BAA\...",
"language": "russian"
}
Смена языка пользователя
Параметр
Формат
Описание
language
string
Язык
allowNotification
boolean
Разрешить уведомления
Пример:
{
"language": "russian",
"allowNotification": true
}
Справочник "Сотрудники"
Параметр
Формат
Описание
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
search
string
Данные для поиска
Пример:
{
"limit": 50,
"offset": 0
}
Изменить пароль пользователя
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
newPassword
string
Новый пароль
Пример:
{
"userId": 123,
"newPassword": "Pass12322"
}
Обновление оповещений пользователя по конкретной категории
Параметр
Формат
Описание
subcategoryId
integer
Идентификатор категории
column
string
Колонка
ℹ️ Название колонки берется из SubcategoriesSettings в методе GET /api/admin/user/notifications/{userId} — TaskCreated, RejectedTask, AutoSubscribe, ChangeDueDate, AutoPerform
check
boolean
Проверка
Пример:
{
"subcategoryId": 123,
"column": "TaskCreated",
"check": true
}
Поиск контактов
Параметр
Формат
Описание
query
string
Запрос поиска
searchCount
integer
Количество найденных контактов
Пример:
{
"query": "Иванов",
"searchCount": 1
}
Сохранить настройки пользовательского интерфейса
Параметр
Формат
Описание
useNewTaskCard
boolean
Использовать новую карточку задачи
viewTaskState
string
Просмотр задачи: снизу, справа, в новом окне, во всплывающем окне.\ Пример значений: \'Bottom\', \'Right\', \'NewWindow\', \'PopupWindow\'\,
viewCommentsInTaskState
string
Просмотр комментариев в задаче: снизу, справа.
Пример значений: \'Bottom\', \'Right\'\
showUserCardOnMouseOver
boolean
Показывать карточку пользователя при наведении курсора мыши
filterCommentsDependByLentaSettings
boolean
Фильтры комментариев зависят от настроек Ленты
showDateInHumanFormat
boolean
Отображать дату с форматированием
showIAndMeInsteadOfDisplayName
boolean
Показывать "Я" вместо отображаемого имени
userNameMode
string
Формат имен. Пример значений: \'SurName\', \'SurNameName\', \'SurNameNP\', \'Nick\', \'Appointment\', \'ExternalName\', \'Name\', \'AppointmentName\', \'NickName\', \'NameParentName\', \'AppointmentSurName\', \'AppointmentNick\', \'SurnameNameParentName\', \'NameSurname\', \'EnglishNick\', \'MaidennameNameParentname\', \'MaidennameName\'\
translateCommentsInFeed
boolean
Переводить комментарии в ленте
useStartUpPage
boolean
Отображать стартовую страницу при открытии системы
showStartupPageOnLogoClick
boolean
Показывать стартовую страницу по клику на логотип
userStartPageType
string
Тип стартовой страницы пользователя: по умолчанию, лента, повестка дня. Пример значений: \'Default\', \'Lenta\', \'Agenda\'\
colorTheme
string
Цветовая тема: светлая, темная. Пример значений: \'Light\', \'Dark\'\
fontSize
string
Размер шрифта: маленький, средний, большой. Пример значений: \'Small\', \'Middle\', \'Big\'\
panelsFontSize
string
Размер шрифта панелей: маленький, средний, большой. Пример значений: \'Small\', \'Middle\', \'Big\'\
navigationPanelPosition
string
Панель навигации: слева, справа, сверху. Пример значений: \'Left\', \'Right\', \'Above\'\
navigationPanelColor
string
Цвет панели навигации
showCalendarInNavigationPanel
boolean
Показывать индикатор календаря в панели навигации
allowUnreadCommentsDesktopNotification
boolean
Разрешить уведомление о непрочитанных комментариях на рабочем столе
allowOverdueTasksDesktopNotification
boolean
Разрешить уведомление о просроченных задачах на рабочем столе
"allowSignaturesDesktopNotification": true,
boolean
Разрешить уведомление о подписях на рабочем столе
allowQuestionsDesktopNotification
boolean
Разрешить уведомление о вопросах на рабочем столе
allowChatsDesktopNotification
boolean
Разрешить уведомление о чатах на рабочем столе
apenCharts
boolean
apenCharts
contextModalWindows
boolean
Контекстные модальные окна
popupChats
boolen
Всплывающие чаты
showNavigationAlways
boolean
Всегда показывать навигацию
Пример:
{
"useNewTaskCard": true,
"viewTaskState": "Bottom",
"viewCommentsInTaskState": "Bottom",
"showUserCardOnMouseOver": true,
"filterCommentsDependByLentaSettings": true,
"showIAndMeInsteadOfDisplayName": true,
"userNameMode": "SurNameName",
"translateCommentsInFeed": true,
"useStartUpPage": true,
"showStartupPageOnLogoClick": true,
"userStartPageType": "Default",
"colorTheme": "Light",
"fontSize": "Small",
"panelsFontSize": "Small",
"navigationPanelPosition": "Left",
"showCalendarInNavigationPanel": true,
"allowUnreadCommentsDesktopNotification": true,
"allowOverdueTasksDesktopNotification": true,
"allowSignaturesDesktopNotification": true,
"allowQuestionsDesktopNotification": true,
"allowChatsDesktopNotification": true,
"apenCharts": true,
"contextModalWindows": true,
"popupChats": true
}
Получить краткую информацию о пользователях
Параметр
Формат
Описание
userIds
array
Список идентификаторов (ID) пользователей
POST /api/users/status:
Получить статус пользователей
Параметр
Формат
Описание
userIds
array
Список идентификаторов (ID) пользователей
POST /api/user/process-assistants/add:
Добавить заместителя процесса
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
processAssistantUserId
integer
Уникальный идентификатор заместителя
processName
string
Название процесса
Пример:
[\
{
"userId": 123,
"processAssistantUserId": 345,
"processName": "Process"
}
Удалить заместителя процесса
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
processAssistantUserId
integer
Уникальный идентификатор заместителя
processName
string
Название процесса
Пример:
[\
{
"userId": 123,
"processAssistantUserId": 345,
"processName": "Process"
}
Добавить заместителя
Параметр
Формат
Описание
userId
integer
Уникальный идентификатор пользователя
assistantUserId
integer
Уникальный идентификатор заместителя
from
string
Начало периода
to
string
Конец периода
Пример:
[\
{
"userId": 111,
"assistantUserId": 112,
"from": "2023-01-20T10:10:55.836Z",
"to": "2023-01-20T10:10:55.836Z"
}
Добавить ограничения для заместителя
Параметр
Формат
Описание
subcatIds
array
Список идентификаторов категорий
categoryRestrictionMode
integer
Ограничения в категориях. Пример значений: \'NoMode\', \'Inclusion\', \'Exclusion\'\
assistanceId
string
Уникальный идентификатор заместителя
Пример:
[\ { "subcatIds": \ 123 \,{.f_CodeExample style="font-weight: bold;"} "categoryRestrictionMode": "NoMode", "assistanceId": 112 } ]{.f_CodeExample style="font-weight: bold;"} POST /api/user/assistants/restrictions/remove/{assistanceId}:
Снять ограничения для заместителя
Параметр
Формат
Описание
assistanceId
string
Уникальный идентификатор заместителя
Портал
POST /api/portals/block/data/{blockId}:
Получает указанные данные блока
Параметр
Формат
Описание
blockId
integer
Уникальный идентификатор портального блока
Block parameters
inline_model_12
Параметры блока
ℹ️ Параметры следует передавать в виде строки запроса
Права групп на группы, категории, разделы
GET /api/admin/permissions/{entityType}/{entityId}/actions:
Отдает справочник всех возможных действий (прав) на сущность (группу, категорию, раздел)
Параметр
Формат
Описание
entityType*
string
Тип сущности. Возможные значения:
-
Subcategory
-
Category
-
Group
entityId*
integer
Id сущности
GET /api/admin/permissions/{entityType}/{entityId}:
Отдает все выданные права всех групп на сущность (группу, категорию, раздел)
Параметр
Формат
Описание
entityType*
string
Тип сущности. Возможные значения:
-
Subcategory
-
Category
-
Group
entityId*
integer
Id сущности
POST /api/admin/permissions/{entityType}/{entityId}/set:
Изменяет права (включает/выключает) групп на сущность (группу, категорию, раздел)
Параметр
Формат
Описание
entityType*
string
Тип сущности. Возможные значения:
-
Subcategory
-
Category
-
Group
entityId*
integer
Id сущности
Срок задачи
GET /app/v1.2/api/tasks/{taskId}/duadate:
Получить срок выполнения задачи
Параметр
Формат
Описание
dueDate
string
Срок задачи
id
integer
Уникальный идентификатор
Пример:
{
"dueDate": "2022-12-29T14:46:00",
"id": 0
}
Получить изменение истории сроков выполнения задачи
Параметр
Формат
Описание
modificationDate
string
Дата изменения срока
oldDate
string
Старый срок
newDate
string
Новый срок
reason
string
Причина смены срока задачи
userId
integer
Уникальный идентификатор пользователя, сменившего срок
userDisplayName
string
Имя пользователя, сменившего срок
stateId
integer
Уникальный идентификатор статуса задачи
stateDescription
string
Название статуса задачи
taskId
integer
Уникальный идентификатор задачи
id
integer
Уникальный идентификатор
Пример:
[\
{
"modificationDate": "2022-12-21T14:25:40",
"oldDate": null,
"newDate": "2022-12-26T14:25:00",
"reason": null,
"userId": 3,
"userDisplayName": "Робот 1Ф",
"stateId": null,
"stateDescription": null,
"taskId": [1234567](https://ru.1forma.ru/spa/tasks/1234567),
"id": 1496859
}
Обновить срок выполнения задачи
Параметр
Формат
Описание
reason
string
Причина смены срока задачи
taskId
integer
Уникальный идентификатор задачи
silentMode
boolean
Отображения комментария о смене срока
dueDate
string
Новый срок задачи
id
integer
Уникальный идентификатор
Пример:
{
"reason": "string",
"taskId": 0,
"silentMode": true,
"dueDate": "2022-12-27T07:33:41.241Z",
"id": 0
}
POST /api/resource-facts:
Добавить фактические трудозатраты
Параметр
Формат
Описание
taskId
integer
Номер задачи
resourceId
integer
Идентификатор ресурса
performerUserId
integer
Идентификатор исполнителя
dates
array
Даты
amount
integer
Количество
comment
string
Комментарий
Пример:
{ "resourceData": [ { "taskId": 123, "resourceId": null, "performerUserId": 111, "dates": \ "2021-05-05T10:00:00.00Z" \, "amount": 30, "comment": null } ] } POST /api/resource-facts/approve:
Акцепт внесенных фактических трудозатрат
Параметр
Формат
Описание
taskId
integer
Номер задачи
resourceId
integer
Идентификатор ресурса
performerUserId
integer
Идентификатор исполнителя
performerTaskId
integer
Номер задачи ресурса
dates
array
Даты
resolutionId
integer
Идентификатор решения
approvedAmount
integer
approveFull
boolean
Пример:
{ "resourceData": [ { "taskId": 123, "resourceId": 333, "performerUserId": 111, "performerTaskId": null, "dates": \ "2022-05-05T10:00:00.00Z" \, "resolutionId": 1, "approvedAmount": 10, "approveFull": true } ] } POST /api/resource-facts/unapprove:
Отклонение внесенных фактических трудозатрат
Параметр
Формат
Описание
taskId
integer
Номер задачи
resourceId
integer
Идентификатор ресурса
performerUserId
integer
Идентификатор исполнителя
performerTaskId
integer
Номер задачи ресурса
dates
array
Даты
resolutionId
integer
Идентификатор решения
Пример:
{ "resourceData": [ { "taskId": {{taskIdRobot}}, "resourceId": {{DudTestResourceID}}, "performerUserId": {{robotId}}, "performerTaskId": null, "dates": \ "{{TodayDateFromPost}}" \, "resolutionId": 1 } ] } Файлы
GET /app/v1.2/api/filestorage/file/{fileId}/version:
Получение версии файла
Параметр
Формат
Описание
fileId
integer
Идентификатор файла, информацию о котором необходимо получить.
Пример результата:
{ "fileId": 123, "versionId": 1, "description": null, "uploadDate": "2011-03-04T15:09:04", "uploadUserId": 2726, "uploadUserName": "Тагунов Денис", "sizeInt": 34816, "size": 34816, "providerId": 4, "providerKey": "79", "isEncrypted": false, "isDecrypted": false } GET /app/v1.2/api/filestorage/file/{fileId}/info:
Информация о файле, включая права пользователей и действия с ним
Параметр
Формат
Описание
fileId
integer
Идентификатор файла, информацию о котором необходимо получить.
viewType
string
Опциональный параметр. Тип view у клиента, может быть Grid или Gallery. Влияет на названия/набор действий с элементами
Пример результата:
{
"translitName": "\*\*\* 04.03.2011 15-09.xls",
"latestVersionId": 1,
"fileProviderId": null,
"isInSharepointFileProvider": false,
"versionCount": 1,
"ext": "",
"mime": "application/octet-stream",
"size": 34816,
"uploadDate": "2011-03-04T15:09:04",
"uploadDateStr": "04.03.2011 15:09",
"ownerUserId": null,
"uploadUserId": 2726,
"isEncrypted": false,
"isReadOnly": false,
"downloadPath": null,
"folderPermissions": []
"links": []
"id": 123,
"clientId": "File:123",
"parentFolderId": null,
"parentFolder": null,
"parentFolderClientId": null,
"name": "\*\*\* 04.03.2011 15-09.xls",
"icon": "extension\_text",
"thumbnailFileId": null,
"typeName": "File",
"actions":
{
"name": "Download",
"icon": "file\_download",
"imageUrl": null,
"text": "Скачать",
"toolTip": null,
"clientFunction": "getFile",
"isAdditional": false,
"orderValue": 0,
"enabled": true,
"visibleIfReadOnly": true,
"type": "button",
"actionType": "Download"
},
{
"name": "Properties",
"icon": null,
"imageUrl": null,
"text": "Свойства",
"toolTip": null,
"clientFunction": "showEditFileForm",
"isAdditional": true,
"orderValue": 0,
"enabled": true,
"visibleIfReadOnly": false,
"type": "button",
"actionType": "ShowEditFileForm"
},
{
"name": "History",
"icon": "history",
"imageUrl": null,
"text": "История версий",
"toolTip": null,
"clientFunction": "viewHistory",
"isAdditional": false,
"orderValue": 0,
"enabled": true,
"visibleIfReadOnly": false,
"type": "button",
"actionType": "ViewHistory"
},
{
"name": "History",
"icon": "check\_box",
"imageUrl": null,
"text": "Подписи ЭЦП",
"toolTip": null,
"clientFunction": "viewEdsHistory",
"isAdditional": false,
"orderValue": 0,
"enabled": true,
"visibleIfReadOnly": false,
"type": "button",
"actionType": "ViewEdsHistory"
},
{
"name": "Delete",
"icon": "clear",
"imageUrl": null,
"text": "Удалить",
"toolTip": null,
"clientFunction": "deleteFile",
"isAdditional": true,
"orderValue": 0,
"enabled": true,
"visibleIfReadOnly": false,
"type": "button",
"actionType": "DeleteFile"
}
"allPermissions":
{
"id": -1,
"type": "User",
"displayName": "Я",
"userId": 28694,
"groupId": null,
"readOnly": true,
"permissions": {
"view": true,
"add": true,
"modify": true,
"delete": true,
"history": true,
"edsHistory": true,
"editInSharePoint": false,
"createTask": true
}
}
GET /app/v1.2/api/filestorage/file/{fileId}/neighbours¶
Возвращает все соседние файлы
Параметр
Формат
Описание
fileId
integer
Идентификатор файла, информацию о котором необходимо получить.
Пример результата:
{ "fileId": 12345, "versionId": null, "taskId": null } GET /api/files/thumbnails/{fileId}/{versionId}:
Отдает тумб файла-изображения
Параметр
Формат
Описание
fileId
integer
Идентификатор файла
versionId
integer
Версия файла
maxSize
integer
Самая широкая сторона. По умолчанию — 100
isSquare
boolean
Квадратная или ланшафтная
POST /api/files/import/exceltodb:
Импорт данных из excel-файла в таблицу БД
Параметр
Формат
Описание
fileId
integer
Идентификатор excel-файла, который необходимо импортировать.
tableName
string
Название таблицы БД, в которую будут импортированы данные из файла
ℹ️ Названия колонок в первой строке должны совпадать с названием колонок в таблице БД. Если колонка excel не найдена в таблице БД, то при импорте она будет пропущена
fileFormat
string
Формат файла. Если значение null — автоопределение. Пример значений: \'OpenXml\', \'Xls\', \'Xlsx\', \'Csv\'\
createDbTable
boolean
Создать таблицу, если её не существует
Пример:
{
"fileId": 1234,
"tableName": "file",
"fileFormat": "OpenXml",
"createDbTable": true
}
Загрузка файлов в ДП в формате base64
Параметр
Формат
Описание
initiatorUserId
integer
Уникальный идентификатор выполняющего действие пользователя
Пример результата:
writeComment - Писать комментарий или нет comment - Комментарий fileData - Информация о файле fileName - Имя файла
{
"comment": "comment",
"fileData": "MTIzNA==",
"fileName": "test.txt",
"writeComment": "False"
}
\@requestBody = \'{\' + \'"fileData": "\' + \@FileData + \'"\' + \',"fileName": "\' + \@FileName + \'"\' + \'}\';
Пример \@requestBody для загрузки файла в ДП:
\@requestBody = \'{\' + \'"fileData": "\' + \@FileData + \'"\' + \',"fileName": "\' + \@FileName + \'"\' + \'}\'; Пример загрузки файла в ДП через публикацию
POST /api/files/upload/{uploadType}:
Загрузка файлов в задачу, ДП (включая ДП Таблица), файловое хранилище (Диск) из многокомпонентной формы запроса данных
Параметр
Описание
uploadType
Тип загрузки, выпадающий список
initiatorUserId
Идентификатор пользователя-инициатора. Если он указан, то в ДП будет вложен файл от лица переданного в id пользователя.
uploadType*
Тип загрузки. Доступные варианты:
-
ToPreUploadedFiles
-
PreUploadedFilesToTask
-
PreUploadedFilesToEP
-
PreUploadedFilesToEPTable
-
PreUploadedFilesToMultiFile
-
PreUploadedFilesToEpTableMultiFile
-
PreUploadedFilesToFileStorageFolder
-
FileToTask — загрузка файла в задачу:
В заголовке метода в поле 1formaAuth передается токен аутентификации. В body передается исходный файл и объект: {"taskid": XXX, "extParamId": YYY} где: XXX — ID задачи, а YYY - ID ДП - FileToEP — загрузка файла в ДП:
В заголовке метода в поле 1formaAuth передается токен аутентификации. В body передается исходный файл и объект: {"taskid": XXX} где: XXX — ID задачи. - FileToEPTable
-
FileToMultiFile
-
FileToEpTableMultiFile
-
FileToFileStorageFolder
-
FileToEPTableLegacy
-
FileStorageToEP
Пример:
{
"data":
{
"fileName": "Name",
"fileId": 123,
"fileVersion": 1,
"preUploadFileId": 0,
"date": "2024-03-01T06:23:58.537Z",
"fileSize": 241,
"fileMime": "string"
}
\,{.f_CodeExample style="font-size: 0.82rem; font-weight: bold;"}
"errors":
{
"errorType": "TestPurposes",
"message": "string"
}
\{.f_CodeExample style="font-size: 0.82rem; font-weight: bold;"}
}
\@requestBody = \'{ "taskId":\' + cast(\@TaskID as varchar(100)) + \', "preUploadedFileId":\' + cast(\@preUploadFileId as varchar(200)) + \', "extParamId" : \' + cast(\@ExtParamID as varchar(100)) + \' }\'; Пример загрузки файла в ДП через публикацию
POST /api/task/files:
Получить файлы задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
extFilterList
array
Список ДП
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
onlyPinned
boolean
Только закрепленные
noPinned
boolean
Только незакрепленные
pinnedFirst
boolean
Закрепленные в первую очередь
type
string
Тип файлов. Пример значений: \'Video\', \'Audio\', \'Images\', \'Documents\'\
showDeleted
boolean
Отображать удаленные
Пример:
{
"taskId": 123,
"limit": 10,
"offset": 0
}
Удалить файл из задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
fileId
integer
Идентификатор файла
forced
boolean
Принудительно или нет
silent
boolean
Тихий комментарий
POST /api/task/files/pin/{taskId}/{fileId}:
Прикрепить файл к задаче
Параметр
Формат
Описание
taskId
integer
Номер задачи
fileId
integer
Идентификатор файла
POST /api/task/files/unpin/{taskId}/{fileId}:
Открепить файл от задачи
Параметр
Формат
Описание
taskId
integer
Номер задачи
fileId
integer
Идентификатор файла
Чаты
GET /api/chats:
Получить чаты пользователя
Параметр
Формат
Описание
limit
integer
Размер страницы
offset
integer
Количество пропускаемых элементов при генерации страницы
queryString
string
Строка запроса
POST /app/v1.2/api/chats/{chatId}/setNotificationMode/{notificationMode}:
Изменение режима уведомления чата
Параметр
Формат
Описание
chatId
integer
Идентификатор чата
notificationMode
string
Режимы уведомлений. Возможные значения:
-
Normal — обычный (по умолчанию): в веб-интерфейсе уведомления приходят, в мобильном приложении пуши приходят согласно настройке "Уведомления чатам";
-
Muted — без уведомлений: в веб-интерфейсе уведомления деактивированы, в мобильном приложении пуши не приходят;
-
Forced — форсированный: в веб-интерфейсе уведомления приходят, в мобильном приложении пуши приходят всегда кроме случая, когда в профиле пользователя настройка "Уведомления по чатам" установлена в значение "Когда оффлайн на ПК".
POST /api/chats:
Создать чат
Параметр
Формат
Описание
chatGuid
string
Guid чата
messageGuid
string
Guid сообщения
text
string
Текст сообщения
subscribers
array
Список участников чата
chatName
string
Имя чата
avatarFileId
integer
Идентификатор вкладываемого файла
Пример результата:
{ "chatGuid": "ABC123", "messageGuid": "abcd1234", "text": "Hello", "subscribers": \ 111, 112 \, "files": \
\, "chatName": "Chat", "avatarFileId": null } POST /api/chats/left/{taskId}:
Покинуть чат
Параметр
Формат
Описание
taskId
integer
Идентификатор чата
POST /api/chats/close/{taskId}:
Закрыть чат
Параметр
Формат
Описание
taskId
integer
Идентификатор чата