bitrix24-mcp-bridge 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -2988,7 +2988,7 @@ var require_compile = __commonJS({
2988
2988
  const schOrFunc = root.refs[ref];
2989
2989
  if (schOrFunc)
2990
2990
  return schOrFunc;
2991
- let _sch = resolve3.call(this, root, ref);
2991
+ let _sch = resolve4.call(this, root, ref);
2992
2992
  if (_sch === void 0) {
2993
2993
  const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
2994
2994
  const { schemaId } = this.opts;
@@ -3015,7 +3015,7 @@ var require_compile = __commonJS({
3015
3015
  function sameSchemaEnv(s1, s2) {
3016
3016
  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
3017
3017
  }
3018
- function resolve3(root, ref) {
3018
+ function resolve4(root, ref) {
3019
3019
  let sch;
3020
3020
  while (typeof (sch = this.refs[ref]) == "string")
3021
3021
  ref = sch;
@@ -3646,7 +3646,7 @@ var require_fast_uri = __commonJS({
3646
3646
  }
3647
3647
  return uri;
3648
3648
  }
3649
- function resolve3(baseURI, relativeURI, options) {
3649
+ function resolve4(baseURI, relativeURI, options) {
3650
3650
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3651
3651
  const resolved = resolveComponent(parse4(baseURI, schemelessOptions), parse4(relativeURI, schemelessOptions), schemelessOptions, true);
3652
3652
  schemelessOptions.skipEscape = true;
@@ -3904,7 +3904,7 @@ var require_fast_uri = __commonJS({
3904
3904
  var fastUri = {
3905
3905
  SCHEMES,
3906
3906
  normalize,
3907
- resolve: resolve3,
3907
+ resolve: resolve4,
3908
3908
  resolveComponent,
3909
3909
  equal,
3910
3910
  serialize,
@@ -22658,7 +22658,7 @@ var Protocol = class {
22658
22658
  return;
22659
22659
  }
22660
22660
  const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
22661
- await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
22661
+ await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
22662
22662
  options?.signal?.throwIfAborted();
22663
22663
  }
22664
22664
  } catch (error2) {
@@ -22675,7 +22675,7 @@ var Protocol = class {
22675
22675
  */
22676
22676
  request(request, resultSchema, options) {
22677
22677
  const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
22678
- return new Promise((resolve3, reject) => {
22678
+ return new Promise((resolve4, reject) => {
22679
22679
  const earlyReject = (error2) => {
22680
22680
  reject(error2);
22681
22681
  };
@@ -22753,7 +22753,7 @@ var Protocol = class {
22753
22753
  if (!parseResult.success) {
22754
22754
  reject(parseResult.error);
22755
22755
  } else {
22756
- resolve3(parseResult.data);
22756
+ resolve4(parseResult.data);
22757
22757
  }
22758
22758
  } catch (error2) {
22759
22759
  reject(error2);
@@ -23014,12 +23014,12 @@ var Protocol = class {
23014
23014
  }
23015
23015
  } catch {
23016
23016
  }
23017
- return new Promise((resolve3, reject) => {
23017
+ return new Promise((resolve4, reject) => {
23018
23018
  if (signal.aborted) {
23019
23019
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
23020
23020
  return;
23021
23021
  }
23022
- const timeoutId = setTimeout(resolve3, interval);
23022
+ const timeoutId = setTimeout(resolve4, interval);
23023
23023
  signal.addEventListener("abort", () => {
23024
23024
  clearTimeout(timeoutId);
23025
23025
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
@@ -24119,7 +24119,7 @@ var McpServer = class {
24119
24119
  let task = createTaskResult.task;
24120
24120
  const pollInterval = task.pollInterval ?? 5e3;
24121
24121
  while (task.status !== "completed" && task.status !== "failed" && task.status !== "cancelled") {
24122
- await new Promise((resolve3) => setTimeout(resolve3, pollInterval));
24122
+ await new Promise((resolve4) => setTimeout(resolve4, pollInterval));
24123
24123
  const updatedTask = await extra.taskStore.getTask(taskId);
24124
24124
  if (!updatedTask) {
24125
24125
  throw new McpError(ErrorCode.InternalError, `Task ${taskId} not found during polling`);
@@ -24768,12 +24768,12 @@ var StdioServerTransport = class {
24768
24768
  this.onclose?.();
24769
24769
  }
24770
24770
  send(message) {
24771
- return new Promise((resolve3) => {
24771
+ return new Promise((resolve4) => {
24772
24772
  const json = serializeMessage(message);
24773
24773
  if (this._stdout.write(json)) {
24774
- resolve3();
24774
+ resolve4();
24775
24775
  } else {
24776
- this._stdout.once("drain", resolve3);
24776
+ this._stdout.once("drain", resolve4);
24777
24777
  }
24778
24778
  });
24779
24779
  }
@@ -24862,7 +24862,7 @@ function loadConfigState(env) {
24862
24862
  // src/bridge/daemon.ts
24863
24863
  import { createServer } from "node:net";
24864
24864
  import { existsSync as existsSync3, mkdirSync as mkdirSync3, unlinkSync, chmodSync } from "node:fs";
24865
- import { dirname as dirname2 } from "node:path";
24865
+ import { dirname as dirname3 } from "node:path";
24866
24866
 
24867
24867
  // node_modules/ws/wrapper.mjs
24868
24868
  var import_stream = __toESM(require_stream(), 1);
@@ -24898,8 +24898,8 @@ var Bridge = class {
24898
24898
  return addr && typeof addr === "object" ? addr.port : this.opts.port;
24899
24899
  }
24900
24900
  start() {
24901
- return new Promise((resolve3, reject) => {
24902
- this.wss = new import_websocket_server.default({ host: "127.0.0.1", port: this.opts.port }, () => resolve3());
24901
+ return new Promise((resolve4, reject) => {
24902
+ this.wss = new import_websocket_server.default({ host: "127.0.0.1", port: this.opts.port }, () => resolve4());
24903
24903
  this.wss.on("error", (err) => {
24904
24904
  if (err.code === "EADDRINUSE") {
24905
24905
  reject(new Error(
@@ -25011,13 +25011,13 @@ var Bridge = class {
25011
25011
  const live = set && [...set].find((ws) => ws.readyState === import_websocket.default.OPEN);
25012
25012
  if (!live) return Promise.reject(new Error(`portal ${origin} not connected \u2014 open a logged-in tab`));
25013
25013
  const id = randomUUID();
25014
- return new Promise((resolve3, reject) => {
25014
+ return new Promise((resolve4, reject) => {
25015
25015
  const timer = setTimeout(() => {
25016
25016
  this.pending.delete(id);
25017
25017
  this.discardDownload(id);
25018
25018
  reject(new Error(`call ${target.action ?? target.endpoint} timed out`));
25019
25019
  }, timeoutMs);
25020
- this.pending.set(id, { resolve: resolve3, reject, timer });
25020
+ this.pending.set(id, { resolve: resolve4, reject, timer });
25021
25021
  if (destPath !== void 0) this.downloadPaths.set(id, destPath);
25022
25022
  try {
25023
25023
  live.send(JSON.stringify({ type: "call", id, ...target }));
@@ -25049,20 +25049,20 @@ var Bridge = class {
25049
25049
  }
25050
25050
  this.pending.clear();
25051
25051
  for (const id of [...this.downloads.keys()]) this.discardDownload(id);
25052
- return new Promise((resolve3) => {
25053
- if (!this.wss) return resolve3();
25052
+ return new Promise((resolve4) => {
25053
+ if (!this.wss) return resolve4();
25054
25054
  let done = false;
25055
25055
  const t = setTimeout(() => {
25056
25056
  if (!done) {
25057
25057
  done = true;
25058
- resolve3();
25058
+ resolve4();
25059
25059
  }
25060
25060
  }, 500);
25061
25061
  this.wss.close(() => {
25062
25062
  if (!done) {
25063
25063
  done = true;
25064
25064
  clearTimeout(t);
25065
- resolve3();
25065
+ resolve4();
25066
25066
  }
25067
25067
  });
25068
25068
  });
@@ -25133,7 +25133,7 @@ function defineOperation(def) {
25133
25133
 
25134
25134
  // src/ops/batch.ts
25135
25135
  var MAX_BATCH = 50;
25136
- var BATCH_RESERVE_MS = 3e4;
25136
+ var STEP_RESERVE_MS = 3e4;
25137
25137
  var SKIPPED = "\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430 \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438";
25138
25138
  var taskIdsArg = () => external_exports.array(idArg()).min(1).max(MAX_BATCH).superRefine((ids, ctx) => {
25139
25139
  const seen = /* @__PURE__ */ new Set();
@@ -25146,16 +25146,34 @@ var taskIdsArg = () => external_exports.array(idArg()).min(1).max(MAX_BATCH).sup
25146
25146
  }
25147
25147
  });
25148
25148
  var errorMessage = (e) => e instanceof Error ? e.message : String(e);
25149
- async function forEachTask(taskIds, fn, { budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
25150
- const startBefore = now() + budgetMs - BATCH_RESERVE_MS;
25149
+ function budgetPace({ budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
25150
+ const deadline = now() + budgetMs;
25151
+ let longestMs = 0;
25152
+ return {
25153
+ // `thenRequests`: requests the call still makes after the step, each given a full reserve.
25154
+ canStart: (thenRequests = 0) => now() + Math.max(STEP_RESERVE_MS, longestMs) + thenRequests * STEP_RESERVE_MS < deadline,
25155
+ async time(step) {
25156
+ const startedAt = now();
25157
+ try {
25158
+ return await step();
25159
+ } finally {
25160
+ longestMs = Math.max(longestMs, now() - startedAt);
25161
+ }
25162
+ }
25163
+ };
25164
+ }
25165
+ async function forEachTask(taskIds, fn, opts = {}) {
25166
+ return eachTask(taskIds, fn, budgetPace(opts));
25167
+ }
25168
+ async function eachTask(taskIds, fn, pace) {
25151
25169
  const results = [];
25152
25170
  for (const taskId of taskIds) {
25153
- if (now() >= startBefore) {
25171
+ if (!pace.canStart()) {
25154
25172
  results.push({ taskId, ok: false, error: SKIPPED });
25155
25173
  continue;
25156
25174
  }
25157
25175
  try {
25158
- const fields = await fn(taskId);
25176
+ const fields = await pace.time(() => fn(taskId));
25159
25177
  const verdict = { taskId, ok: true };
25160
25178
  results.push({ ...verdict, ...fields, ...verdict });
25161
25179
  } catch (e) {
@@ -25164,20 +25182,25 @@ async function forEachTask(taskIds, fn, { budgetMs = BUDGET_TIMEOUT_MS.long, now
25164
25182
  }
25165
25183
  return { results };
25166
25184
  }
25167
- async function forEachTaskVetted(taskIds, steps, { budgetMs = BUDGET_TIMEOUT_MS.long, now = Date.now } = {}) {
25168
- const startedAt = now();
25169
- const { results } = await forEachTask(taskIds, async (taskId) => ({ prepared: await steps.prepare(taskId) }), { budgetMs, now });
25185
+ async function forEachTaskVetted(taskIds, steps, opts = {}) {
25186
+ const pace = budgetPace(opts);
25187
+ const { results } = await eachTask(taskIds, async (taskId) => ({ prepared: await steps.prepare(taskId) }), pace);
25170
25188
  steps.vet(results.flatMap((r) => r.ok ? [r.prepared] : []));
25171
25189
  const firstPass = new Map(results.map((r) => [r.taskId, r]));
25172
- return forEachTask(
25173
- taskIds,
25190
+ const ready = results.flatMap((r) => r.ok ? [r.taskId] : []);
25191
+ const secondPass = await eachTask(
25192
+ ready,
25174
25193
  async (taskId) => {
25175
25194
  const first = firstPass.get(taskId);
25176
25195
  if (!first?.ok) throw new Error(first?.error ?? SKIPPED);
25177
25196
  return steps.apply(taskId, first.prepared);
25178
25197
  },
25179
- { budgetMs: budgetMs - (now() - startedAt), now }
25198
+ pace
25180
25199
  );
25200
+ const applied = new Map(secondPass.results.map((r) => [r.taskId, r]));
25201
+ return {
25202
+ results: results.map((first) => first.ok ? applied.get(first.taskId) ?? { taskId: first.taskId, ok: false, error: SKIPPED } : first)
25203
+ };
25181
25204
  }
25182
25205
 
25183
25206
  // src/ops/read.ts
@@ -25186,14 +25209,15 @@ var AJAX = "/bitrix/services/main/ajax.php";
25186
25209
  function callTarget(entry) {
25187
25210
  return { endpoint: AJAX, action: null, params: {}, bodyType: "form", responseType: "json", ...entry };
25188
25211
  }
25212
+ var v2 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
25189
25213
  var TASKS_LIST = callTarget({ action: "tasks.task.list", method: "POST" });
25190
25214
  var TASK_GET = callTarget({ action: "tasks.task.get", method: "POST" });
25191
- var TASK_V2_GET = callTarget({ action: "tasks.v2.Task.get", method: "POST", bodyType: "json" });
25192
- var TASK_SCRUM_INFO = callTarget({ action: "tasks.v2.Scrum.getTaskInfo", method: "POST", bodyType: "json" });
25193
- var TASK_FILES = callTarget({ action: "tasks.v2.File.listObjects", method: "POST", bodyType: "json" });
25194
- var TASK_VIEWS_COUNT = callTarget({ action: "tasks.v2.Task.View.User.count", method: "POST", bodyType: "json" });
25195
- var TASK_SUBTASKS = callTarget({ action: "tasks.v2.Task.Relation.Child.list", method: "POST", bodyType: "json" });
25196
- var TASK_RELATED = callTarget({ action: "tasks.v2.Task.Relation.Related.list", method: "POST", bodyType: "json" });
25215
+ var TASK_V2_GET = v2("tasks.v2.Task.get");
25216
+ var TASK_SCRUM_INFO = v2("tasks.v2.Scrum.getTaskInfo");
25217
+ var TASK_FILES = v2("tasks.v2.File.listObjects");
25218
+ var TASK_VIEWS_COUNT = v2("tasks.v2.Task.View.User.count");
25219
+ var TASK_SUBTASKS = v2("tasks.v2.Task.Relation.Child.list");
25220
+ var TASK_RELATED = v2("tasks.v2.Task.Relation.Related.list");
25197
25221
  var PROJECTS_LIST = callTarget({ action: "socialnetwork.api.workgroup.list", method: "POST" });
25198
25222
  var PROJECTS_GET = callTarget({ action: "socialnetwork.api.workgroup.get", method: "POST" });
25199
25223
  var CHATS_RECENT = callTarget({
@@ -25209,8 +25233,8 @@ var CHAT_MESSAGES_TAIL = callTarget({
25209
25233
  params: { "order[id]": "DESC", limit: 25 }
25210
25234
  });
25211
25235
  var CHAT_MESSAGE_READ = callTarget({ action: "im.v2.Chat.Message.read", method: "POST" });
25212
- var ENTITYSELECTOR_LOAD = callTarget({ action: "ui.entityselector.load", method: "POST", bodyType: "json" });
25213
- var ENTITYSELECTOR_SEARCH = callTarget({ action: "ui.entityselector.doSearch", method: "POST", bodyType: "json" });
25236
+ var ENTITYSELECTOR_LOAD = v2("ui.entityselector.load");
25237
+ var ENTITYSELECTOR_SEARCH = v2("ui.entityselector.doSearch");
25214
25238
  var RECENT_LOAD = callTarget({ action: "im.v2.Recent.load", method: "POST" });
25215
25239
  var RECENT_TAIL = callTarget({ action: "im.v2.Recent.tail", method: "POST" });
25216
25240
  var CHAT_DIALOG_ID = callTarget({ action: "im.v2.Chat.getDialogId", method: "POST" });
@@ -25443,6 +25467,13 @@ function parseResponse(schema, raw, method) {
25443
25467
  if (!parsed.success) throw new Error(`${method} returned an unexpected shape`);
25444
25468
  return parsed.data;
25445
25469
  }
25470
+ var noTaskResponse = external_exports.union([external_exports.object({ result: external_exports.tuple([]) }), external_exports.object({ data: external_exports.union([external_exports.null(), external_exports.tuple([])]) })]);
25471
+ function parseTaskCard(schema, raw, method, taskId) {
25472
+ const parsed = schema.safeParse(raw);
25473
+ if (parsed.success) return parsed.data;
25474
+ if (noTaskResponse.safeParse(raw).success) throw new Error(`\u0437\u0430\u0434\u0430\u0447\u0430 ${taskId} \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430 \u0438\u043B\u0438 \u043D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 (\u0443\u0434\u0430\u043B\u0435\u043D\u0430 \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u0430 \u043E\u0442 \u0442\u0435\u0431\u044F)`);
25475
+ throw new Error(`${method} returned an unexpected shape`);
25476
+ }
25446
25477
  async function mayHaveHappened(write, schema, method, unconfirmed) {
25447
25478
  const raw = await write.catch((e) => {
25448
25479
  throw new Error(`${errorMessage(e)} \u2014 ${unconfirmed}`);
@@ -25461,6 +25492,7 @@ var SPRINT_STAGES = restMethod("tasks.api.scrum.kanban.getStages");
25461
25492
  var STAGE_MOVE = restMethod("task.stages.movetask");
25462
25493
  var SCRUM_TASK_GET = restMethod("tasks.api.scrum.task.get");
25463
25494
  var BACKLOG_GET = restMethod("tasks.api.scrum.backlog.get");
25495
+ var GROUP_STAGES = restMethod("task.stages.get");
25464
25496
  var USER_CURRENT = restMethod("user.current");
25465
25497
  var TASK_STAGE_SELECT = ["ID", "GROUP_ID", "STAGE_ID", "STATUS"];
25466
25498
  var sprintsResponse = external_exports.object({ result: external_exports.array(external_exports.object({ id: numeric, status: external_exports.string() })) });
@@ -25473,25 +25505,30 @@ var taskResponse = external_exports.object({
25473
25505
  var scrumTaskResponse = external_exports.object({ result: external_exports.object({ entityId: numeric, groupId: numeric.nullish() }) });
25474
25506
  var backlogResponse = external_exports.object({ result: external_exports.object({ id: numeric }) });
25475
25507
  var currentUserResponse = external_exports.object({ result: external_exports.object({ ID: numeric }) });
25476
- async function activeSprintColumns(ctx, groupId) {
25508
+ var groupStage = external_exports.object({ ID: numeric, TITLE: external_exports.string(), SYSTEM_TYPE: external_exports.string().nullish() });
25509
+ var groupStagesResponse = external_exports.object({ result: external_exports.union([external_exports.record(groupStage), external_exports.array(groupStage)]) });
25510
+ async function readActiveSprintId(ctx, groupId) {
25477
25511
  const sprints = parseResponse(
25478
25512
  sprintsResponse,
25479
25513
  await ctx.call({ ...SPRINT_LIST, params: { filter: { GROUP_ID: groupId, STATUS: "active" } } }),
25480
25514
  "tasks.api.scrum.sprint.list"
25481
25515
  );
25482
- const sprint = sprints.result.find((s) => s.status === "active");
25483
- if (!sprint) throw new Error(`\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435 ${groupId} \u043D\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u0430\u0447\u043D\u0438\u0442\u0435 \u0441\u043F\u0440\u0438\u043D\u0442 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 (\u0438\u043B\u0438 \u044D\u0442\u043E \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442)`);
25516
+ return sprints.result.find((s) => s.status === "active")?.id ?? null;
25517
+ }
25518
+ async function activeSprintColumns(ctx, groupId) {
25519
+ const sprintId = await readActiveSprintId(ctx, groupId);
25520
+ if (sprintId === null) throw new Error(`\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0435 ${groupId} \u043D\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u0430\u0447\u043D\u0438\u0442\u0435 \u0441\u043F\u0440\u0438\u043D\u0442 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 (\u0438\u043B\u0438 \u044D\u0442\u043E \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442)`);
25484
25521
  const stages = parseResponse(
25485
25522
  stagesResponse,
25486
- await ctx.call({ ...SPRINT_STAGES, params: { sprintId: sprint.id } }),
25523
+ await ctx.call({ ...SPRINT_STAGES, params: { sprintId } }),
25487
25524
  "tasks.api.scrum.kanban.getStages"
25488
25525
  );
25489
25526
  const columns = [...stages.result].sort((a, b) => a.sort - b.sort).map(({ id, name, type }) => ({ id, name, type: type ?? "" }));
25490
- return { sprintId: sprint.id, columns };
25527
+ return { sprintId, columns };
25491
25528
  }
25492
25529
  async function readTaskStage(ctx, taskId) {
25493
25530
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: TASK_STAGE_SELECT } });
25494
- return parseResponse(taskResponse, raw, "tasks.task.get").result.task;
25531
+ return parseTaskCard(taskResponse, raw, "tasks.task.get", taskId).result.task;
25495
25532
  }
25496
25533
  var currentUsers = /* @__PURE__ */ new WeakMap();
25497
25534
  function currentUserId(ctx) {
@@ -25523,6 +25560,13 @@ async function readBacklogId(ctx, groupId) {
25523
25560
  const raw = await ctx.call({ ...BACKLOG_GET, params: { id: groupId } });
25524
25561
  return parseResponse(backlogResponse, raw, "tasks.api.scrum.backlog.get").result.id;
25525
25562
  }
25563
+ async function readGroupStages(ctx, groupId) {
25564
+ const raw = await ctx.call({ ...GROUP_STAGES, params: { entityId: groupId } });
25565
+ const stages = Object.values(parseResponse(groupStagesResponse, raw, "task.stages.get").result);
25566
+ const start = stages.find((s) => s.SYSTEM_TYPE === "NEW");
25567
+ if (!start) throw new Error(`\u0443 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 ${groupId} \u043D\u0435\u0442 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u043E\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 (SYSTEM_TYPE NEW) \u0432 task.stages.get \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E`);
25568
+ return { ids: new Set(stages.map((s) => s.ID)), start: { id: start.ID, name: start.TITLE } };
25569
+ }
25526
25570
  function findColumn(columns, column) {
25527
25571
  if (typeof column === "number") return columns.find((c) => c.id === column);
25528
25572
  const wanted = column.trim().toLowerCase();
@@ -25564,11 +25608,13 @@ var TASK_DELEGATE = restMethod("tasks.task.delegate");
25564
25608
  var USER_GET = restMethod("user.get");
25565
25609
  var SCRUM_TASK_UPDATE = restMethod("tasks.api.scrum.task.update");
25566
25610
  var BOARD_ADD = restMethod("tasks.api.scrum.kanban.addTask");
25611
+ var BOARD_DELETE = restMethod("tasks.api.scrum.kanban.deleteTask");
25612
+ var boardDeleteResponse = external_exports.object({ result: external_exports.boolean() });
25567
25613
  var BOARD_CREATE = callTarget({
25568
25614
  endpoint: "/bitrix/services/main/ajax.php?mode=class&c=bitrix%3Atasks.kanban&action=addTask",
25569
25615
  method: "POST"
25570
25616
  });
25571
- var RESULT_ADD = callTarget({ action: "tasks.v2.Task.Result.add", method: "POST", bodyType: "json" });
25617
+ var RESULT_ADD = v2("tasks.v2.Task.Result.add");
25572
25618
  var DESCRIPTION_MAX = 1e5;
25573
25619
  var RESULT_MAX = 2e4;
25574
25620
  var TITLE_MAX = 255;
@@ -25585,7 +25631,7 @@ var usersResponse = external_exports.object({
25585
25631
  });
25586
25632
  async function readDescription(ctx, taskId) {
25587
25633
  const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
25588
- return parseResponse(descriptionResponse, raw, "tasks.v2.Task.get (description)").data.description ?? "";
25634
+ return parseTaskCard(descriptionResponse, raw, "tasks.v2.Task.get (description)", taskId).data.description ?? "";
25589
25635
  }
25590
25636
  var DESCRIPTION_MAY_HAVE_CHANGED = "\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F \u2014 \u0441\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_get_v2 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C";
25591
25637
  async function writeDescription(ctx, taskId, text) {
@@ -25601,14 +25647,14 @@ async function writeDescription(ctx, taskId, text) {
25601
25647
  }
25602
25648
  async function readResponsible(ctx, taskId) {
25603
25649
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "RESPONSIBLE_ID"] } });
25604
- return parseResponse(responsibleResponse, raw, "tasks.task.get").result.task;
25650
+ return parseTaskCard(responsibleResponse, raw, "tasks.task.get", taskId).result.task;
25605
25651
  }
25606
25652
  var userIdsArg = () => external_exports.array(idArg()).max(MAX_BATCH).optional();
25607
25653
  function memberListOperation(def) {
25608
25654
  const response = membersResponse(def.key);
25609
25655
  const readMembers = async (ctx, taskId) => {
25610
25656
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", def.field] } });
25611
- return parseResponse(response, raw, "tasks.task.get").result.task[def.key];
25657
+ return parseTaskCard(response, raw, "tasks.task.get", taskId).result.task[def.key];
25612
25658
  };
25613
25659
  return defineOperation({
25614
25660
  name: def.name,
@@ -25669,6 +25715,28 @@ async function placeInSprint(ctx, taskId, { fromBacklog, sprintId, target }) {
25669
25715
  const moved = await moveToColumn(ctx, taskId, target, fromBacklog ? RETRY_FROM_BACKLOG : void 0);
25670
25716
  return { sprintId, ...moved, fromBacklog };
25671
25717
  }
25718
+ var RETRY_TO_BACKLOG = "\u043F\u043E\u0432\u0442\u043E\u0440\u0438 bitrix_task_to_backlog \u2014 \u0437\u0430\u0434\u0430\u0447\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0443\u044E \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043E\u043D \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043D\u0438\u043C\u0435\u0442 \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0438 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u0441\u0442\u0430\u0434\u0438\u044E";
25719
+ async function leaveSprintBoard(ctx, taskId, sprintId) {
25720
+ const raw = await ctx.call({ ...BOARD_DELETE, params: { sprintId, taskId } }).catch((e) => {
25721
+ throw new Error(`\u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u043C\u043E\u0436\u0435\u0442 \u043E\u0441\u0442\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 ${sprintId} (${errorMessage(e)}) \u2014 ${RETRY_TO_BACKLOG}`);
25722
+ });
25723
+ if (!parseResponse(boardDeleteResponse, raw, "tasks.api.scrum.kanban.deleteTask").result) {
25724
+ throw new Error(`Bitrix \u043D\u0435 \u0441\u043D\u044F\u043B \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 ${sprintId} (\u043E\u0442\u0432\u0435\u0442 false) \u2014 ${RETRY_TO_BACKLOG}`);
25725
+ }
25726
+ return `\u0441\u043D\u044F\u0442\u0430 \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 ${sprintId} \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0432\u0435\u0442\u043E\u043C Bitrix: \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0443 \u043A \u0434\u043E\u0441\u043A\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u0447\u0435\u043C`;
25727
+ }
25728
+ async function leaveSprintColumn(ctx, taskId, start) {
25729
+ await ctx.call({ ...TASK_UPDATE, params: { taskId, fields: { STAGE_ID: start.id } } }).catch((e) => {
25730
+ throw new Error(`\u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u043E \u043E\u0441\u0442\u0430\u043B\u0430\u0441\u044C \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (${errorMessage(e)}) \u2014 ${RETRY_TO_BACKLOG}`);
25731
+ });
25732
+ const { stageId } = await readTaskStage(ctx, taskId).catch((e) => {
25733
+ throw new Error(`\u0441\u0442\u0430\u0434\u0438\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_get): ${errorMessage(e)}`);
25734
+ });
25735
+ if (stageId !== start.id) {
25736
+ throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 ${stageId ?? "?"}, \u0430 \u043D\u0435 \xAB${start.name}\xBB (${start.id}) \u2014 ${RETRY_TO_BACKLOG}`);
25737
+ }
25738
+ return { stageId: start.id };
25739
+ }
25672
25740
  var MEMBERS_HINT = "add / remove \u2014 \u043C\u0430\u0441\u0441\u0438\u0432\u044B userId (\u043D\u0430\u0439\u0442\u0438 id \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 \u2014 bitrix_user_find); \u043D\u0443\u0436\u0435\u043D \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u0438\u043D \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u0439. \u0421\u043F\u0438\u0441\u043E\u043A \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F \u0443 \u043A\u0430\u0436\u0434\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043D\u043E\u0432\u043E, \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E, \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0434\u0435\u043B\u0430\u0435\u0442\u0441\u044F (changed: false). \u0415\u0441\u043B\u0438 Bitrix \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B \u043D\u0435 \u0432\u0441\u0451, \u0437\u0430\u0434\u0430\u0447\u0430 ok: false \u0441 \u043F\u0435\u0440\u0435\u0447\u043D\u0435\u043C. \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438; \u043E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435.";
25673
25741
  var DESCRIPTION_REREAD = "\u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u043E \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u2014 \u043E\u0448\u0438\u0431\u043A\u0430. \u041E\u0442\u0432\u0435\u0442: { taskId, length } \u2014 length \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F. ";
25674
25742
  var DESCRIPTION_FORMAT = "\u0424\u043E\u0440\u043C\u0430\u0442 \u2014 BBCode: [b] [i] [u] [s], [url=\u2026]\u2026[/url], [user=ID]\u0418\u043C\u044F[/user], \u0441\u043F\u0438\u0441\u043A\u0438 [list] / [list=1] \u0441 \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 [*], [quote], [code], [spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler], \u0442\u0430\u0431\u043B\u0438\u0446\u044B [table][tr][th]/[td]. \u0412\u043B\u043E\u0436\u0435\u043D\u0438\u044F [disk file id=\u2026] \u0432 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0438 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0439 \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B.";
@@ -25755,22 +25823,31 @@ ${a.text}` : a.text);
25755
25823
  }),
25756
25824
  defineOperation({
25757
25825
  name: "task_to_backlog",
25758
- description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0412\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 (taskIds \u2014 \u0434\u043E 50) \u0432 \u0411\u042D\u041A\u041B\u041E\u0413 \u0438\u0445 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430; \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u043E\u043D\u0438 \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u2014 \u044D\u0442\u043E \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430. \u0417\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u044E\u0442\u0441\u044F (changed: false). \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438; \u043E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435. \u041E\u0442\u0432\u0435\u0442: { results: [{ taskId, ok, error?, backlogId, changed }] } \u2014 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043E \u043F\u043E\u0441\u043B\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430.",
25826
+ description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0412\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 (taskIds \u2014 \u0434\u043E 50) \u0432 \u0411\u042D\u041A\u041B\u041E\u0413 \u0438\u0445 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430; \u0441 \u0434\u043E\u0441\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u043E\u043D\u0438 \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u2014 \u044D\u0442\u043E \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430. \u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043D\u0438\u043C\u0430\u0435\u0442\u0441\u044F \u0441 \u0434\u043E\u0441\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0438 \u0443\u0445\u043E\u0434\u0438\u0442 \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0432 \u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0430\u0434\u0438\u044E \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u043F\u0440\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0435 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u0417\u0430\u0434\u0430\u0447\u0430, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u0442\u043E\u0436\u0435 \u0441\u043D\u0438\u043C\u0430\u0435\u0442\u0441\u044F \u0441 \u0434\u043E\u0441\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (Bitrix \u043C\u043E\u0433 \u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0435\u0451 \u0442\u0430\u043C) \u0438, \u0435\u0441\u043B\u0438 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0432 \u044D\u0442\u0443 \u0441\u0442\u0430\u0434\u0438\u044E. \u0411\u044D\u043A\u043B\u043E\u0433 \u0438 \u0441\u0442\u0430\u0434\u0438\u044F \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438; \u0441\u043D\u044F\u0442\u0438\u0435 \u0441 \u0434\u043E\u0441\u043A\u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0432\u0435\u0442 Bitrix \u2014 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A \u0434\u043E\u0441\u043A\u0435 \u043D\u0435\u0447\u0435\u043C (\u043F\u043E\u043B\u0435 board \u043E\u0442\u0432\u0435\u0442\u0430). changed \u2014 \u0438\u0437\u043C\u0435\u043D\u0438\u043B\u0438\u0441\u044C \u0431\u044D\u043A\u043B\u043E\u0433 \u0438\u043B\u0438 \u0441\u0442\u0430\u0434\u0438\u044F. \u0417\u0430\u0434\u0430\u0447\u0438 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438; \u043E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435. \u041E\u0442\u0432\u0435\u0442: { results: [{ taskId, ok, error?, backlogId, stageId, changed, board? }] }.",
25759
25827
  mutating: true,
25760
25828
  budget: "long",
25761
25829
  input: { taskIds: taskIdsArg() },
25762
25830
  run: async (ctx, a) => {
25763
25831
  const backlogOf = perGroup((groupId) => readBacklogId(ctx, groupId));
25832
+ const stagesOf = perGroup((groupId) => readGroupStages(ctx, groupId));
25833
+ const activeSprintOf = perGroup((groupId) => readActiveSprintId(ctx, groupId));
25764
25834
  return forEachTask(a.taskIds, async (taskId) => {
25765
25835
  const task = await readScrumTask(ctx, taskId);
25766
25836
  const backlogId = await backlogOf(task.groupId);
25767
- if (task.entityId === backlogId) return { backlogId, changed: false };
25768
- await ctx.call({ ...SCRUM_TASK_UPDATE, params: { id: taskId, fields: { entityId: backlogId } } });
25769
- const after = await readScrumTask(ctx, taskId).catch((e) => {
25770
- throw new Error(`\u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_scrum_info): ${errorMessage(e)}`);
25771
- });
25772
- if (after.entityId !== backlogId) throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435 (\u0441\u0435\u0439\u0447\u0430\u0441 \u0432 ${after.entityId})`);
25773
- return { backlogId, changed: true };
25837
+ const stages = await stagesOf(task.groupId);
25838
+ const sprintId = await activeSprintOf(task.groupId);
25839
+ const moved = task.entityId !== backlogId;
25840
+ if (moved) {
25841
+ await ctx.call({ ...SCRUM_TASK_UPDATE, params: { id: taskId, fields: { entityId: backlogId } } });
25842
+ const after = await readScrumTask(ctx, taskId).catch((e) => {
25843
+ throw new Error(`\u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 bitrix_task_scrum_info): ${errorMessage(e)}`);
25844
+ });
25845
+ if (after.entityId !== backlogId) throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435 (\u0441\u0435\u0439\u0447\u0430\u0441 \u0432 ${after.entityId})`);
25846
+ }
25847
+ const current = moved ? void 0 : (await readTaskStage(ctx, taskId)).stageId;
25848
+ const board = sprintId === null ? void 0 : await leaveSprintBoard(ctx, taskId, sprintId);
25849
+ if (!moved && (!current || stages.ids.has(current))) return { backlogId, stageId: current ?? 0, changed: false, board };
25850
+ return { backlogId, ...await leaveSprintColumn(ctx, taskId, stages.start), changed: true, board };
25774
25851
  });
25775
25852
  }
25776
25853
  }),
@@ -25869,8 +25946,8 @@ ${a.text}` : a.text);
25869
25946
  ];
25870
25947
 
25871
25948
  // src/ops/content.ts
25872
- var TASK_V2_UPDATE = callTarget({ action: "tasks.v2.Task.update", method: "POST", bodyType: "json" });
25873
- var PLAN_UPDATE = callTarget({ action: "tasks.v2.Task.Plan.update", method: "POST", bodyType: "json" });
25949
+ var TASK_V2_UPDATE = v2("tasks.v2.Task.update");
25950
+ var PLAN_UPDATE = v2("tasks.v2.Task.Plan.update");
25874
25951
  var CHECKLIST_LIST = restMethod("task.checklistitem.getlist");
25875
25952
  var CHECKLIST_ADD = restMethod("task.checklistitem.add");
25876
25953
  var CHECKLIST_UPDATE = restMethod("task.checklistitem.update");
@@ -25889,11 +25966,11 @@ var SentUnconfirmed = class extends Error {
25889
25966
  };
25890
25967
  async function readTags(ctx, taskId) {
25891
25968
  const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
25892
- return parseResponse(tagsResponse, raw, "tasks.v2.Task.get (tags)").data.tags.map((t) => t.name);
25969
+ return parseTaskCard(tagsResponse, raw, "tasks.v2.Task.get (tags)", taskId).data.tags.map((t) => t.name);
25893
25970
  }
25894
25971
  async function readPlan(ctx, taskId) {
25895
25972
  const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
25896
- const { startPlanTs, endPlanTs } = parseResponse(planResponse, raw, "tasks.v2.Task.get (plan dates)").data;
25973
+ const { startPlanTs, endPlanTs } = parseTaskCard(planResponse, raw, "tasks.v2.Task.get (plan dates)", taskId).data;
25897
25974
  return { startPlanTs: startPlanTs ?? 0, endPlanTs: endPlanTs ?? 0 };
25898
25975
  }
25899
25976
  async function readChecklist(ctx, taskId) {
@@ -25990,7 +26067,7 @@ var CONTENT_OPERATIONS = [
25990
26067
  }),
25991
26068
  defineOperation({
25992
26069
  name: "task_checklist_edit",
25993
- description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438: add \u2014 \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F; \u043F\u0440\u0438 \u043F\u0443\u0441\u0442\u043E\u043C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 Bitrix \u0441\u0430\u043C \u0441\u043E\u0437\u0434\u0430\u0451\u0442 \u0433\u0440\u0443\u043F\u043F\u0443), rename \u2014 [{ itemId, title }], complete \u2014 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, reopen \u2014 \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, remove \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C. itemId \u2014 \u0438\u0437 bitrix_task_checklist. \u041F\u0443\u043D\u043A\u0442 \u043C\u043E\u0436\u043D\u043E \u0437\u0430 \u0440\u0430\u0437 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0438 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C, \u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F complete \u0438 reopen \u0432\u043C\u0435\u0441\u0442\u0435 \u0438\u043B\u0438 remove \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u2014 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043F\u0443\u043D\u043A\u0442\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E). \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0441\u0435 itemId \u0441\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F \u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u043E\u043C (\u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u0430 \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F), \u0437\u0430\u0442\u0435\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438: add, rename, complete, reopen, remove \u2014 \u0432\u0441\u0435\u0433\u043E \u0434\u043E 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043F\u0440\u0438 \u0441\u0431\u043E\u0435 \u043F\u043E\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0435 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435. \u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B (\u043F\u0443\u043D\u043A\u0442\u0430 \u0441 parentId 0) \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0438 \u0435\u0451 \u043F\u0443\u043D\u043A\u0442\u044B: \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u043E\u043D\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\u0441\u044F, \u0438 \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u043B\u0438 \u043E\u043D\u0438, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F; \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u0432 \u0432\u044B\u0437\u043E\u0432\u0435, \u0433\u0434\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442\u0441\u044F \u0433\u0440\u0443\u043F\u043F\u0430, \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0442\u043E\u0436\u0435 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F (Bitrix \u043C\u043E\u0433 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0438\u0445 \u0432 \u044D\u0442\u0443 \u0433\u0440\u0443\u043F\u043F\u0443). \u041E\u0442\u0432\u0435\u0442: { taskId, added, items } \u2014 added \u2014 id \u043D\u043E\u0432\u044B\u0445 \u043F\u0443\u043D\u043A\u0442\u043E\u0432, items \u2014 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438.",
26070
+ description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0437\u0430\u0434\u0430\u0447\u0438: add \u2014 \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F; \u043F\u0440\u0438 \u043F\u0443\u0441\u0442\u043E\u043C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 Bitrix \u0441\u0430\u043C \u0441\u043E\u0437\u0434\u0430\u0451\u0442 \u0433\u0440\u0443\u043F\u043F\u0443), rename \u2014 [{ itemId, title }], complete \u2014 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, reopen \u2014 \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, remove \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C. itemId \u2014 \u0438\u0437 bitrix_task_checklist. \u041F\u0443\u043D\u043A\u0442 \u043C\u043E\u0436\u043D\u043E \u0437\u0430 \u0440\u0430\u0437 \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C \u0438 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C, \u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F complete \u0438 reopen \u0432\u043C\u0435\u0441\u0442\u0435 \u0438\u043B\u0438 remove \u0432\u043C\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u043E\u0439 \u0435\u0433\u043E \u043F\u0440\u0430\u0432\u043A\u043E\u0439. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u2014 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043F\u0443\u043D\u043A\u0442\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E). \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0441\u0435 itemId \u0441\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F \u0441 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u043E\u043C (\u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u0430 \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F), \u0437\u0430\u0442\u0435\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438: add, rename, complete, reopen, remove \u2014 \u0432\u0441\u0435\u0433\u043E \u0434\u043E 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043F\u0440\u0438 \u0441\u0431\u043E\u0435 \u043F\u043E\u0441\u0435\u0440\u0435\u0434\u0438\u043D\u0435 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435; \u0435\u0441\u043B\u0438 \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430 \u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435, \u043E\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044F \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043D\u0435 \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0442\u0441\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u0435\u0442 \u0438 \u0441\u0434\u0435\u043B\u0430\u043D\u043D\u043E\u0435, \u0438 \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0435. \u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B (\u043F\u0443\u043D\u043A\u0442\u0430 \u0441 parentId 0) \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0438 \u0435\u0451 \u043F\u0443\u043D\u043A\u0442\u044B: \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u043E\u043D\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u044E\u0442\u0441\u044F, \u0438 \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u043B\u0438 \u043E\u043D\u0438, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F; \u043D\u043E\u0432\u044B\u0435 \u043F\u0443\u043D\u043A\u0442\u044B \u0432 \u0432\u044B\u0437\u043E\u0432\u0435, \u0433\u0434\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442\u0441\u044F \u0433\u0440\u0443\u043F\u043F\u0430, \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u0442\u043E\u0436\u0435 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u044E\u0442\u0441\u044F (Bitrix \u043C\u043E\u0433 \u043F\u043E\u043B\u043E\u0436\u0438\u0442\u044C \u0438\u0445 \u0432 \u044D\u0442\u0443 \u0433\u0440\u0443\u043F\u043F\u0443). \u041E\u0442\u0432\u0435\u0442: { taskId, added, items } \u2014 added \u2014 id \u043D\u043E\u0432\u044B\u0445 \u043F\u0443\u043D\u043A\u0442\u043E\u0432, items \u2014 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0439 \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438.",
25994
26071
  mutating: true,
25995
26072
  // One request per item, two more around them.
25996
26073
  budget: "long",
@@ -26025,52 +26102,64 @@ var CONTENT_OPERATIONS = [
26025
26102
  if (both !== void 0) throw invalid(`item ${both} is in both complete and reopen`);
26026
26103
  const removedAndEdited = remove.find((id) => renamed.includes(id) || complete.includes(id) || reopen.includes(id));
26027
26104
  if (removedAndEdited !== void 0) throw invalid(`item ${removedAndEdited} is removed and edited at once`);
26105
+ const pace = budgetPace();
26028
26106
  const before = await readChecklist(ctx, TASKID);
26029
26107
  const missing = touched.filter((id) => !before.some((item) => item.id === id));
26030
26108
  if (missing.length > 0) {
26031
26109
  throw new Error(`\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 ${TASKID} \u043D\u0435\u0442 \u043F\u0443\u043D\u043A\u0442\u043E\u0432 ${missing.join(", ")} \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 bitrix_task_checklist`);
26032
26110
  }
26033
- const done = [];
26034
- const step = async (label, request) => {
26035
- try {
26036
- await request();
26037
- } catch (e) {
26038
- const outcome = e instanceof SentUnconfirmed ? "\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D" : `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E (${errorMessage(e)})`;
26039
- throw new Error(
26040
- `${label}: ${outcome}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done.join(", ") || "\u043D\u0438\u0447\u0435\u0433\u043E"} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
26041
- );
26042
- }
26043
- done.push(label);
26044
- };
26045
26111
  const mark = (target, ITEMID, method) => async () => {
26046
26112
  parseResponse(checklistDoneResponse, await ctx.call({ ...target, params: { TASKID, ITEMID } }), method);
26047
26113
  };
26048
- const added = [];
26049
- for (const TITLE of add) {
26050
- await step(`\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB${TITLE}\xBB`, async () => {
26051
- const raw = await ctx.call({ ...CHECKLIST_ADD, params: { TASKID, FIELDS: { TITLE } } });
26052
- const parsed = checklistAddResponse.safeParse(raw);
26053
- if (!parsed.success) throw new SentUnconfirmed();
26054
- added.push(parsed.data.result);
26055
- });
26056
- }
26057
- for (const { itemId, title } of rename) {
26058
- await step(`\u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C ${itemId}`, async () => {
26059
- await ctx.call({ ...CHECKLIST_UPDATE, params: { TASKID, ITEMID: itemId, FIELDS: { TITLE: title } } });
26060
- });
26061
- }
26062
- for (const id of complete) await step(`\u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C ${id}`, mark(CHECKLIST_COMPLETE, id, "task.checklistitem.complete"));
26063
- for (const id of reopen) await step(`\u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 ${id}`, mark(CHECKLIST_RENEW, id, "task.checklistitem.renew"));
26064
26114
  const gone = /* @__PURE__ */ new Set();
26065
26115
  const drop = (id) => {
26066
26116
  if (gone.has(id)) return;
26067
26117
  gone.add(id);
26068
26118
  for (const item of before) if (item.parentId === id) drop(item.id);
26069
26119
  };
26070
- for (const id of remove) {
26071
- if (gone.has(id)) continue;
26072
- await step(`\u0443\u0434\u0430\u043B\u0438\u0442\u044C ${id}`, mark(CHECKLIST_DELETE, id, "task.checklistitem.delete"));
26120
+ const toDelete = remove.filter((id) => {
26121
+ if (gone.has(id)) return false;
26073
26122
  drop(id);
26123
+ return true;
26124
+ });
26125
+ const added = [];
26126
+ const actions = [
26127
+ ...add.map((TITLE) => ({
26128
+ label: `\u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \xAB${TITLE}\xBB`,
26129
+ run: async () => {
26130
+ const raw = await ctx.call({ ...CHECKLIST_ADD, params: { TASKID, FIELDS: { TITLE } } });
26131
+ const parsed = checklistAddResponse.safeParse(raw);
26132
+ if (!parsed.success) throw new SentUnconfirmed();
26133
+ added.push(parsed.data.result);
26134
+ }
26135
+ })),
26136
+ ...rename.map(({ itemId, title }) => ({
26137
+ label: `\u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C ${itemId}`,
26138
+ // Answers null on success.
26139
+ run: async () => {
26140
+ await ctx.call({ ...CHECKLIST_UPDATE, params: { TASKID, ITEMID: itemId, FIELDS: { TITLE: title } } });
26141
+ }
26142
+ })),
26143
+ ...complete.map((id) => ({ label: `\u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C ${id}`, run: mark(CHECKLIST_COMPLETE, id, "task.checklistitem.complete") })),
26144
+ ...reopen.map((id) => ({ label: `\u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 ${id}`, run: mark(CHECKLIST_RENEW, id, "task.checklistitem.renew") })),
26145
+ ...toDelete.map((id) => ({ label: `\u0443\u0434\u0430\u043B\u0438\u0442\u044C ${id}`, run: mark(CHECKLIST_DELETE, id, "task.checklistitem.delete") }))
26146
+ ];
26147
+ for (const [i, action] of actions.entries()) {
26148
+ const done = actions.slice(0, i).map((a2) => a2.label).join(", ") || "\u043D\u0438\u0447\u0435\u0433\u043E";
26149
+ if (!pace.canStart(1)) {
26150
+ const rest = actions.slice(i).map((a2) => a2.label).join(", ");
26151
+ throw new Error(
26152
+ `\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: ${rest}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
26153
+ );
26154
+ }
26155
+ try {
26156
+ await pace.time(action.run);
26157
+ } catch (e) {
26158
+ const outcome = e instanceof SentUnconfirmed ? "\u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043E\u0442\u0432\u0435\u0442 \u043D\u0435 \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D" : `\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E (${errorMessage(e)})`;
26159
+ throw new Error(
26160
+ `${action.label}: ${outcome}; \u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: ${done} \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 (bitrix_task_checklist) \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C`
26161
+ );
26162
+ }
26074
26163
  }
26075
26164
  const isGroup = (id) => before.some((item) => item.parentId === id) || before.find((item) => item.id === id)?.parentId === 0;
26076
26165
  const groupRemoved = remove.some(isGroup);
@@ -26135,7 +26224,6 @@ var CONTENT_OPERATIONS = [
26135
26224
  ];
26136
26225
 
26137
26226
  // src/ops/attributes.ts
26138
- var v2 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
26139
26227
  var DEADLINE_UPDATE = v2("tasks.v2.Task.Deadline.update");
26140
26228
  var MUTE = v2("tasks.v2.Task.Attention.mute");
26141
26229
  var UNMUTE = v2("tasks.v2.Task.Attention.unmute");
@@ -26164,7 +26252,7 @@ var remindersResponse = external_exports.object({
26164
26252
  });
26165
26253
  async function readCard(ctx, taskId, schema, what) {
26166
26254
  const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
26167
- return parseResponse(schema, raw, `tasks.v2.Task.get (${what})`);
26255
+ return parseTaskCard(schema, raw, `tasks.v2.Task.get (${what})`, taskId);
26168
26256
  }
26169
26257
  async function readReminders(ctx, taskId) {
26170
26258
  const raw = await ctx.call({ ...REMINDER_LIST, params: { taskId } });
@@ -26330,7 +26418,7 @@ async function postMessage(ctx, dialogId, text, replyTo) {
26330
26418
  }
26331
26419
  async function readTaskChat(ctx, taskId) {
26332
26420
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "CHAT_ID"] } });
26333
- return parseResponse(taskChatResponse, raw, "tasks.task.get").result.task.chatId;
26421
+ return parseTaskCard(taskChatResponse, raw, "tasks.task.get", taskId).result.task.chatId;
26334
26422
  }
26335
26423
  var CHAT_OPERATIONS = [
26336
26424
  defineOperation({
@@ -26399,7 +26487,7 @@ var CHAT_OPERATIONS = [
26399
26487
 
26400
26488
  // src/ops/composite.ts
26401
26489
  import { mkdirSync as mkdirSync2, writeFileSync } from "node:fs";
26402
- import { join as join3 } from "node:path";
26490
+ import { dirname as dirname2, join as join3, resolve as resolve2 } from "node:path";
26403
26491
 
26404
26492
  // node_modules/node-html-parser/dist/index.mjs
26405
26493
  var __create2 = Object.create;
@@ -30700,6 +30788,7 @@ function sortCalls(acc) {
30700
30788
  // src/ops/download.ts
30701
30789
  import { basename, isAbsolute, join as join2 } from "node:path";
30702
30790
  import { existsSync as existsSync2, renameSync, rmSync as rmSync2 } from "node:fs";
30791
+ import { lstat, readdir } from "node:fs/promises";
30703
30792
  import { randomUUID as randomUUID3 } from "node:crypto";
30704
30793
  var DOWNLOAD_LINKS = [
30705
30794
  {
@@ -30769,6 +30858,21 @@ function resolveDestination(req) {
30769
30858
  }
30770
30859
  return path;
30771
30860
  }
30861
+ var DOWNLOADS_WARN_BYTES = 500 * 1024 * 1024;
30862
+ async function downloadsWarning(downloadsDir) {
30863
+ let bytes;
30864
+ try {
30865
+ const entries = await readdir(downloadsDir, { withFileTypes: true });
30866
+ const sizes = await Promise.all(
30867
+ entries.filter((e) => e.isFile()).map((e) => lstat(join2(downloadsDir, e.name)).then((s) => s.size, () => 0))
30868
+ );
30869
+ bytes = sizes.reduce((sum, size) => sum + size, 0);
30870
+ } catch {
30871
+ return void 0;
30872
+ }
30873
+ if (bytes <= DOWNLOADS_WARN_BYTES) return void 0;
30874
+ return `\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 ${downloadsDir} \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 ${Math.round(bytes / 1024 / 1024)} \u041C\u0411 \u2014 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B (\u043C\u043E\u0441\u0442 \u0441\u0430\u043C \u0438\u0445 \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442)`;
30875
+ }
30772
30876
 
30773
30877
  // src/ops/taskComments.ts
30774
30878
  var MONTHS = {
@@ -30953,6 +31057,11 @@ async function downloadToDisk(ctx, origins, args) {
30953
31057
  })
30954
31058
  };
30955
31059
  }
31060
+ async function withDownloadsWarning(ctx, written, reply) {
31061
+ if (dirname2(resolve2(written)) !== resolve2(ctx.downloadsDir)) return reply;
31062
+ const warning = await downloadsWarning(ctx.downloadsDir);
31063
+ return warning === void 0 ? reply : { ...reply, warning };
31064
+ }
30956
31065
  var COMPOSITE_OPERATIONS = [
30957
31066
  defineOperation({
30958
31067
  name: "call_detail",
@@ -30975,7 +31084,7 @@ var COMPOSITE_OPERATIONS = [
30975
31084
  };
30976
31085
  writeFileSync(files.transcript, formatTranscript(call), "utf8");
30977
31086
  writeFileSync(files.json, JSON.stringify(call, null, 1), "utf8");
30978
- return { ...call, transcript: [], files };
31087
+ return withDownloadsWarning(ctx, files.transcript, { ...call, transcript: [], files });
30979
31088
  }
30980
31089
  }),
30981
31090
  // The legacy forum discussion tasks had before task chats. The first page is a server-rendered
@@ -31045,7 +31154,7 @@ var COMPOSITE_OPERATIONS = [
31045
31154
  };
31046
31155
  writeFileSync(files.text, formatComments(taskId, comments, reachedHistoryStart), "utf8");
31047
31156
  writeFileSync(files.json, JSON.stringify(result, null, 1), "utf8");
31048
- return { ...result, comments: [], files };
31157
+ return withDownloadsWarning(ctx, files.text, { ...result, comments: [], files });
31049
31158
  }
31050
31159
  }),
31051
31160
  defineOperation({
@@ -31054,7 +31163,10 @@ var COMPOSITE_OPERATIONS = [
31054
31163
  mutating: false,
31055
31164
  budget: "download",
31056
31165
  input: { url: external_exports.string(), savePath: external_exports.string().optional(), overwrite: external_exports.boolean().optional() },
31057
- run: (ctx, a) => downloadToDisk(ctx, ctx.origins, { ...a, fallbackName: "bitrix-file" })
31166
+ run: async (ctx, a) => {
31167
+ const saved = await downloadToDisk(ctx, ctx.origins, { ...a, fallbackName: "bitrix-file" });
31168
+ return withDownloadsWarning(ctx, saved.path, saved);
31169
+ }
31058
31170
  }),
31059
31171
  defineOperation({
31060
31172
  name: "call_recording",
@@ -31065,7 +31177,8 @@ var COMPOSITE_OPERATIONS = [
31065
31177
  async run(ctx, { callId, savePath, overwrite }) {
31066
31178
  const detail = await loadCallDetail(ctx, callId, void 0, false);
31067
31179
  if (!detail.recording?.url) throw new Error(`call ${callId} has no recording`);
31068
- return downloadToDisk(ctx, { [ctx.portal]: ctx.origin }, { url: detail.recording.url, savePath, overwrite, fallbackName: `call-${detail.id}.mp3` });
31180
+ const saved = await downloadToDisk(ctx, { [ctx.portal]: ctx.origin }, { url: detail.recording.url, savePath, overwrite, fallbackName: `call-${detail.id}.mp3` });
31181
+ return withDownloadsWarning(ctx, saved.path, saved);
31069
31182
  }
31070
31183
  }),
31071
31184
  defineOperation({
@@ -31126,7 +31239,7 @@ var COMPOSITE_OPERATIONS = [
31126
31239
  // src/ops/files.ts
31127
31240
  import { constants } from "node:fs";
31128
31241
  import { open, realpath } from "node:fs/promises";
31129
- import { basename as basename2, isAbsolute as isAbsolute2, relative, resolve as resolve2, sep } from "node:path";
31242
+ import { basename as basename2, isAbsolute as isAbsolute2, relative, resolve as resolve3, sep } from "node:path";
31130
31243
  var STORAGE_LIST = restMethod("disk.storage.getlist");
31131
31244
  var UPLOAD = restMethod("disk.folder.uploadfile");
31132
31245
  var ATTACH = restMethod("tasks.task.files.attach");
@@ -31140,7 +31253,7 @@ var taskFilesResponse = external_exports.object({ result: external_exports.objec
31140
31253
  var fileNameArg = () => external_exports.string().min(1).max(255).refine((name) => !/[/\\\x00-\x1f\x7f]/.test(name) && name !== "." && name !== "..", "a file name, without path separators or control characters");
31141
31254
  async function readTaskFiles(ctx, taskId) {
31142
31255
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "UF_TASK_WEBDAV_FILES"] } });
31143
- return parseResponse(taskFilesResponse, raw, "tasks.task.get").result.task.ufTaskWebdavFiles ?? [];
31256
+ return parseTaskCard(taskFilesResponse, raw, "tasks.task.get", taskId).result.task.ufTaskWebdavFiles ?? [];
31144
31257
  }
31145
31258
  function fileError(path, e) {
31146
31259
  const code = e instanceof Error && "code" in e ? e.code : void 0;
@@ -31149,7 +31262,7 @@ function fileError(path, e) {
31149
31262
  return new OpInputError(`\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C ${path}${typeof code === "string" ? ` (${code})` : ""}`);
31150
31263
  }
31151
31264
  async function within(dir, realFile) {
31152
- const realDir = await realpath(dir).catch(() => resolve2(dir));
31265
+ const realDir = await realpath(dir).catch(() => resolve3(dir));
31153
31266
  const rel = relative(realDir, realFile);
31154
31267
  return rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute2(rel);
31155
31268
  }
@@ -31247,9 +31360,8 @@ var DOD_NECESSARY = dod("isNecessary");
31247
31360
  var DOD_SETTINGS = dod("getSettings");
31248
31361
  var DOD_LIST = dod("getList");
31249
31362
  var DOD_SAVE = dod("saveList");
31250
- var v22 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
31251
- var STATUS_COMPLETE = v22("tasks.v2.Task.Status.complete");
31252
- var STATUS_RENEW = v22("tasks.v2.Task.Status.renew");
31363
+ var STATUS_COMPLETE = v2("tasks.v2.Task.Status.complete");
31364
+ var STATUS_RENEW = v2("tasks.v2.Task.Status.renew");
31253
31365
  var CLOSED = 5;
31254
31366
  var groupTypeResponse = external_exports.object({ data: external_exports.object({ TYPE: external_exports.enum(["scrum", "project", "group"]) }) });
31255
31367
  var necessaryResponse = external_exports.object({ data: external_exports.boolean() });
@@ -31413,11 +31525,10 @@ var LIFECYCLE_OPERATIONS = [
31413
31525
  ];
31414
31526
 
31415
31527
  // src/ops/relations.ts
31416
- var v23 = (action) => callTarget({ action, method: "POST", bodyType: "json" });
31417
- var RELATED_ADD = v23("tasks.v2.Task.Relation.Related.add");
31418
- var RELATED_DELETE = v23("tasks.v2.Task.Relation.Related.delete");
31419
- var CHILD_ADD = v23("tasks.v2.Task.Relation.Child.add");
31420
- var CHILD_DELETE = v23("tasks.v2.Task.Relation.Child.delete");
31528
+ var RELATED_ADD = v2("tasks.v2.Task.Relation.Related.add");
31529
+ var RELATED_DELETE = v2("tasks.v2.Task.Relation.Related.delete");
31530
+ var CHILD_ADD = v2("tasks.v2.Task.Relation.Child.add");
31531
+ var CHILD_DELETE = v2("tasks.v2.Task.Relation.Child.delete");
31421
31532
  var GANTT_ADD = restMethod("task.dependence.add");
31422
31533
  var GANTT_DELETE = restMethod("task.dependence.delete");
31423
31534
  var FINISH_START = 2;
@@ -31437,11 +31548,11 @@ async function readRelated(ctx, taskId) {
31437
31548
  }
31438
31549
  async function readParent(ctx, taskId) {
31439
31550
  const raw = await ctx.call({ ...REST_TASK_GET, params: { taskId, select: ["ID", "PARENT_ID"] } });
31440
- return parseResponse(parentResponse, raw, "tasks.task.get").result.task.parentId;
31551
+ return parseTaskCard(parentResponse, raw, "tasks.task.get", taskId).result.task.parentId;
31441
31552
  }
31442
31553
  async function hasGanttLinks(ctx, taskId) {
31443
31554
  const raw = await ctx.call({ ...TASK_V2_GET, params: { task: { id: taskId } } });
31444
- return parseResponse(ganttFlagResponse, raw, "tasks.v2.Task.get (containsGanttLinks)").data.containsGanttLinks;
31555
+ return parseTaskCard(ganttFlagResponse, raw, "tasks.v2.Task.get (containsGanttLinks)", taskId).data.containsGanttLinks;
31445
31556
  }
31446
31557
  var taskList = (ids) => ids.map((id) => ({ id }));
31447
31558
  var relatedIdsArg = () => external_exports.array(idArg()).max(MAX_BATCH).optional();
@@ -31533,20 +31644,18 @@ var RELATION_OPERATIONS = [
31533
31644
  }),
31534
31645
  defineOperation({
31535
31646
  name: "task_gantt_link",
31536
- description: '\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0421\u0432\u044F\u0437\u044C \u0437\u0430\u0434\u0430\u0447 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: dependentId \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F taskId. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0432\u044F\u0437\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F; remove: true \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u044C. type \u2014 \u0442\u043E\u043B\u044C\u043A\u043E "finish_start" (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) \u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438. \u041F\u0440\u043E\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u044E\u0442\u0441\u044F. \u041F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043D\u0435\u043B\u044C\u0437\u044F: Bitrix \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E, \u0435\u0441\u0442\u044C \u043B\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 dependentId \u0445\u043E\u0442\u044C \u043E\u0434\u043D\u0430 \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430, \u2014 \u043F\u043E \u043D\u0435\u043C\u0443 \u0437\u0430\u043F\u0438\u0441\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F. confirmed: true \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E: \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u044F\u0437\u0438 \u043F\u043E\u044F\u0432\u0438\u043B\u0438\u0441\u044C, \u043F\u043E\u0441\u043B\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043D\u0435 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u043D\u0438 \u043E\u0434\u043D\u043E\u0439. confirmed: false \u0438 note \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F: \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0443 \u043D\u0435\u0451 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0434\u0440\u0443\u0433\u0438\u0435. \u0415\u0441\u043B\u0438 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430. \u0421\u0432\u044F\u0437\u044C \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0438; \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u044F\u0435\u0442 \u043B\u0438 Bitrix \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E. \u041E\u0442\u0432\u0435\u0442: { taskId, dependentId, linked, confirmed, note? }.',
31647
+ description: "\u26A0 \u041C\u0423\u0422\u0418\u0420\u0423\u042E\u0429\u0418\u0419. \u0421\u0432\u044F\u0437\u044C \u0437\u0430\u0434\u0430\u0447 \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: dependentId \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F taskId. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0432\u044F\u0437\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\u0441\u044F; remove: true \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0441\u0432\u044F\u0437\u044C. \u041F\u0440\u043E\u0447\u0438\u0435 \u0441\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u044E\u0442\u0441\u044F. \u041F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043D\u0435\u043B\u044C\u0437\u044F: Bitrix \u0441\u043E\u043E\u0431\u0449\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E, \u0435\u0441\u0442\u044C \u043B\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 dependentId \u0445\u043E\u0442\u044C \u043E\u0434\u043D\u0430 \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430, \u2014 \u043F\u043E \u043D\u0435\u043C\u0443 \u0437\u0430\u043F\u0438\u0441\u044C \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0435\u0442\u0441\u044F. confirmed: true \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E: \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0441\u0432\u044F\u0437\u0438 \u043F\u043E\u044F\u0432\u0438\u043B\u0438\u0441\u044C, \u043F\u043E\u0441\u043B\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043D\u0435 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u043D\u0438 \u043E\u0434\u043D\u043E\u0439. confirmed: false \u0438 note \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F: \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438 \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438 \u0443 \u043D\u0435\u0451 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0434\u0440\u0443\u0433\u0438\u0435. \u0415\u0441\u043B\u0438 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u0432\u0442\u043E\u0440 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C \u2014 \u0435\u0441\u043B\u0438 \u0443 dependentId \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C. \u0421\u0432\u044F\u0437\u044C \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0438; \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u044F\u0435\u0442 \u043B\u0438 Bitrix \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E. \u041E\u0442\u0432\u0435\u0442: { taskId, dependentId, linked, confirmed, note? }.",
31537
31648
  mutating: true,
31538
31649
  // Up to three requests in a row.
31539
31650
  budget: "long",
31540
31651
  input: {
31541
31652
  taskId: idArg(),
31542
31653
  dependentId: idArg(),
31543
- remove: external_exports.boolean().optional(),
31544
- type: external_exports.enum(["finish_start"]).optional()
31654
+ remove: external_exports.boolean().optional()
31545
31655
  },
31546
31656
  run: async (ctx, a) => {
31547
31657
  const invalid = (message) => new OpInputError(`invalid arguments for task_gantt_link \u2014 ${message}`);
31548
31658
  if (a.dependentId === a.taskId) throw invalid("a task cannot depend on itself");
31549
- if (a.remove && a.type !== void 0) throw invalid("type applies only when adding a link");
31550
31659
  const link = { taskId: a.taskId, dependentId: a.dependentId };
31551
31660
  const pair = { taskIdFrom: a.taskId, taskIdTo: a.dependentId };
31552
31661
  const readAfter = () => reread(hasGanttLinks(ctx, a.dependentId), `bitrix_task_get_v2 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId}`);
@@ -31563,7 +31672,12 @@ var RELATION_OPERATIONS = [
31563
31672
  const before = await hasGanttLinks(ctx, a.dependentId).catch((e) => {
31564
31673
  throw new Error(`\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId}: ${errorMessage(e)}; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E \u2014 \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u0435\u043D`);
31565
31674
  });
31566
- await ctx.call({ ...GANTT_ADD, params: { ...pair, linkType: FINISH_START } });
31675
+ await ctx.call({ ...GANTT_ADD, params: { ...pair, linkType: FINISH_START } }).catch((e) => {
31676
+ if (!before || !/циклическ/i.test(errorMessage(e))) throw e;
31677
+ throw new Error(
31678
+ `Bitrix \u043E\u0442\u043A\u043B\u043E\u043D\u0438\u043B \u0441\u0432\u044F\u0437\u044C \u043A\u0430\u043A \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C (${errorMessage(e)}). \u0423 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId} \u0443\u0436\u0435 \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430, \u0442\u0430\u043A \u0447\u0442\u043E, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0438\u043C\u0435\u043D\u043D\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u043F\u043E\u0432\u0442\u043E\u0440 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u0442\u0430\u043A \u0436\u0435; \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0432\u044F\u0437\u044C \u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u044D\u0442\u043E \u043D\u0435\u043B\u044C\u0437\u044F, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E`
31679
+ );
31680
+ });
31567
31681
  if (!await readAfter()) throw new Error(`Bitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B \u0441\u0432\u044F\u0437\u044C: \u0443 \u0437\u0430\u0434\u0430\u0447\u0438 ${a.dependentId} \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u0413\u0430\u043D\u0442\u0430`);
31568
31682
  if (!before) return { ...link, linked: true, confirmed: true };
31569
31683
  return {
@@ -31614,7 +31728,7 @@ async function runOperation(reg, name, rawArgs, ctx, policy) {
31614
31728
 
31615
31729
  // src/version.ts
31616
31730
  var DEV_VERSION = "0.0.0-dev";
31617
- var PACKAGE_VERSION = true ? "1.0.0" : DEV_VERSION;
31731
+ var PACKAGE_VERSION = true ? "1.1.1" : DEV_VERSION;
31618
31732
  var isReleaseBuild = PACKAGE_VERSION !== DEV_VERSION;
31619
31733
 
31620
31734
  // src/bridge/daemon.ts
@@ -31656,12 +31770,12 @@ var Daemon = class {
31656
31770
  }
31657
31771
  const sockPath = this.opts.sockPath;
31658
31772
  try {
31659
- mkdirSync3(dirname2(sockPath), { recursive: true, mode: 448 });
31773
+ mkdirSync3(dirname3(sockPath), { recursive: true, mode: 448 });
31660
31774
  if (existsSync3(sockPath)) unlinkSync(sockPath);
31661
31775
  this.uds = createServer((sock) => this.onClient(sock));
31662
- await new Promise((resolve3, reject) => {
31776
+ await new Promise((resolve4, reject) => {
31663
31777
  this.uds.once("error", reject);
31664
- this.uds.listen(sockPath, () => resolve3());
31778
+ this.uds.listen(sockPath, () => resolve4());
31665
31779
  });
31666
31780
  chmodSync(sockPath, 384);
31667
31781
  } catch (e) {
@@ -31859,9 +31973,9 @@ var UdsClient = class {
31859
31973
  sock.destroy();
31860
31974
  }
31861
31975
  tryConnect() {
31862
- return new Promise((resolve3, reject) => {
31976
+ return new Promise((resolve4, reject) => {
31863
31977
  const s = connect(this.opts.sockPath);
31864
- s.once("connect", () => resolve3(s));
31978
+ s.once("connect", () => resolve4(s));
31865
31979
  s.once("error", reject);
31866
31980
  });
31867
31981
  }
@@ -31889,12 +32003,12 @@ var UdsClient = class {
31889
32003
  send(sock, kind, frame, overrideTimeoutMs) {
31890
32004
  const id = String(++this.seq);
31891
32005
  const timeoutMs = overrideTimeoutMs ?? this.opts.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
31892
- return new Promise((resolve3, reject) => {
32006
+ return new Promise((resolve4, reject) => {
31893
32007
  const timer = setTimeout(() => {
31894
32008
  this.pending.delete(id);
31895
32009
  reject(new Error(`daemon did not respond to ${kind} in ${timeoutMs}ms`));
31896
32010
  }, timeoutMs);
31897
- this.pending.set(id, { resolve: resolve3, reject, timer, sock });
32011
+ this.pending.set(id, { resolve: resolve4, reject, timer, sock });
31898
32012
  sock.write(encodeFrame({ id, ...frame }));
31899
32013
  });
31900
32014
  }
@@ -31911,7 +32025,7 @@ var UdsClient = class {
31911
32025
  };
31912
32026
  var shutdownSeq = 0;
31913
32027
  function requestDaemonShutdown(sockPath, timeoutMs = 2e3) {
31914
- return new Promise((resolve3) => {
32028
+ return new Promise((resolve4) => {
31915
32029
  const s = connect(sockPath);
31916
32030
  const id = `shutdown-${++shutdownSeq}`;
31917
32031
  let done = false;
@@ -31924,7 +32038,7 @@ function requestDaemonShutdown(sockPath, timeoutMs = 2e3) {
31924
32038
  s.destroy();
31925
32039
  } catch {
31926
32040
  }
31927
- resolve3(v);
32041
+ resolve4(v);
31928
32042
  };
31929
32043
  timer = setTimeout(() => finish(false), timeoutMs);
31930
32044
  timer.unref?.();
@@ -32009,7 +32123,7 @@ import { join as join7 } from "node:path";
32009
32123
  // src/tools/help.ts
32010
32124
  import { fileURLToPath as fileURLToPath2 } from "node:url";
32011
32125
  var API_NOTES = fileURLToPath2(new URL("../../docs/api-notes.md", import.meta.url));
32012
- var HELP = '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?`, `type?` (\u0442\u043E\u043B\u044C\u043A\u043E `"finish_start"`, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438) | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB,\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' ? '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?`, `type?` (\u0442\u043E\u043B\u044C\u043A\u043E `"finish_start"`, \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0438) | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `changed` |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB,\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' : load();
32126
+ var HELP = '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F; `warning` \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0440\u0430\u0437\u0440\u043E\u0441\u0448\u0430\u044F\u0441\u044F \u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A (\xA75.5) | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \xAB\u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C\xBB \u2014 \u0435\u0441\u043B\u0438 \u0443 `dependentId` \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C (\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439); \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430: \u0441\u043D\u044F\u0442\u044C \u0441 \u0434\u043E\u0441\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0438 \u0443\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0430\u044F \u0441\u0442\u0430\u0434\u0438\u044F \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u0432 UI); \u0437\u0430\u0434\u0430\u0447\u0443, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u0442\u043E\u0436\u0435 \u0441\u043D\u0438\u043C\u0430\u0435\u0442 \u0441 \u0434\u043E\u0441\u043A\u0438 \u0438, \u0435\u0441\u043B\u0438 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `stageId`, `changed`, `board`. \u0411\u044D\u043A\u043B\u043E\u0433 \u0438 \u0441\u0442\u0430\u0434\u0438\u044F \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0441\u043D\u044F\u0442\u0438\u0435 \u0441 \u0434\u043E\u0441\u043A\u0438 (`board`) \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0432\u0435\u0442 Bitrix \u2014 \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A \u0434\u043E\u0441\u043A\u0435 \u043D\u0435 \u043E\u0442\u0434\u0430\u0451\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E \u0447\u0442\u0435\u043D\u0438\u0435 |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB\n (\u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u044B\u0437\u043E\u0432\u0430 \u2014 \u0435\u0449\u0451 \u0438 \xAB\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u2026\xBB: \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u043E),\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u041C\u043E\u0441\u0442 \u043D\u0438\u0447\u0435\u0433\u043E \u0438\u0437 `downloads/` \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442. \u041A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B\u044B \u043F\u0430\u043F\u043A\u0438 \u0432 \u0441\u0443\u043C\u043C\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 500 \u041C\u0411, \u043E\u0442\u0432\u0435\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439,\n\u0437\u0430\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0445 \u0444\u0430\u0439\u043B \u0432 \u044D\u0442\u0443 \u043F\u0430\u043F\u043A\u0443 (`bitrix_file_download`, `bitrix_call_recording`, `bitrix_call_detail` \u0438\n`bitrix_task_comments` \u2014 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0434\u0432\u0435, \u043A\u043E\u0433\u0434\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438 \u0444\u0430\u0439\u043B; \u0441 `savePath` \u0432\u043D\u0435 \u043F\u0430\u043F\u043A\u0438 \u2014 \u043D\u0435\u0442), \u0438\n`bitrix_status` \u043D\u0435\u0441\u0443\u0442 `warning` \xAB\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 \u2026 \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 N \u041C\u0411 \u2014\n\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B\u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 \u044D\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' ? '# Bitrix24 API notes (reverse-engineered)\n\n\u041A\u0430\u043A \u0430\u0433\u0435\u043D\u0442\u0443 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0441 Bitrix24 \u0447\u0435\u0440\u0435\u0437 \u044D\u0442\u043E\u0442 \u043C\u043E\u0441\u0442: \u0444\u043E\u0440\u043C\u0430\u0442 `params`, \u0438\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439, \u0433\u043E\u0442\u043E\u0432\u044B\u0435 \u0446\u0435\u043F\u043E\u0447\u043A\u0438 \u0432\u044B\u0437\u043E\u0432\u043E\u0432.\n\n\u0414\u0432\u0435 \u043F\u043E\u0432\u0435\u0440\u0445\u043D\u043E\u0441\u0442\u0438 API. **\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0439 REST** (`tasks.task.*`, `im.recent.list`, `im.user.get`, `im.chat.get`,\n`socialnetwork.api.workgroup.*`) \u2014 \u0435\u0441\u0442\u044C \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0435 \u0434\u043E\u043A\u0438, \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u043D\u0438\u0445 \u043F\u043E\u043C\u0435\u0447\u0435\u043D\u044B **\u{1F4D6}**\n([`apidocs.bitrix24.com`](https://apidocs.bitrix24.com); \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 MCP context7 \u2014 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\n`/bitrix24/b24restdocs`). **\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0435 ajax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B** (`im.v2.*`, `tasks.v2.*`, `ui.entityselector.*`)\n\u043F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u043E\u043A\u043E\u0432 \u043D\u0435 \u0438\u043C\u0435\u044E\u0442 \u2014 \u0432\u0441\u0451 \u043D\u0438\u0436\u0435 \u0434\u043E\u0431\u044B\u0442\u043E \u0436\u0438\u0432\u044B\u043C \u0440\u0435\u0432\u0435\u0440\u0441\u043E\u043C; \u043A\u043E\u043D\u0432\u0435\u0440\u0442 \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043F\u043E\u043B\u0435\u0439 \u0443 \u043D\u0438\u0445 \u043C\u043E\u0433\u0443\u0442\n\u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F \u043E\u0442 \u{1F4D6}-\u0430\u043D\u0430\u043B\u043E\u0433\u043E\u0432. \u0418\u043C\u0435\u043D\u0430 \u043F\u043E\u043B\u0435\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B \u0434\u043B\u044F \u043E\u0431\u043B\u0430\u0447\u043D\u043E\u0433\u043E Bitrix24; \u043D\u0430 \u0434\u0440\u0443\u0433\u043E\u043C \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\n\u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043B\u0438\u0447\u0430\u0442\u044C\u0441\u044F.\n\n---\n\n## 1. \u041A\u0430\u043A \u0432\u044B\u0437\u044B\u0432\u0430\u0442\u044C\n\n- **\u041A\u0430\u0436\u0434\u044B\u0439 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 `bitrix_*` \u2014 \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043C\u043E\u0441\u0442\u0430** \u0441 \u0442\u0438\u043F\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u043C\u0438\n (`taskId`, `chatId`, `query`, \u2026) \u0438 \u0440\u0430\u0437\u0443\u043C\u043D\u044B\u043C\u0438 \u0434\u0435\u0444\u043E\u043B\u0442\u0430\u043C\u0438; \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \xA73 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F MCP-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.\n \u0412\u044B\u0437\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u044B\u0439 \u043C\u0435\u0442\u043E\u0434 Bitrix \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438.\n- **`params`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0431\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u2014 \u043F\u043E\u043C\u0435\u0442\u043A\u0430 \xAB+ `params`\xBB \u0432 \xA73) \u2014 \u043E\u0431\u044A\u0435\u043A\u0442 \u0432\n **\u043D\u0430\u0442\u0438\u0432\u043D\u043E\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0435 Bitrix** (`select`/`filter`/`order`/\u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F, \xA74). \u041E\u043D \u043C\u0435\u0440\u0436\u0438\u0442\u0441\u044F **\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u043C** \u0438\n \u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u0434\u0435\u0444\u043E\u043B\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438. \u041A\u043B\u044E\u0447\u0438 `action`, `c`, `mode`, `sessid` \u0432 `params` \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u0438\u0445 \u0437\u0430\u0434\u0430\u0451\u0442\n \u0441\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F; \u0432\u044B\u0437\u043E\u0432 \u0441 \u043D\u0438\u043C\u0438 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `invalid arguments\u2026`, \u0437\u0430\u043F\u0440\u043E\u0441 \u043D\u0435 \u0443\u0439\u0434\u0451\u0442.\n- **`portal`** (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439, \u0443 \u0432\u0441\u0435\u0445) \u2014 alias \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u043F\u043E\u0440\u0442\u0430\u043B \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A.\n- \u0423 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0435\u0441\u0442\u044C \u0434\u0435\u0444\u043E\u043B\u0442\u044B (\u043D\u0430\u043F\u0440. `bitrix_tasks_list` \u0441\u043E\u0440\u0442\u0438\u0440\u0443\u0435\u0442 `{"ID":"desc"}`) \u2014 \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u0435\u0448\u044C \u0432\u044B\u0434\u0430\u0447\u0438\n \u0441 \u0440\u0430\u0437\u043D\u044B\u043C\u0438 `params`, \u0437\u0430\u0434\u0430\u0432\u0430\u0439 `order` \u044F\u0432\u043D\u043E.\n- **\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435** \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 (\u26A0 \u0432 \xA73, \u043F\u043E\u043B\u043D\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u043F\u043E\u0441\u043B\u0435 \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043C\u0435\u043D\u044F\u044E\u0442 \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043E\u043D\u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B; \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0438\u0445\n \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u043C \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u2014 \u0442\u043E\u0433\u0434\u0430 \u0432\u044B\u0437\u043E\u0432 \u0432\u0435\u0440\u043D\u0451\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 `operation <\u0438\u043C\u044F> changes data, but mutations are\n disabled\u2026`; \u044D\u0442\u043E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u043E\u0431\u043E\u0439\u0442\u0438 \u0435\u0451 \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0441\u043E\u043E\u0431\u0449\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E. \u0412\u043A\u043B\u044E\u0447\u0435\u043D\u044B \u043B\u0438 \u043E\u043D\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u2014\n \u043F\u043E\u043B\u0435 `mutations` \u0432 `bitrix_status`. \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442.\n- \u041E\u0442\u0432\u0435\u0442 `invalid_csrf` / `invalid_authentication` = \u0441\u0435\u0441\u0441\u0438\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u2192 \u043F\u0435\u0440\u0435\u043B\u043E\u0433\u0438\u043D\u044C\u0441\u044F \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435\n \u043D\u0430 \u0432\u043A\u043B\u0430\u0434\u043A\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u0430.\n\n---\n\n## 2. \u0424\u043E\u0440\u043C\u0430\u0442 \u043E\u0442\u0432\u0435\u0442\u0430\n\nAjax-\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u044B (`/bitrix/services/main/ajax.php`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442 HTTP 200 \u0441 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u043C:\n\n```jsonc\n{ "status": "success" | "error",\n "data": { ... },\n "errors": [] } // \u041F\u0423\u0421\u0422\u041E\u0419 \u043C\u0430\u0441\u0441\u0438\u0432 \u043F\u0440\u0438 \u0443\u0441\u043F\u0435\u0445\u0435! (\u0432 JS [] \u2014 truthy)\n```\n\n\u0423\u0441\u043F\u0435\u0445 = `status:"success"` \u0438/\u0438\u043B\u0438 **\u043F\u0443\u0441\u0442\u043E\u0439** `errors`. \u041D\u0435\u043F\u0443\u0441\u0442\u043E\u0439 `errors` / `status:"error"` / top-level\n`error` \u2014 \u0440\u0435\u0430\u043B\u044C\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043C\u043E\u0441\u0442 \u043C\u0430\u043F\u043F\u0438\u0442 \u0435\u0451 \u0432 `ok:false`). REST-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u044B (`/rest/*.json`) \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n\u0438\u043D\u0430\u0447\u0435: `{ "result": \u2026, "next", "total", "time" }` \u2014 \u0431\u0435\u0437 `errors`.\n\n---\n\n## 3. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B: \u0447\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 \u2192 \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B\n\n`params` \u0432 \u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0435\u0442\u0441\u044F \u2014 \u043E\u043D \u0435\u0441\u0442\u044C \u0443 \u0432\u0441\u0435\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043F\u043E\u043C\u0435\u0442\u043A\u043E\u0439 \xAB+ `params`\xBB (\xA71). \u0424\u043E\u0440\u043C\u0430\n`params` \u0440\u0430\u0437\u043B\u0438\u0447\u0430\u0435\u0442\u0441\u044F \u043F\u043E \u043C\u0435\u0442\u043E\u0434\u0443: \u0433\u0434\u0435-\u0442\u043E \u043F\u043B\u043E\u0441\u043A\u043E, \u0433\u0434\u0435-\u0442\u043E \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u043E, \u0433\u0434\u0435-\u0442\u043E \u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E \u0432 `params[\u2026]` \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\xABparams / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F\xBB \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0442\u043E\u0447\u043D\u0443\u044E \u0444\u043E\u0440\u043C\u0443 (\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0442\u0435\u043B\u0430 \u043C\u043E\u0441\u0442 \u0431\u0435\u0440\u0451\u0442 \u043D\u0430 \u0441\u0435\u0431\u044F).\n\n| \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 | \u0427\u0442\u043E \u0434\u0435\u043B\u0430\u0435\u0442 | \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B | params / \u043F\u0430\u0433\u0438\u043D\u0430\u0446\u0438\u044F |\n|---|---|---|---|\n| `bitrix_help` | \u044D\u0442\u0430 \u0441\u043F\u0440\u0430\u0432\u043A\u0430 | \u2014 | \u2014 |\n| `bitrix_status` | \u043A\u0430\u043A\u0438\u0435 \u043F\u043E\u0440\u0442\u0430\u043B\u044B \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0438 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u0432\u0435\u0440\u0441\u0438\u0438 \u043C\u043E\u0441\u0442\u0430 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F; `warning` \u2014 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u0440\u0430\u0437\u0440\u043E\u0441\u0448\u0430\u044F\u0441\u044F \u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A (\xA75.5) | \u2014 | \u2014 |\n| *\u0417\u0430\u0434\u0430\u0447\u0438* | | | |\n| `bitrix_tasks_list` | \u0441\u043F\u0438\u0441\u043E\u043A \u0437\u0430\u0434\u0430\u0447 | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `filter{RESPONSIBLE_ID,REAL_STATUS,GROUP_ID,\u2026}`, `select[]`, `order{}`; **`PAGEN_1`** \u2014 \u043D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (1, 2, 3\u2026), \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 = 20 \u0437\u0430\u0434\u0430\u0447; `start` **\u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442** (\u0432\u0435\u0440\u043D\u0451\u0442 \u0442\u0443 \u0436\u0435 \u043F\u0435\u0440\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443) |\n| `bitrix_task_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0432 \u0442.\u0447. `CHAT_ID`) | `taskId` + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]` |\n| `bitrix_task_get_v2` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_scrum_info` | \u0441\u043F\u0440\u0438\u043D\u0442 / \u044D\u043F\u0438\u043A / story points \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | \u2014 |\n| `bitrix_task_files` | \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u0441\u044B\u043B\u043A\u0438 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F) | `ids[]` \u2014 id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** (\xA74), \u043D\u0435 \u0437\u0430\u0434\u0430\u0447 + `params` | `downloadUrl` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u2014 \u0434\u043E\u043F\u0438\u0448\u0438 origin \u043F\u043E\u0440\u0442\u0430\u043B\u0430 |\n| `bitrix_task_views_count` | \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 | `taskId` + `params` | \u2014 |\n| `bitrix_task_subtasks` / `bitrix_task_related` | \u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0438 / \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskId` + `params` | `navigation{size}` (\u0434\u0435\u0444\u043E\u043B\u0442 10) |\n| `bitrix_task_comments` | \u0441\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C), \xA75.6 | `taskId`, `limit?`, `maxPages?`, `beforeId?`, `output?` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_task_description_set` \u26A0 | **\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C (`""` \u2014 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 BBCode \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F (\u043D\u0438\u0436\u0435); \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_append` \u26A0 | **\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u044C** \u0432 \u043A\u043E\u043D\u0435\u0446 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F \u0447\u0435\u0440\u0435\u0437 \u043F\u0443\u0441\u0442\u0443\u044E \u0441\u0442\u0440\u043E\u043A\u0443; \u0441\u0442\u0430\u0440\u043E\u0435 (\u0444\u0430\u0439\u043B\u044B `[disk file id=\u2026]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B) \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442 | `taskId`, `text` (\u2264 100 000) | \u0431\u0435\u0437 `params`; \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F, \u043E\u0442\u0432\u0435\u0442 `{ taskId, length }` |\n| `bitrix_task_description_replace` \u26A0 | **\u0442\u043E\u0447\u0435\u0447\u043D\u0430\u044F \u043F\u0440\u0430\u0432\u043A\u0430** \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u044F: \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 `find` \u2192 `replace` (`""` \u2014 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442), \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u0430\u043A \u0431\u044B\u043B\u043E | `taskId`, `find`, `replace`, `all?` | \u0431\u0435\u0437 `params`; `find` \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u044B\u0440\u043E\u0433\u043E BBCode (`bitrix_task_get_v2` \u2192 `description`), \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043E\u043C \u0438 \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u0430\u043C\u0438 \u0441\u0442\u0440\u043E\u043A. \u041D\u0435\u0442 \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u0438\u043B\u0438 \u0438\u0445 \u0431\u043E\u043B\u044C\u0448\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0431\u0435\u0437 `all: true` \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E. \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, replaced, length }` |\n| `bitrix_task_tags` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0442\u0435\u0433\u0438** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `tags`, `changed` |\n| `bitrix_task_checklist` | **\u0447\u0435\u043A-\u043B\u0438\u0441\u0442** \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043B\u043E\u0441\u043A\u0438\u043C \u0441\u043F\u0438\u0441\u043A\u043E\u043C `{ taskId, items: [{ id, parentId, title, done }] }` | `taskId` | \u0431\u0435\u0437 `params`; `parentId: 0` \u2014 \u0433\u0440\u0443\u043F\u043F\u0430, \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0443\u043D\u043A\u0442\u044B \u0433\u0440\u0443\u043F\u043F\u044B `parentId` |\n| `bitrix_task_checklist_edit` \u26A0 | \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0447\u0435\u043A-\u043B\u0438\u0441\u0442: \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C, \u043F\u0435\u0440\u0435\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u044C, \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C / \u0441\u043D\u044F\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443, \u0443\u0434\u0430\u043B\u0438\u0442\u044C | `taskId`, `add[]?` (\u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F), `rename[{ itemId, title }]?`, `complete[]?`, `reopen[]?`, `remove[]?` | \u0431\u0435\u0437 `params`; id \u2014 \u0438\u0437 `bitrix_task_checklist`; \u2264 50 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0437\u0430 \u0432\u044B\u0437\u043E\u0432; \u043E\u0442\u0432\u0435\u0442 `{ taskId, added, items }` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_plan` \u26A0 | **\u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435** \u0434\u0430\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u0430 / \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F | `taskId`, `start?`, `end?` \u2014 \u0434\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435) \u0438\u043B\u0438 `null` (\u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C) | \u0431\u0435\u0437 `params`; \u0445\u043E\u0442\u044F \u0431\u044B \u043E\u0434\u043D\u0430; \u043D\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0430\u044F \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043A\u0430\u043A \u0435\u0441\u0442\u044C; `start` \u043D\u0435 \u043F\u043E\u0437\u0436\u0435 `end`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, start, end }` |\n| `bitrix_task_priority` \u26A0 | **\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C**: `high` \u2014 \xAB\u0412\u0430\u0436\u043D\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430\xBB, `average` \u2014 \u043E\u0431\u044B\u0447\u043D\u0430\u044F | `taskIds[]` (1\u201350), `priority` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `priority` |\n| `bitrix_task_deadline` \u26A0 | **\u043A\u0440\u0430\u0439\u043D\u0438\u0439 \u0441\u0440\u043E\u043A** | `taskIds[]` (1\u201350), `deadline` \u2014 \u0434\u0430\u0442\u0430 \u0438\u043B\u0438 `null` (\u0443\u0431\u0440\u0430\u0442\u044C), `reason?` (\u043F\u0440\u0438\u0447\u0438\u043D\u0430 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 \u2264 1000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `deadline` |\n| `bitrix_task_close` \u26A0 | **\u0437\u0430\u043A\u0440\u044B\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443; Definition of Done \u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u2014 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430, \xA75.7 | `taskId`; \u0448\u0430\u0433 2 \u2014 \u043F\u043B\u044E\u0441 `typeId`, `confirmItems: true` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, status, changed, typeId? }` \u0438\u043B\u0438 `{ taskId, needsConfirmation: true, types }` |\n| `bitrix_task_reopen` \u26A0 | **\u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C** \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `status`, `changed` |\n| `bitrix_task_result_add` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** \u0437\u0430\u0434\u0430\u0447\u0430\u043C: \u0437\u0430\u043A\u0440\u0435\u043F\u043B\u0451\u043D \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435, \u0430\u043D\u043E\u043D\u0441 \u0432 \u0447\u0430\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u0435 `resultId` |\n| `bitrix_task_file_attach` \u26A0 | \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C **\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B** \u043A \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.8 | `taskId`, `path` (\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439), `name?` | \u0431\u0435\u0437 `params`; \u0444\u0430\u0439\u043B \u2264 10 \u041C\u0411 \u0443\u0445\u043E\u0434\u0438\u0442 \u043D\u0430 \u0414\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, diskFileId, name, size, attachmentId }` |\n| `bitrix_task_mute` \u26A0 | \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`true`) / \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C (`false`) **\u0441\u0432\u043E\u0438** \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435 | `taskId`, `muted` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, muted }` |\n| `bitrix_task_reminders` | \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435, \xA75.9 | `taskId` | \u0431\u0435\u0437 `params` |\n| `bitrix_task_reminder_set` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0432\u043E\u0451 (`reminderId`) | `taskId`, `at` (\u0434\u0430\u0442\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C), `via` (`notification` \\| `email`), `reminderId?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminder }` |\n| `bitrix_task_reminder_delete` \u26A0 | \u0443\u0434\u0430\u043B\u0438\u0442\u044C **\u0441\u0432\u043E\u0451** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 | `taskId`, `reminderId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, reminderId, deleted: true }` |\n| *\u0423\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_delegate` \u26A0 | **\u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u0442\u044C**: `userId` \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u043C | `taskIds[]` (1\u201350), `userId` | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u0435 `responsibleId` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D) |\n| `bitrix_task_accomplices` / `bitrix_task_auditors` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439** / **\u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439** | `taskIds[]` (1\u201350), `add[]?`, `remove[]?` \u2014 userId | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `accomplices` / `auditors` (\u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u044B), `changed` |\n| `bitrix_user_find` | \u043D\u0430\u0439\u0442\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E \u0444\u0430\u043C\u0438\u043B\u0438\u0438 `[{ id, name, lastName, active, workPosition }]` | `lastName` | \u0431\u0435\u0437 `params`; \u0432 \u0432\u044B\u0434\u0430\u0447\u0435 \u0438 **\u043D\u0435\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435** (\u0443\u0432\u043E\u043B\u0435\u043D\u043D\u044B\u0435, `active: false`) \u2014 \u043D\u0435 \u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439 \u0438\u0445 \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u0421\u0432\u044F\u0437\u0438 \u0437\u0430\u0434\u0430\u0447* | | | |\n| `bitrix_task_related_edit` \u26A0 | \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C / \u0443\u0431\u0440\u0430\u0442\u044C **\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435** \u0437\u0430\u0434\u0430\u0447\u0438 (\u0431\u043B\u043E\u043A \xAB\u0421\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438\xBB) | `taskId`, `add[]?`, `remove[]?` \u2014 id \u0437\u0430\u0434\u0430\u0447 | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, related, changed }`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u043E 100 \u0438 \u0431\u043E\u043B\u0435\u0435 \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u044B\u043C\u0438 \u043D\u0435 \u043F\u0440\u0430\u0432\u044F\u0442\u0441\u044F |\n| `bitrix_task_parent` \u26A0 | \u0441\u0434\u0435\u043B\u0430\u0442\u044C **\u043F\u043E\u0434\u0437\u0430\u0434\u0430\u0447\u0435\u0439** \u0437\u0430\u0434\u0430\u0447\u0438 `parentId`; `null` \u2014 \u043E\u0442\u0432\u044F\u0437\u0430\u0442\u044C \u043E\u0442 \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F | `taskId`, `parentId` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0432\u0435\u0442 `{ taskId, parentId, previousParentId, changed }` |\n| `bitrix_task_gantt_link` \u26A0 | \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 \xAB\u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u0435 \u2192 \u043D\u0430\u0447\u0430\u043B\u043E\xBB: `dependentId` \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F `taskId` | `taskId`, `dependentId`, `remove?` | \u0431\u0435\u0437 `params`; \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u0443\u044E \u0441\u0432\u044F\u0437\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043F\u043E \u043F\u0440\u0438\u0437\u043D\u0430\u043A\u0443 \xAB\u0443 `dependentId` \u0435\u0441\u0442\u044C \u0441\u0432\u044F\u0437\u0438 \u0413\u0430\u043D\u0442\u0430\xBB: `confirmed: true` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u043E, `confirmed: false` + `note` \u2014 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F (\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0438 / \u043E\u0441\u0442\u0430\u043B\u0438\u0441\u044C \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0432\u044F\u0437\u0438); \u043D\u0435\u0442 \u0441\u0432\u044F\u0437\u0435\u0439 \u043F\u043E\u0441\u043B\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430; \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0441\u0432\u044F\u0437\u0438 Bitrix \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442 \u043A\u0430\u043A \xAB\u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0443\u044E \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u044C\xBB \u2014 \u0435\u0441\u043B\u0438 \u0443 `dependentId` \u0443\u0436\u0435 \u0431\u044B\u043B\u0438 \u0441\u0432\u044F\u0437\u0438, \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u043A\u0430\u0436\u0435\u0442, \u0447\u0442\u043E \u044D\u0442\u0430 \u0441\u0432\u044F\u0437\u044C, \u0441\u043A\u043E\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043E, \u0443\u0436\u0435 \u0435\u0441\u0442\u044C (\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439); \u043E\u0442\u0432\u0435\u0442 `{ taskId, dependentId, linked, confirmed, note? }` |\n| *Scrum* | | | |\n| `bitrix_sprint_columns` | \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0434\u043E\u0441\u043A\u0438 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430 `[{ id, name, type }]` | `groupId` (= `GROUP_ID` \u0437\u0430\u0434\u0430\u0447\u0438) | \u0431\u0435\u0437 `params`; `type` \u2014 `NEW`/`WORK`/`FINISH`, \u0443 \u0441\u0432\u043E\u0438\u0445 \u043A\u043E\u043B\u043E\u043D\u043E\u043A \u043F\u0443\u0441\u0442\u043E\u0439; \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 `FINISH` \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435 \u0441\u0442\u0430\u0432\u044F\u0442 |\n| `bitrix_task_move` \u26A0 | \u043F\u0435\u0440\u0435\u043D\u0435\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 | `taskIds[]` (1\u201350), `column` (id \u0438\u043B\u0438 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435, \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 (\u043D\u0438\u0436\u0435), \u043F\u043E\u043B\u044F `stageId`, `column`, `status` \u2014 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 |\n| `bitrix_task_to_sprint` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 **\u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E** \u0441\u043F\u0440\u0438\u043D\u0442\u0430: \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u2014 \u0432 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443, \u0443\u0436\u0435 \u0441\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u043D\u0451\u043C \u2014 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 | `taskIds[]` (1\u201350), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `sprintId`, `stageId`, `column`, `status`, `fromBacklog`; \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_task_to_backlog` \u26A0 | \u0432\u0435\u0440\u043D\u0443\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 **\u0431\u044D\u043A\u043B\u043E\u0433** \u043F\u0440\u043E\u0435\u043A\u0442\u0430: \u0441\u043D\u044F\u0442\u044C \u0441 \u0434\u043E\u0441\u043A\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430 \u0438 \u0443\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u0441\u0442\u0430\u0440\u0442\u043E\u0432\u0430\u044F \u0441\u0442\u0430\u0434\u0438\u044F \u043A\u0430\u043D\u0431\u0430\u043D\u0430 \u043F\u0440\u043E\u0435\u043A\u0442\u0430, \u043A\u0430\u043A \u0432 UI); \u0437\u0430\u0434\u0430\u0447\u0443, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435, \u0442\u043E\u0436\u0435 \u0441\u043D\u0438\u043C\u0430\u0435\u0442 \u0441 \u0434\u043E\u0441\u043A\u0438 \u0438, \u0435\u0441\u043B\u0438 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 | `taskIds[]` (1\u201350) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `backlogId`, `stageId`, `changed`, `board`. \u0411\u044D\u043A\u043B\u043E\u0433 \u0438 \u0441\u0442\u0430\u0434\u0438\u044F \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0441\u043D\u044F\u0442\u0438\u0435 \u0441 \u0434\u043E\u0441\u043A\u0438 (`board`) \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0432\u0435\u0442 Bitrix \u2014 \u043F\u0440\u0438\u0432\u044F\u0437\u043A\u0443 \u0437\u0430\u0434\u0430\u0447\u0438 \u043A \u0434\u043E\u0441\u043A\u0435 \u043D\u0435 \u043E\u0442\u0434\u0430\u0451\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E \u0447\u0442\u0435\u043D\u0438\u0435 |\n| `bitrix_task_create` \u26A0 | **\u0441\u043E\u0437\u0434\u0430\u0442\u044C** \u0437\u0430\u0434\u0430\u0447\u0443 \u0441\u0440\u0430\u0437\u0443 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0433\u043E \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u043A \xAB+\xBB \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 | `groupId`, `title` (\u2264 255, \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442), `column?` (\u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u2014 \u043A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `NEW`) | \u0431\u0435\u0437 `params`; \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F; \u043E\u0442\u0432\u0435\u0442 `{ taskId, sprintId, stageId, column }`; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043F\u043E\u043B\u044F \u2014 \u043F\u043E\u0442\u043E\u043C \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C\u0438 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C\u0438 |\n| *\u041F\u0440\u043E\u0435\u043A\u0442\u044B* | | | |\n| `bitrix_projects_list` | \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B / \u043F\u0440\u043E\u0435\u043A\u0442\u044B | + `params` | \u0432\u0435\u0440\u0445\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C: `select[]`, `order{}`, `filter{}`; `start` (\u0448\u0430\u0433 50; `start=(N-1)*50`, `-1` \u2014 \u043E\u0442\u0432\u0435\u0442 \u0431\u0435\u0437 `total`) \u{1F4D6} |\n| `bitrix_project_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438, `CHAT_ID`) | `groupId` + `params` | **\u043E\u0431\u0451\u0440\u043D\u0443\u0442\u043E**: `params[groupId]`, `params[select][]` |\n| *\u0427\u0430\u0442\u044B* | | | |\n| `bitrix_chats_recent` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438 (\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447) | + `params` | \u043F\u043B\u043E\u0441\u043A\u043E: `LIMIT`, `SKIP_OPENLINES`, `UNREAD_ONLY` |\n| `bitrix_recent_load` | \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438 (`tasksTask` \u2014 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447) | `section?`, `limit?`, `unread?`, `parentId?` + `params` | \u0434\u0430\u043B\u044C\u0448\u0435 \u2014 `bitrix_recent_tail` |\n| `bitrix_recent_tail` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0432\u0433\u043B\u0443\u0431\u044C | `lastMessageDate` (\u043A\u0443\u0440\u0441\u043E\u0440), `section?`, `limit?`, `unread?` + `params` | `lastMessageDate` |\n| `bitrix_chat_load` | \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442, \u043F\u0435\u0440\u0432\u044B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId` | `dialogId` \\| `chatId`, `messageLimit?` + `params` | \u2014 |\n| `bitrix_chat_get_dialog_id` | `externalId` \u2192 `dialogId` (\u043D\u0430\u043F\u0440. `"sg"+groupId`) | `externalId` + `params` | \u2014 |\n| `bitrix_chat_messages` | \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0447\u0430\u0442\u0430 | `chatId`, `limit?` + `params` | \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u2014 \u043D\u0430\u0437\u0430\u0434 **\u043D\u0435 \u043B\u0438\u0441\u0442\u0430\u0435\u0442**, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439 `bitrix_chat_history` |\n| `bitrix_chat_history` | \u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0447\u0430\u0442\u0430 \u0432\u0433\u043B\u0443\u0431\u044C | `chatId`, `beforeId?`, `limit?` + `params` | `beforeId` (\xA75.1) |\n| `bitrix_chat_mark_read` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | `chatId`, `ids[]`, `actionUuid?` + `params` | \u2014 |\n| `bitrix_chat_read_all` \u26A0 | \u043F\u043E\u043C\u0435\u0442\u0438\u0442\u044C **\u0432\u0441\u0435** \u0447\u0430\u0442\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C\u0438 | + `params` | \u2014 |\n| `bitrix_chat_send` \u26A0 | \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 (\u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430) | `chatId` \\| `dialogId` (\u0440\u043E\u0432\u043D\u043E \u043E\u0434\u043D\u043E), `text` (\u2264 20 000), `replyTo?` (id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 \u043E\u0442\u0432\u0435\u0442 \u043D\u0430 \u043D\u0435\u0433\u043E) | \u0431\u0435\u0437 `params`; \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u2014 \u043F\u043E\u0434\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u043E \u0447\u0430\u0442\u0430 (\u043D\u0438\u0436\u0435); \u043E\u0442\u0432\u0435\u0442 `{ chatId?, dialogId, messageId }` |\n| `bitrix_chat_message_edit` \u26A0 | \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442 **\u0441\u0432\u043E\u0435\u0433\u043E** \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0446\u0435\u043B\u0438\u043A\u043E\u043C | `messageId`, `text` (\u2264 20 000, \u043D\u0435 \u043F\u0443\u0441\u0442\u043E\u0439) | \u0431\u0435\u0437 `params`; \u0447\u0443\u0436\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 Bitrix \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u0435 \u0434\u0430\u0441\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 |\n| `bitrix_chat_reaction` \u26A0 | \u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E \u043D\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 | `messageId`, `reaction` (\u043B\u0430\u0442\u0438\u043D\u0438\u0446\u0430; \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u044B `like` \u{1F44D}, `whiteHeavyCheckMark` \u2705) | \u0431\u0435\u0437 `params`; \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043C\u0435\u043D\u0430 \u0443\u0445\u043E\u0434\u044F\u0442 \u043A\u0430\u043A \u0435\u0441\u0442\u044C, \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 |\n| `bitrix_task_chat_post` \u26A0 | \u043E\u0434\u043D\u043E \u0438 \u0442\u043E \u0436\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 **\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447** (\u0447\u0430\u0442 \u043A\u0430\u0436\u0434\u043E\u0439 \u2014 \u043F\u043E \u0435\u0451 `CHAT_ID`) | `taskIds[]` (1\u201350), `text` (\u2264 20 000) | \u0431\u0435\u0437 `params`; \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442, \u043F\u043E\u043B\u044F `chatId`, `messageId`; \u0437\u0430\u0434\u0430\u0447\u0430 \u0431\u0435\u0437 \u0447\u0430\u0442\u0430 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 |\n| *\u041B\u044E\u0434\u0438 / \u043F\u043E\u0438\u0441\u043A* | | | |\n| `bitrix_user_get` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440\u0430 | `userId` + `params` | \u2014 |\n| `bitrix_entity_search` | \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439 \u043F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u043E\u0432 / \u043B\u044E\u0434\u0435\u0439 | `query`, `section?`, `dialog?` + `params` | \u2014 |\n| `bitrix_entity_selector` | \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0430 entityselector \u0441\u043E \u0441\u0432\u043E\u0438\u043C `dialog` | `dialog` + `params` | `{"dialog":{entities,preselectedItems,\u2026}}` |\n| `bitrix_entity_chat` | `chatId` \u0447\u0430\u0442\u0430, \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E \u043A \u043E\u0431\u044A\u0435\u043A\u0442\u0443 | `entityType`, `entityId` + `params` | \u2014 |\n| *\u0421\u043E\u0437\u0432\u043E\u043D\u044B \u0438 \u0444\u0430\u0439\u043B\u044B* | | | |\n| `bitrix_chat_calls` | \u0437\u0432\u043E\u043D\u043A\u0438 \u0432 \u0447\u0430\u0442\u0435 (`callId` + \u0440\u0435\u0437\u044E\u043C\u0435), \xA75.4 | `chatId`, `limit?`, `maxPages?`, `beforeId?` + `params` | `beforeId` \u2014 \u043A\u0443\u0440\u0441\u043E\u0440 |\n| `bitrix_call_detail` | \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443, \xA75.4 | `callId`, `transcript?` + `params` | \u2014 |\n| `bitrix_call_recording` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.5 | `callId`, `savePath?`, `overwrite?` | \u2014 |\n| `bitrix_file_download` | \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E\u0440\u0442\u0430\u043B\u0430 \u043D\u0430 \u0434\u0438\u0441\u043A, \xA75.5 | `url`, `savePath?`, `overwrite?` | \u2014 |\n\n**\u041C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (\u26A0) \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B:\n\n- \u0437\u0430\u0434\u0430\u0447\u0438: `bitrix_task_description_set`, `bitrix_task_description_append`,\n `bitrix_task_description_replace`, `bitrix_task_tags`, `bitrix_task_checklist_edit`, `bitrix_task_plan`,\n `bitrix_task_priority`, `bitrix_task_deadline`, `bitrix_task_close`, `bitrix_task_reopen`,\n `bitrix_task_result_add`, `bitrix_task_file_attach`, `bitrix_task_mute`, `bitrix_task_reminder_set`,\n `bitrix_task_reminder_delete`;\n- \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438: `bitrix_task_delegate`, `bitrix_task_accomplices`, `bitrix_task_auditors`;\n- \u0441\u0432\u044F\u0437\u0438: `bitrix_task_related_edit`, `bitrix_task_parent`, `bitrix_task_gantt_link`;\n- scrum: `bitrix_task_move`, `bitrix_task_to_sprint`, `bitrix_task_to_backlog`, `bitrix_task_create`;\n- \u0447\u0430\u0442\u044B: `bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_chat_reaction`, `bitrix_task_chat_post`,\n `bitrix_chat_mark_read`, `bitrix_chat_read_all`.\n\n\u0412\u044B\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (\u0430\u0433\u0435\u043D\u0442\u0443 \u044D\u0442\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E): `"mutations": false` \u0432 `config.json` \u043C\u043E\u0441\u0442\u0430, env\n`BITRIX_MCP_MUTATIONS=off` \u0443 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 daemon (\u043F\u0435\u0440\u0435\u043A\u0440\u044B\u0432\u0430\u0435\u0442 `config.json`) \u0438\u043B\u0438 `setup` \u2192 `[m]`. \u0422\u0435\u043A\u0443\u0449\u0435\u0435\n\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u2014 `bitrix_status` \u2192 `mutations`; \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u0430\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 \u0438\u0437 \xA71 \u0438 \u0432 Bitrix24 \u043D\u0435\n\u0443\u0445\u043E\u0434\u0438\u0442. `bitrix_task_comments` \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u0438 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u043C \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044F.\n\n**\u041A\u0430\u0436\u0434\u0430\u044F \u043C\u0443\u0442\u0430\u0446\u0438\u044F \u2014 \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F, \u0441\u0440\u0430\u0437\u0443 \u0438 \u0431\u0435\u0437 \u043E\u0442\u043C\u0435\u043D\u044B.** \u0414\u0435\u043B\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u043E \u0447\u0451\u043C \u043E\u043D \u043F\u0440\u043E\u0441\u0438\u043B; \u0435\u0441\u043B\u0438\n\u043F\u0440\u043E\u0441\u044C\u0431\u0430 \u0448\u0438\u0440\u0435 \u0438\u043B\u0438 \u043D\u0435\u043E\u0434\u043D\u043E\u0437\u043D\u0430\u0447\u043D\u0430 (\u043A\u043E\u0433\u043E \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C, \u043A\u0430\u043A\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C, \u043A\u0430\u043A\u043E\u0439 \u0444\u0430\u0439\u043B \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C) \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430\n\u0441\u043F\u0440\u043E\u0441\u0438. \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435, \u0443\u0448\u0435\u0434\u0448\u0435\u0435 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0443, \u043D\u0435 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F.\n\n**\u041F\u0430\u043A\u0435\u0442\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438** (`taskIds[]`, 1\u201350 id \u0431\u0435\u0437 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u0432: `bitrix_task_tags`, `bitrix_task_priority`,\n`bitrix_task_deadline`, `bitrix_task_reopen`, `bitrix_task_result_add`, `bitrix_task_delegate`,\n`bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_move`, `bitrix_task_to_sprint`,\n`bitrix_task_to_backlog`, `bitrix_task_chat_post`) \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u044E\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E \u043E\u0447\u0435\u0440\u0435\u0434\u0438 \u0438 \u043E\u0442\u0432\u0435\u0447\u0430\u044E\u0442\n`{ results: [{ taskId, ok, error?, \u2026\u043F\u043E\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 }] }` \u0432 \u043F\u043E\u0440\u044F\u0434\u043A\u0435 `taskIds`. \u041E\u0448\u0438\u0431\u043A\u0430 \u043E\u0434\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n(`ok: false`, \u0442\u0435\u043A\u0441\u0442 \u0432 `error`) \u043D\u0435 \u043E\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044F\u0439 `ok` \u0443 \u043A\u0430\u0436\u0434\u043E\u0439. \u0421\u0430\u043C\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\n\u043F\u0430\u0434\u0430\u0435\u0442 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430 \u043D\u0435\u0432\u0435\u0440\u043D\u044B\u0445 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u0430\u0445 (\u0438 \u043D\u0430 \u043A\u043E\u043B\u043E\u043D\u043A\u0435 \u0442\u0438\u043F\u0430 `FINISH` \u0443 `bitrix_task_move` /\n`_to_sprint` \u2014 \u0442\u043E\u0433\u0434\u0430 \u043D\u0435 \u0442\u0440\u043E\u043D\u0443\u0442\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430). \u0411\u043B\u0438\u0436\u0435 \u043A \u043A\u043E\u043D\u0446\u0443 \u043E\u0442\u0432\u0435\u0434\u0451\u043D\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u0430\u043A\u0435\u0442 \u043F\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442\n\u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u043E\u043D\u0438 \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 \u0441 `ok: false` \u0438 \xAB\u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u043F\u0430\u043A\u0435\u0442\u0430\u2026\xBB \u2014 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\n\u0442\u043E\u043B\u044C\u043A\u043E \u0438\u0445, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0432 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435. \u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043D\u0435\u0438\u0434\u0435\u043C\u043F\u043E\u0442\u0435\u043D\u0442\u043D\u044B: \u043F\u043E\u0432\u0442\u043E\u0440 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C.\n\n**\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u2014 \u043D\u0435 \u043F\u043E\u0432\u043E\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0442\u044C \u0432\u0441\u043B\u0435\u043F\u0443\u044E.** \u0411\u043E\u043B\u044C\u0448\u0438\u043D\u0441\u0442\u0432\u043E \u043C\u0443\u0442\u0430\u0446\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442 \u0442\u043E, \u0447\u0442\u043E\n\u0437\u0430\u043F\u0438\u0441\u0430\u043B\u0438, \u0438 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u043E\u0448\u0438\u0431\u043A\u0438 \u0432\u0438\u0434\u043D\u043E, \u0447\u0442\u043E \u0441\u043B\u0443\u0447\u0438\u043B\u043E\u0441\u044C:\n\n- \xAB\u2026\u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0437\u0430\u043F\u0438\u0441\u0430\u043D\u043E / \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E\xBB, \u043E\u0448\u0438\u0431\u043A\u0438 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432\n (`invalid arguments\u2026`) \u2014 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043D\u0430 \u0437\u0430\u043F\u0438\u0441\u044C \u043D\u0435 \u0431\u044B\u043B\u043E; \u043F\u043E\u043F\u0440\u0430\u0432\u044C \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u0432\u044B\u0437\u044B\u0432\u0430\u0439 \u0441\u043D\u043E\u0432\u0430.\n- \xAB\u0437\u0430\u043F\u0438\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C (\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 \u2026)\xBB \u0438 \u0435\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B (\xAB\u043F\u0435\u0440\u0435\u043D\u043E\u0441 /\n \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 / \u0437\u0430\u043A\u0440\u044B\u0442\u0438\u0435 / \u0432\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E, \u043D\u043E \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB) \u2014 \u0437\u0430\u043F\u0438\u0441\u044C \u0443\u0448\u043B\u0430,\n \u0430 \u0438\u0442\u043E\u0433 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D: \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u043C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u043C, \u043D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439.\n- \xAB\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0443\u0439\u0442\u0438\xBB, \xAB\u0437\u0430\u0434\u0430\u0447\u0430 \u043C\u043E\u0433\u043B\u0430 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043C\u043E\u0433 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C\u0441\u044F\xBB, \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB, \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB, \xAB\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014\n \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u043E\u0433 \u0432\u0441\u0451 \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u043D\u043E \u043E\u0442\u0432\u0435\u0442\u0430 \u043D\u0435 \u0434\u0430\u043B (\u0442\u0430\u0439\u043C\u0430\u0443\u0442, \u043D\u0435\u043E\u0436\u0438\u0434\u0430\u043D\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442): \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C (\u0447\u0430\u0442, \u0434\u043E\u0441\u043A\u0430\n \u0441\u043F\u0440\u0438\u043D\u0442\u0430, \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_get_v2`, \u0414\u0438\u0441\u043A, \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438, `bitrix_task_reminders`), \u043F\u043E\u0432\u0442\u043E\u0440 \u0431\u0435\u0437\n \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0441\u0442 \u0434\u0443\u0431\u043B\u044C (\u0430 `bitrix_task_description_append` \u0434\u043E\u043F\u0438\u0448\u0435\u0442 \u0442\u0435\u043A\u0441\u0442 \u0432\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0437).\n- \xABBitrix \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0443\u0441\u043F\u0435\u0445\u043E\u043C, \u043D\u043E \u2026\xBB, \xABBitrix \u043D\u0435 \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u043B: \u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u043D\u0435 \u0442\u043E, \u0447\u0442\u043E \u043F\u0440\u043E\u0441\u0438\u043B\u0438; \u0432\n \u043E\u0448\u0438\u0431\u043A\u0435 \u2014 \u043A\u0430\u043A \u0441\u0435\u0439\u0447\u0430\u0441. \u041D\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439 \u0442\u043E\u0442 \u0436\u0435 \u0432\u044B\u0437\u043E\u0432 \u0432\u0441\u043B\u0435\u043F\u0443\u044E \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \u041C\u043D\u043E\u0433\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u043D\u0430\u0437\u044B\u0432\u0430\u044E\u0442, \u0447\u0442\u043E \u0443\u0436\u0435 \u0441\u0434\u0435\u043B\u0430\u043D\u043E: `bitrix_task_checklist_edit` \u2014 \xAB\u0434\u043E \u044D\u0442\u043E\u0433\u043E \u0441\u0434\u0435\u043B\u0430\u043D\u043E: \u2026\xBB\n (\u043D\u0430 \u0438\u0441\u0445\u043E\u0434\u0435 \u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0432\u044B\u0437\u043E\u0432\u0430 \u2014 \u0435\u0449\u0451 \u0438 \xAB\u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u044B\u0437\u043E\u0432\u0430, \u043D\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E: \u2026\xBB: \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0439 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u044D\u0442\u043E),\n `bitrix_task_parent` \u2014 \u043F\u0440\u0435\u0436\u043D\u0435\u0433\u043E \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044F \u0438 \u0432\u044B\u0437\u043E\u0432, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C, `bitrix_task_to_sprint` \u2014 \xAB\u0432\u0435\u0440\u043D\u0438\n \u0435\u0451 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433 (`bitrix_task_to_backlog`) \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\xBB.\n\n**\u0421\u043F\u0438\u0441\u043A\u0438 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.** \u0421\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u0439, \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u0435\u0439, \u0442\u0435\u0433\u0438 \u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442\n\u0446\u0435\u043B\u0438\u043A\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_accomplices`, `bitrix_task_auditors`, `bitrix_task_tags`,\n`bitrix_task_description_append` / `_replace` \u0441\u0430\u043C\u0438 \u0447\u0438\u0442\u0430\u044E\u0442 \u0442\u0435\u043A\u0443\u0449\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 **\u043A\u0430\u0436\u0434\u043E\u0439** \u0437\u0430\u0434\u0430\u0447\u0438, \u043C\u0435\u043D\u044F\u044E\u0442 \u0432 \u043D\u0451\u043C\n\u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u043E\u0435 \u0438 \u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442 \u043E\u0431\u0440\u0430\u0442\u043D\u043E; \u0435\u0441\u043B\u0438 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u2014 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u0438\u0448\u0443\u0442. \u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E\n`add` / `remove` (\u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442, \u0434\u043E\u043F\u0438\u0441\u043A\u0443), \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0441\u043F\u0438\u0441\u043E\u043A; \u0435\u0441\u043B\u0438 \u043C\u0435\u043D\u044F\u0442\u044C \u043D\u0435\u0447\u0435\u0433\u043E \u2014 `changed: false`, \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435\u0442.\n\u0422\u0430\u043A \u0436\u0435 `bitrix_task_related_edit` \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0438 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u043D\u044B\u0435 \u0441\u0432\u044F\u0437\u0438, \u0430 `bitrix_task_plan`\n\u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442 \u043D\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u043D\u043D\u0443\u044E \u0434\u0430\u0442\u0443. `bitrix_task_description_set` \u2014 \u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u0430\u044F, \u0447\u0442\u043E \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0446\u0435\u043B\u0438\u043A\u043E\u043C.\n\n**\u041A\u0442\u043E \u044D\u0442\u043E \u0443\u0432\u0438\u0434\u0438\u0442 \u0438 \u043A\u043E\u0433\u043E \u0443\u0432\u0435\u0434\u043E\u043C\u044F\u0442.**\n\n| \u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 | \u0412\u0438\u0434\u044F\u0442 | \u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 |\n|---|---|---|\n| `bitrix_chat_send`, `bitrix_task_chat_post` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u043C `[user=ID]\u0418\u043C\u044F[/user]` |\n| `bitrix_chat_message_edit`, `bitrix_chat_reaction` | \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0447\u0430\u0442\u0430 | \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E (\u043D\u043E\u0432\u043E\u0435 \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043F\u0440\u0438 \u043F\u0440\u0430\u0432\u043A\u0435; \u0430\u0432\u0442\u043E\u0440\u0443 \u2014 \u043E \u0440\u0435\u0430\u043A\u0446\u0438\u0438) |\n| `bitrix_task_delegate` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043D\u043E\u0432\u043E\u043C\u0443 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_accomplices`, `bitrix_task_auditors` | \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u043A\u0430\u0436\u0434\u043E\u043C\u0443 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u043E\u043C\u0443 |\n| `bitrix_task_close`, `bitrix_task_reopen` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0437\u0430\u0434\u0430\u0447\u0438 |\n| `bitrix_task_result_add` | \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438; \u0430\u043D\u043E\u043D\u0441 \u0432 \u0435\u0451 \u0447\u0430\u0442\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435 \u0435\u0433\u043E \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 | \u2014 |\n| \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435, \u0442\u0435\u0433\u0438, \u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C, \u0441\u0440\u043E\u043A, \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u0434\u0430\u0442\u044B | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0438\u0441\u0442\u043E\u0440\u0438\u044F \u0437\u0430\u0434\u0430\u0447\u0438 | \u2014 |\n| `bitrix_task_checklist_edit`, \u0441\u0432\u044F\u0437\u0438, \u0440\u043E\u0434\u0438\u0442\u0435\u043B\u044C, \u0441\u0432\u044F\u0437\u044C \u0413\u0430\u043D\u0442\u0430 | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 | \u2014 |\n| `bitrix_task_file_attach` | \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 (\u0438 \u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C) | \u2014 |\n| `bitrix_task_create`, `bitrix_task_move`, `_to_sprint`, `_to_backlog` | \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043D\u0430 scrum-\u0434\u043E\u0441\u043A\u0435 | \u2014 |\n| `bitrix_task_mute`, \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F | **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u044B** | \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u0431\u0435 (\u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F) |\n\n\xAB\u2014\xBB \u2014 \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043E\u0431 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F\u0445 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u043D\u043E Bitrix \u043C\u043E\u0436\u0435\u0442 \u0441\u0430\u043C \u0441\u043B\u0430\u0442\u044C\n\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0427\u0430\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 `CHAT_ID` \u0438\u0437 `bitrix_task_get` (\u0438\u043B\u0438\n`bitrix_entity_chat { entityType:"TASKS_TASK" }`). userId \u0434\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u0432 \u2014 `bitrix_user_find` (\u043F\u043E\n\u0444\u0430\u043C\u0438\u043B\u0438\u0438) \u0438\u043B\u0438 \u043F\u043E\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438; \u043B\u044E\u0434\u0435\u0439 \u0438\u0437 \u0432\u044B\u0434\u0430\u0447\u0438 `bitrix_user_find` \u0441 `active: false` \u043D\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043D\u0435\n\u043D\u0430\u0437\u043D\u0430\u0447\u0430\u0439.\n\n**`bitrix_task_move`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u0447\u0438, \u043A\u043E\u0442\u043E\u0440\u0430\u044F \u0443\u0436\u0435 \u043D\u0430 \u0434\u043E\u0441\u043A\u0435 \u0441\u043F\u0440\u0438\u043D\u0442\u0430 (\u043D\u0435 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\u0435):\n`task.stages.movetask` \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442 `true`, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0441\u0434\u0435\u043B\u0430\u0432, \u2014 \u043C\u043E\u0441\u0442 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u0432 \u044D\u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435\n\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0443 \u043F\u043E \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0417\u0430\u0434\u0430\u0447\u0443 \u0438\u0437 \u0431\u044D\u043A\u043B\u043E\u0433\u0430 \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443 `bitrix_task_to_sprint` (\u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442 \u0432\n\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0441\u043F\u0440\u0438\u043D\u0442, \u0441\u0442\u0430\u0432\u0438\u0442 \u043D\u0430 \u0434\u043E\u0441\u043A\u0443, \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442 \u0441\u043F\u0440\u0438\u043D\u0442 \u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0443); \u0437\u0430\u0434\u0430\u0447\u0438 \u0437\u0430\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043D\u043D\u044B\u0445\n\u0441\u043F\u0440\u0438\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442. \u0415\u0441\u043B\u0438 \u043F\u0435\u0440\u0435\u043D\u043E\u0441 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D, \u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u043E\u0448\u0438\u0431\u043A\u0430 \u0442\u0430\u043A \u0438 \u0433\u043E\u0432\u043E\u0440\u0438\u0442 \u2014\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u043E\u0433\u0434\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0447\u0435\u0440\u0435\u0437 `bitrix_task_get`. `task.stages.get` \u043E\u0442\u0434\u0430\u0451\u0442 \u0441\u0442\u0430\u0440\u044B\u0439 \u043A\u0430\u043D\u0431\u0430\u043D \u0433\u0440\u0443\u043F\u043F\u044B, \u0430 \u043D\u0435\n\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0441\u043F\u0440\u0438\u043D\u0442\u0430. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043A\u0440\u044B\u0442\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0441\u043C\u043E\u0442\u0440\u0438 `status` \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n\n**\u041A\u043E\u043B\u043E\u043D\u043A\u0430 \u0442\u0438\u043F\u0430 `FINISH`** (\u043E\u0431\u044B\u0447\u043D\u043E \xAB\u0413\u043E\u0442\u043E\u0432\u043E\xBB, \u0441\u043C. `type` \u0432 `bitrix_sprint_columns`) \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443,\n\u0430 Definition of Done \u0441\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0441\u043F\u043B\u044B\u0432\u0430\u044E\u0449\u0435\u0435 \u043E\u043A\u043D\u043E \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041F\u043E\u044D\u0442\u043E\u043C\u0443 `bitrix_task_move`,\n`bitrix_task_to_sprint` \u0438 `bitrix_task_create` \u0442\u0430\u043A\u0443\u044E \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 \u2014 \u043D\u0438 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E, \u043D\u0438 \u043F\u043E id:\n\xAB\u043A\u043E\u043B\u043E\u043D\u043A\u0430 \xAB\u2026\xBB \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u2014 \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0447\u0435\u0440\u0435\u0437 `bitrix_task_close` \u2026; \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435\n\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\xBB. \u0423 \u043F\u0430\u043A\u0435\u0442\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439 \u043E\u0442\u043A\u0430\u0437 \u2014 \u043D\u0430 \u0432\u0435\u0441\u044C \u0432\u044B\u0437\u043E\u0432: \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0435\u0441\u043B\u0438 \u043A\u043E\u043B\u043E\u043D\u043A\u0430\n\u0445\u043E\u0442\u044C \u0443 \u043E\u0434\u043D\u043E\u0439 \u0438\u0437 \u043D\u0438\u0445 (\u0432 \u0435\u0451 \u043F\u0440\u043E\u0435\u043A\u0442\u0435) \u2014 `FINISH`, \u043D\u0435 \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043D\u0438 \u043E\u0434\u043D\u0430. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u2014\n`bitrix_task_close` (\xA75.7).\n\n**\u0414\u0430\u0442\u044B** (`bitrix_task_plan`, `bitrix_task_deadline`, `bitrix_task_reminder_set`) \u2014 ISO 8601 **\u0441\u043E\n\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043C**: `"2026-12-01T09:00:00+03:00"` \u0438\u043B\u0438 `"\u2026Z"`; \u0431\u0435\u0437 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0440\u0433\u0443\u043C\u0435\u043D\u0442\u043E\u0432. \u0412 \u043E\u0442\u0432\u0435\u0442\u0435 \u0434\u0430\u0442\u044B \u0432\nUTC. Bitrix \u0445\u0440\u0430\u043D\u0438\u0442 \u0432\u0440\u0435\u043C\u044F \u0437\u0430\u0434\u0430\u0447 \u0441 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u0434\u043E \u043C\u0438\u043D\u0443\u0442\u044B: \u0441\u0435\u043A\u0443\u043D\u0434\u044B \u043D\u0435 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u0440\u0430\u0441\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0435\u043C.\n\n**\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u0430.**\n\n- **\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438** (`bitrix_task_description_*`) \u0438 **\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442** (`bitrix_task_result_add`) \u2014 \u043F\u043E\u043B\u043D\u044B\u0439\n BBCode: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`, `[user=ID]\u0418\u043C\u044F[/user]`, \u0441\u043F\u0438\u0441\u043A\u0438 `[list]` / `[list=1]` \u0441\n \u043F\u0443\u043D\u043A\u0442\u0430\u043C\u0438 `[*]`, `[quote]`, `[code]`, `[spoiler=\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A]\u2026[/spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B `[table][tr][th]/[td]`.\n \u0422\u0435\u0433\u0438 `[disk file id=\u2026]` \u2014 \u044D\u0442\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0439 \u0438\u0445. \u041A\u0430\u043A BBCode \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0432 \u0435\u0433\u043E\n \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0432 \u0447\u0430\u0442\u0435, \u043D\u0435 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E.\n- **\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0432 \u0447\u0430\u0442** (`bitrix_chat_send`, `bitrix_chat_message_edit`, `bitrix_task_chat_post`) \u2014 \u0442\u043E\u043B\u044C\u043A\u043E\n \u0442\u043E, \u0447\u0442\u043E \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442 \u0438 \u0432\u0435\u0431, \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435: `[b] [i] [u] [s]`, `[url=\u2026]\u2026[/url]`,\n `[user=ID]\u0418\u043C\u044F[/user]`, `[code]`, `[color=#hex]\u2026[/color]`, `[br]`. \u0426\u0438\u0442\u0430\u0442\u0430 \u2014 \u0441\u0442\u0440\u043E\u043A\u0430, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0430\u044F\u0441\u044F \u0441 `>>`,\n \u0438\u043B\u0438 \u0431\u043B\u043E\u043A \u043C\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043C\u044F \u0441\u0442\u0440\u043E\u043A\u0430\u043C\u0438 \u0438\u0437 \u0434\u0435\u0444\u0438\u0441\u043E\u0432; \u0441\u043F\u0438\u0441\u043E\u043A \u2014 \u0441\u0442\u0440\u043E\u043A\u0438, \u043D\u0430\u0447\u0438\u043D\u0430\u044E\u0449\u0438\u0435\u0441\u044F \u0441 `\u2022`. `[quote]`, `[list]`,\n `[spoiler]`, \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0438 Markdown \u0432 \u0447\u0430\u0442\u0435 **\u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u044F\u0442\u0441\u044F**. \u0414\u043B\u0438\u043D\u043D\u0435\u0435 20 000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 Bitrix \u043C\u043E\u043B\u0447\u0430 \u043E\u0431\u0440\u0435\u0436\u0435\u0442 \u2014\n \u043C\u043E\u0441\u0442 \u0442\u0430\u043A\u043E\u0435 \u043D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442.\n- **\u041F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442:** \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_create` \u2014 BBCode \u0432 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0438 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442), \u0442\u0435\u0433\u0438, \u043F\u0440\u0438\u0447\u0438\u043D\u0430\n \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0430 \u0441\u0440\u043E\u043A\u0430. \u041D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u043F\u0443\u043D\u043A\u0442\u043E\u0432 \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430 \u2014 \u0442\u043E\u0436\u0435 \u043F\u0440\u043E\u0441\u0442\u043E\u0439 \u0442\u0435\u043A\u0441\u0442 (\u043A\u0430\u043A \u0432 \u043D\u0438\u0445 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F BBCode, \u043D\u0435\n \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E).\n- Markdown \u043D\u0435 \u0440\u0435\u043D\u0434\u0435\u0440\u0438\u0442\u0441\u044F \u043D\u0438\u0433\u0434\u0435.\n\n---\n\n## 4. \u0421\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A \u043F\u043E\u043B\u0435\u0439\n\n**\u0417\u0430\u0434\u0430\u0447\u0430** (`tasks.task.*`) \u2014 \u043F\u043E\u043B\u044F \u0434\u043B\u044F `select`/`filter` \u0432 UPPER_CASE: `ID`, `TITLE`, `DESCRIPTION`,\n`STATUS`, `REAL_STATUS`, `RESPONSIBLE_ID`, `CREATED_BY`, `CREATED_DATE`, `CHANGED_DATE`, `DEADLINE`,\n`CLOSED_DATE`, `PRIORITY`, `GROUP_ID`, `TAGS`, `TIME_ESTIMATE`, **`CHAT_ID`** (id \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F\n\u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 `taskId \u2192 chatId`, \xA75.2), `COMMENTS_COUNT` (\xA75.6), **`UF_TASK_WEBDAV_FILES`**\n(id **\u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0445 \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432** \u2014 \u0438\u043C\u0435\u043D\u043D\u043E \u0438\u0445 \u0436\u0434\u0451\u0442 `bitrix_task_files`; \u0441 id \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u043D \u0432\u0435\u0440\u043D\u0451\u0442 \u043F\u0443\u0441\u0442\u043E\u0439\n\u0441\u043F\u0438\u0441\u043E\u043A \u0431\u0435\u0437 \u043E\u0448\u0438\u0431\u043A\u0438), `UF_*`. \u041E\u0442\u0432\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u0430\u0434\u044B\u0432\u0430\u0435\u0442 \u043E\u0431\u044A\u0435\u043A\u0442\u044B `group`,\n`responsible`, `creator`, `action`.\n\u{1F4D6} (`tasks.task.get`/`list`) \u2014 \u0441\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E: `parentId`, `stageId`, `sprintId`, `backlogId`,\n`commentsCount`, `timeSpentInLogs`, `favorite`, `flowId`, `mark`, `accomplices[]`, `auditors[]`,\n`checklist{}`, `subStatus`; \u0432 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u043E\u043C REST-\u043E\u0442\u0432\u0435\u0442\u0435 \u043F\u043E\u043B\u044F \u043F\u0440\u0438\u0445\u043E\u0434\u044F\u0442 **camelCase**, \u0430 \u0432 `select`/`filter`\n\u043E\u043D\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **UPPER_CASE**. \u0414\u043E\u043F. \u0432\u044B\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u2014 \u0444\u043B\u0430\u0433\u0430\u043C\u0438 `params{WITH_TIMER_INFO, WITH_RESULT_INFO,\nWITH_PARSED_DESCRIPTION}`.\n\n**\u0421\u0442\u0430\u0442\u0443\u0441\u044B** (`REAL_STATUS` \u2014 \xAB\u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435\xBB \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435): `1` \u041D\u043E\u0432\u0430\u044F \xB7 `2` \u0416\u0434\u0451\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \xB7\n`3` \u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \xB7 `4` \u0416\u0434\u0451\u0442 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044F \xB7 `5` \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430 \xB7 `6` \u041E\u0442\u043B\u043E\u0436\u0435\u043D\u0430 \xB7 `7` \u041E\u0442\u043A\u043B\u043E\u043D\u0435\u043D\u0430. \u041F\u043E\u043B\u0435 `STATUS`\n\u043F\u043E\u0432\u0435\u0440\u0445 \u044D\u0442\u043E\u0433\u043E \u043D\u0435\u0441\u0451\u0442 **\u043C\u0435\u0442\u0430-\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F** \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F (\u043F\u043E\u0447\u0442\u0438 \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430 / \u043D\u0435 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 / \u043F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u0430),\n\u043F\u043E\u044D\u0442\u043E\u043C\u0443 \xAB\u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u043B\u0438 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0435\u0439\u0447\u0430\u0441\xBB \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E **`REAL_STATUS`** (\u043D\u0430\u043F\u0440. `{"REAL_STATUS":3}`) \u{1F4D6}.\n\u0410\u0441\u0438\u043C\u043C\u0435\u0442\u0440\u0438\u044F: \u0432 **`filter`** \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 `REAL_STATUS`, \u0430 \u0432 **`select`** \u0435\u0433\u043E \u0443\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0431\u0435\u0441\u043F\u043E\u043B\u0435\u0437\u043D\u043E \u2014 \u043F\u043E\u043B\u0435 \u043C\u043E\u043B\u0447\u0430\n\u043D\u0435 \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F; \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435, \u043F\u0440\u043E\u0441\u0438 `select:["STATUS"]` \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u043A\u043B\u044E\u0447 `status` \u0441\u043E\n\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u043C \u043F\u043E \u0442\u043E\u0439 \u0436\u0435 \u0448\u043A\u0430\u043B\u0435 1..7 (\u0443 \u043E\u0431\u0451\u0440\u0442\u043A\u0438 `bitrix_tasks_list` \u043E\u043D \u0443\u0436\u0435 \u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u043E\u043C `select`).\n\n**\u0424\u0438\u043B\u044C\u0442\u0440 `tasks.task.list`** \u2014 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044F \u043F\u0435\u0440\u0435\u0434 \u0438\u043C\u0435\u043D\u0435\u043C \u043F\u043E\u043B\u044F: `!` (\u043D\u0435 \u0440\u0430\u0432\u043D\u043E / \u0438\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C),\n`<`, `<=`, `>`, `>=`, `%` (LIKE-\u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0430). \u041D\u0430\u043F\u0440. `{"!REAL_STATUS":5}` \u2014 \u0432\u0441\u0435 **\u043D\u0435\u0437\u0430\u043A\u0440\u044B\u0442\u044B\u0435**,\n`{">=DEADLINE":"2026-07-01"}`, `{"%TITLE":"\u043A\u0430\u0440\u0442\u0430"}`. \u0424\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u043E\u043B\u044F: `ID`, `PARENT_ID`, `GROUP_ID`,\n`CREATED_BY`, `RESPONSIBLE_ID`, `ACCOMPLICE`, `AUDITOR`, `REAL_STATUS`, `STATUS`, `PRIORITY`, `TAG`,\n`STAGE_ID`, `SPRINT_ID`, `BACKLOG_ID`, `DEADLINE`, `*_DATE`, `UF_CRM_TASK`.\n\n> **\xAB\u041C\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\xBB \u2260 \u0442\u043E\u043B\u044C\u043A\u043E `RESPONSIBLE_ID`.** \u0420\u043E\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u044C\u043D\u044B: \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439\n> (`RESPONSIBLE_ID`), \u0441\u043E\u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C (`ACCOMPLICE`), \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C (`AUDITOR`), \u043F\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0449\u0438\u043A\n> (`CREATED_BY`); \u0435\u0434\u0438\u043D\u043E\u0433\u043E \xAB\u043B\u044E\u0431\u0430\u044F \u0440\u043E\u043B\u044C\xBB \u043F\u043E\u043B\u044F \u0432 `list` \u043D\u0435\u0442 \u2014 \u0447\u0442\u043E\u0431\u044B \u0441\u043E\u0431\u0440\u0430\u0442\u044C **\u0432\u0441\u0435** \u0441\u0432\u043E\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\n> \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 (\u043C\u0438\u043D\u0438\u043C\u0443\u043C `RESPONSIBLE_ID` + `ACCOMPLICE`) \u0438 **\u0434\u0435\u0434\u0443\u043F\u043B\u0438\u0446\u0438\u0440\u0443\u0439 \u043F\u043E `id`** \u2014\n> \u043E\u0434\u043D\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0430\u0441\u0442\u043E \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0440\u043E\u043B\u0435\u0439. \u0412 **`filter`** \u0440\u043E\u043B\u0438 \u0432 **\u0435\u0434\u0438\u043D\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** \u0447\u0438\u0441\u043B\u0435\n> (`ACCOMPLICE`/`AUDITOR`), \u0432 **`select`** \u2014 \u0432\u043E **\u043C\u043D\u043E\u0436\u0435\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u043C** (`ACCOMPLICES`/`AUDITORS`).\n\n> **Scrum-\u0437\u0430\u0434\u0430\u0447\u0438 (\u0441\u043F\u0440\u0438\u043D\u0442\u044B).** \u041F\u043E\u043B\u0435 `SPRINT_ID` \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0436\u0451\u0441\u0442\u043A\u0438\u0439 `filter[SPRINT_ID]` \u043C\u043E\u0433\u0443\u0442 \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F:\n> \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0438\u0441\u043B\u0438\u0442\u0441\u044F \u0437\u0430 \u0441\u043F\u0440\u0438\u043D\u0442\u043E\u043C \u043F\u043E \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u043E\u043B\u044E, \u043D\u043E \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442 \u0432 \u0432\u044B\u0431\u043E\u0440\u043A\u0443 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 (\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0435\u043D\u0430 \u0432 \u0431\u044D\u043A\u043B\u043E\u0433\n> \u0438\u043B\u0438 \u0432 \u0438\u043D\u043E\u0439 stage). \u0415\u0441\u043B\u0438 \u043F\u043E \u0444\u0438\u043B\u044C\u0442\u0440\u0443 \xAB\u043C\u0430\u043B\u043E\u0432\u0430\u0442\u043E\xBB \u2014 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0431\u0435\u0437 \u043D\u0435\u0433\u043E \u0438 \u043E\u0442\u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0439 \u043F\u043E\n> `SPRINT_ID`/`STAGE_ID` \u0443 \u0441\u0435\u0431\u044F. `STAGE_ID` \u2192 \u0438\u043C\u044F \u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u2014 `bitrix_sprint_columns { groupId }` (\xA73).\n\n**\u0413\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442 \u2014 \u0441\u043F\u0438\u0441\u043E\u043A** (`workgroup.list`): `ID`, `NAME`, `DESCRIPTION`, `NUMBER_OF_MEMBERS`,\n`OWNER_ID`, `DATE_CREATE`, `PROJECT` (Y=\u043F\u0440\u043E\u0435\u043A\u0442/N=\u0433\u0440\u0443\u043F\u043F\u0430), `TYPE`; **\u0431\u0435\u0437 `select` \u0432\u0435\u0440\u043D\u0451\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E `ID`**.\n\u{1F4D6} \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0435\u043C\u044B\u0435: `ID`, `NAME`, `OWNER_ID`, `ACTIVE`, `VISIBLE`, `OPENED`, `CLOSED`, `PROJECT`,\n`SUBJECT_ID`, `SITE_ID`, `DATE_CREATE`, `DATE_UPDATE`, `DATE_ACTIVITY`; \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u044B \u0444\u0438\u043B\u044C\u0442\u0440\u0430\n`>= > <= < % =% %= !% != !`.\n**\u0413\u0440\u0443\u043F\u043F\u0430 \u2014 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430** (`workgroup.get`): \u043F\u043B\u044E\u0441 `OWNER_DATA`, `SUBJECT_DATA`, `MEMBERS[]`,\n`MODERATOR_MEMBERS[]`, **`CHAT_ID`**, `DIALOG_ID`, `IMAGE_ID`, UF-\u043F\u043E\u043B\u044F.\n\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0439 \u0447\u0430\u0442** (`im.recent.list`): `id` (\u044D\u0442\u043E dialogId: \u0447\u0438\u0441\u043B\u043E = \u044E\u0437\u0435\u0440, `"chat"+N` = \u0447\u0430\u0442), `chat_id`,\n`type` (`user`/`chat`), `title`, `message{id,text,file,author_id,date,status}`, `counter` (\u043D\u0435\u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0445),\n`unread`, `last_id`, `pinned`, `date_update`, `date_last_activity`, `user{\u2026}`,\n`chat{\u2026 entity_type, entity_id, owner, \u2026}`; \u0435\u0441\u0442\u044C \u043B\u0438 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u2014 `hasMore`/`hasMorePages` \u{1F4D6}.\n**\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u043F\u043E \u0441\u0435\u043A\u0446\u0438\u0438** (`im.v2.Recent.load`): `filter[recentSection]` \u2014 `default` (\u043E\u0431\u044B\u0447\u043D\u044B\u0435 \u0434\u0438\u0430\u043B\u043E\u0433\u0438),\n**`tasksTask` (\u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447)**, `collab`/`collabDefault`. \u0412\u0433\u043B\u0443\u0431\u044C \u2014 `im.v2.Recent.tail` \u0441 \u043A\u0443\u0440\u0441\u043E\u0440\u043E\u043C\n`filter[lastMessageDate]` (ISO-\u0434\u0430\u0442\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B).\n\n**\u041A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u044E\u0437\u0435\u0440\u0430** (`im.user.get`): `id`, `name`, `first_name`, `last_name`, `avatar`, `work_position`,\n`gender`, `status`, `online` \u2014 \u0440\u0435\u0437\u043E\u043B\u0432 \u0430\u0432\u0442\u043E\u0440\u0430 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F (`authorId`) \u0432 \u0438\u043C\u044F.\n\n**\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435** (`im.v2.Chat.Message.*`): `id`, `chatId`, `authorId`, `date`, `text`, `params`, `viewed`;\n\u043E\u0442\u0432\u0435\u0442 \u0442\u0430\u043A\u0436\u0435 \u043D\u0435\u0441\u0451\u0442 `users[]` (\u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438), `additionalMessages[]`, `hasPrevPage`/`hasNextPage`.\n\n---\n\n## 5. \u0421\u0446\u0435\u043D\u0430\u0440\u0438\u0438\n\n```jsonc\n// \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E 55, \u043F\u043E \u0434\u0435\u0434\u043B\u0430\u0439\u043D\u0443, \u0432\u0442\u043E\u0440\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\nbitrix_tasks_list { "params": { "filter": {"RESPONSIBLE_ID":55,"REAL_STATUS":2},\n "order": {"DEADLINE":"asc"}, "PAGEN_1": 2 } }\n\n// \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u043C \u043D\u0430\u0431\u043E\u0440\u043E\u043C \u043F\u043E\u043B\u0435\u0439; v2-\u043F\u043E\u0434\u0441\u0438\u0441\u0442\u0435\u043C\u0430; \u0444\u0430\u0439\u043B\u044B, \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u044B, \u0441\u0432\u044F\u0437\u0438\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","TITLE","DESCRIPTION","TAGS"] } }\nbitrix_task_get_v2 { "taskId": 4229 } // \u2192 { "task": { "id": 4229 } }\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","UF_TASK_WEBDAV_FILES"] } }\nbitrix_task_files { "ids": [<id \u0438\u0437 UF_TASK_WEBDAV_FILES>] } // \u041D\u0415 id \u0437\u0430\u0434\u0430\u0447\u0438\nbitrix_task_subtasks { "taskId": 4229 }\nbitrix_task_related { "taskId": 4229 }\n\n// \u043F\u0440\u043E\u0435\u043A\u0442\u044B \u043F\u043E \u0434\u0430\u0442\u0435 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F; \u043F\u043E\u043B\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0433\u0440\u0443\u043F\u043F\u044B (\u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID)\nbitrix_projects_list { "params": { "order": {"DATE_CREATE":"desc"} } }\nbitrix_project_get { "groupId": 15 }\n```\n\n### 5.1. \u041C\u0435\u0441\u0441\u0435\u043D\u0434\u0436\u0435\u0440 (IM): \u043A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId`\n\n\u0412\u0441\u0451 \u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u2014 **\u0447\u0430\u0442\u044B**: \u043B\u0438\u0447\u043D\u044B\u0435 1-\u043D\u0430-1, \u0433\u0440\u0443\u043F\u043F\u043E\u0432\u044B\u0435 (\u043F\u0440\u043E\u0435\u043A\u0442\u043E\u0432, \u043A\u0430\u043D\u0430\u043B\u043E\u0432) \u0438 **\u0447\u0430\u0442\u044B-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F \u0437\u0430\u0434\u0430\u0447**.\n\u0427\u0438\u0441\u043B\u043E\u0432\u043E\u0439 **`chatId`** \u2014 \u043A\u043B\u044E\u0447 \u043A\u043E \u0432\u0441\u0435\u043C \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F\u043C \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043C\u0438 (`bitrix_chat_messages`,\n`bitrix_chat_history`, `bitrix_chat_mark_read`); \u043F\u043E\u0447\u0442\u0438 \u043B\u044E\u0431\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0430\u0433\u0435\u043D\u0442\u0430 \u0437\u0434\u0435\u0441\u044C \u2014 \u043D\u0430 \u0448\u0430\u0433\u0435 \u0435\u0433\u043E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F.\n\n**\u0422\u0440\u0438 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u043E\u0434\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430** (\u0433\u043E\u0434\u044F\u0442\u0441\u044F \u0434\u043B\u044F \u0440\u0430\u0437\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439):\n\n| \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 | \u0427\u0442\u043E \u044D\u0442\u043E | \u041F\u0440\u0438\u043C\u0435\u0440 | \u041A\u0443\u0434\u0430 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044C |\n|---|---|---|---|\n| `chatId` | \u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 id \u0447\u0430\u0442\u0430 | `485` | \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F / \u0438\u0441\u0442\u043E\u0440\u0438\u044F / \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C |\n| `dialogId` | \u0430\u0434\u0440\u0435\u0441 \u0434\u043B\u044F \u041E\u0422\u041A\u0420\u042B\u0422\u0418\u042F: `userId` (\u043B\u0438\u0447\u043D\u044B\u0439 1-\u043D\u0430-1) **\u0438\u043B\u0438** `"chat"+chatId` (\u0433\u0440\u0443\u043F\u043F\u043E\u0432\u043E\u0439) | `11`, `"chat485"` | `bitrix_chat_load` |\n| `externalId` | \u0432\u043D\u0435\u0448\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0441\u0443\u0449\u043D\u043E\u0441\u0442\u0438 \u2192 \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u0432 `dialogId` | `"sg15"` (\u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u0430 15) | `bitrix_chat_get_dialog_id` |\n\n\u041A\u043B\u044E\u0447\u0435\u0432\u043E\u0435: **\u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u0441 \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u043E\u043C = \u0435\u0433\u043E `userId` \u0432 \u0440\u043E\u043B\u0438 `dialogId`** (\u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \xABid \u0447\u0430\u0442\u0430\xBB \u0443 1-\u043D\u0430-1\n\u0437\u043D\u0430\u0442\u044C \u043D\u0435 \u043D\u0443\u0436\u043D\u043E). `bitrix_chat_load` \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u0435\u0442 `dialogId` **\u0438\u043B\u0438** `chatId` \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 **\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\n\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0439 `chatId`** \u2014 \u0434\u0430\u043B\u044C\u0448\u0435 \u043E\u043F\u0435\u0440\u0438\u0440\u0443\u0435\u0448\u044C \u0438\u043C.\n\n**\u041A\u0430\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C `chatId` \u2014 \u043F\u043E \u0446\u0435\u043B\u0438:**\n\n| \u0425\u043E\u0447\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442\u2026 | \u0428\u0430\u0433\u0438 |\n|---|---|\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u043F\u043E \u0418\u041C\u0415\u041D\u0418** | `bitrix_entity_search { query:"\u0434\u043C\u0438\u0442\u0440\u0438\u0439" }` \u2192 \u0434\u0438\u0430\u043B\u043E\u0433 \u0441 `dialogId` = \u0435\u0433\u043E userId \u2192 `bitrix_chat_load { dialogId }` |\n| **\u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C, id \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043D** | `bitrix_chat_load { dialogId: <userId> }` (userId \u2014 \u0438\u0437 \u0437\u0430\u0434\u0430\u0447\u0438 `RESPONSIBLE_ID`/`CREATED_BY`, \u0438\u0437 `bitrix_chats_recent`, \u0438\u0437 `bitrix_user_get`) |\n| **\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0417\u0410\u0414\u0410\u0427\u0418** | `bitrix_task_get` \u2192 `CHAT_ID` (\xA75.2) |\n| **\u041F\u0420\u041E\u0415\u041A\u0422\u0410/\u0433\u0440\u0443\u043F\u043F\u044B** | `bitrix_task_get`\u2192`GROUP_ID`\u2192`bitrix_project_get`\u2192`CHAT_ID`; \u043B\u0438\u0431\u043E `bitrix_chat_get_dialog_id { externalId:"sg<groupId>" }` |\n| **\u043D\u0435 \u0437\u043D\u0430\u044E \u0442\u043E\u0447\u043D\u043E, \u043A\u0430\u043A\u043E\u0439** | `bitrix_chats_recent` (\u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435, \u0441\u043E\u043F\u043E\u0441\u0442\u0430\u0432\u044C \u043F\u043E `title`/`user`) \u0438\u043B\u0438 `bitrix_entity_search { query }` |\n\n> \u041F\u043E\u0447\u0435\u043C\u0443 \u043D\u0435 \xAB\u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432\xBB: `bitrix_chats_recent` (`im.recent.list`) \u043E\u0442\u0434\u0430\u0451\u0442 \u043B\u0438\u0448\u044C \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\n> **\u0431\u0435\u0437 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447**. \u0414\u043B\u044F \u043F\u043E\u0438\u0441\u043A\u0430 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0433\u043E \u0447\u0430\u0442\u0430 \u2014 `bitrix_entity_search`; \u0434\u043B\u044F \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447 \u2014\n> `bitrix_recent_load { section:"tasksTask" }`.\n\n**\u0427\u0438\u0442\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E.** `bitrix_chat_messages` \u043E\u0442\u0434\u0430\u0451\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u044E\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443; \u0432\u0433\u043B\u0443\u0431\u044C \u043B\u0438\u0441\u0442\u0430\u0435\u0442\n`bitrix_chat_history` \u043F\u043E \u043A\u0443\u0440\u0441\u043E\u0440\u0443 `beforeId` = \u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 id \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B (\u043F\u043E\u0432\u0442\u043E\u0440\u044F\u0439,\n\u0443\u043C\u0435\u043D\u044C\u0448\u0430\u044F `beforeId`, \u0434\u043E \u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u0442\u043E\u0440\u0438\u0438).\n\n```jsonc\nbitrix_chat_load { "dialogId": 11 } // \u043B\u0438\u0447\u043D\u044B\u0439 \u0447\u0430\u0442 \u044E\u0437\u0435\u0440\u0430 11 \u2192 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 chatId\nbitrix_chat_history { "chatId": 485, "beforeId": 1861279 }\nbitrix_chat_mark_read { "chatId": 40271, "ids": [1884131] } // \u26A0 \u043C\u0443\u0442\u0438\u0440\u0443\u044E\u0449\u0438\u0439; actionUuid \u2014 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u043E\u043C\n```\n\n\u{1F4D6} \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438 \u0447\u0442\u0435\u043D\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439: `im.dialog.messages.get` (\u0434\u0435\u0444\u043E\u043B\u0442 20, \u043C\u0430\u043A\u0441 50; \u043B\u0438\u0441\u0442\u0430\u043D\u0438\u0435\n`LAST_ID` \u2014 \u0441\u0442\u0430\u0440\u0435\u0435, `FIRST_ID` \u2014 \u043D\u043E\u0432\u0435\u0435); `imbot.v2 chat.getMessageContext` \u2014 \u043E\u0442\u0432\u0435\u0442 `messages[]`\n(oldest\u2192newest) + `users[]` + `hasPrevPage`/`hasNextPage`, \u043F\u043E \u0444\u043E\u0440\u043C\u0435 **\u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442** \u0441 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C\u0438\n`im.v2.Chat.Message.*`.\n\n### 5.2. \u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 (\u0447\u0430\u0442) \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438\n\n**\u0410. \u041F\u0440\u044F\u043C\u043E\u0439 \u0440\u0435\u0437\u043E\u043B\u0432 \u2014 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0442\u0438\u0442\u0435\u043B\u044C\u043D\u043E.** `bitrix_task_get` \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 `CHAT_ID` \u0447\u0430\u0442\u0430-\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u044F (\u0432\u0445\u043E\u0434\u0438\u0442\n\u0432 \u0434\u0435\u0444\u043E\u043B\u0442\u043D\u044B\u0439 `select` \u{1F4D6}) \u2014 \u044D\u0442\u043E `taskId \u2192 chatId` \u0431\u0435\u0437 \u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0438 \u0431\u0435\u0437 \u043F\u0440\u043E\u043C\u0430\u0445\u0430 \u043F\u043E \u0442\u0451\u0437\u043A\u0430\u043C:\n\n```jsonc\nbitrix_task_get { "taskId": 28373 } // \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 CHAT_ID\nbitrix_chat_load { "chatId": <CHAT_ID> }\nbitrix_chat_history { "chatId": <CHAT_ID>, "beforeId": <\u043C\u0438\u043D id \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B> }\n```\n\n\u041E\u0431\u0449\u0430\u044F \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u0430 \u2014 **`bitrix_entity_chat`** (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 `im.chat.get`): chatId \u043B\u044E\u0431\u043E\u0433\u043E \u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\n\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u043E \u043F\u0430\u0440\u0435 `entityType`/`entityId`; \u043A\u0440\u043E\u043C\u0435 `TASKS_TASK` \u0442\u0430\u043A \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443\u044E\u0442\u0441\u044F `SONET_GROUP`\n(\u0433\u0440\u0443\u043F\u043F\u0430/\u043F\u0440\u043E\u0435\u043A\u0442), `CRM`, `CALENDAR`, `MAIL`, `VIDEOCONF`, `CALL`:\n\n```jsonc\nbitrix_entity_chat { "entityType": "TASKS_TASK", "entityId": 28373 } // \u2192 chatId\n```\n\n**\u0411. \u0427\u0435\u0440\u0435\u0437 \u0441\u043F\u0438\u0441\u043E\u043A \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447** (\u0441\u0435\u043A\u0446\u0438\u044F `tasksTask`; \u0432 `bitrix_chats_recent` \u0438\u0445 \u041D\u0415\u0422):\n\n```jsonc\nbitrix_recent_load { "section": "tasksTask" } // \u2192 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u0441 chatId/dialogId\nbitrix_recent_tail { "section": "tasksTask", "lastMessageDate": "2026-06-29T17:25:38+03:00" }\nbitrix_chat_load { "dialogId": "chat38849" } // \u0438\u043B\u0438 { "chatId": 38849 }\n```\n\n**\u0427\u0430\u0442 \u043F\u0443\u0441\u0442, \u0430 `COMMENTS_COUNT > 0`** \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0440\u0448\u0435 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447: \u0432 \u0447\u0430\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\n\xAB\u0427\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u043E\u0441\u0442\u0430\u0432\u0438\u043B\u0438 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0437\u0430\u0434\u0430\u0447\u0438\u2026\xBB, \u0430 \u0441\u0430\u043C\u043E \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043B\u0435\u0436\u0438\u0442 \u0432\n\u0444\u043E\u0440\u0443\u043C\u0435 \u2192 `bitrix_task_comments` (\xA75.6).\n\n**\u0412. \u041F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044E \u0437\u0430\u0434\u0430\u0447\u0438** (\u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0439, \u043C\u0430\u0442\u0447 \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443):\n`bitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" }`\n\n**\u0427\u0430\u0442 \u041F\u0420\u041E\u0415\u041A\u0422\u0410 \u0437\u0430\u0434\u0430\u0447\u0438** (\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B, \u043D\u0435 \u0441\u0430\u043C\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438) \u2014 \u0447\u0435\u0440\u0435\u0437 `GROUP_ID`:\n\n```jsonc\nbitrix_task_get { "taskId": 4229, "params": { "select": ["ID","GROUP_ID"] } }\nbitrix_project_get { "groupId": 15 } // \u043E\u0442\u0434\u0430\u0451\u0442 CHAT_ID / DIALOG_ID\nbitrix_chat_get_dialog_id { "externalId": "sg15" } // \u043B\u0438\u0431\u043E \u0440\u0435\u0437\u043E\u043B\u0432 dialogId \u0441\u043E\u0446\u0433\u0440\u0443\u043F\u043F\u044B \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E\n```\n\n### 5.3. \u041F\u043E\u0438\u0441\u043A \u0447\u0430\u0442\u0430 / \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F\n\n`bitrix_entity_search` (\u043E\u0431\u0451\u0440\u0442\u043A\u0430 \u043D\u0430\u0434 \u0432\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u043C `ui.entityselector.doSearch`) \u0441\u0430\u043C \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442 \u0434\u0438\u0430\u043B\u043E\u0433\n`IM_CHAT_SEARCH` \u0438 `searchQuery` \u0438\u0437 \u0441\u0442\u0440\u043E\u043A\u0438. \u041F\u0443\u0431\u043B\u0438\u0447\u043D\u044B\u0435 \u0430\u043D\u0430\u043B\u043E\u0433\u0438: \u043B\u044E\u0434\u0438 \u2014 `user.get`/`user.search`, \u0447\u0430\u0442\u044B \u2014\n`im.recent.list` + \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u044F \u0443 \u0441\u0435\u0431\u044F.\n\n```jsonc\nbitrix_entity_search { "query": "\u0434\u043C\u0438\u0442\u0440\u0438\u0439" } // \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u0447\u0430\u0442\u043E\u0432/\u0434\u0438\u0430\u043B\u043E\u0433\u043E\u0432\nbitrix_entity_search { "query": "\u0442\u0440\u0435\u043A\u0435\u0440", "section": "tasksTask" } // \u0441\u0440\u0435\u0434\u0438 \u0447\u0430\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\nbitrix_user_get { "userId": 11 } // \u0440\u0435\u0437\u043E\u043B\u0432 authorId \u2192 \u0438\u043C\u044F\n```\n\n### 5.4. \u0421\u043E\u0437\u0432\u043E\u043D: \u0440\u0435\u0437\u044E\u043C\u0435, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430, \u0437\u0430\u043F\u0438\u0441\u044C\n\nAI-\u0430\u043D\u0430\u043B\u0438\u0437 \u0437\u0432\u043E\u043D\u043A\u0430 (BitrixGPT Follow-Up) \u0436\u0438\u0432\u0451\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043D\u043E \u043E\u0442\u0440\u0435\u043D\u0434\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 `/call/detail/<callId>`\n\u2014 JSON-\u044D\u043D\u0434\u043F\u043E\u0438\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0435\u0439 \u043D\u0435\u0442, \u043F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E REST \u0434\u043B\u044F \u0432\u0438\u0434\u0435\u043E\u0432\u0441\u0442\u0440\u0435\u0447 \u0442\u043E\u0436\u0435 (\u{1F4D6} \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u044F `voximplant.*`\n\u0438 `crm.activity.call.getTranscript`). \u041C\u043E\u0441\u0442 \u0447\u0438\u0442\u0430\u0435\u0442 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0451 \u0432 \u043D\u043E\u0440\u043C\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u043D\u043D\u044B\u0439 JSON.\n\n**1) \u041D\u0430\u0439\u0442\u0438 \u0437\u0432\u043E\u043D\u043A\u0438.** \u0421\u0435\u0440\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u043F\u043E\u0438\u0441\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u043E\u0432 \u043F\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0443 \u043D\u0435\u0442 \u2014 \u0438\u0449\u0435\u043C \u0432 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u043E\u043C \u0447\u0430\u0442\u0435: \u0437\u0432\u043E\u043D\u043E\u043A\n\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0441 `params.COMPONENT_PARAMS = { messageType: "START", callId }`.\n\n```jsonc\nbitrix_chat_calls { "chatId": 9876 } // \u0447\u0430\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430: bitrix_project_get \u2192 CHAT_ID\nbitrix_chat_calls { "chatId": 9876, "maxPages": 10, "beforeId": 5001 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C (maxPages \u2264 10)\n```\n\n\u041E\u0442\u0432\u0435\u0442: `calls[] { callId, startedAt, startedBy, startMessageId, events[], summaryMessageId }` \u043F\u043B\u044E\u0441\n`scannedPages` / `oldestScannedMessageId` / **`reachedHistoryStart`** \u2014 \u0435\u0441\u043B\u0438 \u043E\u043D `false`, \u0438\u0441\u0442\u043E\u0440\u0438\u044F\n\u0434\u043E\u0447\u0438\u0442\u0430\u043D\u0430 \u041D\u0415 \u0434\u043E \u043A\u043E\u043D\u0446\u0430, \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestScannedMessageId>`.\n\n**2) \u0412\u0437\u044F\u0442\u044C \u0432\u0441\u0451 \u043F\u043E \u0437\u0432\u043E\u043D\u043A\u0443.**\n\n```jsonc\nbitrix_call_detail { "callId": 4242 } // \u0432\u0441\u0451; \u0434\u043B\u0438\u043D\u043D\u0430\u044F \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_call_detail { "callId": 4242, "transcript": "inline" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043F\u0440\u044F\u043C\u043E \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "none" } // \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430 \u0432\u043E\u0432\u0441\u0435\nbitrix_call_detail { "callId": 4242, "transcript": "file" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B, \u0434\u0430\u0436\u0435 \u043A\u043E\u0440\u043E\u0442\u043A\u0430\u044F\n```\n\n| \u041F\u043E\u043B\u0435 \u043E\u0442\u0432\u0435\u0442\u0430 | \u0427\u0442\u043E \u0432\u043D\u0443\u0442\u0440\u0438 |\n|---|---|\n| `title`, `agenda`, `meetingType` | \u0442\u0435\u043C\u0430, \u0432\u0441\u0442\u0443\u043F\u043B\u0435\u043D\u0438\u0435, \u0442\u0438\u043F \u0432\u0441\u0442\u0440\u0435\u0447\u0438 (\xAB\u0421\u0442\u0430\u0442\u0443\u0441-\u0432\u0441\u0442\u0440\u0435\u0447\u0430\xBB) |\n| `date`, `interval`, `duration` | \xAB23 \u0438\u044E\u043B\u044F, 15:46\xBB, \xAB15:46 - 16:51\xBB, \xAB1 \u0447 4 \u043C\u0438\u043D\xBB |\n| `efficiency`, `qualityChecklist[]` | \u043E\u0446\u0435\u043D\u043A\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 % \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 `{ ok, text }` |\n| `participants[]` | `{ id, name, talkTimePercent, talkTime, efficiency, metrics[], insight }` |\n| `overview`, `chapters[]` | \u043E\u0431\u0449\u0435\u0435 \u0440\u0435\u0437\u044E\u043C\u0435 \u0438 \u0433\u043B\u0430\u0432\u044B `{ from, to, title, text }` \u0441 \u0442\u0430\u0439\u043C\u043A\u043E\u0434\u0430\u043C\u0438 |\n| `decisions[]`, `tasks[]` | \xAB\u0447\u0442\u043E \u0440\u0435\u0448\u0438\u043B\u0438\xBB \u0438 \u0437\u0430\u0434\u0430\u0447\u0438 `{ assigneeId, assignee, text }` |\n| `transcript[]`, `transcriptCount` | \u0440\u0435\u043F\u043B\u0438\u043A\u0438 `{ from, to, speakerId, speaker, text }` |\n| `recording` | `{ path, url, trackId }` \u2014 \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C, \u043A\u0430\u0447\u0430\u0435\u0442\u0441\u044F `bitrix_call_recording` (\xA75.5) |\n\n**\u0420\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0434\u043B\u0438\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.** \u0423 \u0447\u0430\u0441\u043E\u0432\u043E\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043E\u043D\u0430 \u0434\u0430\u0451\u0442 ~70 \u041A\u0411 \u0438\u0437 80 \u041A\u0411, \u043F\u043E\u044D\u0442\u043E\u043C\u0443\n\u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (\u0440\u0435\u0436\u0438\u043C `"auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u043F\u0438\u0448\u0435\u0442\u0441\u044F \u043D\u0430 \u0434\u0438\u0441\u043A, \u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F `transcript: []`,\n`transcriptCount` \u0438 **`files`**: `files.transcript` \u2014 `call-<id>-transcript.txt`, \u0433\u0434\u0435 \u0441\u0442\u0440\u043E\u043A\u0430 = \u0440\u0435\u043F\u043B\u0438\u043A\u0430\n(`[11:10\u201411:24] \u0418\u043C\u044F \u0424\u0430\u043C\u0438\u043B\u0438\u044F: \u2026`), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E **\u0433\u0440\u0435\u043F\u0430\u0442\u044C** (\u043D\u0430\u0439\u0434\u0435\u043D\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0430\u043C\u0430 \u043D\u0435\u0441\u0451\u0442 \u0442\u0430\u0439\u043C\u043A\u043E\u0434 \u0438\n\u0441\u043F\u0438\u043A\u0435\u0440\u0430); `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442 \u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u043E\u0439. \u041E\u0431\u0430 \u0444\u0430\u0439\u043B\u0430 \u2014 \u043A\u0435\u0448 \u0437\u0432\u043E\u043D\u043A\u0430, \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u044E\u0442\u0441\u044F.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **`speakerId`** \u0440\u0435\u0437\u043E\u043B\u0432\u0438\u0442\u0441\u044F \u043F\u043E \u0438\u043C\u0435\u043D\u0438 \u0438\u0437 \u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0430\u043D\u0430\u043B\u0438\u0437\u0430; \u043A\u0442\u043E \u0433\u043E\u0432\u043E\u0440\u0438\u043B \u043C\u0430\u043B\u043E \u0438 \u0432 \u043D\u0435\u0451 \u043D\u0435 \u043F\u043E\u043F\u0430\u043B \u2014 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\n `speakerId: null`, \u043D\u043E \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 `participants` \u0441 `id: null`.\n- **`assigneeId` \u0437\u0430\u0434\u0430\u0447\u0438** \u2014 \u0443\u043F\u043E\u043C\u044F\u043D\u0443\u0442\u044B\u0439 \u0432 \u0442\u0435\u043A\u0441\u0442\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0430 \u041D\u0415 id \u0441\u043C\u043E\u0442\u0440\u044F\u0449\u0435\u0433\u043E.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0432\u043E\u043D\u043A\u0443 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432\u0435\u0440\u043D\u0451\u0442 \u0432\u043D\u044F\u0442\u043D\u0443\u044E \u043E\u0448\u0438\u0431\u043A\u0443 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.5. \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0444\u0430\u0439\u043B (\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430, \u0444\u0430\u0439\u043B \u0437\u0430\u0434\u0430\u0447\u0438, \u0437\u0430\u043F\u0438\u0441\u044C \u0437\u0432\u043E\u043D\u043A\u0430)\n\n\u0421\u0441\u044B\u043B\u043A\u0438 \u043F\u043E\u0440\u0442\u0430\u043B \u043C\u0438\u043D\u0442\u0438\u0442 \u0438 \u043F\u043E\u0434\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u0430\u043C, \u043D\u043E \u043F\u043E\u0434\u043F\u0438\u0441\u044C \u041D\u0415 \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u0430\u0446\u0438\u044E \u2014 \u043A\u0430\u0447\u0430\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0432\n\u0441\u0435\u0441\u0441\u0438\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n\n```jsonc\n// \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u0430: \u0441\u0441\u044B\u043B\u043A\u0443 \u0431\u0435\u0440\u0451\u043C \u0438\u0437 files[].urlDownload \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 bitrix_chat_load\nbitrix_file_download { "url": "https://<\u043F\u043E\u0440\u0442\u0430\u043B>/bitrix/services/main/ajax.php?action=disk.api.file.download&\u2026" }\nbitrix_call_recording { "callId": 4242 } // \u0430\u0443\u0434\u0438\u043E\u0437\u0430\u043F\u0438\u0441\u044C \u0441\u043E\u0437\u0432\u043E\u043D\u0430 (\u0441\u0441\u044B\u043B\u043A\u0443 \u043D\u0430\u0439\u0434\u0451\u0442 \u0441\u0430\u043C)\nbitrix_file_download { "url": "\u2026", "savePath": "/tmp/photo.png", "overwrite": true }\n```\n\n\u041E\u0442\u0432\u0435\u0442 \u2014 **\u043F\u0443\u0442\u044C, \u0430 \u043D\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435**: `{ path, bytes, contentType, fileName }` (\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u044B \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u044E\u0442 \u0432\n\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442). \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0444\u0430\u0439\u043B \u043B\u043E\u0436\u0438\u0442\u0441\u044F \u0432 `~/.bitrix24-mcp-bridge/downloads/`; `savePath` \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0435\u0433\u043E `/`\n\u0442\u0440\u0430\u043A\u0442\u0443\u0435\u0442\u0441\u044F \u043A\u0430\u043A \u0438\u043C\u044F \u0432\u043D\u0443\u0442\u0440\u0438 \u044D\u0442\u043E\u0439 \u043F\u0430\u043F\u043A\u0438. \u041F\u043E\u0442\u043E\u043B\u043E\u043A \u2014 512 \u041C\u0411.\n\n\u041C\u043E\u0441\u0442 \u043D\u0438\u0447\u0435\u0433\u043E \u0438\u0437 `downloads/` \u043D\u0435 \u0443\u0434\u0430\u043B\u044F\u0435\u0442. \u041A\u043E\u0433\u0434\u0430 \u0444\u0430\u0439\u043B\u044B \u043F\u0430\u043F\u043A\u0438 \u0432 \u0441\u0443\u043C\u043C\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 500 \u041C\u0411, \u043E\u0442\u0432\u0435\u0442\u044B \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0439,\n\u0437\u0430\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0445 \u0444\u0430\u0439\u043B \u0432 \u044D\u0442\u0443 \u043F\u0430\u043F\u043A\u0443 (`bitrix_file_download`, `bitrix_call_recording`, `bitrix_call_detail` \u0438\n`bitrix_task_comments` \u2014 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u0434\u0432\u0435, \u043A\u043E\u0433\u0434\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438 \u0444\u0430\u0439\u043B; \u0441 `savePath` \u0432\u043D\u0435 \u043F\u0430\u043F\u043A\u0438 \u2014 \u043D\u0435\u0442), \u0438\n`bitrix_status` \u043D\u0435\u0441\u0443\u0442 `warning` \xAB\u043F\u0430\u043F\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043E\u043A \u043C\u043E\u0441\u0442\u0430 \u2026 \u0437\u0430\u043D\u0438\u043C\u0430\u0435\u0442 N \u041C\u0411 \u2014\n\u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u043D\u0443\u0436\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B\u2026\xBB \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 \u044D\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n\n\u0422\u043E\u043D\u043A\u043E\u0441\u0442\u0438:\n- **\u0422\u043E\u043B\u044C\u043A\u043E \u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0444\u0430\u0439\u043B\u044B** \u0441\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043F\u043E\u0440\u0442\u0430\u043B\u0430: `/bitrix/services/main/ajax.php` \u0441 `action`\n `disk.api.file.download` / `disk.attachedObject.download` / `call.Track.download` \u0438\u043B\u0438\n `/bitrix/tools/disk/uf.php` \u0441 `action` `download` / `show` / `downloadArchiveByEntity`. \u0427\u0443\u0436\u043E\u0439 origin\n \u2192 `not a configured portal`; \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0443\u0442\u044C, \u0434\u0440\u0443\u0433\u043E\u0439, \u043F\u043E\u0432\u0442\u043E\u0440\u0451\u043D\u043D\u044B\u0439 \u0438\u043B\u0438 `action[]` \u2192 `not a portal file\n link`. \u0411\u0435\u0440\u0438 \u0441\u0441\u044B\u043B\u043A\u0438 \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043C\u043E\u0441\u0442\u0430, \u043D\u0435 \u0441\u043E\u0431\u0438\u0440\u0430\u0439 \u0438\u0445 \u0441\u0430\u043C.\n- **\u0418\u043C\u044F \u0434\u0430\u0451\u0442 \u043F\u043E\u0440\u0442\u0430\u043B** (`Content-Disposition`), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0431\u0435\u0437 `savePath` \u0443\u0433\u0430\u0434\u044B\u0432\u0430\u0442\u044C \u0435\u0433\u043E \u043D\u0435 \u043D\u0443\u0436\u043D\u043E.\n- **\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435** \u0442\u043E\u0433\u043E \u0436\u0435 \u0444\u0430\u0439\u043B\u0430 \u043F\u0430\u0434\u0430\u0435\u0442 \u0441 `already exists` \u2014 \u043F\u0435\u0440\u0435\u0434\u0430\u0439 `overwrite: true`.\n\n### 5.6. \u0421\u0442\u0430\u0440\u044B\u0435 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 (\u0444\u043E\u0440\u0443\u043C)\n\n\u0414\u043E \u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430 \u043D\u0430 \u0447\u0430\u0442\u044B \u0437\u0430\u0434\u0430\u0447 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0436\u0438\u043B\u043E \u0432 \u0444\u043E\u0440\u0443\u043C\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 \u0443 \u0441\u0442\u0430\u0440\u044B\u0445 \u0437\u0430\u0434\u0430\u0447 \u043E\u043D\u043E \u0442\u0430\u043C \u0438 \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C: \u0432\n\u0447\u0430\u0442\u0435 (`CHAT_ID`) \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0437\u0430\u0433\u043B\u0443\u0448\u043A\u0430 \u0441\u043E \u0441\u0441\u044B\u043B\u043A\u043E\u0439 `/task/comments/<id>/`. \u041F\u0440\u0438\u0437\u043D\u0430\u043A \u2014 \u0432\n`bitrix_task_get` \u043F\u043E\u043B\u0435 `COMMENTS_COUNT > 0` (\u0447\u0435\u0440\u0435\u0437 `params.select`; `FORUM_TOPIC_ID` \u0442\u043E\u0436\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D),\n\u0430 \u0447\u0430\u0442 \u043F\u0443\u0441\u0442. JSON-\u043C\u0435\u0442\u043E\u0434\u0430 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043C\u043E\u0441\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 HTML-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0435\u0432.\n\n```jsonc\nbitrix_task_comments { "taskId": 1234 } // \u0432\u0441\u0451 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435; \u0434\u043B\u0438\u043D\u043D\u043E\u0435 \u0443\u0435\u0434\u0435\u0442 \u0432 \u0444\u0430\u0439\u043B\nbitrix_task_comments { "taskId": 1234, "limit": 10 } // \u0442\u043E\u043B\u044C\u043A\u043E 10 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0445\nbitrix_task_comments { "taskId": 1234, "output": "inline" } // \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435\nbitrix_task_comments { "taskId": 1234, "beforeId": 5678 } // \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u0433\u043B\u0443\u0431\u044C \u043E\u0442 id\n```\n\n\u041E\u0442\u0432\u0435\u0442: `comments[]` \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 (\u0441\u0442\u0430\u0440\u044B\u0435 \u2192 \u043D\u043E\u0432\u044B\u0435) \u2014 `{ id, authorId, author, date, dateIso, text, isNew,\nsystem, files[] }`, \u043F\u043B\u044E\u0441 `total`, `oldestId`, `scannedPages` \u0438 **`reachedHistoryStart`**: \u0435\u0441\u043B\u0438 \u043E\u043D\n`false` (\u0443\u043F\u0451\u0440\u043B\u0438\u0441\u044C \u0432 `maxPages` \u2014 \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435 \u0438 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C 10 \u2014 \u0438\u043B\u0438 \u0432 `limit`), \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0430\u0439 \u0441 `beforeId: <oldestId>`.\n\n- **`system: true`** \u2014 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u044B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 (\xAB\u0432\u044B \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u044B \u0438\u0441\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u0435\u043C\xBB, \u0441\u043C\u0435\u043D\u0430 \u0441\u0440\u043E\u043A\u0430, \u043F\u0438\u043D\u0433\u0438), \u043D\u0435 \u0441\u043B\u043E\u0432\u0430 \u043B\u044E\u0434\u0435\u0439.\n- **`date`** \u2014 \u043A\u0430\u043A \u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u043B\u0435 (\xAB9 \u043C\u0430\u0440\u0442\u0430 2024 08:15\xBB), **`dateIso`** \u2014 \u0442\u043E \u0436\u0435 \u0432 `2024-03-09T08:15`\n (\u043C\u0435\u0441\u0442\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0440\u0442\u0430\u043B\u0430; \u0434\u043B\u044F \xAB\u0432\u0447\u0435\u0440\u0430, 12:00\xBB \u0438 \u0434\u0430\u0442 \u0431\u0435\u0437 \u0433\u043E\u0434\u0430 \u2014 `null`).\n- **`files[]`** \u2014 `{ attachedId, name, size, url }`; `url` \u0441\u043A\u0430\u0440\u043C\u043B\u0438\u0432\u0430\u0439 `bitrix_file_download` (\xA75.5).\n- **`text`** \u2014 \u0431\u0435\u0437 \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438; \u0443 \u0441\u0441\u044B\u043B\u043A\u0438 \u0441 \u043F\u043E\u0434\u043F\u0438\u0441\u044C\u044E \u0430\u0434\u0440\u0435\u0441 \u0434\u043E\u043F\u0438\u0441\u0430\u043D \u0432 \u0441\u043A\u043E\u0431\u043A\u0430\u0445: \xAB\u043C\u0430\u043A\u0435\u0442 (https://\u2026)\xBB.\n- **\u0414\u043B\u0438\u043D\u043D\u043E\u0435 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u043D\u0435 \u043F\u0440\u0438\u0445\u043E\u0434\u0438\u0442 \u0432 \u043E\u0442\u0432\u0435\u0442\u0435** (\u043A\u0430\u043A \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0430 \u0437\u0432\u043E\u043D\u043A\u0430, \xA75.4): \u0441\u0432\u044B\u0448\u0435 ~20 \u041A\u0411 (`output:\n "auto"` = \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u0435) \u0432 \u043E\u0442\u0432\u0435\u0442\u0435 `comments: []` \u0438 `files`: `files.text` \u2014 `task-<id>-comments.txt`,\n \u0441\u0442\u0440\u043E\u043A\u0430 = \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 (`#5678 [2024-03-09T08:15] \u0418\u043C\u044F (id 101): \u0442\u0435\u043A\u0441\u0442`, \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u044B \u2014 ` \u23CE `), \u0435\u0451 \u0443\u0434\u043E\u0431\u043D\u043E\n \u0433\u0440\u0435\u043F\u0430\u0442\u044C; `files.json` \u2014 \u043F\u043E\u043B\u043D\u044B\u0439 \u043E\u0442\u0432\u0435\u0442. `output: "file"` \u2014 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432 \u0444\u0430\u0439\u043B.\n- **\u041F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u043C \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u0435\u0442\u0441\u044F.** \u041F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u043C\u0435\u0447\u0430\u0435\u0442 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0438 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u043C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043C\n `readComment`, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0448\u043B\u0451\u0442 JS \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u0440\u0438 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0435; \u043C\u043E\u0441\u0442 JS \u043D\u0435 \u0438\u0441\u043F\u043E\u043B\u043D\u044F\u0435\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E:\n `viewedDate` \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u043E\u0441\u043B\u0435 \u0447\u0442\u0435\u043D\u0438\u044F \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F. `isNew: true` \u2014 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043D\u0435 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C.\n- \u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043A \u0437\u0430\u0434\u0430\u0447\u0435 / \u043F\u0440\u043E\u0442\u0443\u0445\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u044F \u2192 \u0432\u043D\u044F\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 (\u043F\u043E\u0440\u0442\u0430\u043B \u043E\u0442\u0434\u0430\u0451\u0442 HTML \u043B\u043E\u0433\u0438\u043D\u0430).\n\n### 5.7. \u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443: Definition of Done\n\n\u0412 scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0447\u0435\u0440\u0435\u0437 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0433\u043E\u0442\u043E\u0432\u043D\u043E\u0441\u0442\u0438 (DoD), \u043A\u0430\u043A \u0432 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0438 **\u043C\u043E\u0441\u0442 \u0438\u0445\n\u043D\u0435 \u043E\u0431\u0445\u043E\u0434\u0438\u0442**: \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u043C\u043E\u0436\u0435\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0442\u043E\u0440\u043E\u0439 \u0432\u044B\u0437\u043E\u0432 \u2014 \u043F\u043E\u0441\u043B\u0435 \u044F\u0432\u043D\u043E\u0433\u043E \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F. \u041F\u0435\u0440\u0435\u043D\u043E\u0441 \u0432 \u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u0442\u0438\u043F\u0430 `FINISH` \u0437\u0430\u043A\u0440\u044B\u043B \u0431\u044B \u0437\u0430\u0434\u0430\u0447\u0443 \u043C\u0438\u043C\u043E DoD, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0441\u043A\u0438 \u0442\u0430\u043A\u0443\u044E\n\u043A\u043E\u043B\u043E\u043D\u043A\u0443 \u043D\u0435 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442 (\xA73) \u2014 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0430\u043A.\n\n```jsonc\n// \u0448\u0430\u0433 1\nbitrix_task_close { "taskId": 4229 }\n// \u043D\u0435 scrum-\u043F\u0440\u043E\u0435\u043A\u0442 \u0438\u043B\u0438 DoD \u043D\u0435 \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u0430: { taskId, status: 5, changed: true }\n// DoD \u043D\u0443\u0436\u0435\u043D \u2192 \u0437\u0430\u0434\u0430\u0447\u0430 \u041D\u0415 \u0437\u0430\u043A\u0440\u044B\u0442\u0430:\n// { taskId, needsConfirmation: true,\n// types: [{ id: 1, name: "\u2026", required: true, items: [{ title: "\u2026", group: "\u2026" }, \u2026] }, \u2026] }\n\n// \u0448\u0430\u0433 2 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\u0435 \xAB\u0434\u0430\xBB \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430\nbitrix_task_close { "taskId": 4229, "typeId": 1, "confirmItems": true }\n// \u2192 { taskId, status: 5, changed: true, typeId: 1 }\n```\n\n- `types` \u2014 \u0442\u0438\u043F\u044B \u0437\u0430\u0434\u0430\u0447 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u043A\u0430\u0436\u0434\u043E\u0433\u043E; `required: true` \u2014 DoD \u0434\u043B\u044F \u0442\u0438\u043F\u0430 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u0435\u043D. `group` \u2014\n \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B \u0447\u0435\u043A-\u043B\u0438\u0441\u0442\u0430, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u043B\u0435\u0436\u0438\u0442 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0439 (\u0441\u0430\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430 \u0432 `items` \u043D\u0435 \u043F\u043E\u043F\u0430\u0434\u0430\u0435\u0442). \u041F\u043E\u043A\u0430\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0438 \u043F\u043E\u043B\u0443\u0447\u0438 \u0435\u0433\u043E \u044F\u0432\u043D\u043E\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u043E\u0442\u043C\u0435\u0442\u0438\u0442\u044C \u0438\u0445 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438 \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430. \u0421\u0430\u043C \u0437\u0430\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0440\u0435\u0448\u0430\u0439: \u043D\u0435\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F \u2014 \u0448\u0430\u0433 2 \u043D\u0435 \u0432\u044B\u0437\u044B\u0432\u0430\u0439. **\u0422\u0438\u043F \u0432\u044B\u0431\u0438\u0440\u0430\u0435\u0442 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C**: \u0442\u0438\u043F \u0441\n `required: false` \u0437\u0430\u043A\u0440\u043E\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0437 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0435\u0432 \u2014 \u0435\u0433\u043E \u0442\u043E\u0436\u0435 \u0431\u0435\u0440\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0441 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.\n- \u041D\u0430 \u0448\u0430\u0433\u0435 2 \u043E\u0442\u043C\u0435\u0447\u0430\u044E\u0442\u0441\u044F **\u0432\u0441\u0435** \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0442\u0438\u043F\u0430, \u0437\u0430\u0442\u0435\u043C \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F (\u043D\u0435\n \u0437\u0430\u043A\u0440\u044B\u043B\u0430\u0441\u044C \u2014 \u043E\u0448\u0438\u0431\u043A\u0430). `typeId` \u0438 `confirmItems: true` \u043F\u0435\u0440\u0435\u0434\u0430\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u043C\u0435\u0441\u0442\u0435; \u0437\u0430\u0434\u0430\u0447\u0435 \u043D\u0435 \u0438\u0437\n scrum-\u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043E\u043D\u0438 \u043D\u0435 \u043D\u0443\u0436\u043D\u044B (\u043E\u0448\u0438\u0431\u043A\u0430 \u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0435\u0451 \u0431\u0435\u0437 \u043D\u0438\u0445).\n- \u0423\u0436\u0435 \u0437\u0430\u043A\u0440\u044B\u0442\u0430\u044F \u0437\u0430\u0434\u0430\u0447\u0430 \u043D\u0435 \u0442\u0440\u043E\u0433\u0430\u0435\u0442\u0441\u044F (`changed: false`). \u0417\u0430\u043A\u0440\u044B\u0442\u0438\u0435 \u0432\u0438\u0434\u044F\u0442 \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443; \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438\n \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435. \u0412\u043E\u0437\u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u2014 `bitrix_task_reopen { "taskIds": [4229] }`.\n- \xAB\u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 DoD \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u044B\u043C\u0438, \u043D\u043E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C\xBB \u2014 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0443\u0436\u0435 \u043E\u0442\u043C\u0435\u0447\u0435\u043D\u044B, \u0437\u0430\u0434\u0430\u0447\u0430\n \u043E\u0442\u043A\u0440\u044B\u0442\u0430. \xAB\u2026\u2014 \u0437\u0430\u043A\u0440\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\xBB \u2014 \u043C\u043E\u0441\u0442 \u043D\u0435 \u0441\u043C\u043E\u0433 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C DoD \u0438\u0437 \u043E\u0442\u0432\u0435\u0442\u0430 Bitrix; \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0438\n \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0437\u0430\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u0434\u0430\u0447\u0443 \u0432 \u0432\u0435\u0431-\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\n\n### 5.8. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0444\u0430\u0439\u043B \u043A \u0437\u0430\u0434\u0430\u0447\u0435\n\n```jsonc\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/report.pdf" }\nbitrix_task_file_attach { "taskId": 4229, "path": "/tmp/out.csv", "name": "\u0438\u0442\u043E\u0433\u0438.csv" }\n// \u2192 { taskId, diskFileId, name, size, attachmentId }\n```\n\n- **\u0424\u0430\u0439\u043B \u0443\u0445\u043E\u0434\u0438\u0442 \u0441 \u043C\u0430\u0448\u0438\u043D\u044B**: \u043E\u043D \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044F \u0432 \u043A\u043E\u0440\u0435\u043D\u044C \u0414\u0438\u0441\u043A\u0430 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0435\u0442\u0441\u044F \u043A\n \u0437\u0430\u0434\u0430\u0447\u0435 \u2014 \u0435\u0433\u043E \u0443\u0432\u0438\u0434\u044F\u0442 \u0438 \u0441\u043C\u043E\u0433\u0443\u0442 \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u0432\u0441\u0435, \u043A\u0442\u043E \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u0434\u0430\u0447\u0443. \u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0439 \u0442\u043E\u043B\u044C\u043A\u043E \u0442\u043E, \u0447\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\n \u044F\u0432\u043D\u043E \u043F\u043E\u043F\u0440\u043E\u0441\u0438\u043B; \u043B\u044E\u0431\u043E\u0439 \u0434\u0440\u0443\u0433\u043E\u0439 \u0444\u0430\u0439\u043B \u2014 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u043F\u0440\u043E\u0441\u0438.\n- `path` \u2014 **\u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u044B\u0439** \u043F\u0443\u0442\u044C \u043A \u043E\u0431\u044B\u0447\u043D\u043E\u043C\u0443 \u043D\u0435\u043F\u0443\u0441\u0442\u043E\u043C\u0443 \u0444\u0430\u0439\u043B\u0443 \u0434\u043E 10 \u041C\u0411: \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0435\n daemon, \u0430 \u043D\u0435 \u0432 \u0442\u0432\u043E\u0451\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0435. `name` \u2014 \u0438\u043C\u044F \u0432 \u0411\u0438\u0442\u0440\u0438\u043A\u044124 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u2014 \u0438\u0437 `path`, \u0431\u0435\u0437\n \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u0435\u0439 \u043F\u0443\u0442\u0438); \u0435\u0441\u043B\u0438 \u0438\u043C\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435 \u0437\u0430\u043D\u044F\u0442\u043E, \u0411\u0438\u0442\u0440\u0438\u043A\u044124 \u0434\u043E\u0431\u0430\u0432\u0438\u0442 \u0441\u0443\u0444\u0444\u0438\u043A\u0441 \u2014 \u0438\u0442\u043E\u0433\u043E\u0432\u043E\u0435 \u0438\u043C\u044F \u0432 \u043E\u0442\u0432\u0435\u0442\u0435.\n- \u0418\u0437 \u0441\u043B\u0443\u0436\u0435\u0431\u043D\u043E\u0433\u043E \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043C\u043E\u0441\u0442\u0430 (`~/.bitrix24-mcp-bridge` \u0438\u043B\u0438 `BITRIX24_MCP_BRIDGE_HOME`; \u0442\u0430\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\n \u0442\u043E\u043A\u0435\u043D) \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u044E\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u0444\u0430\u0439\u043B\u044B, \u0441\u043A\u0430\u0447\u0430\u043D\u043D\u044B\u0435 \u043C\u043E\u0441\u0442\u043E\u043C, \u2014 \u0438\u0437 `downloads/` (\u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043A \u0434\u0440\u0443\u0433\u043E\u0439\n \u0437\u0430\u0434\u0430\u0447\u0435). \u0412\u0441\u0451 \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432 \u043D\u0451\u043C \u2014 \u043E\u0442\u043A\u0430\u0437, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0438\u043C\u043B\u0438\u043D\u043A \u0438\u043B\u0438 `..`.\n- \u041D\u0443\u0436\u043D\u043E \u043F\u0440\u0430\u0432\u043E \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u044F\u0442\u044C \u0444\u0430\u0439\u043B\u044B \u043A \u0437\u0430\u0434\u0430\u0447\u0435: \u0442\u043E\u043C\u0443, \u043A\u0442\u043E \u0437\u0430\u0434\u0430\u0447\u0443 \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0438\u0434\u0438\u0442, Bitrix \u043C\u043E\u0436\u0435\u0442 \u043E\u0442\u043A\u0430\u0437\u0430\u0442\u044C \u0443\u0436\u0435 \u043F\u043E\u0441\u043B\u0435\n \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438. \u0415\u0441\u043B\u0438 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C, \u0444\u0430\u0439\u043B **\u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\u0435** \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u043E\u0448\u0438\u0431\u043A\u0430 \u043D\u0430\u0437\u044B\u0432\u0430\u0435\u0442 \u0435\u0433\u043E (\u0438\u043C\u044F\n \u0438 id); \u0441\u043A\u0430\u0436\u0438 \u043E\u0431 \u044D\u0442\u043E\u043C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E.\n- \xAB\u0444\u0430\u0439\u043B \u043C\u043E\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0441\u044F \u043D\u0430 \u0414\u0438\u0441\u043A\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u043A\u043E\u0440\u043D\u0435\u0432\u0443\u044E \u043F\u0430\u043F\u043A\u0443 \u0414\u0438\u0441\u043A\u0430 \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0432\u0442\u043E\u0440\u043E\u043C; \xAB\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043C\u043E\u0433\u043B\u043E\n \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0441\u044F\xBB \u2014 \u043F\u0440\u043E\u0432\u0435\u0440\u044C \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 (`bitrix_task_get` \u0441 `select: ["UF_TASK_WEBDAV_FILES"]` \u2192\n `bitrix_task_files`). \u041F\u043E\u0441\u043B\u0435 \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u044B \u0437\u0430\u0434\u0430\u0447\u0438 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0435\u0442 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n### 5.9. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n\n\u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043A\u0430\u0441\u0430\u044E\u0442\u0441\u044F **\u0442\u043E\u043B\u044C\u043A\u043E \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F**: \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0438 \u0438\u0445 \u043D\u0435\n\u0432\u0438\u0434\u044F\u0442 \u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u044E\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043A\u0430\u043A \u043F\u0440\u0435\u0436\u0434\u0435.\n\n```jsonc\nbitrix_task_reminders { "taskId": 4229 }\n// \u2192 { taskId, reminders: [{ id, at, via, remindBy, recipient, userId, mine }] }\nbitrix_task_reminder_set { "taskId": 4229, "at": "2026-12-01T09:00:00+03:00", "via": "notification" } // \u043D\u043E\u0432\u043E\u0435 \u2014 \u0442\u0435\u0431\u0435\nbitrix_task_reminder_set { "taskId": 4229, "reminderId": 61, "at": "2026-12-02T06:00:00Z", "via": "email" }\nbitrix_task_reminder_delete { "taskId": 4229, "reminderId": 61 }\nbitrix_task_mute { "taskId": 4229, "muted": true } // \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0441\u0432\u043E\u0438 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E \u0437\u0430\u0434\u0430\u0447\u0435\n```\n\n- \u041C\u0435\u043D\u044F\u0442\u044C \u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C \u043C\u043E\u0436\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E **\u0441\u0432\u043E\u0438** \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u044F \u2014 `mine: true` \u0432 `bitrix_task_reminders`; \u0447\u0443\u0436\u043E\u0435 \u0438\u043B\u0438\n \u043D\u0435 \u044D\u0442\u043E\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F.\n- `at` \u2014 \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u0430\u044F \u0434\u0430\u0442\u0430 **\u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043C** (\u0444\u043E\u0440\u043C\u0430\u0442 \u2014 \xAB\u0414\u0430\u0442\u044B\xBB, \xA73); `via` \u2014 `notification` (\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0432\n \u0411\u0438\u0442\u0440\u0438\u043A\u044124) \u0438\u043B\u0438 `email`. \u041D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0441\u0440\u043E\u043A\u0430 (`remindBy: "deadline"`) \u043F\u043E\u0441\u043B\u0435 \u043F\u0440\u0430\u0432\u043A\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0441\u044F\n \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435\u043C \u043D\u0430 \u0434\u0430\u0442\u0443; \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u0435\u043B\u044C (`recipient`) \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C.\n- \u041F\u043E\u0441\u043B\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0438 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0435\u0447\u0438\u0442\u044B\u0432\u0430\u044E\u0442\u0441\u044F; \u0435\u0441\u043B\u0438 \u043E\u043D\u0438 \u043D\u0435 \u0442\u0435 \u2014 \u043E\u0448\u0438\u0431\u043A\u0430.\n\n---\n\n\u041D\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u043E\u0434 \u043D\u0443\u0436\u043D\u043E\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u2014 \u0441\u043A\u0430\u0436\u0438 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E: \u043D\u043E\u0432\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442\n\u043C\u0435\u0439\u043D\u0442\u0435\u0439\u043D\u0435\u0440 \u043C\u043E\u0441\u0442\u0430 (\u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u2014 `docs/reconnaissance.md` \u0432 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0438 \u043C\u043E\u0441\u0442\u0430).\n' : load();
32013
32127
 
32014
32128
  // src/tools/register.ts
32015
32129
  function ok(data) {
@@ -32043,6 +32157,14 @@ function registerTools(server, deps) {
32043
32157
  try {
32044
32158
  const { portals, mutations } = await deps.sink.status();
32045
32159
  const stale = portals.filter((p) => p.connected && p.extensionVersion !== PACKAGE_VERSION);
32160
+ const warnings = [];
32161
+ if (stale.length > 0) {
32162
+ warnings.push(
32163
+ `\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E (${stale.map((p) => `${p.alias}: ${p.extensionVersion ?? "\u0434\u043E 0.3.0"}`).join(", ")}), \u043C\u043E\u0441\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 ${PACKAGE_VERSION}. \u0424\u0430\u0439\u043B\u044B \u0443\u0436\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B \u2014 \u043D\u0430\u0436\u043C\u0438 \xAB\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\xBB \u043D\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0438 \u0432 chrome://extensions \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \u043F\u043E\u0440\u0442\u0430\u043B\u0430, \u0438\u043D\u0430\u0447\u0435 \u043D\u043E\u0432\u044B\u0435 \u043C\u0435\u0442\u043E\u0434\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0435 \u0431\u0443\u0434\u0443\u0442.`
32164
+ );
32165
+ }
32166
+ const downloads = await downloadsWarning(deps.downloadsDir);
32167
+ if (downloads !== void 0) warnings.push(`${downloads}.`);
32046
32168
  return ok({
32047
32169
  configured: true,
32048
32170
  defaultPortal: deps.defaultPortal,
@@ -32050,9 +32172,7 @@ function registerTools(server, deps) {
32050
32172
  // null: the daemon is too old to report whether mutating operations are allowed.
32051
32173
  mutations: mutations ?? null,
32052
32174
  portals,
32053
- ...stale.length > 0 ? {
32054
- warning: `\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E (${stale.map((p) => `${p.alias}: ${p.extensionVersion ?? "\u0434\u043E 0.3.0"}`).join(", ")}), \u043C\u043E\u0441\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 ${PACKAGE_VERSION}. \u0424\u0430\u0439\u043B\u044B \u0443\u0436\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B \u2014 \u043D\u0430\u0436\u043C\u0438 \xAB\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\xBB \u043D\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0438 \u0432 chrome://extensions \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438 \u0432\u043A\u043B\u0430\u0434\u043A\u0443 \u043F\u043E\u0440\u0442\u0430\u043B\u0430, \u0438\u043D\u0430\u0447\u0435 \u043D\u043E\u0432\u044B\u0435 \u043C\u0435\u0442\u043E\u0434\u044B \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u043D\u0435 \u0431\u0443\u0434\u0443\u0442.`
32055
- } : {}
32175
+ ...warnings.length > 0 ? { warning: warnings.join(" ") } : {}
32056
32176
  });
32057
32177
  } catch (e) {
32058
32178
  return fail(e instanceof Error ? e.message : String(e));
@@ -32589,7 +32709,8 @@ async function runMcpClient() {
32589
32709
  sink: client,
32590
32710
  operations: OPERATIONS,
32591
32711
  defaultPortal: cfg.defaultPortal,
32592
- portals: Object.keys(cfg.portals)
32712
+ portals: Object.keys(cfg.portals),
32713
+ downloadsDir: paths.downloadsDir
32593
32714
  });
32594
32715
  await server.connect(new StdioServerTransport());
32595
32716
  console.error("[mcp] bitrix24-bridge client running on stdio");