From 9fb266d0f7065a66b424a9f0500847c28411a51f Mon Sep 17 00:00:00 2001 From: Anton Date: Sun, 14 Jul 2024 18:23:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=B0=D1=8F=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20B24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/os/releasemaker.os | 2 +- .../Catalogs-managment/Create-subfolder.md | 85 ++++ .../Catalogs-managment/Delete-folder.md | 65 +++ .../Get-folder-external-link.md | 64 +++ .../Get-folder-filter-structure.md | 62 +++ .../Get-folder-information.md | 80 ++++ .../Catalogs-managment/Get-folder-items.md | 101 +++++ .../Catalogs-managment/Make-folder-copy.md | 88 ++++ .../Mark-folder-as-deleted.md | 80 ++++ .../Catalogs-managment/Move-folder.md | 87 ++++ .../Catalogs-managment/Rename-folder.md | 85 ++++ .../Catalogs-managment/Restore-folder.md | 80 ++++ .../Catalogs-managment/_category_.json | 4 + .../Add-users-to-chat.md | 72 ++++ .../Change-chat-color.md | 74 ++++ .../Change-chat-owner.md | 68 +++ .../Change-chat-picture.md | 68 +++ .../Change-chat-title.md | 70 +++ .../Create-chat.md | 87 ++++ .../Delete-user-from-chat.md | 68 +++ .../Disable-chat-notifications.md | 65 +++ .../Enable-chat-notifications.md | 65 +++ .../Get-chat-files-folder.md | 67 +++ .../Get-chat-members-list.md | 121 ++++++ .../Get-chat-messages-list.md | 401 ++++++++++++++++++ .../Get-chat-structure.md | 33 ++ .../Get-chat-users.md | 68 +++ .../Chats-and-dialogs-managment/Get-dialog.md | 134 ++++++ .../Chats-and-dialogs-managment/Leave-chat.md | 65 +++ .../Chats-and-dialogs-managment/Read-all.md | 62 +++ .../Send-writing-notification.md | 65 +++ .../_category_.json | 4 + .../Add-task-comment.md | 5 +- .../Create-result-from-comment.md | 5 +- .../Delete-result-from-comment.md | 5 +- .../Delete-task-comment.md | 5 +- .../Get-results-list.md | 5 +- .../Get-task-comment.md | 5 +- .../Get-task-comments-list.md | 5 +- .../Update-task-comment.md | 5 +- .../_category_.json | 2 +- .../Feed-posts-managment/Create-post.md | 2 +- .../Feed-posts-managment/Update-post.md | 2 +- .../md/Bitrix24/File-managment/Delete-file.md | 65 +++ .../File-managment/Get-file-external-link.md | 64 +++ .../File-managment/Get-file-information.md | 83 ++++ .../Bitrix24/File-managment/Make-file-copy.md | 90 ++++ .../File-managment/Mark-file-as-deleted.md | 83 ++++ .../File-managment/Move-file-to-folder.md | 90 ++++ .../md/Bitrix24/File-managment/Rename-file.md | 88 ++++ .../Bitrix24/File-managment/Restore-file.md | 83 ++++ .../File-managment/Upload-file-to-folder.md | 83 ++++ .../File-managment/Upload-file-to-storage.md | 94 ++++ .../Bitrix24/File-managment/_category_.json | 4 + .../en/md/Bitrix24/Kanban/Add-kanban-stage.md | 5 +- .../md/Bitrix24/Kanban/Delete-kanban-stage.md | 7 +- .../md/Bitrix24/Kanban/Get-kanban-stages.md | 11 +- .../Kanban/Move-task-to-kanban-stage.md | 7 +- .../Bitrix24/Kanban/Update-kanbans-stage.md | 75 ++++ docs/en/md/Bitrix24/Kanban/_category_.json | 2 +- .../Message-management/Delete-message.md | 65 +++ .../Message-management/Edit-message.md | 76 ++++ .../Message-management/Get-file-block.md | 37 ++ .../Message-management/Get-picture-block.md | 37 ++ .../Mark-message-as-readed.md | 73 ++++ .../Mark-message-as-unreaded.md | 68 +++ .../Bitrix24/Message-management/Send-file.md | 144 +++++++ .../Message-management/Send-message.md | 75 ++++ .../Set-message-reaction.md | 65 +++ .../Message-management/_category_.json | 4 + .../_category_.json | 2 +- .../Create-storage-folder.md | 85 ++++ .../Storages-managment/Get-app-sotrage.md | 43 ++ .../Storages-managment/Get-storage-objects.md | 105 +++++ .../Storages-managment/Get-storage.md | 72 ++++ .../Storages-managment/Get-storages-list.md | 126 ++++++ .../Storages-managment/Rename-storage.md | 69 +++ .../Storages-managment/_category_.json | 4 + .../Add-tasks-checklist-element.md | 71 ++++ .../Complete-tasks-checklist-element.md | 69 +++ .../Delete-tasks-checklist-element.md | 69 +++ .../Get-tasks-checklist-element.md | 82 ++++ .../Get-tasks-checklist.md | 95 +++++ .../Renew-tasks-checklist-element.md | 69 +++ .../Update-tasks-checklist-element.md | 72 ++++ .../_category_.json | 4 + .../Tasks-managment/Add-task-to-favorites.md | 5 +- .../Bitrix24/Tasks-managment/Approve-task.md | 5 +- .../Tasks-managment/Attach-file-to-topic.md | 5 +- .../Tasks-managment/Check-task-accesses.md | 5 +- .../Bitrix24/Tasks-managment/Complete-task.md | 5 +- .../Bitrix24/Tasks-managment/Create-task.md | 5 +- .../Create-tasks-dependencies.md | 5 +- .../md/Bitrix24/Tasks-managment/Defer-task.md | 5 +- .../Bitrix24/Tasks-managment/Delegate-task.md | 5 +- .../Bitrix24/Tasks-managment/Delete-task.md | 5 +- .../Delete-tasks-dependencies.md | 21 +- .../Tasks-managment/Disapprove-task.md | 5 +- .../Tasks-managment/Get-daily-plan.md | 62 +++ .../Get-task-fields-structure.md | 7 +- .../Tasks-managment/Get-task-history.md | 5 +- .../md/Bitrix24/Tasks-managment/Get-task.md | 5 +- .../Get-tasks-filter-structure.md | 2 +- .../Tasks-managment/Get-tasks-list.md | 5 +- .../md/Bitrix24/Tasks-managment/Mute-task.md | 5 +- .../md/Bitrix24/Tasks-managment/Pause-task.md | 5 +- .../Remove-task-from-favorites.md | 5 +- .../md/Bitrix24/Tasks-managment/Renew-task.md | 5 +- .../md/Bitrix24/Tasks-managment/Start-task.md | 5 +- .../Tasks-managment/Start-watching-task.md | 5 +- .../Tasks-managment/Stop-watching-task.md | 5 +- .../Bitrix24/Tasks-managment/Unmute-task.md | 5 +- .../Bitrix24/Tasks-managment/Update-task.md | 5 +- .../Timekeeping/Add-task-time-accounting.md | 82 ++++ .../Delete-task-time-accounting.md | 67 +++ .../Get-task-time-accounting-list.md | 90 ++++ .../Timekeeping/Get-task-time-accounting.md | 78 ++++ .../Update-task-time-accounting.md | 83 ++++ .../md/Bitrix24/Timekeeping/_category_.json | 4 + .../cli/Bitrix24/ВключитьУведомленияЧата.txt | 1 + .../ВозобновитьЭлементЧеклистаЗадачи.txt | 1 + .../ВыполнитьЭлементЧеклистаЗадачи.txt | 1 + .../Bitrix24/ДобавитьПользователейВЧат.txt | 1 + .../Bitrix24/ДобавитьТрудозатратыЗадачи.txt | 1 + .../ДобавитьЭлементЧеклистаЗадачи.txt | 1 + .../ru/cli/Bitrix24/ИзменитьЗаголовокЧата.txt | 1 + docs/ru/cli/Bitrix24/ИзменитьКартинкуЧата.txt | 1 + docs/ru/cli/Bitrix24/ИзменитьСообщение.txt | 1 + .../ru/cli/Bitrix24/ИзменитьСтадиюКанбана.txt | 1 + .../Bitrix24/ИзменитьТрудозатратыЗадачи.txt | 1 + docs/ru/cli/Bitrix24/ИзменитьЦветЧата.txt | 1 + .../ИзменитьЭлементЧеклистаЗадачи.txt | 1 + .../Bitrix24/ИсключитьПользователяИзЧата.txt | 1 + .../cli/Bitrix24/ОтключитьУведомленияЧата.txt | 1 + .../ОтметитьСообщениеКакНепрочитанное.txt | 1 + .../ОтметитьСообщениеКакПрочитанное.txt | 1 + docs/ru/cli/Bitrix24/ОтправитьСообщение.txt | 1 + .../Bitrix24/ОтправитьУведомлениеОВводе.txt | 1 + docs/ru/cli/Bitrix24/ОтправитьФайл.txt | 1 + docs/ru/cli/Bitrix24/ПокинутьЧат.txt | 1 + docs/ru/cli/Bitrix24/ПолучитьБлокКартинки.txt | 1 + docs/ru/cli/Bitrix24/ПолучитьБлокФайла.txt | 1 + docs/ru/cli/Bitrix24/ПолучитьДиалог.txt | 1 + .../Bitrix24/ПолучитьКаталогФайловЧата.txt | 1 + .../cli/Bitrix24/ПолучитьПланЗадачНаДень.txt | 1 + .../ПолучитьСписокПользователейДиалога.txt | 1 + .../ПолучитьСписокПользователейЧата.txt | 1 + .../Bitrix24/ПолучитьСписокСообщенийЧата.txt | 1 + .../ПолучитьСписокТрудозатратЗадачи.txt | 1 + .../ru/cli/Bitrix24/ПолучитьСтруктуруЧата.txt | 1 + .../Bitrix24/ПолучитьТрудозатратыЗадачи.txt | 1 + .../ru/cli/Bitrix24/ПолучитьЧеклистЗадачи.txt | 1 + .../ПолучитьЭлементЧеклистаЗадачи.txt | 1 + docs/ru/cli/Bitrix24/ПрочитатьВсе.txt | 1 + docs/ru/cli/Bitrix24/СменитьВладельцаЧата.txt | 1 + docs/ru/cli/Bitrix24/СоздатьЧат.txt | 1 + docs/ru/cli/Bitrix24/УдалитьСообщение.txt | 1 + .../Bitrix24/УдалитьТрудозатратыЗадачи.txt | 1 + .../Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt | 1 + .../Bitrix24/УстановитьРеакциюНаСообщение.txt | 1 + .../Bitrix24/ВключитьУведомленияЧата.txt | 11 + .../ВозобновитьЭлементЧеклистаЗадачи.txt | 14 + .../ВыполнитьЭлементЧеклистаЗадачи.txt | 14 + .../Bitrix24/ДобавитьПользователейВЧат.txt | 16 + .../Bitrix24/ДобавитьТрудозатратыЗадачи.txt | 24 ++ .../ДобавитьЭлементЧеклистаЗадачи.txt | 15 + .../Bitrix24/ИзменитьЗаголовокЧата.txt | 15 + .../Bitrix24/ИзменитьКартинкуЧата.txt | 13 + .../examples/Bitrix24/ИзменитьСообщение.txt | 20 + .../Bitrix24/ИзменитьСтадиюКанбана.txt | 17 + .../Bitrix24/ИзменитьТрудозатратыЗадачи.txt | 25 ++ .../ru/examples/Bitrix24/ИзменитьЦветЧата.txt | 15 + .../ИзменитьЭлементЧеклистаЗадачи.txt | 16 + .../Bitrix24/ИсключитьПользователяИзЧата.txt | 13 + .../Bitrix24/ОтключитьУведомленияЧата.txt | 11 + .../ОтметитьСообщениеКакНепрочитанное.txt | 13 + .../ОтметитьСообщениеКакПрочитанное.txt | 13 + .../examples/Bitrix24/ОтправитьСообщение.txt | 19 + .../Bitrix24/ОтправитьУведомлениеОВводе.txt | 11 + docs/ru/examples/Bitrix24/ОтправитьФайл.txt | 25 ++ docs/ru/examples/Bitrix24/ПокинутьЧат.txt | 11 + docs/ru/examples/Bitrix24/ПолучитьДиалог.txt | 11 + .../Bitrix24/ПолучитьКаталогФайловЧата.txt | 11 + .../Bitrix24/ПолучитьПланЗадачНаДень.txt | 9 + .../ПолучитьСписокПользователейДиалога.txt | 11 + .../ПолучитьСписокПользователейЧата.txt | 11 + .../Bitrix24/ПолучитьСписокСообщенийЧата.txt | 12 + .../ПолучитьСписокТрудозатратЗадачи.txt | 10 + .../Bitrix24/ПолучитьТрудозатратыЗадачи.txt | 12 + .../Bitrix24/ПолучитьЧеклистЗадачи.txt | 12 + .../ПолучитьЭлементЧеклистаЗадачи.txt | 14 + docs/ru/examples/Bitrix24/ПрочитатьВсе.txt | 9 + .../Bitrix24/СменитьВладельцаЧата.txt | 13 + docs/ru/examples/Bitrix24/СоздатьЧат.txt | 33 ++ .../ru/examples/Bitrix24/УдалитьСообщение.txt | 11 + .../Bitrix24/УдалитьТрудозатратыЗадачи.txt | 12 + .../Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt | 14 + .../Bitrix24/УстановитьРеакциюНаСообщение.txt | 11 + .../Create-subfolder.md | 7 +- .../Delete-folder.md | 127 +++--- .../Get-folder-external-link.md | 7 +- .../Get-folder-filter-structure.md | 7 +- .../Get-folder-information.md | 7 +- .../Get-folder-items.md | 7 +- .../Make-folder-copy.md | 7 +- .../Mark-folder-as-deleted.md | 7 +- .../Move-folder.md | 7 +- .../Rename-folder.md | 7 +- .../Restore-folder.md | 7 +- .../Catalogs-managment/_category_.json | 4 + .../Add-users-to-chat.md | 72 ++++ .../Change-chat-color.md | 74 ++++ .../Change-chat-owner.md | 68 +++ .../Change-chat-picture.md | 68 +++ .../Change-chat-title.md | 70 +++ .../Create-chat.md | 87 ++++ .../Delete-user-from-chat.md | 68 +++ .../Disable-chat-notifications.md | 65 +++ .../Enable-chat-notifications.md | 65 +++ .../Get-chat-files-folder.md | 67 +++ .../Get-chat-members-list.md | 121 ++++++ .../Get-chat-messages-list.md | 401 ++++++++++++++++++ .../Get-chat-structure.md | 33 ++ .../Get-chat-users.md | 68 +++ .../Chats-and-dialogs-managment/Get-dialog.md | 134 ++++++ .../Chats-and-dialogs-managment/Leave-chat.md | 65 +++ .../Chats-and-dialogs-managment/Read-all.md | 62 +++ .../Send-writing-notification.md | 65 +++ .../_category_.json | 4 + .../Add-task-comment.md | 5 +- .../Create-result-from-comment.md | 5 +- .../Delete-result-from-comment.md | 5 +- .../Delete-task-comment.md | 5 +- .../Get-results-list.md | 5 +- .../Get-task-comment.md | 5 +- .../Get-task-comments-list.md | 5 +- .../Update-task-comment.md | 5 +- .../_category_.json | 2 +- .../Feed-posts-managment/Crate-comment.md | 61 --- .../Feed-posts-managment/Create-post.md | 2 +- .../Feed-posts-managment/Update-post.md | 2 +- .../Delete-file.md | 127 +++--- .../Get-file-external-link.md | 7 +- .../Get-file-information.md | 7 +- .../Make-file-copy.md | 7 +- .../Mark-file-as-deleted.md | 7 +- .../Move-file-to-folder.md | 7 +- .../Rename-file.md | 7 +- .../Restore-file.md | 7 +- .../Upload-file-to-folder.md | 7 +- .../Upload-file-to-storage.md | 185 ++++---- .../Bitrix24/File-managment/_category_.json | 4 + .../ru/md/Bitrix24/Kanban/Add-kanban-stage.md | 5 +- .../md/Bitrix24/Kanban/Delete-kanban-stage.md | 7 +- .../md/Bitrix24/Kanban/Get-kanban-stages.md | 7 +- .../Kanban/Move-task-to-kanban-stage.md | 7 +- .../Bitrix24/Kanban/Update-kanbans-stage.md | 75 ++++ docs/ru/md/Bitrix24/Kanban/_category_.json | 2 +- .../Message-management/Delete-message.md | 65 +++ .../Message-management/Edit-message.md | 76 ++++ .../Message-management/Get-file-block.md | 37 ++ .../Message-management/Get-picture-block.md | 37 ++ .../Mark-message-as-readed.md | 73 ++++ .../Mark-message-as-unreaded.md | 68 +++ .../Bitrix24/Message-management/Send-file.md | 144 +++++++ .../Message-management/Send-message.md | 75 ++++ .../Set-message-reaction.md | 65 +++ .../Message-management/_category_.json | 4 + .../_category_.json | 4 - .../Create-storage-folder.md | 167 ++++---- .../Get-app-sotrage.md | 83 ++-- .../Get-storage-objects.md | 207 ++++----- .../Get-storage.md | 141 +++--- .../Get-storages-list.md | 249 +++++------ .../Rename-storage.md | 135 +++--- .../Storages-managment/_category_.json | 4 + .../Add-tasks-checklist-element.md | 71 ++++ .../Complete-tasks-checklist-element.md | 69 +++ .../Delete-tasks-checklist-element.md | 69 +++ .../Get-tasks-checklist-element.md | 82 ++++ .../Get-tasks-checklist.md | 95 +++++ .../Renew-tasks-checklist-element.md | 69 +++ .../Update-tasks-checklist-element.md | 72 ++++ .../_category_.json | 4 + .../Tasks-managment/Add-task-to-favorites.md | 5 +- .../Bitrix24/Tasks-managment/Approve-task.md | 5 +- .../Tasks-managment/Attach-file-to-topic.md | 5 +- .../Tasks-managment/Check-task-accesses.md | 5 +- .../Bitrix24/Tasks-managment/Complete-task.md | 5 +- .../Bitrix24/Tasks-managment/Create-task.md | 5 +- .../Create-tasks-dependencies.md | 5 +- .../md/Bitrix24/Tasks-managment/Defer-task.md | 5 +- .../Bitrix24/Tasks-managment/Delegate-task.md | 5 +- .../Bitrix24/Tasks-managment/Delete-task.md | 5 +- .../Delete-tasks-dependencies.md | 21 +- .../Tasks-managment/Disapprove-task.md | 5 +- .../Get-comments-filter-structure.md | 35 -- .../Tasks-managment/Get-daily-plan.md | 62 +++ .../Tasks-managment/Get-task-comments-list.md | 38 -- .../Get-task-fields-structure.md | 7 +- .../Tasks-managment/Get-task-history.md | 5 +- .../md/Bitrix24/Tasks-managment/Get-task.md | 5 +- .../Get-tasks-filter-structure.md | 2 +- .../Tasks-managment/Get-tasks-list.md | 5 +- .../md/Bitrix24/Tasks-managment/Mute-task.md | 5 +- .../md/Bitrix24/Tasks-managment/Pause-task.md | 5 +- .../Remove-task-from-favorites.md | 5 +- .../md/Bitrix24/Tasks-managment/Renew-task.md | 5 +- .../md/Bitrix24/Tasks-managment/Start-task.md | 5 +- .../Tasks-managment/Start-watching-task.md | 5 +- .../Tasks-managment/Stop-watching-task.md | 5 +- .../Bitrix24/Tasks-managment/Unmute-task.md | 5 +- .../Bitrix24/Tasks-managment/Update-task.md | 5 +- .../Timekeeping/Add-task-time-accounting.md | 82 ++++ .../Delete-task-time-accounting.md | 67 +++ .../Get-task-time-accounting-list.md | 90 ++++ .../Timekeeping/Get-task-time-accounting.md | 78 ++++ .../Update-task-time-accounting.md | 83 ++++ .../md/Bitrix24/Timekeeping/_category_.json | 4 + docs/ru/md/Instructions/Airtable.md | 24 -- docs/ru/md/Instructions/Bitrix24.md | 62 --- docs/ru/md/Instructions/Dropbox.md | 40 -- docs/ru/md/Instructions/Google_Calendar.md | 98 ----- docs/ru/md/Instructions/Google_Drive.md | 98 ----- docs/ru/md/Instructions/Google_Sheets.md | 98 ----- docs/ru/md/Instructions/Notion.md | 38 -- docs/ru/md/Instructions/Slack.md | 64 --- docs/ru/md/Instructions/Start.md | 62 --- docs/ru/md/Instructions/Telegram.md | 41 -- docs/ru/md/Instructions/Twitter.md | 120 ------ docs/ru/md/Instructions/VK.md | 94 ---- docs/ru/md/Instructions/Viber.md | 59 --- docs/ru/md/Instructions/Yandex_Disk.md | 62 --- docs/ru/md/Start/CLI_version.md | 42 -- docs/ru/md/Start/Release-variants.md | 53 --- docs/ru/md/Start/img/1.gif | Bin 73908 -> 0 bytes docs/ru/md/Start/img/1.png | Bin 7272 -> 0 bytes docs/ru/md/Start/img/2.gif | Bin 95372 -> 0 bytes docs/ru/md/Start/img/2.png | Bin 5987 -> 0 bytes docs/ru/md/Start/img/3.gif | Bin 249636 -> 0 bytes docs/ru/md/Start/img/3.png | Bin 13158 -> 0 bytes docs/ru/md/Start/img/4.png | Bin 23046 -> 0 bytes docs/ru/md/Start/img/5.png | Bin 2020 -> 0 bytes docs/ru/md/Start/img/6.png | Bin 3633 -> 0 bytes docs/ru/md/Start/img/7.png | Bin 6851 -> 0 bytes docs/ru/md/Start/img/8.png | Bin 7871 -> 0 bytes .../Pause-advertising-ad.md | 46 -- .../Add-product-to-selection.md | 42 -- service/dictionaries/en.json | 7 +- src/en/OInt/packagedef | 2 +- src/en/OPI/DT-INF/PROJECT.PMF | 3 +- src/ru/OInt/lib.config | 30 +- .../OPI/src/Configuration/Configuration.mdo | 1 - 353 files changed, 10744 insertions(+), 2131 deletions(-) create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Create-subfolder.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Delete-folder.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Get-folder-information.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Get-folder-items.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Make-folder-copy.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Move-folder.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Rename-folder.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/Restore-folder.md create mode 100644 docs/en/md/Bitrix24/Catalogs-managment/_category_.json create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md create mode 100644 docs/en/md/Bitrix24/Chats-and-dialogs-managment/_category_.json create mode 100644 docs/en/md/Bitrix24/File-managment/Delete-file.md create mode 100644 docs/en/md/Bitrix24/File-managment/Get-file-external-link.md create mode 100644 docs/en/md/Bitrix24/File-managment/Get-file-information.md create mode 100644 docs/en/md/Bitrix24/File-managment/Make-file-copy.md create mode 100644 docs/en/md/Bitrix24/File-managment/Mark-file-as-deleted.md create mode 100644 docs/en/md/Bitrix24/File-managment/Move-file-to-folder.md create mode 100644 docs/en/md/Bitrix24/File-managment/Rename-file.md create mode 100644 docs/en/md/Bitrix24/File-managment/Restore-file.md create mode 100644 docs/en/md/Bitrix24/File-managment/Upload-file-to-folder.md create mode 100644 docs/en/md/Bitrix24/File-managment/Upload-file-to-storage.md create mode 100644 docs/en/md/Bitrix24/File-managment/_category_.json create mode 100644 docs/en/md/Bitrix24/Kanban/Update-kanbans-stage.md create mode 100644 docs/en/md/Bitrix24/Message-management/Delete-message.md create mode 100644 docs/en/md/Bitrix24/Message-management/Edit-message.md create mode 100644 docs/en/md/Bitrix24/Message-management/Get-file-block.md create mode 100644 docs/en/md/Bitrix24/Message-management/Get-picture-block.md create mode 100644 docs/en/md/Bitrix24/Message-management/Mark-message-as-readed.md create mode 100644 docs/en/md/Bitrix24/Message-management/Mark-message-as-unreaded.md create mode 100644 docs/en/md/Bitrix24/Message-management/Send-file.md create mode 100644 docs/en/md/Bitrix24/Message-management/Send-message.md create mode 100644 docs/en/md/Bitrix24/Message-management/Set-message-reaction.md create mode 100644 docs/en/md/Bitrix24/Message-management/_category_.json create mode 100644 docs/en/md/Bitrix24/Storages-managment/Create-storage-folder.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/Get-app-sotrage.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/Get-storage-objects.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/Get-storage.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/Get-storages-list.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/Rename-storage.md create mode 100644 docs/en/md/Bitrix24/Storages-managment/_category_.json create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md create mode 100644 docs/en/md/Bitrix24/Tasks-checklists-managment/_category_.json create mode 100644 docs/en/md/Bitrix24/Tasks-managment/Get-daily-plan.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/Add-task-time-accounting.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/Update-task-time-accounting.md create mode 100644 docs/en/md/Bitrix24/Timekeeping/_category_.json create mode 100644 docs/ru/cli/Bitrix24/ВключитьУведомленияЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ДобавитьПользователейВЧат.txt create mode 100644 docs/ru/cli/Bitrix24/ДобавитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьЗаголовокЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьКартинкуЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьСообщение.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьСтадиюКанбана.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьЦветЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ИсключитьПользователяИзЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ОтключитьУведомленияЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt create mode 100644 docs/ru/cli/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt create mode 100644 docs/ru/cli/Bitrix24/ОтправитьСообщение.txt create mode 100644 docs/ru/cli/Bitrix24/ОтправитьУведомлениеОВводе.txt create mode 100644 docs/ru/cli/Bitrix24/ОтправитьФайл.txt create mode 100644 docs/ru/cli/Bitrix24/ПокинутьЧат.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьБлокКартинки.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьБлокФайла.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьДиалог.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьКаталогФайловЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьПланЗадачНаДень.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьСписокПользователейДиалога.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьСписокПользователейЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьСписокСообщенийЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьСтруктуруЧата.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьЧеклистЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/ПрочитатьВсе.txt create mode 100644 docs/ru/cli/Bitrix24/СменитьВладельцаЧата.txt create mode 100644 docs/ru/cli/Bitrix24/СоздатьЧат.txt create mode 100644 docs/ru/cli/Bitrix24/УдалитьСообщение.txt create mode 100644 docs/ru/cli/Bitrix24/УдалитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/cli/Bitrix24/УстановитьРеакциюНаСообщение.txt create mode 100644 docs/ru/examples/Bitrix24/ВключитьУведомленияЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ДобавитьПользователейВЧат.txt create mode 100644 docs/ru/examples/Bitrix24/ДобавитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьЗаголовокЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьКартинкуЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьСообщение.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьСтадиюКанбана.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьЦветЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ИсключитьПользователяИзЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ОтключитьУведомленияЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt create mode 100644 docs/ru/examples/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt create mode 100644 docs/ru/examples/Bitrix24/ОтправитьСообщение.txt create mode 100644 docs/ru/examples/Bitrix24/ОтправитьУведомлениеОВводе.txt create mode 100644 docs/ru/examples/Bitrix24/ОтправитьФайл.txt create mode 100644 docs/ru/examples/Bitrix24/ПокинутьЧат.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьДиалог.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьКаталогФайловЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьПланЗадачНаДень.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьСписокПользователейДиалога.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьСписокПользователейЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьСписокСообщенийЧата.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьЧеклистЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/ПрочитатьВсе.txt create mode 100644 docs/ru/examples/Bitrix24/СменитьВладельцаЧата.txt create mode 100644 docs/ru/examples/Bitrix24/СоздатьЧат.txt create mode 100644 docs/ru/examples/Bitrix24/УдалитьСообщение.txt create mode 100644 docs/ru/examples/Bitrix24/УдалитьТрудозатратыЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt create mode 100644 docs/ru/examples/Bitrix24/УстановитьРеакциюНаСообщение.txt rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Create-subfolder.md (93%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Delete-folder.md (91%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Get-folder-external-link.md (91%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Get-folder-filter-structure.md (91%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Get-folder-information.md (93%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Get-folder-items.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Make-folder-copy.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Mark-folder-as-deleted.md (93%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Move-folder.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Rename-folder.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Catalogs-managment}/Restore-folder.md (93%) create mode 100644 docs/ru/md/Bitrix24/Catalogs-managment/_category_.json create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md create mode 100644 docs/ru/md/Bitrix24/Chats-and-dialogs-managment/_category_.json delete mode 100644 docs/ru/md/Bitrix24/Feed-posts-managment/Crate-comment.md rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Delete-file.md (91%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Get-file-external-link.md (91%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Get-file-information.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Make-file-copy.md (95%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Mark-file-as-deleted.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Move-file-to-folder.md (95%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Rename-file.md (95%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Restore-file.md (94%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Upload-file-to-folder.md (95%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => File-managment}/Upload-file-to-storage.md (95%) create mode 100644 docs/ru/md/Bitrix24/File-managment/_category_.json create mode 100644 docs/ru/md/Bitrix24/Kanban/Update-kanbans-stage.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Delete-message.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Edit-message.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Get-file-block.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Get-picture-block.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Mark-message-as-readed.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Mark-message-as-unreaded.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Send-file.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Send-message.md create mode 100644 docs/ru/md/Bitrix24/Message-management/Set-message-reaction.md create mode 100644 docs/ru/md/Bitrix24/Message-management/_category_.json delete mode 100644 docs/ru/md/Bitrix24/Storages-and-files-managment/_category_.json rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Create-storage-folder.md (93%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Get-app-sotrage.md (89%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Get-storage-objects.md (96%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Get-storage.md (93%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Get-storages-list.md (95%) rename docs/ru/md/Bitrix24/{Storages-and-files-managment => Storages-managment}/Rename-storage.md (87%) create mode 100644 docs/ru/md/Bitrix24/Storages-managment/_category_.json create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md create mode 100644 docs/ru/md/Bitrix24/Tasks-checklists-managment/_category_.json delete mode 100644 docs/ru/md/Bitrix24/Tasks-managment/Get-comments-filter-structure.md create mode 100644 docs/ru/md/Bitrix24/Tasks-managment/Get-daily-plan.md delete mode 100644 docs/ru/md/Bitrix24/Tasks-managment/Get-task-comments-list.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/Add-task-time-accounting.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/Update-task-time-accounting.md create mode 100644 docs/ru/md/Bitrix24/Timekeeping/_category_.json delete mode 100644 docs/ru/md/Instructions/Airtable.md delete mode 100644 docs/ru/md/Instructions/Bitrix24.md delete mode 100644 docs/ru/md/Instructions/Dropbox.md delete mode 100644 docs/ru/md/Instructions/Google_Calendar.md delete mode 100644 docs/ru/md/Instructions/Google_Drive.md delete mode 100644 docs/ru/md/Instructions/Google_Sheets.md delete mode 100644 docs/ru/md/Instructions/Notion.md delete mode 100644 docs/ru/md/Instructions/Slack.md delete mode 100644 docs/ru/md/Instructions/Start.md delete mode 100644 docs/ru/md/Instructions/Telegram.md delete mode 100644 docs/ru/md/Instructions/Twitter.md delete mode 100644 docs/ru/md/Instructions/VK.md delete mode 100644 docs/ru/md/Instructions/Viber.md delete mode 100644 docs/ru/md/Instructions/Yandex_Disk.md delete mode 100644 docs/ru/md/Start/CLI_version.md delete mode 100644 docs/ru/md/Start/Release-variants.md delete mode 100644 docs/ru/md/Start/img/1.gif delete mode 100644 docs/ru/md/Start/img/1.png delete mode 100644 docs/ru/md/Start/img/2.gif delete mode 100644 docs/ru/md/Start/img/2.png delete mode 100644 docs/ru/md/Start/img/3.gif delete mode 100644 docs/ru/md/Start/img/3.png delete mode 100644 docs/ru/md/Start/img/4.png delete mode 100644 docs/ru/md/Start/img/5.png delete mode 100644 docs/ru/md/Start/img/6.png delete mode 100644 docs/ru/md/Start/img/7.png delete mode 100644 docs/ru/md/Start/img/8.png delete mode 100644 docs/ru/md/VK/Ad-account-management/Pause-advertising-ad.md delete mode 100644 docs/ru/md/VK/Product-selection-management/Add-product-to-selection.md diff --git a/.github/workflows/os/releasemaker.os b/.github/workflows/os/releasemaker.os index 65d4f4ce8a..0df15eb2bd 100644 --- a/.github/workflows/os/releasemaker.os +++ b/.github/workflows/os/releasemaker.os @@ -9,7 +9,7 @@ Процедура НачалоРаботы() Репозиторий = "https://github.com/Bayselonarrend/OpenIntegrations"; - Версия = "1.10.0"; + Версия = "1.11.0"; Режим = "CONFIG"; //Локальные данные diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Create-subfolder.md b/docs/en/md/Bitrix24/Catalogs-managment/Create-subfolder.md new file mode 100644 index 0000000000..ee4ba57a0f --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Create-subfolder.md @@ -0,0 +1,85 @@ +--- +sidebar_position: 2 +--- + +# Create new subfolder + Create new folder inside another folder + + + +`Function CreateSubfolder(Val URL, Val FolderID, Val Name, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Parent folder identifier | + | Name | --title | String | Name of new folder | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.addsubfolder](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_addsubfolder.php) +::: +
+ + +```bsl title="Code example" + FolderID = "2490"; + Name = "New subfolder"; + Filename2 = "New subfolder 2"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.CreateSubfolder(URL, FolderID, Filename2); + + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.CreateSubfolder(URL, FolderID, Name, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 CreateSubfolder --url "b24-ar17wx.bitrix24.by" --folderid "2490" --title %title% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 850, + "NAME": "New subfolder", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": 850, + "PARENT_ID": "846", + "DELETED_TYPE": 0, + "CREATE_TIME": "2024-06-27T07:19:57+00:00", + "UPDATE_TIME": "2024-06-27T07:19:57+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog/New subfolder" + }, + "time": { + "start": 1719472797.42827, + "finish": 1719472797.50854, + "duration": 0.080265998840332, + "processing": 0.0455958843231201, + "date_start": "2024-06-27T07:19:57+00:00", + "date_finish": "2024-06-27T07:19:57+00:00", + "operating_reset_at": 1719473397, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Delete-folder.md b/docs/en/md/Bitrix24/Catalogs-managment/Delete-folder.md new file mode 100644 index 0000000000..cb6efa151c --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Delete-folder.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 5 +--- + +# Delete folder + Remove folder with subfolders + + + +`Function DeleteFolder(Val URL, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | ID of folder to be deleted | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.deletetree](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_deletetree.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "480"; + + Result = OPI_Bitrix24.DeleteFolder(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + FolderID = "482"; + + Result = OPI_Bitrix24.DeleteFolder(URL, FolderID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteFolder --url "b24-ar17wx.bitrix24.by" --folderid "482" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1719047257.50616, + "finish": 1719047257.55445, + "duration": 0.048285961151123, + "processing": 0.0174880027770996, + "date_start": "2024-06-22T09:07:37+00:00", + "date_finish": "2024-06-22T09:07:37+00:00", + "operating_reset_at": 1719047857, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md new file mode 100644 index 0000000000..be15a42c4c --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 6 +--- + +# Get external link for folder + Get external link to folder + + + +`Function GetFolderExternalLink(Val URL, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.getExternalLink](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getexternallink.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "2490"; + + Result = OPI_Bitrix24.GetFolderExternalLink(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFolderExternalLink(URL, FolderID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFolderExternalLink --url "b24-ar17wx.bitrix24.by" --folderid "2490" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": "https://b24-ar17wx.bitrix24.by/~hWalI", + "time": { + "start": 1719472796.12325, + "finish": 1719472796.16843, + "duration": 0.0451798439025879, + "processing": 0.0110611915588379, + "date_start": "2024-06-27T07:19:56+00:00", + "date_finish": "2024-06-27T07:19:56+00:00", + "operating_reset_at": 1719473396, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md new file mode 100644 index 0000000000..462cf4e238 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 11 +--- + +# Get fields structure for folder items filter + Returns filter structure for child folder items + + + +`Function GetFolderFilterStructure(Val URL, Val Clear = False, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Clear | --empty | Boolean | True > structure with empty values, False > field types at values | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Structure of Key-Value - Fields structure + +
+ +:::tip +Method at API documentation: [disk.folder.getfields](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getfields.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.GetFolderFilterStructure(URL); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFolderFilterStructure(URL, True, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFolderFilterStructure --url "b24-ar17wx.bitrix24.by" --empty %empty% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "ID": "", + "NAME": "", + "TYPE": "", + "CODE": "", + "STORAGE_ID": "", + "PARENT_ID": "", + "CREATE_TIME": "", + "UPDATE_TIME": "", + "DELETE_TIME": "", + "DELETED_TYPE": "" +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-information.md b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-information.md new file mode 100644 index 0000000000..ceed6c8085 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-information.md @@ -0,0 +1,80 @@ +--- +sidebar_position: 1 +--- + +# Get information about folder + Get folder information + + + +`Function GetFolderInformation(Val URL, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.get](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_get.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "2490"; + + Result = OPI_Bitrix24.GetFolderInformation(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFolderInformation(URL, FolderID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFolderInformation --url "b24-ar17wx.bitrix24.by" --folderid "2490" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1722", + "NAME": "New catalog", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "1722", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-07-03T14:42:37+00:00", + "UPDATE_TIME": "2024-07-03T14:42:37+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog" + }, + "time": { + "start": 1720017760.63451, + "finish": 1720017760.68628, + "duration": 0.0517730712890625, + "processing": 0.0117180347442627, + "date_start": "2024-07-03T14:42:40+00:00", + "date_finish": "2024-07-03T14:42:40+00:00", + "operating_reset_at": 1720018360, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-items.md b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-items.md new file mode 100644 index 0000000000..608b7fb00d --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Get-folder-items.md @@ -0,0 +1,101 @@ +--- +sidebar_position: 7 +--- + +# Get folder child elements + Get folder child elements + + + +`Function GetFolderItems(Val URL, Val FolderID, Val Filter = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Filter | --filter | Structure of Key-Value | Items filter (see GetFolderFilterStructure) | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.getchildren](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getchildren.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "2490"; + + Result = OPI_Bitrix24.GetFolderItems(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFolderItems(URL, FolderID,, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFolderItems --url "b24-ar17wx.bitrix24.by" --folderid "2490" --filter %filter% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": [ + { + "ID": "848", + "NAME": "New subfolder 2", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "848", + "PARENT_ID": "846", + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-06-27T07:19:56+00:00", + "UPDATE_TIME": "2024-06-27T07:19:58+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog/New subfolder 2" + }, + { + "ID": "850", + "NAME": "New subfolder", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "850", + "PARENT_ID": "846", + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-06-27T07:19:57+00:00", + "UPDATE_TIME": "2024-06-27T07:19:58+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog/New subfolder" + } + ], + "total": 2, + "time": { + "start": 1719472801.3139, + "finish": 1719472801.36215, + "duration": 0.0482509136199951, + "processing": 0.0148689746856689, + "date_start": "2024-06-27T07:20:01+00:00", + "date_finish": "2024-06-27T07:20:01+00:00", + "operating_reset_at": 1719473401, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Make-folder-copy.md b/docs/en/md/Bitrix24/Catalogs-managment/Make-folder-copy.md new file mode 100644 index 0000000000..c6edcb7f48 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Make-folder-copy.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 3 +--- + +# Copy folder + Copy one folder to another + + + +`Function MakeFolderCopy(Val URL, Val FolderID, Val DestinationID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | DestinationID | --tagetid | String, Number | ID of target folder | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.copyto](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_copyto.php) +::: +
+ + +```bsl title="Code example" + DestinationID = "2492"; + FolderID = "2494"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.MakeFolderCopy(URL, FolderID, DestinationID); + + + DestinationID = "2494"; + FolderID = "2492"; + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MakeFolderCopy(URL, FolderID, DestinationID, Token); + + Check_BitrixFile(Result); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MakeFolderCopy --url "b24-ar17wx.bitrix24.by" --folderid "2492" --tagetid "2494" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 1732, + "NAME": "New subfolder 2", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": 1732, + "PARENT_ID": "1726", + "DELETED_TYPE": 0, + "CREATE_TIME": "2024-07-03T14:42:46+00:00", + "UPDATE_TIME": "2024-07-03T14:42:46+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog/New subfolder/New subfolder 2" + }, + "time": { + "start": 1720017765.97028, + "finish": 1720017766.08005, + "duration": 0.109767913818359, + "processing": 0.0799601078033447, + "date_start": "2024-07-03T14:42:45+00:00", + "date_finish": "2024-07-03T14:42:46+00:00", + "operating_reset_at": 1720018366, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md b/docs/en/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md new file mode 100644 index 0000000000..7517b53866 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md @@ -0,0 +1,80 @@ +--- +sidebar_position: 8 +--- + +# Mark folder as deleted + Move folder to recycle bin + + + +`Function MarkFolderAsDeleted(Val URL, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.markdeleted](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_markdeleted.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "2490"; + + Result = OPI_Bitrix24.MarkFolderAsDeleted(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MarkFolderAsDeleted(URL, FolderID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MarkFolderAsDeleted --url "b24-ar17wx.bitrix24.by" --folderid "2490" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "936", + "NAME": "New catalog", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "936", + "PARENT_ID": "3", + "DELETED_TYPE": "3", + "CREATE_TIME": "2024-07-01T13:44:01+00:00", + "UPDATE_TIME": "2024-07-01T13:44:06+00:00", + "DELETE_TIME": "2024-07-01T13:44:12+00:00", + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "1", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog" + }, + "time": { + "start": 1719841453.13782, + "finish": 1719841453.17717, + "duration": 0.0393478870391846, + "processing": 0.00959300994873047, + "date_start": "2024-07-01T13:44:13+00:00", + "date_finish": "2024-07-01T13:44:13+00:00", + "operating_reset_at": 1719842053, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Move-folder.md b/docs/en/md/Bitrix24/Catalogs-managment/Move-folder.md new file mode 100644 index 0000000000..caeefd91fb --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Move-folder.md @@ -0,0 +1,87 @@ +--- +sidebar_position: 4 +--- + +# Move folder + Moves one folder inside another + + + +`Function MoveFolder(Val URL, Val FolderID, Val DestinationID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | DestinationID | --tagetid | String, Number | ID of target folder | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.moveto](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_moveto.php) +::: +
+ + +```bsl title="Code example" + DestinationID = "2488"; + FolderID = "2494"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.MoveFolder(URL, FolderID, DestinationID); + + + FolderID = "2492"; + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MoveFolder(URL, FolderID, DestinationID, Token); + + Check_BitrixFile(Result); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MoveFolder --url "b24-ar17wx.bitrix24.by" --folderid "2492" --tagetid "2488" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "938", + "NAME": "New subfolder 2", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "938", + "PARENT_ID": 934, + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-07-01T13:44:06+00:00", + "UPDATE_TIME": "2024-07-01T13:44:07+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New folder 2/New subfolder 2" + }, + "time": { + "start": 1719841451.89089, + "finish": 1719841451.95846, + "duration": 0.0675740242004394, + "processing": 0.0360250473022461, + "date_start": "2024-07-01T13:44:11+00:00", + "date_finish": "2024-07-01T13:44:11+00:00", + "operating_reset_at": 1719842051, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Rename-folder.md b/docs/en/md/Bitrix24/Catalogs-managment/Rename-folder.md new file mode 100644 index 0000000000..357335aee7 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Rename-folder.md @@ -0,0 +1,85 @@ +--- +sidebar_position: 10 +--- + +# Rename folder + Change folder name + + + +`Function RenameFolder(Val URL, Val FolderID, Val Name, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Name | --title | String | New folders name | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.rename](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_rename.php) +::: +
+ + +```bsl title="Code example" + Name = "New catalog"; + Filename2 = "New folder 2"; + + FolderID2 = "2488"; + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.RenameFolder(URL, FolderID2, Filename2); + + + FolderID = "2490"; + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.RenameFolder(URL, FolderID, Name, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RenameFolder --url "b24-ar17wx.bitrix24.by" --folderid "2490" --title %title% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "936", + "NAME": "New catalog", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "936", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-07-01T13:44:01+00:00", + "UPDATE_TIME": "2024-07-01T13:44:01+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog" + }, + "time": { + "start": 1719841443.11172, + "finish": 1719841443.16013, + "duration": 0.0484049320220947, + "processing": 0.0123419761657715, + "date_start": "2024-07-01T13:44:03+00:00", + "date_finish": "2024-07-01T13:44:03+00:00", + "operating_reset_at": 1719842043, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/Restore-folder.md b/docs/en/md/Bitrix24/Catalogs-managment/Restore-folder.md new file mode 100644 index 0000000000..f053817038 --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/Restore-folder.md @@ -0,0 +1,80 @@ +--- +sidebar_position: 9 +--- + +# Restore folder + Resotre folder form recycle bin + + + +`Function RestoreFolder(Val URL, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FolderID | --folderid | String, Number | Folder identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.restore](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_restore.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FolderID = "2490"; + + Result = OPI_Bitrix24.RestoreFolder(URL, FolderID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.RestoreFolder(URL, FolderID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RestoreFolder --url "b24-ar17wx.bitrix24.by" --folderid "2490" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "936", + "NAME": "New catalog", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": "936", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "CREATE_TIME": "2024-07-01T13:44:01+00:00", + "UPDATE_TIME": "2024-07-01T13:44:13+00:00", + "DELETE_TIME": "2024-07-01T13:44:12+00:00", + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "1", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog" + }, + "time": { + "start": 1719841454.36238, + "finish": 1719841454.40451, + "duration": 0.0421350002288818, + "processing": 0.00979709625244141, + "date_start": "2024-07-01T13:44:14+00:00", + "date_finish": "2024-07-01T13:44:14+00:00", + "operating_reset_at": 1719842054, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Catalogs-managment/_category_.json b/docs/en/md/Bitrix24/Catalogs-managment/_category_.json new file mode 100644 index 0000000000..cf7eaa2f0d --- /dev/null +++ b/docs/en/md/Bitrix24/Catalogs-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Catalogs managment", +"position": "10" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md new file mode 100644 index 0000000000..9c6b7236e7 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 4 +--- + +# Add users to chat + Adds users to the chat by ID array + + + +`Function AddUsersToChat(Val URL, Val ChatID, Val UserIDs, Val HideHistory = False, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | UserIDs | --users | Array of string, number | New members IDs | + | HideHistory | --hide | Boolean | Hide old messages from new members | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.user.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12097) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + UserIDs = New Array; + UserIDs.Add(10); + UserIDs.Add(12); + + Result = OPI_Bitrix24.AddUsersToChat(URL, ChatID, UserIDs); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + UserID = 10; + + Result = OPI_Bitrix24.AddUsersToChat(URL, ChatID, UserID, True, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 AddUsersToChat --url %url% --chat %chat% --users %users% --hide %hide% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865686.43672, + "finish": 1720865686.52541, + "duration": 0.0886859893798828, + "processing": 0.0491659641265869, + "date_start": "2024-07-13T10:14:46+00:00", + "date_finish": "2024-07-13T10:14:46+00:00", + "operating_reset_at": 1720866286, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md new file mode 100644 index 0000000000..db4648967e --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 7 +--- + +# Change chat color + Chat chat color for mobile app + + + +`Function ChangeChatColor(Val URL, Val ChatID, Val Color, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Color | --color | String | New chat color | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.updateTitle](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105) + + Available colors: RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN, AZURE, KHAKI, SAND, + + MARENGO, GRAY, GRAPHITE +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Color = "AZURE"; + + Result = OPI_Bitrix24.ChangeChatColor(URL, ChatID, Color); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Color = "PURPLE"; + + Result = OPI_Bitrix24.ChangeChatColor(URL, ChatID, Color, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 ChangeChatColor --url %url% --chat %chat% --color %color% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865688.95778, + "finish": 1720865689.02493, + "duration": 0.0671589374542236, + "processing": 0.0428512096405029, + "date_start": "2024-07-13T10:14:48+00:00", + "date_finish": "2024-07-13T10:14:49+00:00", + "operating_reset_at": 1720866288, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md new file mode 100644 index 0000000000..207b57a832 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 9 +--- + +# Change chat owner + Change chat owner + + + +`Function ChangeChatOwner(Val URL, Val ChatID, Val UserID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | UserID | --user | String, Number | User ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.setOwner](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12111) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + UserID = 10; + + Result = OPI_Bitrix24.ChangeChatOwner(URL, ChatID, UserID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.ChangeChatOwner(URL, ChatID, UserID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 ChangeChatOwner --url %url% --chat %chat% --user %user% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865697.10595, + "finish": 1720865697.13924, + "duration": 0.0332820415496826, + "processing": 0.0104668140411377, + "date_start": "2024-07-13T10:14:57+00:00", + "date_finish": "2024-07-13T10:14:57+00:00", + "operating_reset_at": 1720866297, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md new file mode 100644 index 0000000000..49064ee8c4 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 8 +--- + +# Change chat picture + Setup new chat picture + + + +`Function ChangeChatPicture(Val URL, Val ChatID, Val Image, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Image | --picture | String, BinaryData | Picture data | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.updateAvatar](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12109) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Image = FunctionParameters["Picture2"]; + + Result = OPI_Bitrix24.ChangeChatPicture(URL, ChatID, Image); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.ChangeChatPicture(URL, ChatID, Image, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 ChangeChatPicture --url %url% --chat %chat% --picture %picture% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865692.90718, + "finish": 1720865693.81896, + "duration": 0.91178297996521, + "processing": 0.884725093841553, + "date_start": "2024-07-13T10:14:52+00:00", + "date_finish": "2024-07-13T10:14:53+00:00", + "operating_reset_at": 1720866292, + "operating": 0.884703874588013 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md new file mode 100644 index 0000000000..7309a96872 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md @@ -0,0 +1,70 @@ +--- +sidebar_position: 6 +--- + +# Change chat title + Change text of chat title + + + +`Function ChangeChatTitle(Val URL, Val ChatID, Val Title, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Title | --title | String | New title | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.updateTitle](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Title = "New chat title"; + + Result = OPI_Bitrix24.ChangeChatTitle(URL, ChatID, Title); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Title = "Another title"; + + Result = OPI_Bitrix24.ChangeChatTitle(URL, ChatID, Title, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 ChangeChatTitle --url %url% --chat %chat% --title %title% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865687.70928, + "finish": 1720865687.78107, + "duration": 0.0717928409576416, + "processing": 0.0479631423950195, + "date_start": "2024-07-13T10:14:47+00:00", + "date_finish": "2024-07-13T10:14:47+00:00", + "operating_reset_at": 1720866287, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md new file mode 100644 index 0000000000..a259cfc318 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md @@ -0,0 +1,87 @@ +--- +sidebar_position: 1 +--- + +# Create chat + Creates a new chat based on the field structure + + + +`Function CreateChat(Val URL, Val ChatStructure, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatStructure | --fields | Structure of Key-Value | Chat fields structure. See GetChatStructure | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12093) +::: +
+ + +```bsl title="Code example" + Image = FunctionParameters["Picture"]; + OPI_TypeConversion.GetBinaryData(Image); + + B64Image = GetBase64StringFromBinaryData(Image); + + MembersArray = New Array; + MembersArray.Add(10); + MembersArray.Add(1); + + ChatStructure = New Structure; + ChatStructure.Insert("TYPE", "OPEN"); + ChatStructure.Insert("TITLE", "New chat"); + ChatStructure.Insert("DESCRIPTION", "This is a new chat"); + ChatStructure.Insert("COLOR", "GREEN"); + ChatStructure.Insert("MESSAGE", "Welcome to new chat"); + ChatStructure.Insert("USERS", MembersArray); + ChatStructure.Insert("AVATAR", B64Image); + ChatStructure.Insert("OWNER_ID", 1); + + URL = FunctionParameters["Bitrix24_URL"]; + + Result = OPI_Bitrix24.CreateChat(URL, ChatStructure); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + ChatStructure = New Structure; + ChatStructure.Insert("TYPE", "CHAT"); + ChatStructure.Insert("TITLE", "Private chat"); + ChatStructure.Insert("USERS", MembersArray); + + Result = OPI_Bitrix24.CreateChat(URL, ChatStructure, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 CreateChat --url %url% --fields %fields% --token %token% + +``` + +```json title="Result" +{ + "result": 26, + "time": { + "start": 1720816597.42171, + "finish": 1720816597.52933, + "duration": 0.107618093490601, + "processing": 0.081672191619873, + "date_start": "2024-07-12T20:36:37+00:00", + "date_finish": "2024-07-12T20:36:37+00:00", + "operating_reset_at": 1720817197, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md new file mode 100644 index 0000000000..f08e03c08e --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 5 +--- + +# Delete user from chat + Deletes user from chat + + + +`Function DeleteUserFromChat(Val URL, Val ChatID, Val UserID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | UserID | --user | String, Number | User ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.user.delete](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12099) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + UserID = 10; + + Result = OPI_Bitrix24.DeleteUserFromChat(URL, ChatID, UserID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.DeleteUserFromChat(URL, ChatID, UserID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteUserFromChat --url %url% --chat %chat% --user %user% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865685.25089, + "finish": 1720865685.32425, + "duration": 0.0733590126037598, + "processing": 0.0480890274047852, + "date_start": "2024-07-13T10:14:45+00:00", + "date_finish": "2024-07-13T10:14:45+00:00", + "operating_reset_at": 1720866285, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md new file mode 100644 index 0000000000..6af7a4c224 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 10 +--- + +# Disable chat notifications + Disable chat notifications + + + +`Function DisableChatNotifications(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.mute](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.DisableChatNotifications(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.DisableChatNotifications(URL, ChatID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DisableChatNotifications --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865694.86568, + "finish": 1720865694.9092, + "duration": 0.0435128211975098, + "processing": 0.0169928073883057, + "date_start": "2024-07-13T10:14:54+00:00", + "date_finish": "2024-07-13T10:14:54+00:00", + "operating_reset_at": 1720866294, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md new file mode 100644 index 0000000000..38d483ebd0 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 11 +--- + +# Enable chat notifications + Enable chat notifications + + + +`Function EnableChatNotifications(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.mute](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.EnableChatNotifications(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.EnableChatNotifications(URL, ChatID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 EnableChatNotifications --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720865695.99933, + "finish": 1720865696.04205, + "duration": 0.0427119731903076, + "processing": 0.0170090198516846, + "date_start": "2024-07-13T10:14:55+00:00", + "date_finish": "2024-07-13T10:14:56+00:00", + "operating_reset_at": 1720866296, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md new file mode 100644 index 0000000000..4c87b1cbd8 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 17 +--- + +# Get chat files folder + Get information about folder for chat files + + + +`Function GetChatFilesFolder(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.disk.folder.get](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11483) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.GetChatFilesFolder(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.GetChatFilesFolder(URL, ChatID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetChatFilesFolder --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": { + "ID": 3250 + }, + "time": { + "start": 1720969169.10256, + "finish": 1720969169.1584, + "duration": 0.0558350086212158, + "processing": 0.0327038764953613, + "date_start": "2024-07-14T14:59:29+00:00", + "date_finish": "2024-07-14T14:59:29+00:00", + "operating_reset_at": 1720969769, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md new file mode 100644 index 0000000000..f7fd74a110 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md @@ -0,0 +1,121 @@ +--- +sidebar_position: 14 +--- + +# Get chat members list + Get chat members list + + + +`Function GetChatMembersList(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.users.list](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23800) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.GetChatMembersList(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + + Result = OPI_Bitrix24.GetChatMembersList(URL, UserID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetChatMembersList --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": [ + { + "id": 10, + "active": true, + "name": "Techno Pizza", + "first_name": "Techno", + "last_name": "Pizza", + "work_position": null, + "color": "#ab7761", + "avatar": "", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-13T18:36:23+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "bot_data": null + }, + { + "id": 1, + "active": true, + "name": "Anton Titovets", + "first_name": "Anton", + "last_name": "Titovets", + "work_position": null, + "color": "#df532d", + "avatar": "https://cdn-ru.bitrix24.by/b28528874/resize_cache/30/ff58db95aecdfa09ae61b51b5fd8f63f/main/d7e/d7e99cf556e4ab676463dae2c00ddfbb/a7e0af6899300e3c684caeca5c334d81.jpg", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-14T09:00:58+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "bot_data": null + } + ], + "total": 2, + "time": { + "start": 1720969161.4388, + "finish": 1720969161.46946, + "duration": 0.0306570529937744, + "processing": 0.00571608543395996, + "date_start": "2024-07-14T14:59:21+00:00", + "date_finish": "2024-07-14T14:59:21+00:00", + "operating_reset_at": 1720969761, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md new file mode 100644 index 0000000000..d8072fb252 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md @@ -0,0 +1,401 @@ +--- +sidebar_position: 12 +--- + +# Get chat messages list + Gets a list of 20 chat or dialog messages, depending on the FirstID and LastID specified + + + +`Function GetChatMessagesList(Val URL, Val ChatID, Val LastID = "", Val FirstID = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | LastID | --last | String, Number | Id of last message | + | FirstID | --first | String, Number | ID of first message | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.messages.get](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11479) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat4"; + + Result = OPI_Bitrix24.GetChatMessagesList(URL, ChatID); + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + + Result = OPI_Bitrix24.GetChatMessagesList(URL, UserID,, 0,Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetChatMessagesList --url %url% --chat %chat% --last %last% --first %first% --token %token% + +``` + +```json title="Result" +{ + "result": { + "chat_id": 10, + "messages": [ + { + "id": 3854, + "chat_id": 10, + "author_id": 10, + "date": "2024-07-13T14:54:43+00:00", + "text": "Write it!", + "unread": false, + "uuid": "700d361d-8324-47fb-b989-647949c1c899", + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4286, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T16:06:51+00:00", + "text": "Message text", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4366, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T16:40:58+00:00", + "text": "Message text", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4406, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T19:57:33+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4446, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:21:27+00:00", + "text": "Message text", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4486, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:22:30+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4526, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:41:21+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4668, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:10:33+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4708, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:22:56+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4748, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:26:01+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4788, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:28:01+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4828, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:28:36+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4868, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:30:18+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4908, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:52:24+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4948, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:53:31+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4990, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:57:06+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5060, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:59:43+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5140, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T09:29:40+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5182, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T09:35:56+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5262, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T11:27:54+00:00", + "text": "This message was deleted", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + } + ], + "users": [ + { + "id": 10, + "active": true, + "name": "Techno Pizza", + "first_name": "Techno", + "last_name": "Pizza", + "work_position": null, + "color": "#ab7761", + "avatar": "", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-13T18:36:23+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "desktop_last_date": false + }, + { + "id": 1, + "active": true, + "name": "Anton Titovets", + "first_name": "Anton", + "last_name": "Titovets", + "work_position": null, + "color": "#df532d", + "avatar": "https://cdn-ru.bitrix24.by/b28528874/resize_cache/30/ff58db95aecdfa09ae61b51b5fd8f63f/main/d7e/d7e99cf556e4ab676463dae2c00ddfbb/a7e0af6899300e3c684caeca5c334d81.jpg", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-14T09:00:58+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "desktop_last_date": false + } + ], + "files": [] + }, + "time": { + "start": 1720969156.38474, + "finish": 1720969156.42064, + "duration": 0.0358970165252686, + "processing": 0.0108029842376709, + "date_start": "2024-07-14T14:59:16+00:00", + "date_finish": "2024-07-14T14:59:16+00:00", + "operating_reset_at": 1720969756, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md new file mode 100644 index 0000000000..9c1350a4c7 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 18 +--- + +# Get chats structure + Get chat fields structure + + + +`Function GetChatStructure(Val Clear = False) Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | Clear | --empty | Boolean | True > structure with empty values, False > field types at values | + + + Returns: Structure of Key-Value - Fields structure + +
+ + + + + + + +```sh title="CLI command example" + + oint bitrix24 GetChatStructure --empty %empty% + +``` + + diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md new file mode 100644 index 0000000000..3c4fc16290 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 2 +--- + +# Get chats users + Gets the list of chat users by ID + + + +`Function GetChatUsers(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.user.list](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12095) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.GetChatUsers(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.GetChatUsers(URL, ChatID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetChatUsers --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": [ + 1, + 10 + ], + "time": { + "start": 1720816598.61771, + "finish": 1720816598.64882, + "duration": 0.0311079025268555, + "processing": 0.00316882133483887, + "date_start": "2024-07-12T20:36:38+00:00", + "date_finish": "2024-07-12T20:36:38+00:00", + "operating_reset_at": 1720817198, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md new file mode 100644 index 0000000000..405a1c2e4d --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 13 +--- + +# Get dialog + Get chat data by ID + + + +`Function GetDialog(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.get](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12886) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.GetDialog(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + + Result = OPI_Bitrix24.GetDialog(URL, UserID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetDialog --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": { + "id": 10, + "parent_chat_id": 0, + "parent_message_id": 0, + "name": "", + "description": "", + "owner": 10, + "extranet": false, + "avatar": "", + "color": "#ab7761", + "type": "private", + "counter": 1, + "user_counter": 0, + "message_count": 24, + "unread_id": 3854, + "restrictions": { + "avatar": true, + "rename": true, + "extend": true, + "call": true, + "mute": true, + "leave": true, + "leave_owner": true, + "send": true, + "user_list": true + }, + "last_message_id": 5262, + "last_id": 3852, + "marked_id": 0, + "disk_folder_id": 0, + "entity_type": "", + "entity_id": "", + "entity_data_1": "", + "entity_data_2": "", + "entity_data_3": "", + "mute_list": [], + "date_create": "2024-06-15T16:48:49+00:00", + "message_type": "P", + "disappearing_time": 0, + "public": "", + "role": "member", + "entity_link": { + "type": "", + "url": "" + }, + "permissions": { + "manage_users_add": "member", + "manage_users_delete": "manager", + "manage_ui": "member", + "manage_settings": "owner", + "manage_messages": "member", + "can_post": "member" + }, + "is_new": false, + "readed_list": [ + { + "user_id": 10, + "user_name": "Techno Pizza", + "message_id": 3854, + "date": null + } + ], + "manager_list": [], + "last_message_views": { + "message_id": 5262, + "first_viewers": [], + "count_of_viewers": 0 + }, + "dialog_id": "10" + }, + "time": { + "start": 1720969160.19046, + "finish": 1720969160.22782, + "duration": 0.037362813949585, + "processing": 0.0134620666503906, + "date_start": "2024-07-14T14:59:20+00:00", + "date_finish": "2024-07-14T14:59:20+00:00", + "operating_reset_at": 1720969760, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md new file mode 100644 index 0000000000..81338e7f43 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 3 +--- + +# Leave chat + Removes the current user from the chat room + + + +`Function LeaveChat(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.chat.leave](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12101) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.LeaveChat(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Result = OPI_Bitrix24.LeaveChat(URL, ChatID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 LeaveChat --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720816599.74716, + "finish": 1720816599.81746, + "duration": 0.0702948570251465, + "processing": 0.0438079833984375, + "date_start": "2024-07-12T20:36:39+00:00", + "date_finish": "2024-07-12T20:36:39+00:00", + "operating_reset_at": 1720817199, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md new file mode 100644 index 0000000000..425dfba02f --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 16 +--- + +# Read all + Mark all message as readed + + + +`Function ReadAll(Val URL, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.read.all](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23804) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + + Result = OPI_Bitrix24.ReadAll(URL); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.ReadAll(URL, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 ReadAll --url %url% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969176.30834, + "finish": 1720969176.34001, + "duration": 0.0316698551177978, + "processing": 0.00501918792724609, + "date_start": "2024-07-14T14:59:36+00:00", + "date_finish": "2024-07-14T14:59:36+00:00", + "operating_reset_at": 1720969776, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md new file mode 100644 index 0000000000..70c49d8c09 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 15 +--- + +# Send write notification + Send "Writing..." status to dialog..." + + + +`Function SendWritingNotification(Val URL, Val ChatID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.writing](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23802) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + + Result = OPI_Bitrix24.SendWritingNotification(URL, ChatID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + + Result = OPI_Bitrix24.SendWritingNotification(URL, UserID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 SendWritingNotification --url %url% --chat %chat% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969162.6704, + "finish": 1720969162.69719, + "duration": 0.0267889499664307, + "processing": 0.000684022903442383, + "date_start": "2024-07-14T14:59:22+00:00", + "date_finish": "2024-07-14T14:59:22+00:00", + "operating_reset_at": 1720969762, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Chats-and-dialogs-managment/_category_.json b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/_category_.json new file mode 100644 index 0000000000..92a74ab617 --- /dev/null +++ b/docs/en/md/Bitrix24/Chats-and-dialogs-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Chats and dialogs managment", +"position": "12" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md index f028009831..ade7f308a2 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 3
- +:::tip +Method at API documentation: [task.commentitem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/add.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md index a8509a4d31..7b380a962a 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md @@ -20,7 +20,10 @@ sidebar_position: 7
- +:::tip +Method at API documentation: [tasks.task.result.addFromComment](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_addFromComment.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md index d3c760f698..37b5fe5498 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md @@ -20,7 +20,10 @@ sidebar_position: 8
- +:::tip +Method at API documentation: [tasks.task.result.deleteFromComment](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_deleteFromComment.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md index 26e8a8136e..695c39e741 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 5
- +:::tip +Method at API documentation: [task.commentitem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/delete.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-results-list.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-results-list.md index 7701ddd24f..7932d2b331 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-results-list.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-results-list.md @@ -20,7 +20,10 @@ sidebar_position: 6
- +:::tip +Method at API documentation: [tasks.task.result.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result.list.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md index 54c6c56b51..23a4edf6b3 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Method at API documentation: [task.commentitem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/get.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md index 1f2629fb86..2471372951 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md @@ -20,7 +20,10 @@ sidebar_position: 1
- +:::tip +Method at API documentation: [task.commentitem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/getlist.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md b/docs/en/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md index a9b945e97f..ceab0f065d 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md @@ -22,7 +22,10 @@ sidebar_position: 4
- +:::tip +Method at API documentation: [task.commentitem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/update.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Comments-and-results-managment/_category_.json b/docs/en/md/Bitrix24/Comments-and-results-managment/_category_.json index cb2da26e66..b7e39f228c 100644 --- a/docs/en/md/Bitrix24/Comments-and-results-managment/_category_.json +++ b/docs/en/md/Bitrix24/Comments-and-results-managment/_category_.json @@ -1,4 +1,4 @@ { "label": "Comments and results managment", -"position": "5" +"position": "6" } \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Feed-posts-managment/Create-post.md b/docs/en/md/Bitrix24/Feed-posts-managment/Create-post.md index 84912fa164..459363c4b6 100644 --- a/docs/en/md/Bitrix24/Feed-posts-managment/Create-post.md +++ b/docs/en/md/Bitrix24/Feed-posts-managment/Create-post.md @@ -14,7 +14,7 @@ sidebar_position: 1 | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | | Text | --text | String | Text of post | | Visibility | --vision | String | Array or 1 recipient: UA all, SGn w. group, Un user, DRn department, Gn group | - | Files | --files | String | Attachment data where key > filename, value > file path or binary data | + | Files | --files | Map Of KeyAndValue | Key > file name, value > path or binary data | | Title | --title | String | Post title | | Important | --important | Boolean | Mark post as important | | Token | --token | String | Access token, when not-webhook method used | diff --git a/docs/en/md/Bitrix24/Feed-posts-managment/Update-post.md b/docs/en/md/Bitrix24/Feed-posts-managment/Update-post.md index 4ae12e985d..f155727ae2 100644 --- a/docs/en/md/Bitrix24/Feed-posts-managment/Update-post.md +++ b/docs/en/md/Bitrix24/Feed-posts-managment/Update-post.md @@ -15,7 +15,7 @@ sidebar_position: 2 | PostID | --postid | String, Number | Post ID | | Text | --text | String | Text of post | | Visibility | --vision | String | Array or 1 recipient: UA all, SGn w. group, Un user, DRn department, Gn group | - | Files | --files | String | Attachment data where key > filename, value > file path or binary data | + | Files | --files | Map Of KeyAndValue | Key > file name, value > path or binary data | | Title | --title | String | Post title | | Token | --token | String | Access token, when not-webhook method used | diff --git a/docs/en/md/Bitrix24/File-managment/Delete-file.md b/docs/en/md/Bitrix24/File-managment/Delete-file.md new file mode 100644 index 0000000000..2796a31af9 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Delete-file.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 4 +--- + +# Delete file + Delete file by ID + + + +`Function DeleteFile(Val URL, Val FileID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | ID of removing file | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.delete](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_delete.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FileID = "488"; + + Result = OPI_Bitrix24.DeleteFile(URL, FileID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + FileID = "478"; + + Result = OPI_Bitrix24.DeleteFile(URL, FileID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteFile --url "b24-ar17wx.bitrix24.by" --fileid "478" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1718783933.86753, + "finish": 1718783937.64223, + "duration": 3.77469992637634, + "processing": 3.73617887496948, + "date_start": "2024-06-19T07:58:53+00:00", + "date_finish": "2024-06-19T07:58:57+00:00", + "operating_reset_at": 1718784533, + "operating": 3.73615193367004 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Get-file-external-link.md b/docs/en/md/Bitrix24/File-managment/Get-file-external-link.md new file mode 100644 index 0000000000..588a29df03 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Get-file-external-link.md @@ -0,0 +1,64 @@ +--- +sidebar_position: 5 +--- + +# Get external link for a file + Get external link to file + + + +`Function GetFileExternalLink(Val URL, Val FileID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.getExternalLink](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_getexternallink.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FileID = "2484"; + + Result = OPI_Bitrix24.GetFileExternalLink(URL, FileID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFileExternalLink(URL, FileID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFileExternalLink --url "b24-ar17wx.bitrix24.by" --fileid "2484" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": "https://b24-ar17wx.bitrix24.by/~pT3DD", + "time": { + "start": 1720017752.7023, + "finish": 1720017752.74417, + "duration": 0.0418639183044434, + "processing": 0.00636386871337891, + "date_start": "2024-07-03T14:42:32+00:00", + "date_finish": "2024-07-03T14:42:32+00:00", + "operating_reset_at": 1720018352, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Get-file-information.md b/docs/en/md/Bitrix24/File-managment/Get-file-information.md new file mode 100644 index 0000000000..32c5d782c8 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Get-file-information.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 3 +--- + +# Get information about file + Get information about file by ID + + + +`Function GetFileInformation(Val URL, Val FileID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.get](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_get.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FileID = "2484"; + + Result = OPI_Bitrix24.GetFileInformation(URL, FileID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetFileInformation(URL, FileID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetFileInformation --url "b24-ar17wx.bitrix24.by" --fileid "2484" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1716", + "NAME": "Picture1.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "1134", + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:28+00:00", + "UPDATE_TIME": "2024-07-03T14:42:28+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTcxNiZfPXJDbEFhcE51RG5ZZ0hwUVhJbXhybGRpUzhjbG82SHFO%7CImRvd25sb2FkfGRpc2t8YVdROU1UY3hOaVpmUFhKRGJFRmhjRTUxUkc1WlowaHdVVmhKYlhoeWJHUnBVemhqYkc4MlNIRk98ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.h344gCFe%2FeGei7hNDt%2FfG%2FqauSX2zpt%2BnX3KnR66llA%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Picture1.jpg" + }, + "time": { + "start": 1720017751.37945, + "finish": 1720017751.42512, + "duration": 0.0456681251525879, + "processing": 0.0131018161773682, + "date_start": "2024-07-03T14:42:31+00:00", + "date_finish": "2024-07-03T14:42:31+00:00", + "operating_reset_at": 1720018351, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Make-file-copy.md b/docs/en/md/Bitrix24/File-managment/Make-file-copy.md new file mode 100644 index 0000000000..2243cf0e6e --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Make-file-copy.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 8 +--- + +# Copy file + Copy file from one destination to another + + + +`Function MakeFileCopy(Val URL, Val FileID, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | Original file ID | + | FolderID | --folderid | String, Number | ID of copy destination folder | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.copyto](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_copyto.php) +::: +
+ + +```bsl title="Code example" + FolderID = "2488"; + FileID = "2484"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.MakeFileCopy(URL, FileID, FolderID); + + + FolderID = "2490"; + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MakeFileCopy(URL, FileID, FolderID, Token); + + Check_BitrixFile(Result); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MakeFileCopy --url "b24-ar17wx.bitrix24.by" --fileid "2484" --folderid "2490" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 1744, + "NAME": "New file name.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "1722", + "DELETED_TYPE": 0, + "GLOBAL_CONTENT_VERSION": 1, + "FILE_ID": 1146, + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:54+00:00", + "UPDATE_TIME": "2024-07-03T14:42:54+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTc0NCZfPWphdFBTRXpUdHI2anZKbDNxMDBwVTdRRVZ4aDdGVTMy%7CImRvd25sb2FkfGRpc2t8YVdROU1UYzBOQ1pmUFdwaGRGQlRSWHBVZEhJMmFuWktiRE54TURCd1ZUZFJSVlo0YURkR1ZUTXl8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.uOKd1v3hEnu7vsep0NhRk3RzXtyT21DBrrwPl3DxLG8%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New catalog/New file name.jpg" + }, + "time": { + "start": 1720017774.37632, + "finish": 1720017774.44715, + "duration": 0.07082200050354, + "processing": 0.0407531261444092, + "date_start": "2024-07-03T14:42:54+00:00", + "date_finish": "2024-07-03T14:42:54+00:00", + "operating_reset_at": 1720018374, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Mark-file-as-deleted.md b/docs/en/md/Bitrix24/File-managment/Mark-file-as-deleted.md new file mode 100644 index 0000000000..faac0f1c75 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Mark-file-as-deleted.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 6 +--- + +# Mark file as deleted + Move file to recycle bin + + + +`Function MarkFileAsDeleted(Val URL, Val FileID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.markdeleted](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_markdeleted.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FileID = "2484"; + + Result = OPI_Bitrix24.MarkFileAsDeleted(URL, FileID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MarkFileAsDeleted(URL, FileID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MarkFileAsDeleted --url "b24-ar17wx.bitrix24.by" --fileid "2484" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1716", + "NAME": "New file name.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "3", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "1134", + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:28+00:00", + "UPDATE_TIME": "2024-07-03T14:42:28+00:00", + "DELETE_TIME": "2024-07-03T14:42:34+00:00", + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "1", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTcxNiZfPXNheWNTOWFZRVJuejdMOXhCSlhnbDZxbW4xVU05M1lK%7CImRvd25sb2FkfGRpc2t8YVdROU1UY3hOaVpmUFhOaGVXTlRPV0ZaUlZKdWVqZE1PWGhDU2xobmJEWnhiVzR4VlUwNU0xbEt8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.H4kGiTtgZ%2BN0wWDCX0lKHQmfO9hOfINESfK6VVd1UJo%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New file name.jpgi17200177547139i" + }, + "time": { + "start": 1720017755.36075, + "finish": 1720017755.40426, + "duration": 0.0435140132904053, + "processing": 0.0109550952911377, + "date_start": "2024-07-03T14:42:35+00:00", + "date_finish": "2024-07-03T14:42:35+00:00", + "operating_reset_at": 1720018355, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Move-file-to-folder.md b/docs/en/md/Bitrix24/File-managment/Move-file-to-folder.md new file mode 100644 index 0000000000..dd236da6e4 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Move-file-to-folder.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 9 +--- + +# Move file + Move file from one destination to another + + + +`Function MoveFileToFolder(Val URL, Val FileID, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File ID | + | FolderID | --folderid | String, Number | ID of new destination folder | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.moveto](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_moveto.php) +::: +
+ + +```bsl title="Code example" + FolderID = "2492"; + FileID = "2484"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.MoveFileToFolder(URL, FileID, FolderID); + + + FolderID = "2494"; + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.MoveFileToFolder(URL, FileID, FolderID, Token); + + Check_BitrixFile(Result); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MoveFileToFolder --url "b24-ar17wx.bitrix24.by" --fileid "2484" --folderid "2494" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1716", + "NAME": "New file name.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": 1726, + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "1134", + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:28+00:00", + "UPDATE_TIME": "2024-07-03T14:42:36+00:00", + "DELETE_TIME": "2024-07-03T14:42:34+00:00", + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "1", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTcxNiZfPUtKOGRTc3BCNmFoWDN3bjdXVVJzV2FEbWdrOXNOQk5K%7CImRvd25sb2FkfGRpc2t8YVdROU1UY3hOaVpmUFV0S09HUlRjM0JDTm1Gb1dETjNiamRYVlZKelYyRkViV2RyT1hOT1FrNUt8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.TUnzDUP0VCd8GRkzGSamf6aYWKIRqoB9Fpi6xFrBwBA%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New catalog/New subfolder/New file name.jpg" + }, + "time": { + "start": 1720017764.56434, + "finish": 1720017764.63176, + "duration": 0.0674228668212891, + "processing": 0.0307409763336182, + "date_start": "2024-07-03T14:42:44+00:00", + "date_finish": "2024-07-03T14:42:44+00:00", + "operating_reset_at": 1720018364, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Rename-file.md b/docs/en/md/Bitrix24/File-managment/Rename-file.md new file mode 100644 index 0000000000..3ff3f514e4 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Rename-file.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 10 +--- + +# Rename file + Changes the name of an existing file + + + +`Function RenameFile(Val URL, Val FileID, Val Name, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File identifier | + | Name | --title | String | New folders name | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.rename](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_rename.php) +::: +
+ + +```bsl title="Code example" + Name = "New file name.jpg"; + Filename2 = "New file name 2.jpg"; + + FileID2 = "2482"; + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.RenameFile(URL, FileID2, Filename2); + + + FileID = "2484"; + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.RenameFile(URL, FileID, Name, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RenameFile --url "b24-ar17wx.bitrix24.by" --fileid "2484" --title %title% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1716", + "NAME": "New file name.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "1134", + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:28+00:00", + "UPDATE_TIME": "2024-07-03T14:42:28+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTcxNiZfPWh4MGZDaVNISklmakNDZ2VDQnBGQ25oaWhnUzRVaVNG%7CImRvd25sb2FkfGRpc2t8YVdROU1UY3hOaVpmUFdoNE1HWkRhVk5JU2tsbWFrTkRaMlZEUW5CR1EyNW9hV2huVXpSVmFWTkd8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.I5xOjqhubMfxDzA0AHzUE5AzgUeXOOmA4%2FsEKdiUSyQ%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New file name.jpg" + }, + "time": { + "start": 1720017754.0472, + "finish": 1720017754.09402, + "duration": 0.0468170642852783, + "processing": 0.0171689987182617, + "date_start": "2024-07-03T14:42:34+00:00", + "date_finish": "2024-07-03T14:42:34+00:00", + "operating_reset_at": 1720018354, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Restore-file.md b/docs/en/md/Bitrix24/File-managment/Restore-file.md new file mode 100644 index 0000000000..5f93948b4f --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Restore-file.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 7 +--- + +# Restore file + Restore file from recycle bin + + + +`Function RestoreFile(Val URL, Val FileID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | FileID | --fileid | String, Number | File identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.file.restore](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_restore.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + FileID = "2484"; + + Result = OPI_Bitrix24.RestoreFile(URL, FileID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.RestoreFile(URL, FileID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RestoreFile --url "b24-ar17wx.bitrix24.by" --fileid "2484" --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "1716", + "NAME": "New file name.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "1134", + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:28+00:00", + "UPDATE_TIME": "2024-07-03T14:42:36+00:00", + "DELETE_TIME": "2024-07-03T14:42:34+00:00", + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "1", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTcxNiZfPWs2c1VzV3l4ZkVmRG5PY1JYSGdibHNxZzJ1S2pGbDNC%7CImRvd25sb2FkfGRpc2t8YVdROU1UY3hOaVpmUFdzMmMxVnpWM2w0WmtWbVJHNVBZMUpZU0dkaWJITnhaekoxUzJwR2JETkN8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.iv0WpvLa68S5kviQk96g9dRPVonwvrxN7T6AunrAW9s%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New file name.jpg" + }, + "time": { + "start": 1720017756.65038, + "finish": 1720017756.69349, + "duration": 0.0431070327758789, + "processing": 0.0107128620147705, + "date_start": "2024-07-03T14:42:36+00:00", + "date_finish": "2024-07-03T14:42:36+00:00", + "operating_reset_at": 1720018356, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Upload-file-to-folder.md b/docs/en/md/Bitrix24/File-managment/Upload-file-to-folder.md new file mode 100644 index 0000000000..3fea456b50 --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Upload-file-to-folder.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 2 +--- + +# Upload file to the folder + Upload local file to the folder + + + +`Function UploadFileToFolder(Val URL, Val Name, Val File, Val FolderID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Name | --title | String | File name with extension | + | File | --file | String, BinaryData | File for upload | + | FolderID | --folderid | String | Folder identifier | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.folder.uploadfile](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_uploadfile.php) +::: +
+ + +```bsl title="Code example" + Filename2 = "Picture2.jpg"; + Name = "Picture1.jpg"; + + Image2 = "https://openintegrations.dev/test_data/picture.jpg"; // Local path, URL or Binary Data + Image = "https://openintegrations.dev/test_data/picture2.jpg"; // Local path, URL or Binary Data + + DestinationID = "2490"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.UploadFileToFolder(URL, Filename2, Image2, DestinationID); + + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "56898d66006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.UploadFileToFolder(URL, Name, Image, DestinationID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 UploadFileToFolder --url "b24-ar17wx.bitrix24.by" --title %title% --file %file% --folderid %folderid% --token "56898d66006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 1740, + "NAME": "Picture1.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "1722", + "DELETED_TYPE": 0, + "GLOBAL_CONTENT_VERSION": 1, + "FILE_ID": 1142, + "SIZE": "805189", + "CREATE_TIME": "2024-07-03T14:42:52+00:00", + "UPDATE_TIME": "2024-07-03T14:42:52+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=fe708566006e9f06006b12e4000000010000076fcba303ea853529aed2cefade1444b3&token=disk%7CaWQ9MTc0MCZfPTFqN3RzcGx4UndmRkk0cmlvVGVFQUEzQ05lOHZ0U1RR%7CImRvd25sb2FkfGRpc2t8YVdROU1UYzBNQ1pmUFRGcU4zUnpjR3g0VW5kbVJrazBjbWx2VkdWRlFVRXpRMDVsT0haMFUxUlJ8ZmU3MDg1NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDc2ZmNiYTMwM2VhODUzNTI5YWVkMmNlZmFkZTE0NDRiMyI%3D.yWcwutXSoxydbwTQ7d1Aapgpo69Iyc2LhhtmuH442Uo%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/New catalog/Picture1.jpg" + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/Upload-file-to-storage.md b/docs/en/md/Bitrix24/File-managment/Upload-file-to-storage.md new file mode 100644 index 0000000000..e98a5d6edc --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/Upload-file-to-storage.md @@ -0,0 +1,94 @@ +--- +sidebar_position: 1 +--- + +# Upload file to a storage + Upload file to storage root + + + +`Function UploadFileToStorage(Val URL, Val Name, Val File, Val StorageID, Val Rights = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Name | --title | String | File name with extension | + | File | --file | String, BinaryData | File for upload | + | StorageID | --storageid | String | Storage id | + | Rights | --rights | String | Rights array if required | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.uploadfile](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_uploadfile.php) +::: +
+ + +```bsl title="Code example" + Filename2 = "Picture2.jpg"; + Name = "Picture1.jpg"; + + Image2 = "https://openintegrations.dev/test_data/picture.jpg"; // Local path, URL or Binary Data + Image = "https://openintegrations.dev/test_data/picture2.jpg"; // Local path, URL or Binary Data + + DestinationID = 3; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.UploadFileToStorage(URL, Filename2, Image2, DestinationID); + + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.UploadFileToStorage(URL, Name, Image, DestinationID,, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 UploadFileToStorage --url "b24-ar17wx.bitrix24.by" --title %title% --file %file% --storageid %storageid% --rights %rights% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 356, + "NAME": "26417397-8431-4343-9c0f-a40d4a2831c8.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": 0, + "GLOBAL_CONTENT_VERSION": 1, + "FILE_ID": 404, + "SIZE": "26", + "CREATE_TIME": "2024-06-19T07:58:50+00:00", + "UPDATE_TIME": "2024-06-19T07:58:50+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=0a9d7266006e9f06006b12e40000000100000702aaae0c0e99153466d165ecfa4a92ce&token=disk%7CaWQ9MzU2Jl89TEZ6d3JtUDdUdVg0dXJ3Q2pZYTExTlhPTmh1czI3V1k%3D%7CImRvd25sb2FkfGRpc2t8YVdROU16VTJKbDg5VEVaNmQzSnRVRGRVZFZnMGRYSjNRMnBaWVRFeFRsaFBUbWgxY3pJM1Yxaz18MGE5ZDcyNjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDcwMmFhYWUwYzBlOTkxNTM0NjZkMTY1ZWNmYTRhOTJjZSI%3D.ng9IaX1mYX7R%2B4yWP67P6j9%2BWvh78aG47IO0Ex6UVQ8%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/26417397-8431-4343-9c0f-a40d4a2831c8.jpg" + }, + "time": { + "start": 1718783929.8197, + "finish": 1718783930.09911, + "duration": 0.279407024383545, + "processing": 0.227760076522827, + "date_start": "2024-06-19T07:58:49+00:00", + "date_finish": "2024-06-19T07:58:50+00:00", + "operating_reset_at": 1718784529, + "operating": 0.227726936340332 + } +} +``` diff --git a/docs/en/md/Bitrix24/File-managment/_category_.json b/docs/en/md/Bitrix24/File-managment/_category_.json new file mode 100644 index 0000000000..aacb9c020c --- /dev/null +++ b/docs/en/md/Bitrix24/File-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "File managment", +"position": "11" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Kanban/Add-kanban-stage.md b/docs/en/md/Bitrix24/Kanban/Add-kanban-stage.md index f6219ce1e2..3cd5225c0a 100644 --- a/docs/en/md/Bitrix24/Kanban/Add-kanban-stage.md +++ b/docs/en/md/Bitrix24/Kanban/Add-kanban-stage.md @@ -24,7 +24,10 @@ sidebar_position: 1
- +:::tip +Method at API documentation: [task.stages.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_add.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Kanban/Delete-kanban-stage.md b/docs/en/md/Bitrix24/Kanban/Delete-kanban-stage.md index f25937970b..b09de43ebf 100644 --- a/docs/en/md/Bitrix24/Kanban/Delete-kanban-stage.md +++ b/docs/en/md/Bitrix24/Kanban/Delete-kanban-stage.md @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 --- # ID of the stage to be deleted @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Method at API documentation: [task.stages.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_delete.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Kanban/Get-kanban-stages.md b/docs/en/md/Bitrix24/Kanban/Get-kanban-stages.md index 2ddc5cdaf7..25376343cb 100644 --- a/docs/en/md/Bitrix24/Kanban/Get-kanban-stages.md +++ b/docs/en/md/Bitrix24/Kanban/Get-kanban-stages.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 --- # Get kanban stages @@ -21,7 +21,10 @@ sidebar_position: 3
- +:::tip +Method at API documentation: [task.stages.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_get.php) +::: +
```bsl title="Code example" @@ -517,7 +520,7 @@ sidebar_position: 3 }, "2": { "ID": "2", - "TITLE": "Not withplanandроinаны", + "TITLE": "Not planned", "SORT": "4000", "COLOR": "00C4FB", "SYSTEM_TYPE": "", @@ -529,7 +532,7 @@ sidebar_position: 3 }, "4": { "ID": "4", - "TITLE": "Сделаю to notделе", + "TITLE": "For this week", "SORT": "4100", "COLOR": "47D1E2", "SYSTEM_TYPE": "", diff --git a/docs/en/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md b/docs/en/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md index 454e3e7fe2..340dc89e0e 100644 --- a/docs/en/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md +++ b/docs/en/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 --- # Move task to kanban stage @@ -23,7 +23,10 @@ sidebar_position: 4
- +:::tip +Method at API documentation: [task.stages.movetask](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_movetask.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Kanban/Update-kanbans-stage.md b/docs/en/md/Bitrix24/Kanban/Update-kanbans-stage.md new file mode 100644 index 0000000000..4b74ba77da --- /dev/null +++ b/docs/en/md/Bitrix24/Kanban/Update-kanbans-stage.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 2 +--- + +# Change kanban stage + Changes the properties of the existing kanban or My plan stage + + + +`Function UpdateKanbansStage(Val URL, Val Name, Val StageID, Val Color = "", Val PrevStageID = 0, Val AsAdmin = False, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Name | --title | String | New stages name | + | StageID | --stage | String, Number | Stage ID for change | + | Color | --color | String | HEX of new stage color | + | PrevStageID | --prevstage | String, Number | Stage ID, after which the selected stage should be inserted | + | AsAdmin | --admin | Boolean | Allows you to add stages without checking permissions (for administrators) | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.stages.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_update.php) +::: +
+ + +```bsl title="Code example" + Name = "New stage name"; + Color = "000000"; + StageID = FunctionParameters["Bitrix24_HookStageID"]; + + URL = FunctionParameters["Bitrix24_URL"]; + + Result = OPI_Bitrix24.UpdateKanbansStage(URL, Name, StageID, Color); + + + Name = "New stage name 2"; + Color = "000000"; + StageID = FunctionParameters["Bitrix24_StageID"]; + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.UpdateKanbansStage(URL, Name, StageID, Color, 6, True, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 UpdateKanbansStage --url %url% --title %title% --stage %stage% --color %color% --prevstage %prevstage% --admin %admin% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720816577.57757, + "finish": 1720816577.66624, + "duration": 0.0886678695678711, + "processing": 0.059006929397583, + "date_start": "2024-07-12T20:36:17+00:00", + "date_finish": "2024-07-12T20:36:17+00:00", + "operating_reset_at": 1720817177, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Kanban/_category_.json b/docs/en/md/Bitrix24/Kanban/_category_.json index 1213e3f67d..bdcf391743 100644 --- a/docs/en/md/Bitrix24/Kanban/_category_.json +++ b/docs/en/md/Bitrix24/Kanban/_category_.json @@ -1,4 +1,4 @@ { "label": "Kanban", -"position": "6" +"position": "7" } \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Message-management/Delete-message.md b/docs/en/md/Bitrix24/Message-management/Delete-message.md new file mode 100644 index 0000000000..90486d53e3 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Delete-message.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 4 +--- + +# Delete message + Deletes a dialog message + + + +`Function DeleteMessage(Val URL, Val MessageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | MessageID | --message | String, Number | ID of the message to be deleted | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.message.delete](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12119) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + MessageID = FunctionParameters["Bitrix24_ChatMessageID"]; + + Result = OPI_Bitrix24.DeleteMessage(URL, MessageID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + MessageID = FunctionParameters["Bitrix24_UserMessageID"]; + + Result = OPI_Bitrix24.DeleteMessage(URL, MessageID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteMessage --url %url% --message %message% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969167.77137, + "finish": 1720969167.82331, + "duration": 0.051936149597168, + "processing": 0.0215229988098145, + "date_start": "2024-07-14T14:59:27+00:00", + "date_finish": "2024-07-14T14:59:27+00:00", + "operating_reset_at": 1720969767, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Edit-message.md b/docs/en/md/Bitrix24/Message-management/Edit-message.md new file mode 100644 index 0000000000..9ecb48f039 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Edit-message.md @@ -0,0 +1,76 @@ +--- +sidebar_position: 2 +--- + +# Edit message + Edit dialog message content + + + +`Function EditMessage(Val URL, Val MessageID, Val Text = "", Val Attachments = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | MessageID | --message | String, Number | ID of the message to be edited | + | Text | --text | String | New message text | + | Attachments | --blocks | Array of Structure | New blocks array | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.message.update](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12117) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + MessageID = FunctionParameters["Bitrix24_ChatMessageID"]; + + Text = "New message text"; + + Result = OPI_Bitrix24.EditMessage(URL, MessageID, Text); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + MessageID = FunctionParameters["Bitrix24_UserMessageID"]; + + Image = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + File = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Attachments = New Array; + Attachments.Add(OPI_Bitrix24.GetPictureBlock("Image1", Image)); + Attachments.Add(OPI_Bitrix24.GetFileBlock("File1.docx", File)); + + Result = OPI_Bitrix24.EditMessage(URL, MessageID, Text, Attachments, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 EditMessage --url %url% --message %message% --text %text% --blocks %blocks% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969165.17314, + "finish": 1720969165.21621, + "duration": 0.0430619716644287, + "processing": 0.018265962600708, + "date_start": "2024-07-14T14:59:25+00:00", + "date_finish": "2024-07-14T14:59:25+00:00", + "operating_reset_at": 1720969765, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Get-file-block.md b/docs/en/md/Bitrix24/Message-management/Get-file-block.md new file mode 100644 index 0000000000..3ed6fc6b84 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Get-file-block.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 9 +--- + +# Get file block + Make file block for SendMessage method + + + +`Function GetFileBlock(Val Name, Val URL) Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | Name | --title | String | Picture name | + | URL | --url | String | File URL | + + + Returns: Structure - FileBlock + +
+ +:::tip +Blocks at API documentation: [Link](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867) +::: +
+ + + + + +```sh title="CLI command example" + + oint bitrix24 GetFileBlock --title %title% --url %url% + +``` + + diff --git a/docs/en/md/Bitrix24/Message-management/Get-picture-block.md b/docs/en/md/Bitrix24/Message-management/Get-picture-block.md new file mode 100644 index 0000000000..c61c052cc1 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Get-picture-block.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 8 +--- + +# Get picture block + Make picture block for SendMessage method + + + +`Function GetPictureBlock(Val Name, Val URL) Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | Name | --title | String | Picture name | + | URL | --url | String | URL of sending picture | + + + Returns: Structure - PictureBlock + +
+ +:::tip +Blocks at API documentation: [Link](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867) +::: +
+ + + + + +```sh title="CLI command example" + + oint bitrix24 GetPictureBlock --title %title% --url %url% + +``` + + diff --git a/docs/en/md/Bitrix24/Message-management/Mark-message-as-readed.md b/docs/en/md/Bitrix24/Message-management/Mark-message-as-readed.md new file mode 100644 index 0000000000..4d8109148c --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Mark-message-as-readed.md @@ -0,0 +1,73 @@ +--- +sidebar_position: 6 +--- + +# Mark message as readed + Mark current and all previous messages as readed + + + +`Function MarkMessageAsReaded(Val URL, Val ChatID, Val MessageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | MessageID | --message | String, Number | Id of last readed message | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.read](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12053) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + MessageID = FunctionParameters["Bitrix24_ChatMessageID"]; + + Result = OPI_Bitrix24.MarkMessageAsReaded(URL, ChatID, MessageID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + MessageID = FunctionParameters["Bitrix24_UserMessageID"]; + + Result = OPI_Bitrix24.MarkMessageAsReaded(URL, UserID, MessageID,Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MarkMessageAsReaded --url %url% --chat %chat% --message %message% --token %token% + +``` + +```json title="Result" +{ + "result": { + "dialogId": 10, + "chatId": 10, + "lastId": 5262, + "counter": 0 + }, + "time": { + "start": 1720969157.61149, + "finish": 1720969157.65659, + "duration": 0.0451040267944336, + "processing": 0.0171201229095459, + "date_start": "2024-07-14T14:59:17+00:00", + "date_finish": "2024-07-14T14:59:17+00:00", + "operating_reset_at": 1720969757, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Mark-message-as-unreaded.md b/docs/en/md/Bitrix24/Message-management/Mark-message-as-unreaded.md new file mode 100644 index 0000000000..5c7f629b24 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Mark-message-as-unreaded.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 7 +--- + +# Mark message as unreaded + Mark current and all messages after as unreaded + + + +`Function MarkMessageAsUnreaded(Val URL, Val ChatID, Val MessageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | MessageID | --message | String, Number | ID of last unreaded message | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.dialog.unread](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12055) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + MessageID = FunctionParameters["Bitrix24_ChatMessageID"]; + + Result = OPI_Bitrix24.MarkMessageAsUnreaded(URL, ChatID, MessageID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + MessageID = FunctionParameters["Bitrix24_UserMessageID"]; + + Result = OPI_Bitrix24.MarkMessageAsUnreaded(URL, UserID, MessageID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 MarkMessageAsUnreaded --url %url% --chat %chat% --message %message% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969158.8803, + "finish": 1720969158.91584, + "duration": 0.035538911819458, + "processing": 0.0112378597259521, + "date_start": "2024-07-14T14:59:18+00:00", + "date_finish": "2024-07-14T14:59:18+00:00", + "operating_reset_at": 1720969758, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Send-file.md b/docs/en/md/Bitrix24/Message-management/Send-file.md new file mode 100644 index 0000000000..9488201795 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Send-file.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 5 +--- + +# SendFile + Send disk file to chat + + + +`Function SendFile(Val URL, Val ChatID, Val FileID, Val Description = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID | + | FileID | --fileid | String, Number | File ID from UploadFileToFolder method | + | Description | --description | String | File description | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.disk.file.commit](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11485) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = FunctionParameters["Bitrix24_HookChatID"]; + File = FunctionParameters["Document"]; // Binary Data, URL or path to file + Description = "Very important file"; + + Directory = OPI_Bitrix24.GetChatFilesFolder(URL, ChatID); + FolderID = Directory["result"]["ID"]; + + UploadedFile = OPI_Bitrix24.UploadFileToFolder(URL, "Imortant doc.docx", File, FolderID); + FileID = UploadedFile["result"]["ID"]; + + Result = OPI_Bitrix24.SendFile(URL, ChatID, FileID, Description); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + ChatID = FunctionParameters["Bitrix24_ChatID"]; + + Directory = OPI_Bitrix24.GetChatFilesFolder(URL, ChatID, Token); + FolderID = Directory["result"]["ID"]; + + UploadedFile = OPI_Bitrix24.UploadFileToFolder(URL, "Imortant doc.docx", File, FolderID, Token); + FileID = UploadedFile["result"]["ID"]; + + Result = OPI_Bitrix24.SendFile(URL, ChatID, FileID, Description, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 SendFile --url %url% --chat %chat% --fileid %fileid% --description %description% --token %token% + +``` + +```json title="Result" +{ + "result": { + "FILES": { + "upload3254": { + "id": 3254, + "chatId": 254, + "date": {}, + "type": "file", + "name": "Imortant doc.docx", + "extension": "docx", + "size": 24071, + "image": false, + "status": "done", + "progress": 100, + "authorId": 1, + "authorName": "Anton Titovets", + "urlPreview": "", + "urlShow": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "urlDownload": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "viewerAttrs": { + "viewer": null, + "viewerType": "cloud-document", + "src": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "viewerTypeClass": "BX.Messenger.Integration.Viewer.OnlyOfficeChatItem", + "viewerSeparateItem": true, + "viewerExtension": "im.integration.viewer", + "objectId": "3254", + "imChatId": 254, + "title": "Imortant doc.docx", + "actions": "[{\"type\":\"download\"},{\"type\":\"copyToMe\",\"text\":\"Save to Bitrix24 Drive\",\"action\":\"BXIM.disk.saveToDiskAction\",\"params\":{\"fileId\":\"3254\"},\"extension\":\"disk.viewer.actions\",\"buttonIconClass\":\"ui-btn-icon-cloud\"}]" + } + } + }, + "DISK_ID": [ + "3254" + ], + "FILE_MODELS": { + "upload3254": { + "id": 3254, + "name": "Imortant doc.docx", + "createTime": {}, + "updateTime": {}, + "deleteTime": null, + "code": null, + "xmlId": null, + "storageId": 6, + "realObjectId": 3254, + "parentId": 3250, + "deletedType": 0, + "createdBy": "1", + "updatedBy": "1", + "deletedBy": "0", + "typeFile": 4, + "globalContentVersion": 2, + "fileId": 2330, + "size": 24071, + "etag": "1179305ea90d0b0fef106e1163deaeb8", + "links": { + "download": "/bitrix/services/main/ajax.php?action=disk.file.download&SITE_ID=s1&fileId=3254", + "showInGrid": "/bitrix/tools/disk/focus.php?objectId=3254&action=showObjectInGrid&ncc=1" + } + } + }, + "MESSAGE_ID": 5346 + }, + "time": { + "start": 1720969175.0006, + "finish": 1720969175.09084, + "duration": 0.0902431011199951, + "processing": 0.0652461051940918, + "date_start": "2024-07-14T14:59:35+00:00", + "date_finish": "2024-07-14T14:59:35+00:00", + "operating_reset_at": 1720969775, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Send-message.md b/docs/en/md/Bitrix24/Message-management/Send-message.md new file mode 100644 index 0000000000..e61951385b --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Send-message.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 1 +--- + +# Send message + Send message to dialog + + + +`Function SendMessage(Val URL, Val ChatID, Val Text, Val Attachments = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | ChatID | --chat | String, Number | Chat ID (as chatXXX) or User ID (as XXX) | + | Text | --text | String | Message text | + | Attachments | --blocks | Array of Structure | Array of attachments | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.message.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12115) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + ChatID = "chat" + FunctionParameters["Bitrix24_HookChatID"]; + Text = "Message text"; + Image = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + File = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Attachments = New Array; + Attachments.Add(OPI_Bitrix24.GetPictureBlock("Image1", Image)); + Attachments.Add(OPI_Bitrix24.GetFileBlock("File1.docx", File)); + + Result = OPI_Bitrix24.SendMessage(URL, ChatID, Text, Attachments); + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + UserID = 10; + + Result = OPI_Bitrix24.SendMessage(URL, UserID, Text,, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 SendMessage --url %url% --chat %chat% --text %text% --blocks %blocks% --token %token% + +``` + +```json title="Result" +{ + "result": 5342, + "time": { + "start": 1720969163.89343, + "finish": 1720969163.95538, + "duration": 0.061945915222168, + "processing": 0.0366020202636719, + "date_start": "2024-07-14T14:59:23+00:00", + "date_finish": "2024-07-14T14:59:23+00:00", + "operating_reset_at": 1720969763, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/Set-message-reaction.md b/docs/en/md/Bitrix24/Message-management/Set-message-reaction.md new file mode 100644 index 0000000000..d8aad51282 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/Set-message-reaction.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 3 +--- + +# Set message reaction + Set or remove reaction mark on the message + + + +`Function SetMessageReaction(Val URL, Val MessageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | MessageID | --message | String, Number | Message ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [im.message.like](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12121) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + MessageID = FunctionParameters["Bitrix24_ChatMessageID"]; + + Result = OPI_Bitrix24.SetMessageReaction(URL, MessageID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + MessageID = FunctionParameters["Bitrix24_UserMessageID"]; + + Result = OPI_Bitrix24.SetMessageReaction(URL, MessageID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 SetMessageReaction --url %url% --message %message% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720969166.51361, + "finish": 1720969166.55322, + "duration": 0.0396139621734619, + "processing": 0.0151541233062744, + "date_start": "2024-07-14T14:59:26+00:00", + "date_finish": "2024-07-14T14:59:26+00:00", + "operating_reset_at": 1720969766, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Message-management/_category_.json b/docs/en/md/Bitrix24/Message-management/_category_.json new file mode 100644 index 0000000000..15858a40d2 --- /dev/null +++ b/docs/en/md/Bitrix24/Message-management/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Message management", +"position": "13" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Storages-and-files-managment/_category_.json b/docs/en/md/Bitrix24/Storages-and-files-managment/_category_.json index 300185e9f7..e16be17d7e 100644 --- a/docs/en/md/Bitrix24/Storages-and-files-managment/_category_.json +++ b/docs/en/md/Bitrix24/Storages-and-files-managment/_category_.json @@ -1,4 +1,4 @@ { -"label": "Storages and files managment", +"label": "Работа с диском и файлами", "position": "7" } \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Storages-managment/Create-storage-folder.md b/docs/en/md/Bitrix24/Storages-managment/Create-storage-folder.md new file mode 100644 index 0000000000..5a95a11586 --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Create-storage-folder.md @@ -0,0 +1,85 @@ +--- +sidebar_position: 6 +--- + +# Create folder at the storage + Create new foldera at the storage + + + +`Function CreateStorageFolder(Val URL, Val StorageID, Val Name, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | StorageID | --storageid | String | Storage ID | + | Name | --title | String | Folder name | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.addfolder](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_addfolder.php) +::: +
+ + +```bsl title="Code example" + StorageID = 3; + Name = "New catalog"; + Filename2 = "New folder 2"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Result = OPI_Bitrix24.CreateStorageFolder(URL, StorageID, Filename2); + + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.CreateStorageFolder(URL, StorageID, Name, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 CreateStorageFolder --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --title %title% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": 574, + "NAME": "New catalog", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": 574, + "PARENT_ID": "3", + "DELETED_TYPE": 0, + "CREATE_TIME": "2024-06-22T09:07:36+00:00", + "UPDATE_TIME": "2024-06-22T09:07:36+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/New catalog" + }, + "time": { + "start": 1719047256.22025, + "finish": 1719047256.27758, + "duration": 0.057330846786499, + "processing": 0.0276291370391846, + "date_start": "2024-06-22T09:07:36+00:00", + "date_finish": "2024-06-22T09:07:36+00:00", + "operating_reset_at": 1719047856, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Storages-managment/Get-app-sotrage.md b/docs/en/md/Bitrix24/Storages-managment/Get-app-sotrage.md new file mode 100644 index 0000000000..f77de117b4 --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Get-app-sotrage.md @@ -0,0 +1,43 @@ +--- +sidebar_position: 2 +--- + +# Get storage for application data + Get information about storage with which the application can work to store its data + + + +`Function GetAppSotrage(Val URL, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.getforapp](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getforapp.php) +::: +
+ + +```bsl title="Code example" + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetAppSotrage(URL, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetAppSotrage --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." + +``` + + diff --git a/docs/en/md/Bitrix24/Storages-managment/Get-storage-objects.md b/docs/en/md/Bitrix24/Storages-managment/Get-storage-objects.md new file mode 100644 index 0000000000..63743cbd4d --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Get-storage-objects.md @@ -0,0 +1,105 @@ +--- +sidebar_position: 5 +--- + +# Get a list of child storage objects + Get a list of files and folders, located at the root of the storage + + + +`Function GetStorageObjects(Val URL, Val StorageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | StorageID | --storageid | String, Number | Storage ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.getchildren](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getchildren.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + StorageID = 3; + Result = OPI_Bitrix24.GetStorageObjects(URL, StorageID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetStorageObjects(URL, StorageID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetStorageObjects --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": [ + { + "ID": "568", + "NAME": "Picture2.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "558", + "SIZE": "2114023", + "CREATE_TIME": "2024-06-22T09:07:30+00:00", + "UPDATE_TIME": "2024-06-22T09:07:30+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTY4Jl89NnBxNndlcmpudjQwY0tHNnZhdVN2VHZ2TTYwSmFFSXA%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UWTRKbDg5Tm5CeE5uZGxjbXB1ZGpRd1kwdEhOblpoZFZOMlZIWjJUVFl3U21GRlNYQT18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.qSfz7Ap6RM8nwlRRrw4lqlYcNQoHQJMcdzSbvlLHw60%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Picture2.jpg" + }, + { + "ID": "570", + "NAME": "Picture1.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "560", + "SIZE": "805189", + "CREATE_TIME": "2024-06-22T09:07:32+00:00", + "UPDATE_TIME": "2024-06-22T09:07:32+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTcwJl89SmpkOWlyMGpwS1N1TEI1aWxIWWxtU0JtTllsT1BoNVI%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UY3dKbDg5U21wa09XbHlNR3B3UzFOMVRFSTFhV3hJV1d4dFUwSnRUbGxzVDFCb05WST18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.X8XQ3FtYG30XrOGGxoO1p%2FXistiComyxQei37Xh%2B%2FIM%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Picture1.jpg" + } + ], + "total": 2, + "time": { + "start": 1719047253.42516, + "finish": 1719047253.47205, + "duration": 0.0468947887420654, + "processing": 0.016359806060791, + "date_start": "2024-06-22T09:07:33+00:00", + "date_finish": "2024-06-22T09:07:33+00:00", + "operating_reset_at": 1719047853, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Storages-managment/Get-storage.md b/docs/en/md/Bitrix24/Storages-managment/Get-storage.md new file mode 100644 index 0000000000..572be3101a --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Get-storage.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 3 +--- + +# Get storage + Get information about storage + + + +`Function GetStorage(Val URL, Val StorageID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | StorageID | --storageid | String, Number | Storage ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.get](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_get.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + StorageID = 3; + + Result = OPI_Bitrix24.GetStorage(URL, StorageID); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetStorage(URL, StorageID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetStorage --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "3", + "NAME": "Main drive", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "common", + "ENTITY_ID": "shared_files_s1", + "ROOT_OBJECT_ID": "3" + }, + "time": { + "start": 1719047247.65416, + "finish": 1719047247.68963, + "duration": 0.0354659557342529, + "processing": 0.00417995452880859, + "date_start": "2024-06-22T09:07:27+00:00", + "date_finish": "2024-06-22T09:07:27+00:00", + "operating_reset_at": 1719047847, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Storages-managment/Get-storages-list.md b/docs/en/md/Bitrix24/Storages-managment/Get-storages-list.md new file mode 100644 index 0000000000..7c9fcd1657 --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Get-storages-list.md @@ -0,0 +1,126 @@ +--- +sidebar_position: 1 +--- + +# Get list of storages + Get list of available files storages + + + +`Function GetStoragesList(Val URL, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.getlist](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getlist.php) +::: +
+ + +```bsl title="Code example" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + Result = OPI_Bitrix24.GetStoragesList(URL); + + + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + + Result = OPI_Bitrix24.GetStoragesList(URL, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetStoragesList --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": [ + { + "ID": "3", + "NAME": "Main drive", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "common", + "ENTITY_ID": "shared_files_s1", + "ROOT_OBJECT_ID": "3" + }, + { + "ID": "1", + "NAME": "Anton Titovets", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "1", + "ROOT_OBJECT_ID": "1" + }, + { + "ID": "16", + "NAME": "iscript13@gmail.com", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "10", + "ROOT_OBJECT_ID": "270" + }, + { + "ID": "4", + "NAME": "Payment Processing Customer Support", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "2", + "ROOT_OBJECT_ID": "4" + }, + { + "ID": "10", + "NAME": "CoPilot", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "4", + "ROOT_OBJECT_ID": "52" + }, + { + "ID": "12", + "NAME": "Support Bitrix24", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "6", + "ROOT_OBJECT_ID": "70" + }, + { + "ID": "14", + "NAME": "Marta", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "8", + "ROOT_OBJECT_ID": "72" + } + ], + "total": 7, + "time": { + "start": 1718783911.64028, + "finish": 1718783911.69026, + "duration": 0.0499801635742188, + "processing": 0.00660109519958496, + "date_start": "2024-06-19T07:58:31+00:00", + "date_finish": "2024-06-19T07:58:31+00:00", + "operating_reset_at": 1718784511, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Storages-managment/Rename-storage.md b/docs/en/md/Bitrix24/Storages-managment/Rename-storage.md new file mode 100644 index 0000000000..642bd4a6bd --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/Rename-storage.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 4 +--- + +# Rename storage + Change storage name (for app storage only, see. GetAppStorage) + + + +`Function RenameStorage(Val URL, Val StorageID, Val Name, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | StorageID | --storageid | String, Number | Storage ID | + | Name | --title | String | New storage name | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [disk.storage.rename](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_rename.php) +::: +
+ + +```bsl title="Code example" + Name = "New storage name"; + URL = "b24-ar17wx.bitrix24.by"; + Token = "b9df7366006e9f06006b12e400000001000..."; + StorageID = "18"; + + Result = OPI_Bitrix24.RenameStorage(URL, StorageID, Name, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RenameStorage --url "b24-ar17wx.bitrix24.by" --storageid "18" --title %title% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Result" +{ + "result": { + "ID": "18", + "NAME": "New storage name", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "restapp", + "ENTITY_ID": "2", + "ROOT_OBJECT_ID": "464" + }, + "time": { + "start": 1719047246.29499, + "finish": 1719047246.35783, + "duration": 0.062842845916748, + "processing": 0.0317339897155762, + "date_start": "2024-06-22T09:07:26+00:00", + "date_finish": "2024-06-22T09:07:26+00:00", + "operating_reset_at": 1719047846, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Storages-managment/_category_.json b/docs/en/md/Bitrix24/Storages-managment/_category_.json new file mode 100644 index 0000000000..f70c92fb14 --- /dev/null +++ b/docs/en/md/Bitrix24/Storages-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Storages managment", +"position": "9" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md new file mode 100644 index 0000000000..f5030caceb --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md @@ -0,0 +1,71 @@ +--- +sidebar_position: 1 +--- + +# Add tasks checklist element + Adds new element of tasks checklist + + + +`Function AddTasksChecklistElement(Val URL, Val TaskID, Val Text, Val Completed = False, Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | Text | --text | String | Text (title) of checklist element | + | Completed | --complete | Boolean | Mark as completed | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/add.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + + Text = "Checklist element"; + + Result = OPI_Bitrix24.AddTasksChecklistElement(URL, TaskID, Text, True); + + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + TaskID = FunctionParameters["Bitrix24_TaskID"]; + + Result = OPI_Bitrix24.AddTasksChecklistElement(URL, TaskID, Text,, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 AddTasksChecklistElement --url %url% --task %task% --text %text% --complete %complete% --token %token% + +``` + +```json title="Result" +{ + "result": 96, + "time": { + "start": 1720816505.3041, + "finish": 1720816505.37014, + "duration": 0.0660440921783447, + "processing": 0.0380921363830566, + "date_start": "2024-07-12T20:35:05+00:00", + "date_finish": "2024-07-12T20:35:05+00:00", + "operating_reset_at": 1720817105, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md new file mode 100644 index 0000000000..8902d19091 --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 6 +--- + +# Complete tasks checklist element + Mark an element as completed + + + +`Function CompleteTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | ElementID | --element | Number, String | Element ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.complete](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/complete.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + ElementID = FunctionParameters["Bitrix24_HookCheckElementID"]; + + Result = OPI_Bitrix24.CompleteTasksChecklistElement(URL, TaskID, ElementID); + + + TaskID = FunctionParameters["Bitrix24_TaskID"]; + ElementID = FunctionParameters["Bitrix24_CheckElementID"]; + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.CompleteTasksChecklistElement(URL, TaskID, ElementID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 CompleteTasksChecklistElement --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720816509.8981, + "finish": 1720816509.94922, + "duration": 0.0511200428009033, + "processing": 0.0246191024780273, + "date_start": "2024-07-12T20:35:09+00:00", + "date_finish": "2024-07-12T20:35:09+00:00", + "operating_reset_at": 1720817109, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md new file mode 100644 index 0000000000..e502415956 --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 3 +--- + +# Delete tasks checklist element + Deletes element from tasks checklist + + + +`Function DeleteTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | ElementID | --element | Number, String | ID of deleted element | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/delete.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + ElementID = FunctionParameters["Bitrix24_HookCheckElementID"]; + + Result = OPI_Bitrix24.DeleteTasksChecklistElement(URL, TaskID, ElementID); + + + TaskID = FunctionParameters["Bitrix24_TaskID"]; + ElementID = FunctionParameters["Bitrix24_CheckElementID"]; + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.DeleteTasksChecklistElement(URL, TaskID, ElementID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteTasksChecklistElement --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720816512.25818, + "finish": 1720816512.30984, + "duration": 0.0516610145568848, + "processing": 0.0264489650726318, + "date_start": "2024-07-12T20:35:12+00:00", + "date_finish": "2024-07-12T20:35:12+00:00", + "operating_reset_at": 1720817112, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md new file mode 100644 index 0000000000..3cf9ff32d4 --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md @@ -0,0 +1,82 @@ +--- +sidebar_position: 5 +--- + +# Get tasks checklist element + Gets tasks checklist element by ID + + + +`Function GetTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | ElementID | --element | Number, String | Element ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/get.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + ElementID = FunctionParameters["Bitrix24_HookCheckElementID"]; + + Result = OPI_Bitrix24.GetTasksChecklistElement(URL, TaskID, ElementID); + + + TaskID = FunctionParameters["Bitrix24_TaskID"]; + ElementID = FunctionParameters["Bitrix24_CheckElementID"]; + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.GetTasksChecklistElement(URL, TaskID, ElementID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetTasksChecklistElement --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Result" +{ + "result": { + "ID": "96", + "TASK_ID": "632", + "PARENT_ID": "94", + "CREATED_BY": "1", + "TITLE": "New elements text", + "SORT_INDEX": "1", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + }, + "time": { + "start": 1720816508.81324, + "finish": 1720816508.85536, + "duration": 0.0421209335327148, + "processing": 0.0174088478088379, + "date_start": "2024-07-12T20:35:08+00:00", + "date_finish": "2024-07-12T20:35:08+00:00", + "operating_reset_at": 1720817108, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md new file mode 100644 index 0000000000..f86f003cfb --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md @@ -0,0 +1,95 @@ +--- +sidebar_position: 4 +--- + +# Get tasks checklist + Gets the list of elements on the task checklist + + + +`Function GetTasksChecklist(Val URL, Val TaskID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/getlist.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + + Result = OPI_Bitrix24.GetTasksChecklist(URL, TaskID); + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + TaskID = FunctionParameters["Bitrix24_TaskID"]; + + Result = OPI_Bitrix24.GetTasksChecklist(URL, TaskID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetTasksChecklist --url %url% --task %task% --token %token% + +``` + +```json title="Result" +{ + "result": [ + { + "ID": "94", + "TASK_ID": "632", + "PARENT_ID": 0, + "CREATED_BY": "1", + "TITLE": "BX_CHECKLIST_1", + "SORT_INDEX": "0", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + }, + { + "ID": "96", + "TASK_ID": "632", + "PARENT_ID": "94", + "CREATED_BY": "1", + "TITLE": "New elements text", + "SORT_INDEX": "1", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + } + ], + "time": { + "start": 1720816507.68937, + "finish": 1720816507.74166, + "duration": 0.0522880554199219, + "processing": 0.0231881141662598, + "date_start": "2024-07-12T20:35:07+00:00", + "date_finish": "2024-07-12T20:35:07+00:00", + "operating_reset_at": 1720817107, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md new file mode 100644 index 0000000000..12f172e0b5 --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 7 +--- + +# Renew tasks checklist element + Unmark an element as completed + + + +`Function RenewTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | ElementID | --element | Number, String | Element ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.renew](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/renew.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + ElementID = FunctionParameters["Bitrix24_HookCheckElementID"]; + + Result = OPI_Bitrix24.RenewTasksChecklistElement(URL, TaskID, ElementID); + + + TaskID = FunctionParameters["Bitrix24_TaskID"]; + ElementID = FunctionParameters["Bitrix24_CheckElementID"]; + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.RenewTasksChecklistElement(URL, TaskID, ElementID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 RenewTasksChecklistElement --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Result" +{ + "result": true, + "time": { + "start": 1720816511.09347, + "finish": 1720816511.14508, + "duration": 0.051609992980957, + "processing": 0.0250108242034912, + "date_start": "2024-07-12T20:35:11+00:00", + "date_finish": "2024-07-12T20:35:11+00:00", + "operating_reset_at": 1720817111, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md b/docs/en/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md new file mode 100644 index 0000000000..3091b4e65f --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 2 +--- + +# Update tasks checklist element + Updates text of element of tasks checklist + + + +`Function UpdateTasksChecklistElement(Val URL, Val TaskID, Val ElementID, Val Text, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | Number, String | Task ID | + | ElementID | --element | Number, String | Checklist element ID | + | Text | --text | String | Text (title) of checklist element | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.checklistitem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/update.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_HookTaskID"]; + ElementID = FunctionParameters["Bitrix24_HookCheckElementID"]; + + Text = "New elements text"; + + Result = OPI_Bitrix24.UpdateTasksChecklistElement(URL, TaskID, ElementID, Text); + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + TaskID = FunctionParameters["Bitrix24_TaskID"]; + ElementID = FunctionParameters["Bitrix24_CheckElementID"]; + + Result = OPI_Bitrix24.UpdateTasksChecklistElement(URL, TaskID, ElementID, Text, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 UpdateTasksChecklistElement --url %url% --task %task% --element %element% --text %text% --token %token% + +``` + +```json title="Result" +{ + "result": null, + "time": { + "start": 1720816506.52861, + "finish": 1720816506.58416, + "duration": 0.0555450916290283, + "processing": 0.027979850769043, + "date_start": "2024-07-12T20:35:06+00:00", + "date_finish": "2024-07-12T20:35:06+00:00", + "operating_reset_at": 1720817106, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-checklists-managment/_category_.json b/docs/en/md/Bitrix24/Tasks-checklists-managment/_category_.json new file mode 100644 index 0000000000..9bee02cfc6 --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-checklists-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Tasks checklists managment", +"position": "5" +} \ No newline at end of file diff --git a/docs/en/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md b/docs/en/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md index aba1f72156..2654ddfe06 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md @@ -20,7 +20,10 @@ sidebar_position: 17
- +:::tip +Method at API documentation: [tasks.task.favorite.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_add.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Approve-task.md b/docs/en/md/Bitrix24/Tasks-managment/Approve-task.md index 30cefe263c..6dd53bd26e 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Approve-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Approve-task.md @@ -20,7 +20,10 @@ sidebar_position: 7
- +:::tip +Method at API documentation: [tasks.task.approve](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_approve.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md b/docs/en/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md index d7ce49dc74..c7bdb717e9 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md @@ -21,7 +21,10 @@ sidebar_position: 6
- +:::tip +Method at API documentation: [tasks.task.files.attach](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_files_attach.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Check-task-accesses.md b/docs/en/md/Bitrix24/Tasks-managment/Check-task-accesses.md index 65611f6d4d..546d9a471c 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Check-task-accesses.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Check-task-accesses.md @@ -21,7 +21,10 @@ sidebar_position: 20
- +:::tip +Method at API documentation: [tasks.task.getaccess](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getaccess.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Complete-task.md b/docs/en/md/Bitrix24/Tasks-managment/Complete-task.md index 7c4a61d4f8..462c6d4de5 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Complete-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Complete-task.md @@ -20,7 +20,10 @@ sidebar_position: 9
- +:::tip +Method at API documentation: [tasks.task.complete](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_complete.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Create-task.md b/docs/en/md/Bitrix24/Tasks-managment/Create-task.md index 2eedbc739c..5546a9df19 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Create-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Create-task.md @@ -20,7 +20,10 @@ sidebar_position: 3
- +:::tip +Method at API documentation: [tasks.task.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_add.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md b/docs/en/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md index 1cdb7dbbef..4b72a47687 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md @@ -22,7 +22,10 @@ sidebar_position: 23
- +:::tip +Method at API documentation: [task.dependence.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_add.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Defer-task.md b/docs/en/md/Bitrix24/Tasks-managment/Defer-task.md index 978fa02b20..89a7a1f954 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Defer-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Defer-task.md @@ -20,7 +20,10 @@ sidebar_position: 11
- +:::tip +Method at API documentation: [tasks.task.defer](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_defer.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Delegate-task.md b/docs/en/md/Bitrix24/Tasks-managment/Delegate-task.md index bd8e0a2afe..637cb2ca65 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Delegate-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Delegate-task.md @@ -21,7 +21,10 @@ sidebar_position: 16
- +:::tip +Method at API documentation: [tasks.task.delegate](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delegate.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Delete-task.md b/docs/en/md/Bitrix24/Tasks-managment/Delete-task.md index d0b53560d2..16cc7ca03a 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Delete-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Delete-task.md @@ -20,7 +20,10 @@ sidebar_position: 5
- +:::tip +Method at API documentation: [tasks.task.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delete.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md b/docs/en/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md index 1bf55bde6d..b562d39148 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md @@ -22,7 +22,10 @@ sidebar_position: 24
- +:::tip +Method at API documentation: [task.dependence.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_delete.php) +::: +
@@ -34,4 +37,18 @@ sidebar_position: 24 ``` - +```json title="Result" +{ + "result": [], + "time": { + "start": 1720816479.3837, + "finish": 1720816479.41872, + "duration": 0.0350160598754883, + "processing": 0.00787091255187988, + "date_start": "2024-07-12T20:34:39+00:00", + "date_finish": "2024-07-12T20:34:39+00:00", + "operating_reset_at": 1720817079, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-managment/Disapprove-task.md b/docs/en/md/Bitrix24/Tasks-managment/Disapprove-task.md index 5b126b47a8..ee538f7313 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Disapprove-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Disapprove-task.md @@ -20,7 +20,10 @@ sidebar_position: 8
- +:::tip +Method at API documentation: [tasks.task.disapprove](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_disapprove.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-daily-plan.md b/docs/en/md/Bitrix24/Tasks-managment/Get-daily-plan.md new file mode 100644 index 0000000000..279eaf759c --- /dev/null +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-daily-plan.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 25 +--- + +# Get users daily tasks plan + Gets the task plan for the current users day + + + +`Function GetDailyPlan(Val URL, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.planner.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/planner/getlist.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + + Result = OPI_Bitrix24.GetDailyPlan(URL); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.GetDailyPlan(URL, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetDailyPlan --url %url% --token %token% + +``` + +```json title="Result" +{ + "result": [], + "time": { + "start": 1720816513.42336, + "finish": 1720816513.45192, + "duration": 0.0285580158233643, + "processing": 0.000265121459960938, + "date_start": "2024-07-12T20:35:13+00:00", + "date_finish": "2024-07-12T20:35:13+00:00", + "operating_reset_at": 1720817113, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md b/docs/en/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md index dcd8ee15a4..5ce8551fa2 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md @@ -1,5 +1,5 @@ --- -sidebar_position: 25 +sidebar_position: 26 --- # Get task fields structure @@ -19,7 +19,10 @@ sidebar_position: 25
- +:::tip +Method at API documentation: [tasks.task.getFields](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getFields.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-task-history.md b/docs/en/md/Bitrix24/Tasks-managment/Get-task-history.md index 10c6660736..07d744bb0b 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Get-task-history.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-task-history.md @@ -20,7 +20,10 @@ sidebar_position: 19
- +:::tip +Method at API documentation: [tasks.task.history.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_history_list.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-task.md b/docs/en/md/Bitrix24/Tasks-managment/Get-task.md index 85cd1af7bb..6a48aed8a8 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Get-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-task.md @@ -20,7 +20,10 @@ sidebar_position: 1
- +:::tip +Method at API documentation: [tasks.task.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_get.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md b/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md index 9702148237..baa1ea6812 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md @@ -1,5 +1,5 @@ --- -sidebar_position: 26 +sidebar_position: 27 --- # Get structure of tasks filter diff --git a/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-list.md b/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-list.md index 487e829756..afba1a1dd0 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-list.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Get-tasks-list.md @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Method at API documentation: [tasks.task.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_list.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Mute-task.md b/docs/en/md/Bitrix24/Tasks-managment/Mute-task.md index 5940c0fdf8..9526423bc7 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Mute-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Mute-task.md @@ -20,7 +20,10 @@ sidebar_position: 21
- +:::tip +Method at API documentation: [tasks.task.mute](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Pause-task.md b/docs/en/md/Bitrix24/Tasks-managment/Pause-task.md index 8ca96b043e..6693ec21ae 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Pause-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Pause-task.md @@ -20,7 +20,10 @@ sidebar_position: 12
- +:::tip +Method at API documentation: [tasks.task.pause](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_pause.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md b/docs/en/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md index 84a03872a8..5944e213a6 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md @@ -20,7 +20,10 @@ sidebar_position: 18
- +:::tip +Method at API documentation: [tasks.task.favorite.remove](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_remove.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Renew-task.md b/docs/en/md/Bitrix24/Tasks-managment/Renew-task.md index bb658edb2f..529c0cffe0 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Renew-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Renew-task.md @@ -20,7 +20,10 @@ sidebar_position: 10
- +:::tip +Method at API documentation: [tasks.task.renew](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_renew.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Start-task.md b/docs/en/md/Bitrix24/Tasks-managment/Start-task.md index 28e9bbbd7f..4352c88735 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Start-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Start-task.md @@ -20,7 +20,10 @@ sidebar_position: 13
- +:::tip +Method at API documentation: [tasks.task.start](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_start.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Start-watching-task.md b/docs/en/md/Bitrix24/Tasks-managment/Start-watching-task.md index cb4a7265d2..b23ee21df7 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Start-watching-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Start-watching-task.md @@ -20,7 +20,10 @@ sidebar_position: 14
- +:::tip +Method at API documentation: [tasks.task.startwatch](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_startwatch.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Stop-watching-task.md b/docs/en/md/Bitrix24/Tasks-managment/Stop-watching-task.md index 36b1080a45..fc41eb6d2c 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Stop-watching-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Stop-watching-task.md @@ -20,7 +20,10 @@ sidebar_position: 15
- +:::tip +Method at API documentation: [tasks.task.stopwatch](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_stopwatch.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Unmute-task.md b/docs/en/md/Bitrix24/Tasks-managment/Unmute-task.md index 8c5d76e1d8..a239154cb1 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Unmute-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Unmute-task.md @@ -20,7 +20,10 @@ sidebar_position: 22
- +:::tip +Method at API documentation: [tasks.task.unmute](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Tasks-managment/Update-task.md b/docs/en/md/Bitrix24/Tasks-managment/Update-task.md index 2d99a9dace..5753ae2daa 100644 --- a/docs/en/md/Bitrix24/Tasks-managment/Update-task.md +++ b/docs/en/md/Bitrix24/Tasks-managment/Update-task.md @@ -21,7 +21,10 @@ sidebar_position: 4
- +:::tip +Method at API documentation: [tasks.task.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_update.php) +::: +
```bsl title="Code example" diff --git a/docs/en/md/Bitrix24/Timekeeping/Add-task-time-accounting.md b/docs/en/md/Bitrix24/Timekeeping/Add-task-time-accounting.md new file mode 100644 index 0000000000..479b60ffc5 --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/Add-task-time-accounting.md @@ -0,0 +1,82 @@ +--- +sidebar_position: 1 +--- + +# Add task time accounting + Adds information about the user's time spent to the task + + + +`Function AddTaskTimeAccounting(Val URL, Val TaskID, Val Time, Val UserID = "", Val Text = "", Val SetupDate = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | String, Number | ID of task for time accounting | + | Time | --amount | String, Number | Time spent in seconds | + | UserID | --user | String, Number | ID of user for time accounting | + | Text | --text | String | Comment text | + | SetupDate | --date | String | Date the record was set | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.elapseditem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/add.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_ElapsedTaskID"]; + + Time = 3600; + + Result = OPI_Bitrix24.AddTaskTimeAccounting(URL, TaskID, Time); + + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Text = "Time spent on work"; + UserID = 10; + Time = 7200; + SetupDate = AddMonth(OPI_Tools.GetCurrentDate(), -1); + + Result = OPI_Bitrix24.AddTaskTimeAccounting(URL +, TaskID +, Time +, UserID +, Text +, SetupDate +, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 AddTaskTimeAccounting --url %url% --task %task% --amount %amount% --user %user% --text %text% --date %date% --token %token% + +``` + +```json title="Result" +{ + "result": 42, + "time": { + "start": 1720816582.16849, + "finish": 1720816582.22964, + "duration": 0.0611569881439209, + "processing": 0.0315871238708496, + "date_start": "2024-07-12T20:36:22+00:00", + "date_finish": "2024-07-12T20:36:22+00:00", + "operating_reset_at": 1720817182, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md b/docs/en/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md new file mode 100644 index 0000000000..a6fb41043b --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 2 +--- + +# Delete task time accounting + Deletes record of time accounting + + + +`Function DeleteTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | String, Number | ID of task for time accounting | + | RecordID | --record | String, Number | Time record ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.elapseditem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/delete.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_ElapsedTaskID"]; + RecordID = FunctionParameters["Bitrix24_HookTimeID"]; + + Result = OPI_Bitrix24.DeleteTaskTimeAccounting(URL, TaskID, RecordID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + RecordID = FunctionParameters["Bitrix24_TimeID"]; + + Result = OPI_Bitrix24.DeleteTaskTimeAccounting(URL, TaskID, RecordID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 DeleteTaskTimeAccounting --url %url% --task %task% --record %record% --token %token% + +``` + +```json title="Result" +{ + "result": null, + "time": { + "start": 1720816586.91135, + "finish": 1720816586.96255, + "duration": 0.0512039661407471, + "processing": 0.0238111019134522, + "date_start": "2024-07-12T20:36:26+00:00", + "date_finish": "2024-07-12T20:36:26+00:00", + "operating_reset_at": 1720817186, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md b/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md new file mode 100644 index 0000000000..19c026417f --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 3 +--- + +# Get task time accounting list + Get list of time accounting records for task + + + +`Function GetTaskTimeAccountingList(Val URL, Val TaskID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | String, Number | Task ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.elapseditem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/getlist.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_ElapsedTaskID"]; + + Result = OPI_Bitrix24.GetTaskTimeAccountingList(URL, TaskID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + + Result = OPI_Bitrix24.GetTaskTimeAccountingList(URL, TaskID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetTaskTimeAccountingList --url %url% --task %task% --token %token% + +``` + +```json title="Result" +{ + "result": [ + { + "ID": "40", + "TASK_ID": "638", + "USER_ID": "1", + "COMMENT_TEXT": "", + "SECONDS": "3600", + "MINUTES": "60", + "SOURCE": "2", + "CREATED_DATE": "2024-07-12T20:36:21+00:00", + "DATE_START": "2024-07-12T20:36:21+00:00", + "DATE_STOP": "2024-07-12T20:36:21+00:00" + }, + { + "ID": "42", + "TASK_ID": "638", + "USER_ID": "10", + "COMMENT_TEXT": "Time spent on work", + "SECONDS": "7200", + "MINUTES": "120", + "SOURCE": "2", + "CREATED_DATE": "2024-06-12T17:36:21+00:00", + "DATE_START": "2024-07-12T20:36:22+00:00", + "DATE_STOP": "2024-07-12T20:36:22+00:00" + } + ], + "total": 2, + "time": { + "start": 1720816584.48831, + "finish": 1720816584.5364, + "duration": 0.0480880737304688, + "processing": 0.0219790935516357, + "date_start": "2024-07-12T20:36:24+00:00", + "date_finish": "2024-07-12T20:36:24+00:00", + "operating_reset_at": 1720817184, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting.md b/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting.md new file mode 100644 index 0000000000..b72e0b8644 --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/Get-task-time-accounting.md @@ -0,0 +1,78 @@ +--- +sidebar_position: 4 +--- + +# Get task time accounting + Get time accounting record data + + + +`Function GetTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | String, Number | Task ID | + | RecordID | --record | String, Number | Time record ID | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.elapseditem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/get.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_ElapsedTaskID"]; + RecordID = FunctionParameters["Bitrix24_HookTimeID"]; + + Result = OPI_Bitrix24.GetTaskTimeAccounting(URL, TaskID, RecordID); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + RecordID = FunctionParameters["Bitrix24_TimeID"]; + + Result = OPI_Bitrix24.GetTaskTimeAccounting(URL, TaskID, RecordID, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 GetTaskTimeAccounting --url %url% --task %task% --record %record% --token %token% + +``` + +```json title="Result" +{ + "result": { + "ID": "42", + "TASK_ID": "638", + "USER_ID": "10", + "COMMENT_TEXT": "Time spent on work", + "SECONDS": "7200", + "MINUTES": "120", + "SOURCE": "2", + "CREATED_DATE": "2024-06-12T17:36:21+00:00", + "DATE_START": "2024-07-12T20:36:22+00:00", + "DATE_STOP": "2024-07-12T20:36:22+00:00" + }, + "time": { + "start": 1720816583.31997, + "finish": 1720816583.36716, + "duration": 0.0471861362457275, + "processing": 0.0187540054321289, + "date_start": "2024-07-12T20:36:23+00:00", + "date_finish": "2024-07-12T20:36:23+00:00", + "operating_reset_at": 1720817183, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Timekeeping/Update-task-time-accounting.md b/docs/en/md/Bitrix24/Timekeeping/Update-task-time-accounting.md new file mode 100644 index 0000000000..5fd19ed27d --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/Update-task-time-accounting.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 5 +--- + +# Update task time accounting + Update time accounting record data + + + +`Function UpdateTaskTimeAccounting(Val URL, Val TaskID, Val RecordID, Val Time, Val Text = "", Val SetupDate = "", Val Token = "") Export` + + | Parameter | CLI option | Type | Destination | + |-|-|-|-| + | URL | --url | String | URL of webhook or a Bitrix24 domain, when token used | + | TaskID | --task | String, Number | Task ID | + | RecordID | --record | String, Number | Time record ID | + | Time | --amount | String, Number | Time spent in seconds | + | Text | --text | String | Comment text | + | SetupDate | --date | String | Date the record was set | + | Token | --token | String | Access token, when not-webhook method used | + + + Returns: Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API + +
+ +:::tip +Method at API documentation: [task.elapseditem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/update.php) +::: +
+ + +```bsl title="Code example" + URL = FunctionParameters["Bitrix24_URL"]; + TaskID = FunctionParameters["Bitrix24_ElapsedTaskID"]; + RecordID = FunctionParameters["Bitrix24_HookTimeID"]; + + Text = "The text I forgot last time"; + Time = 4800; + + Result = OPI_Bitrix24.UpdateTaskTimeAccounting(URL, TaskID, RecordID, Time, Text); + + + URL = FunctionParameters["Bitrix24_Domain"]; + Token = FunctionParameters["Bitrix24_Token"]; + RecordID = FunctionParameters["Bitrix24_TimeID"]; + + Text = "New time record"; + Time = 4800; + SetupDate = AddMonth(OPI_Tools.GetCurrentDate(), -1); + + Result = OPI_Bitrix24.UpdateTaskTimeAccounting(URL +, TaskID +, RecordID +, Time +, Text +, SetupDate +, Token); +``` + + + +```sh title="CLI command example" + + oint bitrix24 UpdateTaskTimeAccounting --url %url% --task %task% --record %record% --amount %amount% --text %text% --date %date% --token %token% + +``` + +```json title="Result" +{ + "result": null, + "time": { + "start": 1720816585.70407, + "finish": 1720816585.77088, + "duration": 0.0668020248413086, + "processing": 0.0276288986206055, + "date_start": "2024-07-12T20:36:25+00:00", + "date_finish": "2024-07-12T20:36:25+00:00", + "operating_reset_at": 1720817185, + "operating": 0 + } +} +``` diff --git a/docs/en/md/Bitrix24/Timekeeping/_category_.json b/docs/en/md/Bitrix24/Timekeeping/_category_.json new file mode 100644 index 0000000000..3486053d6e --- /dev/null +++ b/docs/en/md/Bitrix24/Timekeeping/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Timekeeping", +"position": "8" +} \ No newline at end of file diff --git a/docs/ru/cli/Bitrix24/ВключитьУведомленияЧата.txt b/docs/ru/cli/Bitrix24/ВключитьУведомленияЧата.txt new file mode 100644 index 0000000000..b6e5195afe --- /dev/null +++ b/docs/ru/cli/Bitrix24/ВключитьУведомленияЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ВключитьУведомленияЧата --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..944dcd12db --- /dev/null +++ b/docs/ru/cli/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ВозобновитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% diff --git a/docs/ru/cli/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..02e0a5bb01 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ВыполнитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% diff --git a/docs/ru/cli/Bitrix24/ДобавитьПользователейВЧат.txt b/docs/ru/cli/Bitrix24/ДобавитьПользователейВЧат.txt new file mode 100644 index 0000000000..d0fd3f4ae4 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ДобавитьПользователейВЧат.txt @@ -0,0 +1 @@ +oint bitrix24 ДобавитьПользователейВЧат --url %url% --chat %chat% --users %users% --hide %hide% --token %token% diff --git a/docs/ru/cli/Bitrix24/ДобавитьТрудозатратыЗадачи.txt b/docs/ru/cli/Bitrix24/ДобавитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..3db0d78637 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ДобавитьТрудозатратыЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ДобавитьТрудозатратыЗадачи --url %url% --task %task% --amount %amount% --user %user% --text %text% --date %date% --token %token% diff --git a/docs/ru/cli/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..227684a4f9 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ДобавитьЭлементЧеклистаЗадачи --url %url% --task %task% --text %text% --complete %complete% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьЗаголовокЧата.txt b/docs/ru/cli/Bitrix24/ИзменитьЗаголовокЧата.txt new file mode 100644 index 0000000000..7e3bb5a7ee --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьЗаголовокЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьЗаголовокЧата --url %url% --chat %chat% --title %title% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьКартинкуЧата.txt b/docs/ru/cli/Bitrix24/ИзменитьКартинкуЧата.txt new file mode 100644 index 0000000000..26f46602e1 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьКартинкуЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьКартинкуЧата --url %url% --chat %chat% --picture %picture% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьСообщение.txt b/docs/ru/cli/Bitrix24/ИзменитьСообщение.txt new file mode 100644 index 0000000000..9f45e1eace --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьСообщение.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьСообщение --url %url% --message %message% --text %text% --blocks %blocks% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьСтадиюКанбана.txt b/docs/ru/cli/Bitrix24/ИзменитьСтадиюКанбана.txt new file mode 100644 index 0000000000..93a30798c2 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьСтадиюКанбана.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьСтадиюКанбана --url %url% --title %title% --stage %stage% --color %color% --prevstage %prevstage% --admin %admin% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьТрудозатратыЗадачи.txt b/docs/ru/cli/Bitrix24/ИзменитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..773623a91e --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьТрудозатратыЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --amount %amount% --text %text% --date %date% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьЦветЧата.txt b/docs/ru/cli/Bitrix24/ИзменитьЦветЧата.txt new file mode 100644 index 0000000000..b3bedc88a9 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьЦветЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьЦветЧата --url %url% --chat %chat% --color %color% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..4aec62c7d8 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ИзменитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --text %text% --token %token% diff --git a/docs/ru/cli/Bitrix24/ИсключитьПользователяИзЧата.txt b/docs/ru/cli/Bitrix24/ИсключитьПользователяИзЧата.txt new file mode 100644 index 0000000000..55d8af06ae --- /dev/null +++ b/docs/ru/cli/Bitrix24/ИсключитьПользователяИзЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ИсключитьПользователяИзЧата --url %url% --chat %chat% --user %user% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтключитьУведомленияЧата.txt b/docs/ru/cli/Bitrix24/ОтключитьУведомленияЧата.txt new file mode 100644 index 0000000000..32304de0c5 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтключитьУведомленияЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ОтключитьУведомленияЧата --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt b/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt new file mode 100644 index 0000000000..e72853c760 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt @@ -0,0 +1 @@ +oint bitrix24 ОтметитьСообщениеКакНепрочитанное --url %url% --chat %chat% --message %message% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt b/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt new file mode 100644 index 0000000000..fb330c6d12 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt @@ -0,0 +1 @@ +oint bitrix24 ОтметитьСообщениеКакПрочитанное --url %url% --chat %chat% --message %message% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтправитьСообщение.txt b/docs/ru/cli/Bitrix24/ОтправитьСообщение.txt new file mode 100644 index 0000000000..3c001e58dd --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтправитьСообщение.txt @@ -0,0 +1 @@ +oint bitrix24 ОтправитьСообщение --url %url% --chat %chat% --text %text% --blocks %blocks% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтправитьУведомлениеОВводе.txt b/docs/ru/cli/Bitrix24/ОтправитьУведомлениеОВводе.txt new file mode 100644 index 0000000000..77b4e0c398 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтправитьУведомлениеОВводе.txt @@ -0,0 +1 @@ +oint bitrix24 ОтправитьУведомлениеОВводе --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ОтправитьФайл.txt b/docs/ru/cli/Bitrix24/ОтправитьФайл.txt new file mode 100644 index 0000000000..6c4289564d --- /dev/null +++ b/docs/ru/cli/Bitrix24/ОтправитьФайл.txt @@ -0,0 +1 @@ +oint bitrix24 ОтправитьФайл --url %url% --chat %chat% --fileid %fileid% --description %description% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПокинутьЧат.txt b/docs/ru/cli/Bitrix24/ПокинутьЧат.txt new file mode 100644 index 0000000000..e8363914a7 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПокинутьЧат.txt @@ -0,0 +1 @@ +oint bitrix24 ПокинутьЧат --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьБлокКартинки.txt b/docs/ru/cli/Bitrix24/ПолучитьБлокКартинки.txt new file mode 100644 index 0000000000..00d94346b5 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьБлокКартинки.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьБлокКартинки --title %title% --url %url% diff --git a/docs/ru/cli/Bitrix24/ПолучитьБлокФайла.txt b/docs/ru/cli/Bitrix24/ПолучитьБлокФайла.txt new file mode 100644 index 0000000000..64dca11356 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьБлокФайла.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьБлокФайла --title %title% --url %url% diff --git a/docs/ru/cli/Bitrix24/ПолучитьДиалог.txt b/docs/ru/cli/Bitrix24/ПолучитьДиалог.txt new file mode 100644 index 0000000000..443935b593 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьДиалог.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьДиалог --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьКаталогФайловЧата.txt b/docs/ru/cli/Bitrix24/ПолучитьКаталогФайловЧата.txt new file mode 100644 index 0000000000..f179373bc2 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьКаталогФайловЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьКаталогФайловЧата --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьПланЗадачНаДень.txt b/docs/ru/cli/Bitrix24/ПолучитьПланЗадачНаДень.txt new file mode 100644 index 0000000000..d76eeb8cbe --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьПланЗадачНаДень.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьПланЗадачНаДень --url %url% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейДиалога.txt b/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейДиалога.txt new file mode 100644 index 0000000000..055b3826a5 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейДиалога.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьСписокПользователейДиалога --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейЧата.txt b/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейЧата.txt new file mode 100644 index 0000000000..1f0a49d3fc --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьСписокПользователейЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьСписокПользователейЧата --url %url% --chat %chat% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьСписокСообщенийЧата.txt b/docs/ru/cli/Bitrix24/ПолучитьСписокСообщенийЧата.txt new file mode 100644 index 0000000000..38935e3632 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьСписокСообщенийЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьСписокСообщенийЧата --url %url% --chat %chat% --last %last% --first %first% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt b/docs/ru/cli/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt new file mode 100644 index 0000000000..efe25df801 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьСписокТрудозатратЗадачи --url %url% --task %task% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьСтруктуруЧата.txt b/docs/ru/cli/Bitrix24/ПолучитьСтруктуруЧата.txt new file mode 100644 index 0000000000..de319a83b2 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьСтруктуруЧата.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьСтруктуруЧата --empty %empty% diff --git a/docs/ru/cli/Bitrix24/ПолучитьТрудозатратыЗадачи.txt b/docs/ru/cli/Bitrix24/ПолучитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..ff8dbe8951 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьТрудозатратыЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьЧеклистЗадачи.txt b/docs/ru/cli/Bitrix24/ПолучитьЧеклистЗадачи.txt new file mode 100644 index 0000000000..2b00d16779 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьЧеклистЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьЧеклистЗадачи --url %url% --task %task% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..a5031a52be --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 ПолучитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% diff --git a/docs/ru/cli/Bitrix24/ПрочитатьВсе.txt b/docs/ru/cli/Bitrix24/ПрочитатьВсе.txt new file mode 100644 index 0000000000..d509a59ad5 --- /dev/null +++ b/docs/ru/cli/Bitrix24/ПрочитатьВсе.txt @@ -0,0 +1 @@ +oint bitrix24 ПрочитатьВсе --url %url% --token %token% diff --git a/docs/ru/cli/Bitrix24/СменитьВладельцаЧата.txt b/docs/ru/cli/Bitrix24/СменитьВладельцаЧата.txt new file mode 100644 index 0000000000..28664e3265 --- /dev/null +++ b/docs/ru/cli/Bitrix24/СменитьВладельцаЧата.txt @@ -0,0 +1 @@ +oint bitrix24 СменитьВладельцаЧата --url %url% --chat %chat% --user %user% --token %token% diff --git a/docs/ru/cli/Bitrix24/СоздатьЧат.txt b/docs/ru/cli/Bitrix24/СоздатьЧат.txt new file mode 100644 index 0000000000..37cfdffd20 --- /dev/null +++ b/docs/ru/cli/Bitrix24/СоздатьЧат.txt @@ -0,0 +1 @@ +oint bitrix24 СоздатьЧат --url %url% --fields %fields% --token %token% diff --git a/docs/ru/cli/Bitrix24/УдалитьСообщение.txt b/docs/ru/cli/Bitrix24/УдалитьСообщение.txt new file mode 100644 index 0000000000..54f823ff78 --- /dev/null +++ b/docs/ru/cli/Bitrix24/УдалитьСообщение.txt @@ -0,0 +1 @@ +oint bitrix24 УдалитьСообщение --url %url% --message %message% --token %token% diff --git a/docs/ru/cli/Bitrix24/УдалитьТрудозатратыЗадачи.txt b/docs/ru/cli/Bitrix24/УдалитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..d27047904b --- /dev/null +++ b/docs/ru/cli/Bitrix24/УдалитьТрудозатратыЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 УдалитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --token %token% diff --git a/docs/ru/cli/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt b/docs/ru/cli/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..56228b6455 --- /dev/null +++ b/docs/ru/cli/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1 @@ +oint bitrix24 УдалитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% diff --git a/docs/ru/cli/Bitrix24/УстановитьРеакциюНаСообщение.txt b/docs/ru/cli/Bitrix24/УстановитьРеакциюНаСообщение.txt new file mode 100644 index 0000000000..b87d1ed704 --- /dev/null +++ b/docs/ru/cli/Bitrix24/УстановитьРеакциюНаСообщение.txt @@ -0,0 +1 @@ +oint bitrix24 УстановитьРеакциюНаСообщение --url %url% --message %message% --token %token% diff --git a/docs/ru/examples/Bitrix24/ВключитьУведомленияЧата.txt b/docs/ru/examples/Bitrix24/ВключитьУведомленияЧата.txt new file mode 100644 index 0000000000..59ce42ee68 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ВключитьУведомленияЧата.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..fedc3dbd38 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ВозобновитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,14 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); diff --git a/docs/ru/examples/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..17ddb94e1d --- /dev/null +++ b/docs/ru/examples/Bitrix24/ВыполнитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,14 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); diff --git a/docs/ru/examples/Bitrix24/ДобавитьПользователейВЧат.txt b/docs/ru/examples/Bitrix24/ДобавитьПользователейВЧат.txt new file mode 100644 index 0000000000..b12b56d542 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ДобавитьПользователейВЧат.txt @@ -0,0 +1,16 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователей = Новый Массив; + IDПользователей.Добавить(10); + IDПользователей.Добавить(12); + + Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователей); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователя, Истина, Токен); diff --git a/docs/ru/examples/Bitrix24/ДобавитьТрудозатратыЗадачи.txt b/docs/ru/examples/Bitrix24/ДобавитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..56112a2779 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ДобавитьТрудозатратыЗадачи.txt @@ -0,0 +1,24 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + + Время = 3600; + + Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL, IDЗадачи, Время); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Текст = "Трудозатраты по обработке"; + IDПользователя = 10; + Время = 7200; + ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1); + + Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL + , IDЗадачи + , Время + , IDПользователя + , Текст + , ДатаУстановки + , Токен); diff --git a/docs/ru/examples/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..8b7590108c --- /dev/null +++ b/docs/ru/examples/Bitrix24/ДобавитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,15 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + + Текст = "Пункт чек-листа"; + + Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, Истина); + + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + + Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, , Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьЗаголовокЧата.txt b/docs/ru/examples/Bitrix24/ИзменитьЗаголовокЧата.txt new file mode 100644 index 0000000000..ce89f8fdc4 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьЗаголовокЧата.txt @@ -0,0 +1,15 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Заголовок = "Новый заголовок чата"; + + Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Заголовок = "Другой заголовок чата"; + + Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок, Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьКартинкуЧата.txt b/docs/ru/examples/Bitrix24/ИзменитьКартинкуЧата.txt new file mode 100644 index 0000000000..37b29e0087 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьКартинкуЧата.txt @@ -0,0 +1,13 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Картинка = ПараметрыФункции["Picture2"]; + + Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка, Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьСообщение.txt b/docs/ru/examples/Bitrix24/ИзменитьСообщение.txt new file mode 100644 index 0000000000..d05666b008 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьСообщение.txt @@ -0,0 +1,20 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Текст = "Новый текст сообщения"; + + Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Вложения = Новый Массив; + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка)); + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx", Файл)); + + Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст, Вложения, Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьСтадиюКанбана.txt b/docs/ru/examples/Bitrix24/ИзменитьСтадиюКанбана.txt new file mode 100644 index 0000000000..3615352beb --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьСтадиюКанбана.txt @@ -0,0 +1,17 @@ + Наименование = "Новое имя стадии стадии"; + Цвет = "000000"; + IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"]; + + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет); + + + Наименование = "Новое имя стадии стадии 2"; + Цвет = "000000"; + IDСтадии = ПараметрыФункции["Bitrix24_StageID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет, 6, Истина, Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьТрудозатратыЗадачи.txt b/docs/ru/examples/Bitrix24/ИзменитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..b4a1b30d71 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьТрудозатратыЗадачи.txt @@ -0,0 +1,25 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Текст = "Забытый в прошлый раз текст"; + Время = 4800; + + Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Время, Текст); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Текст = "Новые трудозатраты по обработке"; + Время = 4800; + ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1); + + Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL + , IDЗадачи + , IDЗаписи + , Время + , Текст + , ДатаУстановки + , Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьЦветЧата.txt b/docs/ru/examples/Bitrix24/ИзменитьЦветЧата.txt new file mode 100644 index 0000000000..16eefe138c --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьЦветЧата.txt @@ -0,0 +1,15 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Цвет = "AZURE"; + + Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Цвет = "PURPLE"; + + Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет, Токен); diff --git a/docs/ru/examples/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..5cf9770351 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИзменитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,16 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Текст = "Новый текст пункта чек-листа"; + + Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст, Токен); diff --git a/docs/ru/examples/Bitrix24/ИсключитьПользователяИзЧата.txt b/docs/ru/examples/Bitrix24/ИсключитьПользователяИзЧата.txt new file mode 100644 index 0000000000..4148c734fc --- /dev/null +++ b/docs/ru/examples/Bitrix24/ИсключитьПользователяИзЧата.txt @@ -0,0 +1,13 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователя = 10; + + Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя, Токен); diff --git a/docs/ru/examples/Bitrix24/ОтключитьУведомленияЧата.txt b/docs/ru/examples/Bitrix24/ОтключитьУведомленияЧата.txt new file mode 100644 index 0000000000..0fc949da16 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтключитьУведомленияЧата.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt b/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt new file mode 100644 index 0000000000..b58339acd7 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакНепрочитанное.txt @@ -0,0 +1,13 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, IDЧата, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, IDПользователя, IDСообщения, Токен); diff --git a/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt b/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt new file mode 100644 index 0000000000..df3bb04100 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтметитьСообщениеКакПрочитанное.txt @@ -0,0 +1,13 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDЧата, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDПользователя, IDСообщения,Токен); diff --git a/docs/ru/examples/Bitrix24/ОтправитьСообщение.txt b/docs/ru/examples/Bitrix24/ОтправитьСообщение.txt new file mode 100644 index 0000000000..0eb3e9395e --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтправитьСообщение.txt @@ -0,0 +1,19 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + Текст = "Текст сообщения"; + Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Вложения = Новый Массив; + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка)); + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx", Файл)); + + Результат = OPI_Bitrix24.ОтправитьСообщение(URL, IDЧата, Текст, Вложения); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ОтправитьСообщение(URL, IDПользователя, Текст, , Токен); diff --git a/docs/ru/examples/Bitrix24/ОтправитьУведомлениеОВводе.txt b/docs/ru/examples/Bitrix24/ОтправитьУведомлениеОВводе.txt new file mode 100644 index 0000000000..c4eff62e34 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтправитьУведомлениеОВводе.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, IDПользователя, Токен); diff --git a/docs/ru/examples/Bitrix24/ОтправитьФайл.txt b/docs/ru/examples/Bitrix24/ОтправитьФайл.txt new file mode 100644 index 0000000000..bd0b56a7dc --- /dev/null +++ b/docs/ru/examples/Bitrix24/ОтправитьФайл.txt @@ -0,0 +1,25 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу + Описание = "Очень важный файл"; + + Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата); + IDКаталога = Каталог["result"]["ID"]; + + ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога); + IDФайла = ЗагруженныйФайл["result"]["ID"]; + + Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен); + IDКаталога = Каталог["result"]["ID"]; + + ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога, Токен); + IDФайла = ЗагруженныйФайл["result"]["ID"]; + + Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание, Токен); diff --git a/docs/ru/examples/Bitrix24/ПокинутьЧат.txt b/docs/ru/examples/Bitrix24/ПокинутьЧат.txt new file mode 100644 index 0000000000..32be34fdcd --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПокинутьЧат.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьДиалог.txt b/docs/ru/examples/Bitrix24/ПолучитьДиалог.txt new file mode 100644 index 0000000000..bd084b0082 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьДиалог.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьДиалог(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьДиалог(URL, IDПользователя, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьКаталогФайловЧата.txt b/docs/ru/examples/Bitrix24/ПолучитьКаталогФайловЧата.txt new file mode 100644 index 0000000000..42d46236ac --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьКаталогФайловЧата.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьПланЗадачНаДень.txt b/docs/ru/examples/Bitrix24/ПолучитьПланЗадачНаДень.txt new file mode 100644 index 0000000000..0cce8a9104 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьПланЗадачНаДень.txt @@ -0,0 +1,9 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейДиалога.txt b/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейДиалога.txt new file mode 100644 index 0000000000..59fa685fd9 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейДиалога.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, IDПользователя, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейЧата.txt b/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейЧата.txt new file mode 100644 index 0000000000..66b8347a7c --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьСписокПользователейЧата.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьСписокСообщенийЧата.txt b/docs/ru/examples/Bitrix24/ПолучитьСписокСообщенийЧата.txt new file mode 100644 index 0000000000..402101f25d --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьСписокСообщенийЧата.txt @@ -0,0 +1,12 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat4"; + + Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDЧата); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDПользователя, , 0,Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt b/docs/ru/examples/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt new file mode 100644 index 0000000000..0b4a6cd603 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьСписокТрудозатратЗадачи.txt @@ -0,0 +1,10 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьТрудозатратыЗадачи.txt b/docs/ru/examples/Bitrix24/ПолучитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..bd81a76651 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьТрудозатратыЗадачи.txt @@ -0,0 +1,12 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьЧеклистЗадачи.txt b/docs/ru/examples/Bitrix24/ПолучитьЧеклистЗадачи.txt new file mode 100644 index 0000000000..e051d8871c --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьЧеклистЗадачи.txt @@ -0,0 +1,12 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + + Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + + Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи, Токен); diff --git a/docs/ru/examples/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..a88187d2c1 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПолучитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,14 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); diff --git a/docs/ru/examples/Bitrix24/ПрочитатьВсе.txt b/docs/ru/examples/Bitrix24/ПрочитатьВсе.txt new file mode 100644 index 0000000000..ae9d9bb840 --- /dev/null +++ b/docs/ru/examples/Bitrix24/ПрочитатьВсе.txt @@ -0,0 +1,9 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ПрочитатьВсе(URL); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПрочитатьВсе(URL, Токен); diff --git a/docs/ru/examples/Bitrix24/СменитьВладельцаЧата.txt b/docs/ru/examples/Bitrix24/СменитьВладельцаЧата.txt new file mode 100644 index 0000000000..b36e2e024c --- /dev/null +++ b/docs/ru/examples/Bitrix24/СменитьВладельцаЧата.txt @@ -0,0 +1,13 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователя = 10; + + Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя, Токен); diff --git a/docs/ru/examples/Bitrix24/СоздатьЧат.txt b/docs/ru/examples/Bitrix24/СоздатьЧат.txt new file mode 100644 index 0000000000..5e7e0edfea --- /dev/null +++ b/docs/ru/examples/Bitrix24/СоздатьЧат.txt @@ -0,0 +1,33 @@ + Картинка = ПараметрыФункции["Picture"]; + OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); + + B64Картинка = ПолучитьBase64СтрокуИзДвоичныхДанных(Картинка); + + МассивУчастников = Новый Массив; + МассивУчастников.Добавить(10); + МассивУчастников.Добавить(1); + + СтруктураЧата = Новый Структура; + СтруктураЧата.Вставить("TYPE" , "OPEN"); + СтруктураЧата.Вставить("TITLE" , "Новый чат"); + СтруктураЧата.Вставить("DESCRIPTION", "Это новый чат"); + СтруктураЧата.Вставить("COLOR" , "GREEN"); + СтруктураЧата.Вставить("MESSAGE" , "Добро пожаловать в новый чат"); + СтруктураЧата.Вставить("USERS" , МассивУчастников); + СтруктураЧата.Вставить("AVATAR" , B64Картинка); + СтруктураЧата.Вставить("OWNER_ID" , 1); + + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + СтруктураЧата = Новый Структура; + СтруктураЧата.Вставить("TYPE" , "CHAT"); + СтруктураЧата.Вставить("TITLE" , "Закрытый чат"); + СтруктураЧата.Вставить("USERS" , МассивУчастников); + + Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата, Токен); diff --git a/docs/ru/examples/Bitrix24/УдалитьСообщение.txt b/docs/ru/examples/Bitrix24/УдалитьСообщение.txt new file mode 100644 index 0000000000..429137d953 --- /dev/null +++ b/docs/ru/examples/Bitrix24/УдалитьСообщение.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения, Токен); diff --git a/docs/ru/examples/Bitrix24/УдалитьТрудозатратыЗадачи.txt b/docs/ru/examples/Bitrix24/УдалитьТрудозатратыЗадачи.txt new file mode 100644 index 0000000000..e239721104 --- /dev/null +++ b/docs/ru/examples/Bitrix24/УдалитьТрудозатратыЗадачи.txt @@ -0,0 +1,12 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен); diff --git a/docs/ru/examples/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt b/docs/ru/examples/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt new file mode 100644 index 0000000000..0396f2f85e --- /dev/null +++ b/docs/ru/examples/Bitrix24/УдалитьЭлементЧеклистаЗадачи.txt @@ -0,0 +1,14 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); diff --git a/docs/ru/examples/Bitrix24/УстановитьРеакциюНаСообщение.txt b/docs/ru/examples/Bitrix24/УстановитьРеакциюНаСообщение.txt new file mode 100644 index 0000000000..feb7b64f20 --- /dev/null +++ b/docs/ru/examples/Bitrix24/УстановитьРеакциюНаСообщение.txt @@ -0,0 +1,11 @@ + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения, Токен); diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Create-subfolder.md b/docs/ru/md/Bitrix24/Catalogs-managment/Create-subfolder.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Create-subfolder.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Create-subfolder.md index 65a4172e1f..265184a593 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Create-subfolder.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Create-subfolder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 9 +sidebar_position: 2 --- # Создать подкаталог @@ -21,7 +21,10 @@ sidebar_position: 9
- +:::tip +Метод в документации API: [disk.folder.addsubfolder](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_addsubfolder.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-folder.md b/docs/ru/md/Bitrix24/Catalogs-managment/Delete-folder.md similarity index 91% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-folder.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Delete-folder.md index 7630649682..2655391d4e 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-folder.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Delete-folder.md @@ -1,62 +1,65 @@ ---- -sidebar_position: 13 ---- - -# Удалить каталог - Удаляет каталог с подкаталогами - - - -`Функция УдалитьКаталог(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDКаталога | --folderid | Строка, Число | Идентификатор удаляемого каталога | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - IDКаталога = "480"; - - Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога); - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - IDКаталога = "482"; - - Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 УдалитьКаталог --url "b24-ar17wx.bitrix24.by" --folderid "482" --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": true, - "time": { - "start": 1719047257.50616, - "finish": 1719047257.55445, - "duration": 0.048285961151123, - "processing": 0.0174880027770996, - "date_start": "2024-06-22T09:07:37+00:00", - "date_finish": "2024-06-22T09:07:37+00:00", - "operating_reset_at": 1719047857, - "operating": 0 - } -} -``` +--- +sidebar_position: 5 +--- + +# Удалить каталог + Удаляет каталог с подкаталогами + + + +`Функция УдалитьКаталог(Знач URL, Знач IDКаталога, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDКаталога | --folderid | Строка, Число | Идентификатор удаляемого каталога | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.folder.deletetree](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_deletetree.php) +::: +
+ + +```bsl title="Пример кода" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + IDКаталога = "480"; + + Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога); + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + IDКаталога = "482"; + + Результат = OPI_Bitrix24.УдалитьКаталог(URL, IDКаталога, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УдалитьКаталог --url "b24-ar17wx.bitrix24.by" --folderid "482" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1719047257.50616, + "finish": 1719047257.55445, + "duration": 0.048285961151123, + "processing": 0.0174880027770996, + "date_start": "2024-06-22T09:07:37+00:00", + "date_finish": "2024-06-22T09:07:37+00:00", + "operating_reset_at": 1719047857, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-external-link.md b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md similarity index 91% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-external-link.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md index 01357da1cb..437dd8ce9d 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-external-link.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-external-link.md @@ -1,5 +1,5 @@ --- -sidebar_position: 14 +sidebar_position: 6 --- # Получить внешнюю ссылку каталога @@ -20,7 +20,10 @@ sidebar_position: 14
- +:::tip +Метод в документации API: [disk.folder.getExternalLink](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getexternallink.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-filter-structure.md b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md similarity index 91% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-filter-structure.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md index 2a53807803..03f74b60a2 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-filter-structure.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-filter-structure.md @@ -1,5 +1,5 @@ --- -sidebar_position: 27 +sidebar_position: 11 --- # Получить структуру фильтра каталога @@ -20,7 +20,10 @@ sidebar_position: 27
- +:::tip +Метод в документации API: [disk.folder.getfields](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getfields.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-information.md b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-information.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-information.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-information.md index e7a1641235..616e5bd2fb 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-information.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-information.md @@ -1,5 +1,5 @@ --- -sidebar_position: 8 +sidebar_position: 1 --- # Получить информацию о каталоге @@ -20,7 +20,10 @@ sidebar_position: 8
- +:::tip +Метод в документации API: [disk.folder.get](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_get.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-items.md b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-items.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-items.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-items.md index ec3fe825e9..5c0f231a1a 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-folder-items.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Get-folder-items.md @@ -1,5 +1,5 @@ --- -sidebar_position: 15 +sidebar_position: 7 --- # Получить дочерние элементы каталога @@ -21,7 +21,10 @@ sidebar_position: 15
- +:::tip +Метод в документации API: [disk.folder.getchildren](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_getchildren.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Make-folder-copy.md b/docs/ru/md/Bitrix24/Catalogs-managment/Make-folder-copy.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Make-folder-copy.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Make-folder-copy.md index 4d4120f42d..ddbb622a9a 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Make-folder-copy.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Make-folder-copy.md @@ -1,5 +1,5 @@ --- -sidebar_position: 10 +sidebar_position: 3 --- # Скопировать каталог @@ -21,7 +21,10 @@ sidebar_position: 10
- +:::tip +Метод в документации API: [disk.folder.copyto](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_copyto.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-folder-as-deleted.md b/docs/ru/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-folder-as-deleted.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md index 969e4bf9ab..c175ebf3ed 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-folder-as-deleted.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Mark-folder-as-deleted.md @@ -1,5 +1,5 @@ --- -sidebar_position: 16 +sidebar_position: 8 --- # Поместить каталог в корзину @@ -20,7 +20,10 @@ sidebar_position: 16
- +:::tip +Метод в документации API: [disk.folder.markdeleted](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_markdeleted.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Move-folder.md b/docs/ru/md/Bitrix24/Catalogs-managment/Move-folder.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Move-folder.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Move-folder.md index 89f7dd9d0e..0c6375ea14 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Move-folder.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Move-folder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 11 +sidebar_position: 4 --- # Переместить каталог @@ -21,7 +21,10 @@ sidebar_position: 11
- +:::tip +Метод в документации API: [disk.folder.moveto](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_moveto.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-folder.md b/docs/ru/md/Bitrix24/Catalogs-managment/Rename-folder.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-folder.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Rename-folder.md index 51efb8e939..ba4c7cf4a6 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-folder.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Rename-folder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 18 +sidebar_position: 10 --- # Переименовать каталог @@ -21,7 +21,10 @@ sidebar_position: 18
- +:::tip +Метод в документации API: [disk.folder.rename](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_rename.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-folder.md b/docs/ru/md/Bitrix24/Catalogs-managment/Restore-folder.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-folder.md rename to docs/ru/md/Bitrix24/Catalogs-managment/Restore-folder.md index f5d8fb4a9f..198dc8acea 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-folder.md +++ b/docs/ru/md/Bitrix24/Catalogs-managment/Restore-folder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 17 +sidebar_position: 9 --- # Восстановить каталог @@ -20,7 +20,10 @@ sidebar_position: 17
- +:::tip +Метод в документации API: [disk.folder.restore](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_restore.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Catalogs-managment/_category_.json b/docs/ru/md/Bitrix24/Catalogs-managment/_category_.json new file mode 100644 index 0000000000..108d856a3e --- /dev/null +++ b/docs/ru/md/Bitrix24/Catalogs-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с каталогами", +"position": "10" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md new file mode 100644 index 0000000000..5baf211e94 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Add-users-to-chat.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 4 +--- + +# Добавить пользователей в чат + Добавляет пользователей в чат по массиву ID + + + +`Функция ДобавитьПользователейВЧат(Знач URL, Знач IDЧата, Знач IDПользователей, Знач СкрытьИсторию = Ложь, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | IDПользователей | --users | Массив из Строка, Число | ID пользователей для добавления | + | СкрытьИсторию | --hide | Булево | Скрыть старые сообщения от новых пользователей | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.user.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12097) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователей = Новый Массив; + IDПользователей.Добавить(10); + IDПользователей.Добавить(12); + + Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователей); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ДобавитьПользователейВЧат(URL, IDЧата, IDПользователя, Истина, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ДобавитьПользователейВЧат --url %url% --chat %chat% --users %users% --hide %hide% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865686.43672, + "finish": 1720865686.52541, + "duration": 0.0886859893798828, + "processing": 0.0491659641265869, + "date_start": "2024-07-13T10:14:46+00:00", + "date_finish": "2024-07-13T10:14:46+00:00", + "operating_reset_at": 1720866286, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md new file mode 100644 index 0000000000..52974d8241 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-color.md @@ -0,0 +1,74 @@ +--- +sidebar_position: 7 +--- + +# Изменить цвет чата + Изменяет цвет чата для мобильного приложения + + + +`Функция ИзменитьЦветЧата(Знач URL, Знач IDЧата, Знач Цвет, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Цвет | --color | Строка | Новый цвет чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.updateTitle](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105) + + Доступные цвета: RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN, AZURE, KHAKI, SAND, + + MARENGO, GRAY, GRAPHITE +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Цвет = "AZURE"; + + Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Цвет = "PURPLE"; + + Результат = OPI_Bitrix24.ИзменитьЦветЧата(URL, IDЧата, Цвет, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьЦветЧата --url %url% --chat %chat% --color %color% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865688.95778, + "finish": 1720865689.02493, + "duration": 0.0671589374542236, + "processing": 0.0428512096405029, + "date_start": "2024-07-13T10:14:48+00:00", + "date_finish": "2024-07-13T10:14:49+00:00", + "operating_reset_at": 1720866288, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md new file mode 100644 index 0000000000..5af55f5ae7 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-owner.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 9 +--- + +# Сменить владельца чата + Изменяет пользователя владельца чата + + + +`Функция СменитьВладельцаЧата(Знач URL, Знач IDЧата, Знач IDПользователя, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | IDПользователя | --user | Строка, Число | ID пользователя | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.setOwner](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12111) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователя = 10; + + Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.СменитьВладельцаЧата(URL, IDЧата, IDПользователя, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 СменитьВладельцаЧата --url %url% --chat %chat% --user %user% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865697.10595, + "finish": 1720865697.13924, + "duration": 0.0332820415496826, + "processing": 0.0104668140411377, + "date_start": "2024-07-13T10:14:57+00:00", + "date_finish": "2024-07-13T10:14:57+00:00", + "operating_reset_at": 1720866297, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md new file mode 100644 index 0000000000..4fab762ed2 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-picture.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 8 +--- + +# Изменить картинку чата + Устанавливает новую картинку чата + + + +`Функция ИзменитьКартинкуЧата(Знач URL, Знач IDЧата, Знач Картинка, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Картинка | --picture | Строка, ДвоичныеДанные | Данные файла картинки | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.updateAvatar](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12109) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Картинка = ПараметрыФункции["Picture2"]; + + Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ИзменитьКартинкуЧата(URL, IDЧата, Картинка, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьКартинкуЧата --url %url% --chat %chat% --picture %picture% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865692.90718, + "finish": 1720865693.81896, + "duration": 0.91178297996521, + "processing": 0.884725093841553, + "date_start": "2024-07-13T10:14:52+00:00", + "date_finish": "2024-07-13T10:14:53+00:00", + "operating_reset_at": 1720866292, + "operating": 0.884703874588013 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md new file mode 100644 index 0000000000..9f78f4f2a9 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Change-chat-title.md @@ -0,0 +1,70 @@ +--- +sidebar_position: 6 +--- + +# Изменить заголовок чата + Изменяет текст заголовка чата + + + +`Функция ИзменитьЗаголовокЧата(Знач URL, Знач IDЧата, Знач Заголовок, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Заголовок | --title | Строка | Новый текст заголовка | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.updateTitle](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12105) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Заголовок = "Новый заголовок чата"; + + Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Заголовок = "Другой заголовок чата"; + + Результат = OPI_Bitrix24.ИзменитьЗаголовокЧата(URL, IDЧата, Заголовок, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьЗаголовокЧата --url %url% --chat %chat% --title %title% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865687.70928, + "finish": 1720865687.78107, + "duration": 0.0717928409576416, + "processing": 0.0479631423950195, + "date_start": "2024-07-13T10:14:47+00:00", + "date_finish": "2024-07-13T10:14:47+00:00", + "operating_reset_at": 1720866287, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md new file mode 100644 index 0000000000..17e6f81648 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Create-chat.md @@ -0,0 +1,87 @@ +--- +sidebar_position: 1 +--- + +# Создать чат + Создает новый чат на основе структуры полей + + + +`Функция СоздатьЧат(Знач URL, Знач СтруктураЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | СтруктураЧата | --fields | Структура Из КлючИЗначение | Структура полей чата. См. ПолучитьСтруктуруЧата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12093) +::: +
+ + +```bsl title="Пример кода" + Картинка = ПараметрыФункции["Picture"]; + OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); + + B64Картинка = ПолучитьBase64СтрокуИзДвоичныхДанных(Картинка); + + МассивУчастников = Новый Массив; + МассивУчастников.Добавить(10); + МассивУчастников.Добавить(1); + + СтруктураЧата = Новый Структура; + СтруктураЧата.Вставить("TYPE" , "OPEN"); + СтруктураЧата.Вставить("TITLE" , "Новый чат"); + СтруктураЧата.Вставить("DESCRIPTION", "Это новый чат"); + СтруктураЧата.Вставить("COLOR" , "GREEN"); + СтруктураЧата.Вставить("MESSAGE" , "Добро пожаловать в новый чат"); + СтруктураЧата.Вставить("USERS" , МассивУчастников); + СтруктураЧата.Вставить("AVATAR" , B64Картинка); + СтруктураЧата.Вставить("OWNER_ID" , 1); + + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + СтруктураЧата = Новый Структура; + СтруктураЧата.Вставить("TYPE" , "CHAT"); + СтруктураЧата.Вставить("TITLE" , "Закрытый чат"); + СтруктураЧата.Вставить("USERS" , МассивУчастников); + + Результат = OPI_Bitrix24.СоздатьЧат(URL, СтруктураЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 СоздатьЧат --url %url% --fields %fields% --token %token% + +``` + +```json title="Результат" +{ + "result": 26, + "time": { + "start": 1720816597.42171, + "finish": 1720816597.52933, + "duration": 0.107618093490601, + "processing": 0.081672191619873, + "date_start": "2024-07-12T20:36:37+00:00", + "date_finish": "2024-07-12T20:36:37+00:00", + "operating_reset_at": 1720817197, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md new file mode 100644 index 0000000000..af45e2152c --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Delete-user-from-chat.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 5 +--- + +# Исключить пользователя из чата + Исключает выбранного пользователя из чата + + + +`Функция ИсключитьПользователяИзЧата(Знач URL, Знач IDЧата, Знач IDПользователя, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | IDПользователя | --user | Строка, Число | ID пользователя | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.user.delete](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12099) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + IDПользователя = 10; + + Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ИсключитьПользователяИзЧата(URL, IDЧата, IDПользователя, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИсключитьПользователяИзЧата --url %url% --chat %chat% --user %user% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865685.25089, + "finish": 1720865685.32425, + "duration": 0.0733590126037598, + "processing": 0.0480890274047852, + "date_start": "2024-07-13T10:14:45+00:00", + "date_finish": "2024-07-13T10:14:45+00:00", + "operating_reset_at": 1720866285, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md new file mode 100644 index 0000000000..89d7510af3 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Disable-chat-notifications.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 10 +--- + +# Отключить уведомления чата + Отключает уведомлений чата + + + +`Функция ОтключитьУведомленияЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.mute](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ОтключитьУведомленияЧата(URL, IDЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтключитьУведомленияЧата --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865694.86568, + "finish": 1720865694.9092, + "duration": 0.0435128211975098, + "processing": 0.0169928073883057, + "date_start": "2024-07-13T10:14:54+00:00", + "date_finish": "2024-07-13T10:14:54+00:00", + "operating_reset_at": 1720866294, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md new file mode 100644 index 0000000000..1a2f369ecc --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Enable-chat-notifications.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 11 +--- + +# Включить уведомления чата + Включает уведомления в чате + + + +`Функция ВключитьУведомленияЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.mute](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11473) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ВключитьУведомленияЧата(URL, IDЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ВключитьУведомленияЧата --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720865695.99933, + "finish": 1720865696.04205, + "duration": 0.0427119731903076, + "processing": 0.0170090198516846, + "date_start": "2024-07-13T10:14:55+00:00", + "date_finish": "2024-07-13T10:14:56+00:00", + "operating_reset_at": 1720866296, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md new file mode 100644 index 0000000000..081b33f8bb --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-files-folder.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 17 +--- + +# Получить каталог файлов чата + Получает каталог для хранения фйлов чата + + + +`Функция ПолучитьКаталогФайловЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.disk.folder.get](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11483) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьКаталогФайловЧата --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "ID": 3250 + }, + "time": { + "start": 1720969169.10256, + "finish": 1720969169.1584, + "duration": 0.0558350086212158, + "processing": 0.0327038764953613, + "date_start": "2024-07-14T14:59:29+00:00", + "date_finish": "2024-07-14T14:59:29+00:00", + "operating_reset_at": 1720969769, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md new file mode 100644 index 0000000000..d9d32fb838 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-members-list.md @@ -0,0 +1,121 @@ +--- +sidebar_position: 14 +--- + +# Получить список пользователей диалога + Получает список участников далога + + + +`Функция ПолучитьСписокПользователейДиалога(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.users.list](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23800) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейДиалога(URL, IDПользователя, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСписокПользователейДиалога --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": [ + { + "id": 10, + "active": true, + "name": "Techno Pizza", + "first_name": "Techno", + "last_name": "Pizza", + "work_position": null, + "color": "#ab7761", + "avatar": "", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-13T18:36:23+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "bot_data": null + }, + { + "id": 1, + "active": true, + "name": "Антон Титовец", + "first_name": "Антон", + "last_name": "Титовец", + "work_position": null, + "color": "#df532d", + "avatar": "https://cdn-ru.bitrix24.by/b28528874/resize_cache/30/ff58db95aecdfa09ae61b51b5fd8f63f/main/d7e/d7e99cf556e4ab676463dae2c00ddfbb/a7e0af6899300e3c684caeca5c334d81.jpg", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-14T09:00:58+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "bot_data": null + } + ], + "total": 2, + "time": { + "start": 1720969161.4388, + "finish": 1720969161.46946, + "duration": 0.0306570529937744, + "processing": 0.00571608543395996, + "date_start": "2024-07-14T14:59:21+00:00", + "date_finish": "2024-07-14T14:59:21+00:00", + "operating_reset_at": 1720969761, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md new file mode 100644 index 0000000000..ae62af294f --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-messages-list.md @@ -0,0 +1,401 @@ +--- +sidebar_position: 12 +--- + +# Получить список сообщений чата + Получает список из 20 сообщений чата или диалога, в зависимости от указания IDПервого и IDПоследнего + + + +`Функция ПолучитьСписокСообщенийЧата(Знач URL, Знач IDЧата, Знач IDПоследнего = "", Знач IDПервого = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | IDПоследнего | --last | Строка, Число | ID последнего загруженного сообщения | + | IDПервого | --first | Строка, Число | ID первого загруженного сообщения | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.messages.get](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=11479) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat4"; + + Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDЧата); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDПользователя, , 0,Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСписокСообщенийЧата --url %url% --chat %chat% --last %last% --first %first% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "chat_id": 10, + "messages": [ + { + "id": 3854, + "chat_id": 10, + "author_id": 10, + "date": "2024-07-13T14:54:43+00:00", + "text": "Записал", + "unread": false, + "uuid": "700d361d-8324-47fb-b989-647949c1c899", + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4286, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T16:06:51+00:00", + "text": "Текст сообщения", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4366, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T16:40:58+00:00", + "text": "Message text", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4406, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T19:57:33+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4446, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:21:27+00:00", + "text": "Текст сообщения", + "unread": false, + "uuid": null, + "replaces": [], + "params": [], + "disappearing_date": null + }, + { + "id": 4486, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:22:30+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4526, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-13T20:41:21+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4668, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:10:33+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4708, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:22:56+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4748, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:26:01+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4788, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:28:01+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4828, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:28:36+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4868, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:30:18+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4908, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:52:24+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4948, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:53:31+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 4990, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:57:06+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5060, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T08:59:43+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5140, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T09:29:40+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5182, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T09:35:56+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + }, + { + "id": 5262, + "chat_id": 10, + "author_id": 1, + "date": "2024-07-14T11:27:54+00:00", + "text": "Это сообщение было удалено", + "unread": false, + "uuid": null, + "replaces": [], + "params": { + "IS_DELETED": "Y" + }, + "disappearing_date": null + } + ], + "users": [ + { + "id": 10, + "active": true, + "name": "Techno Pizza", + "first_name": "Techno", + "last_name": "Pizza", + "work_position": null, + "color": "#ab7761", + "avatar": "", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-13T18:36:23+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "desktop_last_date": false + }, + { + "id": 1, + "active": true, + "name": "Антон Титовец", + "first_name": "Антон", + "last_name": "Титовец", + "work_position": null, + "color": "#df532d", + "avatar": "https://cdn-ru.bitrix24.by/b28528874/resize_cache/30/ff58db95aecdfa09ae61b51b5fd8f63f/main/d7e/d7e99cf556e4ab676463dae2c00ddfbb/a7e0af6899300e3c684caeca5c334d81.jpg", + "gender": "M", + "birthday": "", + "extranet": false, + "network": false, + "bot": false, + "connector": false, + "external_auth_id": "socservices", + "status": "online", + "idle": false, + "last_activity_date": "2024-07-14T09:00:58+00:00", + "mobile_last_date": false, + "absent": false, + "departments": [ + 1 + ], + "phones": false, + "desktop_last_date": false + } + ], + "files": [] + }, + "time": { + "start": 1720969156.38474, + "finish": 1720969156.42064, + "duration": 0.0358970165252686, + "processing": 0.0108029842376709, + "date_start": "2024-07-14T14:59:16+00:00", + "date_finish": "2024-07-14T14:59:16+00:00", + "operating_reset_at": 1720969756, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md new file mode 100644 index 0000000000..9114e8217f --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-structure.md @@ -0,0 +1,33 @@ +--- +sidebar_position: 18 +--- + +# Получить структуру чата + Получает структуру полей чата + + + +`Функция ПолучитьСтруктуруЧата(Знач Пустая = Ложь) Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | Пустая | --empty | Булево | Истина > структура с пустыми значениями, Ложь > в значениях будут описания типов полей | + + + Возвращаемое значение: Структура Из КлючИЗначение - Структура полей + +
+ + + + + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСтруктуруЧата --empty %empty% + +``` + + diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md new file mode 100644 index 0000000000..e134de2998 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-chat-users.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 2 +--- + +# Получить список пользователей чата + Получает список пользователей чата по ID + + + +`Функция ПолучитьСписокПользователейЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.user.list](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12095) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокПользователейЧата(URL, IDЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСписокПользователейЧата --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": [ + 1, + 10 + ], + "time": { + "start": 1720816598.61771, + "finish": 1720816598.64882, + "duration": 0.0311079025268555, + "processing": 0.00316882133483887, + "date_start": "2024-07-12T20:36:38+00:00", + "date_finish": "2024-07-12T20:36:38+00:00", + "operating_reset_at": 1720817198, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md new file mode 100644 index 0000000000..8fc5472742 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Get-dialog.md @@ -0,0 +1,134 @@ +--- +sidebar_position: 13 +--- + +# Получить диалог + Получает информацию о диалоге по ID + + + +`Функция ПолучитьДиалог(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.get](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12886) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПолучитьДиалог(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ПолучитьДиалог(URL, IDПользователя, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьДиалог --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "id": 10, + "parent_chat_id": 0, + "parent_message_id": 0, + "name": "", + "description": "", + "owner": 10, + "extranet": false, + "avatar": "", + "color": "#ab7761", + "type": "private", + "counter": 1, + "user_counter": 0, + "message_count": 24, + "unread_id": 3854, + "restrictions": { + "avatar": true, + "rename": true, + "extend": true, + "call": true, + "mute": true, + "leave": true, + "leave_owner": true, + "send": true, + "user_list": true + }, + "last_message_id": 5262, + "last_id": 3852, + "marked_id": 0, + "disk_folder_id": 0, + "entity_type": "", + "entity_id": "", + "entity_data_1": "", + "entity_data_2": "", + "entity_data_3": "", + "mute_list": [], + "date_create": "2024-06-15T16:48:49+00:00", + "message_type": "P", + "disappearing_time": 0, + "public": "", + "role": "member", + "entity_link": { + "type": "", + "url": "" + }, + "permissions": { + "manage_users_add": "member", + "manage_users_delete": "manager", + "manage_ui": "member", + "manage_settings": "owner", + "manage_messages": "member", + "can_post": "member" + }, + "is_new": false, + "readed_list": [ + { + "user_id": 10, + "user_name": "Techno Pizza", + "message_id": 3854, + "date": null + } + ], + "manager_list": [], + "last_message_views": { + "message_id": 5262, + "first_viewers": [], + "count_of_viewers": 0 + }, + "dialog_id": "10" + }, + "time": { + "start": 1720969160.19046, + "finish": 1720969160.22782, + "duration": 0.037362813949585, + "processing": 0.0134620666503906, + "date_start": "2024-07-14T14:59:20+00:00", + "date_finish": "2024-07-14T14:59:20+00:00", + "operating_reset_at": 1720969760, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md new file mode 100644 index 0000000000..2f2bfcfb73 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Leave-chat.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 3 +--- + +# Покинуть чат + Исключает текущего пользователя из чата + + + +`Функция ПокинутьЧат(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.chat.leave](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12101) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Результат = OPI_Bitrix24.ПокинутьЧат(URL, IDЧата, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПокинутьЧат --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720816599.74716, + "finish": 1720816599.81746, + "duration": 0.0702948570251465, + "processing": 0.0438079833984375, + "date_start": "2024-07-12T20:36:39+00:00", + "date_finish": "2024-07-12T20:36:39+00:00", + "operating_reset_at": 1720817199, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md new file mode 100644 index 0000000000..8d49d68b78 --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Read-all.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 16 +--- + +# Прочитать все + Отмечает все сообщения во всех доступных чатах как прочитанные + + + +`Функция ПрочитатьВсе(Знач URL, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.read.all](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23804) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ПрочитатьВсе(URL); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПрочитатьВсе(URL, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПрочитатьВсе --url %url% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969176.30834, + "finish": 1720969176.34001, + "duration": 0.0316698551177978, + "processing": 0.00501918792724609, + "date_start": "2024-07-14T14:59:36+00:00", + "date_finish": "2024-07-14T14:59:36+00:00", + "operating_reset_at": 1720969776, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md new file mode 100644 index 0000000000..dfac3b5f5a --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/Send-writing-notification.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 15 +--- + +# Отправить уведомление о вводе + Отправляет в чат статус "Вам пишут..." + + + +`Функция ОтправитьУведомлениеОВводе(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.writing](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=23802) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + + Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, IDЧата); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ОтправитьУведомлениеОВводе(URL, IDПользователя, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтправитьУведомлениеОВводе --url %url% --chat %chat% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969162.6704, + "finish": 1720969162.69719, + "duration": 0.0267889499664307, + "processing": 0.000684022903442383, + "date_start": "2024-07-14T14:59:22+00:00", + "date_finish": "2024-07-14T14:59:22+00:00", + "operating_reset_at": 1720969762, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/_category_.json b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/_category_.json new file mode 100644 index 0000000000..3e039d836d --- /dev/null +++ b/docs/ru/md/Bitrix24/Chats-and-dialogs-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с чатами и диалогами", +"position": "12" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md index 4353583ea7..6dc2d56687 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Add-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 3
- +:::tip +Метод в документации API: [task.commentitem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/add.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md index f67ead6251..68d143933b 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Create-result-from-comment.md @@ -20,7 +20,10 @@ sidebar_position: 7
- +:::tip +Метод в документации API: [tasks.task.result.addFromComment](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_addFromComment.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md index 8099681918..29d65ca46b 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-result-from-comment.md @@ -20,7 +20,10 @@ sidebar_position: 8
- +:::tip +Метод в документации API: [tasks.task.result.deleteFromComment](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result_deleteFromComment.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md index 4a03c20908..72aa5f24a7 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Delete-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 5
- +:::tip +Метод в документации API: [task.commentitem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/delete.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-results-list.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-results-list.md index 18aff80671..49f63ab368 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-results-list.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-results-list.md @@ -20,7 +20,10 @@ sidebar_position: 6
- +:::tip +Метод в документации API: [tasks.task.result.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_result.list.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md index f29aa37e47..ed49545aac 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comment.md @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Метод в документации API: [task.commentitem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/get.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md index 88e3e1c5d7..7b7d29e7a9 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Get-task-comments-list.md @@ -20,7 +20,10 @@ sidebar_position: 1
- +:::tip +Метод в документации API: [task.commentitem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/getlist.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md b/docs/ru/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md index 718efc130f..60a05ab08d 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/Update-task-comment.md @@ -22,7 +22,10 @@ sidebar_position: 4
- +:::tip +Метод в документации API: [task.commentitem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/commentitem/update.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Comments-and-results-managment/_category_.json b/docs/ru/md/Bitrix24/Comments-and-results-managment/_category_.json index c3ff2dfc4e..54bda699af 100644 --- a/docs/ru/md/Bitrix24/Comments-and-results-managment/_category_.json +++ b/docs/ru/md/Bitrix24/Comments-and-results-managment/_category_.json @@ -1,4 +1,4 @@ { "label": "Работа с комментариями и результатами задач", -"position": "5" +"position": "6" } \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Feed-posts-managment/Crate-comment.md b/docs/ru/md/Bitrix24/Feed-posts-managment/Crate-comment.md deleted file mode 100644 index e53fe38523..0000000000 --- a/docs/ru/md/Bitrix24/Feed-posts-managment/Crate-comment.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Добавить комментарий - Добавляет комментарий к новости - - -*Функция ДобавитьКомментарий(Знач URL, Знач IDНовости, Знач Текст, Знач Токен = "") Экспорт* - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDНовости | --postid | Строка, Число | ID новости | - | Текст | --text | Строка | Текст комментария | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -```bsl title="Пример кода" - - Текст = "Комментарий к новости"; - IDНовости = "124"; - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - - Результат = OPI_Bitrix24.ДобавитьКомментарий(URL, IDНовости, Текст); - - - Текст = "Другой комментарий к новости"; - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ДобавитьКомментарий(URL, IDНовости, Текст, Токен); - -``` - -```sh title="Пример команды CLI" - - oint bitrix24 ДобавитьКомментарий --url "b24-ar17wx.bitrix24.by" --postid "124" --text %text% --token "b9df7366006e9f06006b12e400000001000..." - -``` - - -```json title="Результат" - -{ - "result": 24, - "time": { - "start": 1718473316.57246, - "finish": 1718473316.67595, - "duration": 0.103492975234985, - "processing": 0.0729200839996338, - "date_start": "2024-06-15T17:41:56+00:00", - "date_finish": "2024-06-15T17:41:56+00:00", - "operating_reset_at": 1718473916, - "operating": 0 - } -} - -``` diff --git a/docs/ru/md/Bitrix24/Feed-posts-managment/Create-post.md b/docs/ru/md/Bitrix24/Feed-posts-managment/Create-post.md index 3af3081ac5..e7e298bf2f 100644 --- a/docs/ru/md/Bitrix24/Feed-posts-managment/Create-post.md +++ b/docs/ru/md/Bitrix24/Feed-posts-managment/Create-post.md @@ -14,7 +14,7 @@ sidebar_position: 1 | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | | Текст | --text | Строка | Текст новости | | Видимость | --vision | Строка | Массив или 1 получатель: UA все, SGn р. группа, Un пользователь, DRn отдел, Gn группа | - | Файлы | --files | Строка | Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные | + | Файлы | --files | Соответствие Из КлючИЗначение | Ключ > имя файла, значение > путь или двоичные данные | | Заголовок | --title | Строка | Заголовок новости | | Важное | --important | Булево | Помечает новость как важную | | Токен | --token | Строка | Токен авторизации, если используется не вебхук | diff --git a/docs/ru/md/Bitrix24/Feed-posts-managment/Update-post.md b/docs/ru/md/Bitrix24/Feed-posts-managment/Update-post.md index 33685bf878..4e2b0d05b1 100644 --- a/docs/ru/md/Bitrix24/Feed-posts-managment/Update-post.md +++ b/docs/ru/md/Bitrix24/Feed-posts-managment/Update-post.md @@ -15,7 +15,7 @@ sidebar_position: 2 | IDНовости | --postid | Строка, Число | ID новости | | Текст | --text | Строка | Текст новости | | Видимость | --vision | Строка | Массив или 1 получатель: UA все, SGn р. группа, Un пользователь, DRn отдел, Gn группа | - | Файлы | --files | Строка | Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные | + | Файлы | --files | Соответствие Из КлючИЗначение | Ключ > имя файла, значение > путь или двоичные данные | | Заголовок | --title | Строка | Заголовок новости | | Токен | --token | Строка | Токен авторизации, если используется не вебхук | diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-file.md b/docs/ru/md/Bitrix24/File-managment/Delete-file.md similarity index 91% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-file.md rename to docs/ru/md/Bitrix24/File-managment/Delete-file.md index a9a274af78..89d006e6f9 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Delete-file.md +++ b/docs/ru/md/Bitrix24/File-managment/Delete-file.md @@ -1,62 +1,65 @@ ---- -sidebar_position: 12 ---- - -# Удалить файл - Удаляет файл по ID - - - -`Функция УдалитьФайл(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDФайла | --fileid | Строка, Число | Идентификатор удаляемого файла | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - IDФайла = "488"; - - Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла); - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - IDФайла = "478"; - - Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 УдалитьФайл --url "b24-ar17wx.bitrix24.by" --fileid "478" --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": true, - "time": { - "start": 1718783933.86753, - "finish": 1718783937.64223, - "duration": 3.77469992637634, - "processing": 3.73617887496948, - "date_start": "2024-06-19T07:58:53+00:00", - "date_finish": "2024-06-19T07:58:57+00:00", - "operating_reset_at": 1718784533, - "operating": 3.73615193367004 - } -} -``` +--- +sidebar_position: 4 +--- + +# Удалить файл + Удаляет файл по ID + + + +`Функция УдалитьФайл(Знач URL, Знач IDФайла, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDФайла | --fileid | Строка, Число | Идентификатор удаляемого файла | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.file.delete](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_delete.php) +::: +
+ + +```bsl title="Пример кода" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + IDФайла = "488"; + + Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла); + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + IDФайла = "478"; + + Результат = OPI_Bitrix24.УдалитьФайл(URL, IDФайла, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УдалитьФайл --url "b24-ar17wx.bitrix24.by" --fileid "478" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1718783933.86753, + "finish": 1718783937.64223, + "duration": 3.77469992637634, + "processing": 3.73617887496948, + "date_start": "2024-06-19T07:58:53+00:00", + "date_finish": "2024-06-19T07:58:57+00:00", + "operating_reset_at": 1718784533, + "operating": 3.73615193367004 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-external-link.md b/docs/ru/md/Bitrix24/File-managment/Get-file-external-link.md similarity index 91% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-external-link.md rename to docs/ru/md/Bitrix24/File-managment/Get-file-external-link.md index 6578182b55..e2de9187d7 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-external-link.md +++ b/docs/ru/md/Bitrix24/File-managment/Get-file-external-link.md @@ -1,5 +1,5 @@ --- -sidebar_position: 21 +sidebar_position: 5 --- # Получить внешнюю ссылку файла @@ -20,7 +20,10 @@ sidebar_position: 21
- +:::tip +Метод в документации API: [disk.file.getExternalLink](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_getexternallink.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-information.md b/docs/ru/md/Bitrix24/File-managment/Get-file-information.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-information.md rename to docs/ru/md/Bitrix24/File-managment/Get-file-information.md index 0355dc9b94..2c138e53fe 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-file-information.md +++ b/docs/ru/md/Bitrix24/File-managment/Get-file-information.md @@ -1,5 +1,5 @@ --- -sidebar_position: 20 +sidebar_position: 3 --- # Получить информацию о файле @@ -20,7 +20,10 @@ sidebar_position: 20
- +:::tip +Метод в документации API: [disk.file.get](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_get.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Make-file-copy.md b/docs/ru/md/Bitrix24/File-managment/Make-file-copy.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Make-file-copy.md rename to docs/ru/md/Bitrix24/File-managment/Make-file-copy.md index 8ce5a95d05..3621e0373b 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Make-file-copy.md +++ b/docs/ru/md/Bitrix24/File-managment/Make-file-copy.md @@ -1,5 +1,5 @@ --- -sidebar_position: 24 +sidebar_position: 8 --- # Скопировать файл @@ -21,7 +21,10 @@ sidebar_position: 24
- +:::tip +Метод в документации API: [disk.file.copyto](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_copyto.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-file-as-deleted.md b/docs/ru/md/Bitrix24/File-managment/Mark-file-as-deleted.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-file-as-deleted.md rename to docs/ru/md/Bitrix24/File-managment/Mark-file-as-deleted.md index 85169d5b7d..d5c9a5215c 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Mark-file-as-deleted.md +++ b/docs/ru/md/Bitrix24/File-managment/Mark-file-as-deleted.md @@ -1,5 +1,5 @@ --- -sidebar_position: 22 +sidebar_position: 6 --- # Поместить файл в корзину @@ -20,7 +20,10 @@ sidebar_position: 22
- +:::tip +Метод в документации API: [disk.file.markdeleted](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_markdeleted.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Move-file-to-folder.md b/docs/ru/md/Bitrix24/File-managment/Move-file-to-folder.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Move-file-to-folder.md rename to docs/ru/md/Bitrix24/File-managment/Move-file-to-folder.md index 243f162837..a4a6629ec5 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Move-file-to-folder.md +++ b/docs/ru/md/Bitrix24/File-managment/Move-file-to-folder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 25 +sidebar_position: 9 --- # Переместить файл @@ -21,7 +21,10 @@ sidebar_position: 25
- +:::tip +Метод в документации API: [disk.file.moveto](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_moveto.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-file.md b/docs/ru/md/Bitrix24/File-managment/Rename-file.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-file.md rename to docs/ru/md/Bitrix24/File-managment/Rename-file.md index edd4e82580..b7ff13d03b 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-file.md +++ b/docs/ru/md/Bitrix24/File-managment/Rename-file.md @@ -1,5 +1,5 @@ --- -sidebar_position: 26 +sidebar_position: 10 --- # Переименовать файл @@ -21,7 +21,10 @@ sidebar_position: 26
- +:::tip +Метод в документации API: [disk.file.rename](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_rename.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-file.md b/docs/ru/md/Bitrix24/File-managment/Restore-file.md similarity index 94% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-file.md rename to docs/ru/md/Bitrix24/File-managment/Restore-file.md index 02f1598ca0..213e5ad7f6 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Restore-file.md +++ b/docs/ru/md/Bitrix24/File-managment/Restore-file.md @@ -1,5 +1,5 @@ --- -sidebar_position: 23 +sidebar_position: 7 --- # Восстановить файл @@ -20,7 +20,10 @@ sidebar_position: 23
- +:::tip +Метод в документации API: [disk.file.restore](https://dev.1c-bitrix.ru/rest_help/disk/file/disk_file_restore.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-folder.md b/docs/ru/md/Bitrix24/File-managment/Upload-file-to-folder.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-folder.md rename to docs/ru/md/Bitrix24/File-managment/Upload-file-to-folder.md index 55b3d50aeb..e9249f2e8f 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-folder.md +++ b/docs/ru/md/Bitrix24/File-managment/Upload-file-to-folder.md @@ -1,5 +1,5 @@ --- -sidebar_position: 19 +sidebar_position: 2 --- # Загрузить файл в каталог @@ -22,7 +22,10 @@ sidebar_position: 19
- +:::tip +Метод в документации API: [disk.folder.uploadfile](https://dev.1c-bitrix.ru/rest_help/disk/folder/disk_folder_uploadfile.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-storage.md b/docs/ru/md/Bitrix24/File-managment/Upload-file-to-storage.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-storage.md rename to docs/ru/md/Bitrix24/File-managment/Upload-file-to-storage.md index ee3a01c885..d0bfba1bf6 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Upload-file-to-storage.md +++ b/docs/ru/md/Bitrix24/File-managment/Upload-file-to-storage.md @@ -1,91 +1,94 @@ ---- -sidebar_position: 6 ---- - -# Загрузить файл в хранилище - Загружает файл в выбранное хранилище - - - -`Функция ЗагрузитьФайлВХранилище(Знач URL, Знач Наименование, Знач Файл, Знач IDХранилища, Знач Доступы = "", Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | Наименование | --title | Строка | Наименование файла с расширением для сохранения | - | Файл | --file | Строка, ДвоичныеДанные | Файл для загрузки | - | IDХранилища | --storageid | Строка | Идентификатор хранилища для загрузки | - | Доступы | --rights | Строка | Массив доступов по задачам, если необходимо | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - Наименование2 = "Картинка2.jpg"; - Наименование = "Картинка1.jpg"; - - Картинка2 = "https://openintegrations.dev/test_data/picture.jpg"; // Локальный путь, URL или Двоичные данные - Картинка = "https://openintegrations.dev/test_data/picture2.jpg"; // Локальный путь, URL или Двоичные данные - - IDПриемника = 3; - - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - - Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование2, Картинка2, IDПриемника); - - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование, Картинка, IDПриемника, , Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ЗагрузитьФайлВХранилище --url "b24-ar17wx.bitrix24.by" --title %title% --file %file% --storageid %storageid% --rights %rights% --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": { - "ID": 356, - "NAME": "26417397-8431-4343-9c0f-a40d4a2831c8.jpg", - "CODE": null, - "STORAGE_ID": "3", - "TYPE": "file", - "PARENT_ID": "3", - "DELETED_TYPE": 0, - "GLOBAL_CONTENT_VERSION": 1, - "FILE_ID": 404, - "SIZE": "26", - "CREATE_TIME": "2024-06-19T07:58:50+00:00", - "UPDATE_TIME": "2024-06-19T07:58:50+00:00", - "DELETE_TIME": null, - "CREATED_BY": "1", - "UPDATED_BY": "1", - "DELETED_BY": null, - "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=0a9d7266006e9f06006b12e40000000100000702aaae0c0e99153466d165ecfa4a92ce&token=disk%7CaWQ9MzU2Jl89TEZ6d3JtUDdUdVg0dXJ3Q2pZYTExTlhPTmh1czI3V1k%3D%7CImRvd25sb2FkfGRpc2t8YVdROU16VTJKbDg5VEVaNmQzSnRVRGRVZFZnMGRYSjNRMnBaWVRFeFRsaFBUbWgxY3pJM1Yxaz18MGE5ZDcyNjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDcwMmFhYWUwYzBlOTkxNTM0NjZkMTY1ZWNmYTRhOTJjZSI%3D.ng9IaX1mYX7R%2B4yWP67P6j9%2BWvh78aG47IO0Ex6UVQ8%3D", - "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/26417397-8431-4343-9c0f-a40d4a2831c8.jpg" - }, - "time": { - "start": 1718783929.8197, - "finish": 1718783930.09911, - "duration": 0.279407024383545, - "processing": 0.227760076522827, - "date_start": "2024-06-19T07:58:49+00:00", - "date_finish": "2024-06-19T07:58:50+00:00", - "operating_reset_at": 1718784529, - "operating": 0.227726936340332 - } -} -``` +--- +sidebar_position: 1 +--- + +# Загрузить файл в хранилище + Загружает файл в выбранное хранилище + + + +`Функция ЗагрузитьФайлВХранилище(Знач URL, Знач Наименование, Знач Файл, Знач IDХранилища, Знач Доступы = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Наименование | --title | Строка | Наименование файла с расширением для сохранения | + | Файл | --file | Строка, ДвоичныеДанные | Файл для загрузки | + | IDХранилища | --storageid | Строка | Идентификатор хранилища для загрузки | + | Доступы | --rights | Строка | Массив доступов по задачам, если необходимо | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.uploadfile](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_uploadfile.php) +::: +
+ + +```bsl title="Пример кода" + Наименование2 = "Картинка2.jpg"; + Наименование = "Картинка1.jpg"; + + Картинка2 = "https://openintegrations.dev/test_data/picture.jpg"; // Локальный путь, URL или Двоичные данные + Картинка = "https://openintegrations.dev/test_data/picture2.jpg"; // Локальный путь, URL или Двоичные данные + + IDПриемника = 3; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование2, Картинка2, IDПриемника); + + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.ЗагрузитьФайлВХранилище(URL, Наименование, Картинка, IDПриемника, , Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ЗагрузитьФайлВХранилище --url "b24-ar17wx.bitrix24.by" --title %title% --file %file% --storageid %storageid% --rights %rights% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": { + "ID": 356, + "NAME": "26417397-8431-4343-9c0f-a40d4a2831c8.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": 0, + "GLOBAL_CONTENT_VERSION": 1, + "FILE_ID": 404, + "SIZE": "26", + "CREATE_TIME": "2024-06-19T07:58:50+00:00", + "UPDATE_TIME": "2024-06-19T07:58:50+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=0a9d7266006e9f06006b12e40000000100000702aaae0c0e99153466d165ecfa4a92ce&token=disk%7CaWQ9MzU2Jl89TEZ6d3JtUDdUdVg0dXJ3Q2pZYTExTlhPTmh1czI3V1k%3D%7CImRvd25sb2FkfGRpc2t8YVdROU16VTJKbDg5VEVaNmQzSnRVRGRVZFZnMGRYSjNRMnBaWVRFeFRsaFBUbWgxY3pJM1Yxaz18MGE5ZDcyNjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDcwMmFhYWUwYzBlOTkxNTM0NjZkMTY1ZWNmYTRhOTJjZSI%3D.ng9IaX1mYX7R%2B4yWP67P6j9%2BWvh78aG47IO0Ex6UVQ8%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/26417397-8431-4343-9c0f-a40d4a2831c8.jpg" + }, + "time": { + "start": 1718783929.8197, + "finish": 1718783930.09911, + "duration": 0.279407024383545, + "processing": 0.227760076522827, + "date_start": "2024-06-19T07:58:49+00:00", + "date_finish": "2024-06-19T07:58:50+00:00", + "operating_reset_at": 1718784529, + "operating": 0.227726936340332 + } +} +``` diff --git a/docs/ru/md/Bitrix24/File-managment/_category_.json b/docs/ru/md/Bitrix24/File-managment/_category_.json new file mode 100644 index 0000000000..b24aa138bd --- /dev/null +++ b/docs/ru/md/Bitrix24/File-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с файлами", +"position": "11" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Kanban/Add-kanban-stage.md b/docs/ru/md/Bitrix24/Kanban/Add-kanban-stage.md index 0631ed4a06..dde7d0a301 100644 --- a/docs/ru/md/Bitrix24/Kanban/Add-kanban-stage.md +++ b/docs/ru/md/Bitrix24/Kanban/Add-kanban-stage.md @@ -24,7 +24,10 @@ sidebar_position: 1
- +:::tip +Метод в документации API: [task.stages.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_add.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Kanban/Delete-kanban-stage.md b/docs/ru/md/Bitrix24/Kanban/Delete-kanban-stage.md index 73d2c3ae9a..281a453531 100644 --- a/docs/ru/md/Bitrix24/Kanban/Delete-kanban-stage.md +++ b/docs/ru/md/Bitrix24/Kanban/Delete-kanban-stage.md @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 3 --- # Удалить стадию канбана @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Метод в документации API: [task.stages.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_delete.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Kanban/Get-kanban-stages.md b/docs/ru/md/Bitrix24/Kanban/Get-kanban-stages.md index 786049d2f1..46ab36c1b0 100644 --- a/docs/ru/md/Bitrix24/Kanban/Get-kanban-stages.md +++ b/docs/ru/md/Bitrix24/Kanban/Get-kanban-stages.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 --- # Получить стадии канбана @@ -21,7 +21,10 @@ sidebar_position: 3
- +:::tip +Метод в документации API: [task.stages.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_get.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md b/docs/ru/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md index 283d86a3d1..1905db84ed 100644 --- a/docs/ru/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md +++ b/docs/ru/md/Bitrix24/Kanban/Move-task-to-kanban-stage.md @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 --- # Перенести задачу в стадию канбана @@ -23,7 +23,10 @@ sidebar_position: 4
- +:::tip +Метод в документации API: [task.stages.movetask](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_movetask.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Kanban/Update-kanbans-stage.md b/docs/ru/md/Bitrix24/Kanban/Update-kanbans-stage.md new file mode 100644 index 0000000000..16f0bcec7c --- /dev/null +++ b/docs/ru/md/Bitrix24/Kanban/Update-kanbans-stage.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 2 +--- + +# Изменить стадию канбана + Изменяет свойства существующей стадии канбана или Моего плана + + + +`Функция ИзменитьСтадиюКанбана(Знач URL, Знач Наименование, Знач IDСтадии, Знач Цвет = "", Знач IDПредыдущей = 0, Знач КакАдминистратор = Ложь, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Наименование | --title | Строка | Новое наименование стадии | + | IDСтадии | --stage | Строка, Число | ID стадии для изменения | + | Цвет | --color | Строка | HEX нового цвета стадии | + | IDПредыдущей | --prevstage | Строка, Число | ID стадии, после которой необходимо вставить выбранную | + | КакАдминистратор | --admin | Булево | Позволяет добавлять стадии без проверки прав (для администраторов) | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.stages.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/kanban/task_stages_update.php) +::: +
+ + +```bsl title="Пример кода" + Наименование = "Новое имя стадии стадии"; + Цвет = "000000"; + IDСтадии = ПараметрыФункции["Bitrix24_HookStageID"]; + + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет); + + + Наименование = "Новое имя стадии стадии 2"; + Цвет = "000000"; + IDСтадии = ПараметрыФункции["Bitrix24_StageID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ИзменитьСтадиюКанбана(URL, Наименование, IDСтадии, Цвет, 6, Истина, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьСтадиюКанбана --url %url% --title %title% --stage %stage% --color %color% --prevstage %prevstage% --admin %admin% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720816577.57757, + "finish": 1720816577.66624, + "duration": 0.0886678695678711, + "processing": 0.059006929397583, + "date_start": "2024-07-12T20:36:17+00:00", + "date_finish": "2024-07-12T20:36:17+00:00", + "operating_reset_at": 1720817177, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Kanban/_category_.json b/docs/ru/md/Bitrix24/Kanban/_category_.json index 1ce3d1eb5c..c198abbabc 100644 --- a/docs/ru/md/Bitrix24/Kanban/_category_.json +++ b/docs/ru/md/Bitrix24/Kanban/_category_.json @@ -1,4 +1,4 @@ { "label": "Канбан", -"position": "6" +"position": "7" } \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Message-management/Delete-message.md b/docs/ru/md/Bitrix24/Message-management/Delete-message.md new file mode 100644 index 0000000000..47aa353697 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Delete-message.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 4 +--- + +# Удалить сообщение + Удаляет сообщение в диалоге + + + +`Функция УдалитьСообщение(Знач URL, Знач IDСообщения, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDСообщения | --message | Строка, Число | ID сообщения для удаления | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.message.delete](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12119) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.УдалитьСообщение(URL, IDСообщения, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УдалитьСообщение --url %url% --message %message% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969167.77137, + "finish": 1720969167.82331, + "duration": 0.051936149597168, + "processing": 0.0215229988098145, + "date_start": "2024-07-14T14:59:27+00:00", + "date_finish": "2024-07-14T14:59:27+00:00", + "operating_reset_at": 1720969767, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Edit-message.md b/docs/ru/md/Bitrix24/Message-management/Edit-message.md new file mode 100644 index 0000000000..902cd83ad7 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Edit-message.md @@ -0,0 +1,76 @@ +--- +sidebar_position: 2 +--- + +# Изменить сообщение + Изменяет сообщение в диалоге + + + +`Функция ИзменитьСообщение(Знач URL, Знач IDСообщения, Знач Текст = "", Знач Вложения = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDСообщения | --message | Строка, Число | ID сообщения для изменения | + | Текст | --text | Строка | Новый текст сообщения | + | Вложения | --blocks | Массив из Структура | Новый массив блоков вложений | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.message.update](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12117) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Текст = "Новый текст сообщения"; + + Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Вложения = Новый Массив; + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка)); + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx", Файл)); + + Результат = OPI_Bitrix24.ИзменитьСообщение(URL, IDСообщения, Текст, Вложения, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьСообщение --url %url% --message %message% --text %text% --blocks %blocks% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969165.17314, + "finish": 1720969165.21621, + "duration": 0.0430619716644287, + "processing": 0.018265962600708, + "date_start": "2024-07-14T14:59:25+00:00", + "date_finish": "2024-07-14T14:59:25+00:00", + "operating_reset_at": 1720969765, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Get-file-block.md b/docs/ru/md/Bitrix24/Message-management/Get-file-block.md new file mode 100644 index 0000000000..ba67a794ba --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Get-file-block.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 9 +--- + +# Получить блок файла + Формирует блок файла для отправки в функции ОтправитьСообщение + + + +`Функция ПолучитьБлокФайла(Знач Наименование, Знач URL) Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | Наименование | --title | Строка | Наименование картинки | + | URL | --url | Строка | URL файла для отправки | + + + Возвращаемое значение: Структура - Блок с файлом + +
+ +:::tip +Блоки в документации API: [Ссылка](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867) +::: +
+ + + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьБлокФайла --title %title% --url %url% + +``` + + diff --git a/docs/ru/md/Bitrix24/Message-management/Get-picture-block.md b/docs/ru/md/Bitrix24/Message-management/Get-picture-block.md new file mode 100644 index 0000000000..8a17edd29a --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Get-picture-block.md @@ -0,0 +1,37 @@ +--- +sidebar_position: 8 +--- + +# Получить блок картинки + Формирует картинку для отправки в функции ОтправитьСообщение + + + +`Функция ПолучитьБлокКартинки(Знач Наименование, Знач URL) Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | Наименование | --title | Строка | Наименование картинки | + | URL | --url | Строка | URL картинки для отправки | + + + Возвращаемое значение: Структура - Блок с картинкой + +
+ +:::tip +Блоки в документации API: [Ссылка](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&CHAPTER_ID=07867) +::: +
+ + + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьБлокКартинки --title %title% --url %url% + +``` + + diff --git a/docs/ru/md/Bitrix24/Message-management/Mark-message-as-readed.md b/docs/ru/md/Bitrix24/Message-management/Mark-message-as-readed.md new file mode 100644 index 0000000000..0f6ad22225 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Mark-message-as-readed.md @@ -0,0 +1,73 @@ +--- +sidebar_position: 6 +--- + +# Отметить сообщение как прочитанное + Отмечает выбранное сообщение и все сообщения до него как прочитанные + + + +`Функция ОтметитьСообщениеКакПрочитанное(Знач URL, Знач IDЧата, Знач IDСообщения, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | IDСообщения | --message | Строка, Число | ID последнего прочитанного сообщения | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.read](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12053) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDЧата, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDПользователя, IDСообщения,Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтметитьСообщениеКакПрочитанное --url %url% --chat %chat% --message %message% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "dialogId": 10, + "chatId": 10, + "lastId": 5262, + "counter": 0 + }, + "time": { + "start": 1720969157.61149, + "finish": 1720969157.65659, + "duration": 0.0451040267944336, + "processing": 0.0171201229095459, + "date_start": "2024-07-14T14:59:17+00:00", + "date_finish": "2024-07-14T14:59:17+00:00", + "operating_reset_at": 1720969757, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Mark-message-as-unreaded.md b/docs/ru/md/Bitrix24/Message-management/Mark-message-as-unreaded.md new file mode 100644 index 0000000000..2b31c39196 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Mark-message-as-unreaded.md @@ -0,0 +1,68 @@ +--- +sidebar_position: 7 +--- + +# Отметить сообщение как непрочитанное + Отмечает выбранное сообщение и все сообщения после него как непрочитанные + + + +`Функция ОтметитьСообщениеКакНепрочитанное(Знач URL, Знач IDЧата, Знач IDСообщения, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | IDСообщения | --message | Строка, Число | ID послднего непрочитанного сообщения | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.dialog.unread](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12055) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, IDЧата, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.ОтметитьСообщениеКакНепрочитанное(URL, IDПользователя, IDСообщения, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтметитьСообщениеКакНепрочитанное --url %url% --chat %chat% --message %message% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969158.8803, + "finish": 1720969158.91584, + "duration": 0.035538911819458, + "processing": 0.0112378597259521, + "date_start": "2024-07-14T14:59:18+00:00", + "date_finish": "2024-07-14T14:59:18+00:00", + "operating_reset_at": 1720969758, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Send-file.md b/docs/ru/md/Bitrix24/Message-management/Send-file.md new file mode 100644 index 0000000000..d1911786cf --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Send-file.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 5 +--- + +# Отправить файл + Отправляет файл диска в чат по ID + + + +`Функция ОтправитьФайл(Знач URL, Знач IDЧата, Знач IDФайла, Знач Описание = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата | + | IDФайла | --fileid | Строка, Число | ID файла, загруженного при помощи ЗагрузитьФайлВКаталог | + | Описание | --description | Строка | Описание файла | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.disk.file.commit](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11485) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = ПараметрыФункции["Bitrix24_HookChatID"]; + Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу + Описание = "Очень важный файл"; + + Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата); + IDКаталога = Каталог["result"]["ID"]; + + ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога); + IDФайла = ЗагруженныйФайл["result"]["ID"]; + + Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЧата = ПараметрыФункции["Bitrix24_ChatID"]; + + Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен); + IDКаталога = Каталог["result"]["ID"]; + + ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога, Токен); + IDФайла = ЗагруженныйФайл["result"]["ID"]; + + Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтправитьФайл --url %url% --chat %chat% --fileid %fileid% --description %description% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "FILES": { + "upload3254": { + "id": 3254, + "chatId": 254, + "date": {}, + "type": "file", + "name": "Важный документ.docx", + "extension": "docx", + "size": 24071, + "image": false, + "status": "done", + "progress": 100, + "authorId": 1, + "authorName": "Антон Титовец", + "urlPreview": "", + "urlShow": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "urlDownload": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "viewerAttrs": { + "viewer": null, + "viewerType": "cloud-document", + "src": "/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=3254&fileName=%D0%92%D0%B0%D0%B6%D0%BD%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82.docx", + "viewerTypeClass": "BX.Messenger.Integration.Viewer.OnlyOfficeChatItem", + "viewerSeparateItem": true, + "viewerExtension": "im.integration.viewer", + "objectId": "3254", + "imChatId": 254, + "title": "Важный документ.docx", + "actions": "[{\"type\":\"download\"},{\"type\":\"copyToMe\",\"text\":\"Сохранить на Битрикс24 Диск\",\"action\":\"BXIM.disk.saveToDiskAction\",\"params\":{\"fileId\":\"3254\"},\"extension\":\"disk.viewer.actions\",\"buttonIconClass\":\"ui-btn-icon-cloud\"}]" + } + } + }, + "DISK_ID": [ + "3254" + ], + "FILE_MODELS": { + "upload3254": { + "id": 3254, + "name": "Важный документ.docx", + "createTime": {}, + "updateTime": {}, + "deleteTime": null, + "code": null, + "xmlId": null, + "storageId": 6, + "realObjectId": 3254, + "parentId": 3250, + "deletedType": 0, + "createdBy": "1", + "updatedBy": "1", + "deletedBy": "0", + "typeFile": 4, + "globalContentVersion": 2, + "fileId": 2330, + "size": 24071, + "etag": "1179305ea90d0b0fef106e1163deaeb8", + "links": { + "download": "/bitrix/services/main/ajax.php?action=disk.file.download&SITE_ID=s1&fileId=3254", + "showInGrid": "/bitrix/tools/disk/focus.php?objectId=3254&action=showObjectInGrid&ncc=1" + } + } + }, + "MESSAGE_ID": 5346 + }, + "time": { + "start": 1720969175.0006, + "finish": 1720969175.09084, + "duration": 0.0902431011199951, + "processing": 0.0652461051940918, + "date_start": "2024-07-14T14:59:35+00:00", + "date_finish": "2024-07-14T14:59:35+00:00", + "operating_reset_at": 1720969775, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Send-message.md b/docs/ru/md/Bitrix24/Message-management/Send-message.md new file mode 100644 index 0000000000..077b1e1999 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Send-message.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 1 +--- + +# Отправить сообщение + Отправляет сообщение в диалог + + + +`Функция ОтправитьСообщение(Знач URL, Знач IDЧата, Знач Текст, Знач Вложения = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЧата | --chat | Строка, Число | ID чата (chatXXX) или пользователя (XXX) для диалога | + | Текст | --text | Строка | Текст сообщения | + | Вложения | --blocks | Массив из Структура | Массив блоков вложений | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.message.add](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12115) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЧата = "chat" + ПараметрыФункции["Bitrix24_HookChatID"]; + Текст = "Текст сообщения"; + Картинка = "https://raw.githubusercontent.com/Bayselonarrend/OpenIntegrations/main/service/test_data/picture.jpg"; + Файл = "https://github.com/Bayselonarrend/OpenIntegrations/raw/main/service/test_data/document.docx"; + + Вложения = Новый Массив; + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокКартинки("Картинка1", Картинка)); + Вложения.Добавить(OPI_Bitrix24.ПолучитьБлокФайла("Файл1.docx", Файл)); + + Результат = OPI_Bitrix24.ОтправитьСообщение(URL, IDЧата, Текст, Вложения); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDПользователя = 10; + + Результат = OPI_Bitrix24.ОтправитьСообщение(URL, IDПользователя, Текст, , Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ОтправитьСообщение --url %url% --chat %chat% --text %text% --blocks %blocks% --token %token% + +``` + +```json title="Результат" +{ + "result": 5342, + "time": { + "start": 1720969163.89343, + "finish": 1720969163.95538, + "duration": 0.061945915222168, + "processing": 0.0366020202636719, + "date_start": "2024-07-14T14:59:23+00:00", + "date_finish": "2024-07-14T14:59:23+00:00", + "operating_reset_at": 1720969763, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/Set-message-reaction.md b/docs/ru/md/Bitrix24/Message-management/Set-message-reaction.md new file mode 100644 index 0000000000..9c6bbc00a2 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/Set-message-reaction.md @@ -0,0 +1,65 @@ +--- +sidebar_position: 3 +--- + +# Установить реакцию на сообщение + Устанавливает или снимает реакцию на сообщение + + + +`Функция УстановитьРеакциюНаСообщение(Знач URL, Знач IDСообщения, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDСообщения | --message | Строка, Число | ID сообщения | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [im.message.like](https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=93&LESSON_ID=12121) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDСообщения = ПараметрыФункции["Bitrix24_ChatMessageID"]; + + Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDСообщения = ПараметрыФункции["Bitrix24_UserMessageID"]; + + Результат = OPI_Bitrix24.УстановитьРеакциюНаСообщение(URL, IDСообщения, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УстановитьРеакциюНаСообщение --url %url% --message %message% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720969166.51361, + "finish": 1720969166.55322, + "duration": 0.0396139621734619, + "processing": 0.0151541233062744, + "date_start": "2024-07-14T14:59:26+00:00", + "date_finish": "2024-07-14T14:59:26+00:00", + "operating_reset_at": 1720969766, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Message-management/_category_.json b/docs/ru/md/Bitrix24/Message-management/_category_.json new file mode 100644 index 0000000000..5f94ed7867 --- /dev/null +++ b/docs/ru/md/Bitrix24/Message-management/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с сообщениями", +"position": "13" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/_category_.json b/docs/ru/md/Bitrix24/Storages-and-files-managment/_category_.json deleted file mode 100644 index e16be17d7e..0000000000 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ -"label": "Работа с диском и файлами", -"position": "7" -} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Create-storage-folder.md b/docs/ru/md/Bitrix24/Storages-managment/Create-storage-folder.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Create-storage-folder.md rename to docs/ru/md/Bitrix24/Storages-managment/Create-storage-folder.md index 2947b5dbef..a8bfb36719 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Create-storage-folder.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Create-storage-folder.md @@ -1,82 +1,85 @@ ---- -sidebar_position: 7 ---- - -# Создать каталог в хранилище - Создает пустой каталог в хранилище - - - -`Функция СоздатьКаталогВХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDХранилища | --storageid | Строка | Идентификатор хранилища | - | Наименование | --title | Строка | Имя каталога | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - IDХранилища = 3; - Наименование = "Новый каталог"; - Наименование2 = "Новый каталог 2"; - - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - - Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование2); - - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 СоздатьКаталогВХранилище --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --title %title% --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": { - "ID": 574, - "NAME": "Новый каталог", - "CODE": null, - "STORAGE_ID": "3", - "TYPE": "folder", - "REAL_OBJECT_ID": 574, - "PARENT_ID": "3", - "DELETED_TYPE": 0, - "CREATE_TIME": "2024-06-22T09:07:36+00:00", - "UPDATE_TIME": "2024-06-22T09:07:36+00:00", - "DELETE_TIME": null, - "CREATED_BY": "1", - "UPDATED_BY": "1", - "DELETED_BY": null, - "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/Новый каталог" - }, - "time": { - "start": 1719047256.22025, - "finish": 1719047256.27758, - "duration": 0.057330846786499, - "processing": 0.0276291370391846, - "date_start": "2024-06-22T09:07:36+00:00", - "date_finish": "2024-06-22T09:07:36+00:00", - "operating_reset_at": 1719047856, - "operating": 0 - } -} -``` +--- +sidebar_position: 6 +--- + +# Создать каталог в хранилище + Создает пустой каталог в хранилище + + + +`Функция СоздатьКаталогВХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDХранилища | --storageid | Строка | Идентификатор хранилища | + | Наименование | --title | Строка | Имя каталога | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.addfolder](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_addfolder.php) +::: +
+ + +```bsl title="Пример кода" + IDХранилища = 3; + Наименование = "Новый каталог"; + Наименование2 = "Новый каталог 2"; + + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + + Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование2); + + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.СоздатьКаталогВХранилище(URL, IDХранилища, Наименование, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 СоздатьКаталогВХранилище --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --title %title% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": { + "ID": 574, + "NAME": "Новый каталог", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "folder", + "REAL_OBJECT_ID": 574, + "PARENT_ID": "3", + "DELETED_TYPE": 0, + "CREATE_TIME": "2024-06-22T09:07:36+00:00", + "UPDATE_TIME": "2024-06-22T09:07:36+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": null, + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/path/Новый каталог" + }, + "time": { + "start": 1719047256.22025, + "finish": 1719047256.27758, + "duration": 0.057330846786499, + "processing": 0.0276291370391846, + "date_start": "2024-06-22T09:07:36+00:00", + "date_finish": "2024-06-22T09:07:36+00:00", + "operating_reset_at": 1719047856, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-app-sotrage.md b/docs/ru/md/Bitrix24/Storages-managment/Get-app-sotrage.md similarity index 89% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-app-sotrage.md rename to docs/ru/md/Bitrix24/Storages-managment/Get-app-sotrage.md index 4c83dfed5e..af5c25e2a3 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-app-sotrage.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Get-app-sotrage.md @@ -1,40 +1,43 @@ ---- -sidebar_position: 2 ---- - -# Получить хранилище приложения - Получает информацию о хранилище с которым может работать приложение для хранения своих данных - - - -`Функция ПолучитьХранилищеПриложения(Знач URL, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ПолучитьХранилищеПриложения(URL, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьХранилищеПриложения --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." - -``` - - +--- +sidebar_position: 2 +--- + +# Получить хранилище приложения + Получает информацию о хранилище с которым может работать приложение для хранения своих данных + + + +`Функция ПолучитьХранилищеПриложения(Знач URL, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.getforapp](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getforapp.php) +::: +
+ + +```bsl title="Пример кода" + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.ПолучитьХранилищеПриложения(URL, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьХранилищеПриложения --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." + +``` + + diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage-objects.md b/docs/ru/md/Bitrix24/Storages-managment/Get-storage-objects.md similarity index 96% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage-objects.md rename to docs/ru/md/Bitrix24/Storages-managment/Get-storage-objects.md index 88f9ba7b41..a741d237c9 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage-objects.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Get-storage-objects.md @@ -1,102 +1,105 @@ ---- -sidebar_position: 5 ---- - -# Получить содержимое хранилища - Получает список файлов и каталогов, находящихся в корне хранилища - - - -`Функция ПолучитьСодержимоеХранилища(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - IDХранилища = 3; - Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища); - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьСодержимоеХранилища --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": [ - { - "ID": "568", - "NAME": "Картинка2.jpg", - "CODE": null, - "STORAGE_ID": "3", - "TYPE": "file", - "PARENT_ID": "3", - "DELETED_TYPE": "0", - "GLOBAL_CONTENT_VERSION": "1", - "FILE_ID": "558", - "SIZE": "2114023", - "CREATE_TIME": "2024-06-22T09:07:30+00:00", - "UPDATE_TIME": "2024-06-22T09:07:30+00:00", - "DELETE_TIME": null, - "CREATED_BY": "1", - "UPDATED_BY": "1", - "DELETED_BY": "0", - "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTY4Jl89NnBxNndlcmpudjQwY0tHNnZhdVN2VHZ2TTYwSmFFSXA%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UWTRKbDg5Tm5CeE5uZGxjbXB1ZGpRd1kwdEhOblpoZFZOMlZIWjJUVFl3U21GRlNYQT18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.qSfz7Ap6RM8nwlRRrw4lqlYcNQoHQJMcdzSbvlLHw60%3D", - "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Картинка2.jpg" - }, - { - "ID": "570", - "NAME": "Картинка1.jpg", - "CODE": null, - "STORAGE_ID": "3", - "TYPE": "file", - "PARENT_ID": "3", - "DELETED_TYPE": "0", - "GLOBAL_CONTENT_VERSION": "1", - "FILE_ID": "560", - "SIZE": "805189", - "CREATE_TIME": "2024-06-22T09:07:32+00:00", - "UPDATE_TIME": "2024-06-22T09:07:32+00:00", - "DELETE_TIME": null, - "CREATED_BY": "1", - "UPDATED_BY": "1", - "DELETED_BY": "0", - "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTcwJl89SmpkOWlyMGpwS1N1TEI1aWxIWWxtU0JtTllsT1BoNVI%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UY3dKbDg5U21wa09XbHlNR3B3UzFOMVRFSTFhV3hJV1d4dFUwSnRUbGxzVDFCb05WST18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.X8XQ3FtYG30XrOGGxoO1p%2FXistiComyxQei37Xh%2B%2FIM%3D", - "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Картинка1.jpg" - } - ], - "total": 2, - "time": { - "start": 1719047253.42516, - "finish": 1719047253.47205, - "duration": 0.0468947887420654, - "processing": 0.016359806060791, - "date_start": "2024-06-22T09:07:33+00:00", - "date_finish": "2024-06-22T09:07:33+00:00", - "operating_reset_at": 1719047853, - "operating": 0 - } -} -``` +--- +sidebar_position: 5 +--- + +# Получить содержимое хранилища + Получает список файлов и каталогов, находящихся в корне хранилища + + + +`Функция ПолучитьСодержимоеХранилища(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.getchildren](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getchildren.php) +::: +
+ + +```bsl title="Пример кода" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + IDХранилища = 3; + Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища); + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.ПолучитьСодержимоеХранилища(URL, IDХранилища, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСодержимоеХранилища --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": [ + { + "ID": "568", + "NAME": "Картинка2.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "558", + "SIZE": "2114023", + "CREATE_TIME": "2024-06-22T09:07:30+00:00", + "UPDATE_TIME": "2024-06-22T09:07:30+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTY4Jl89NnBxNndlcmpudjQwY0tHNnZhdVN2VHZ2TTYwSmFFSXA%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UWTRKbDg5Tm5CeE5uZGxjbXB1ZGpRd1kwdEhOblpoZFZOMlZIWjJUVFl3U21GRlNYQT18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.qSfz7Ap6RM8nwlRRrw4lqlYcNQoHQJMcdzSbvlLHw60%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Картинка2.jpg" + }, + { + "ID": "570", + "NAME": "Картинка1.jpg", + "CODE": null, + "STORAGE_ID": "3", + "TYPE": "file", + "PARENT_ID": "3", + "DELETED_TYPE": "0", + "GLOBAL_CONTENT_VERSION": "1", + "FILE_ID": "560", + "SIZE": "805189", + "CREATE_TIME": "2024-06-22T09:07:32+00:00", + "UPDATE_TIME": "2024-06-22T09:07:32+00:00", + "DELETE_TIME": null, + "CREATED_BY": "1", + "UPDATED_BY": "1", + "DELETED_BY": "0", + "DOWNLOAD_URL": "https://b24-ar17wx.bitrix24.by/rest/download.json?auth=efa17666006e9f06006b12e400000001000007b2f26f9898812ad669fd7da83d478d1a&token=disk%7CaWQ9NTcwJl89SmpkOWlyMGpwS1N1TEI1aWxIWWxtU0JtTllsT1BoNVI%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5UY3dKbDg5U21wa09XbHlNR3B3UzFOMVRFSTFhV3hJV1d4dFUwSnRUbGxzVDFCb05WST18ZWZhMTc2NjYwMDZlOWYwNjAwNmIxMmU0MDAwMDAwMDEwMDAwMDdiMmYyNmY5ODk4ODEyYWQ2NjlmZDdkYTgzZDQ3OGQxYSI%3D.X8XQ3FtYG30XrOGGxoO1p%2FXistiComyxQei37Xh%2B%2FIM%3D", + "DETAIL_URL": "https://b24-ar17wx.bitrix24.by/docs/file/Картинка1.jpg" + } + ], + "total": 2, + "time": { + "start": 1719047253.42516, + "finish": 1719047253.47205, + "duration": 0.0468947887420654, + "processing": 0.016359806060791, + "date_start": "2024-06-22T09:07:33+00:00", + "date_finish": "2024-06-22T09:07:33+00:00", + "operating_reset_at": 1719047853, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage.md b/docs/ru/md/Bitrix24/Storages-managment/Get-storage.md similarity index 93% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage.md rename to docs/ru/md/Bitrix24/Storages-managment/Get-storage.md index d9678f8477..dad42de0fe 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storage.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Get-storage.md @@ -1,69 +1,72 @@ ---- -sidebar_position: 3 ---- - -# Получить хранилище - Получает информацию о хранилище по ID - - - -`Функция ПолучитьХранилище(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - IDХранилища = 3; - - Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища); - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьХранилище --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": { - "ID": "3", - "NAME": "Общий диск", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "common", - "ENTITY_ID": "shared_files_s1", - "ROOT_OBJECT_ID": "3" - }, - "time": { - "start": 1719047247.65416, - "finish": 1719047247.68963, - "duration": 0.0354659557342529, - "processing": 0.00417995452880859, - "date_start": "2024-06-22T09:07:27+00:00", - "date_finish": "2024-06-22T09:07:27+00:00", - "operating_reset_at": 1719047847, - "operating": 0 - } -} -``` +--- +sidebar_position: 3 +--- + +# Получить хранилище + Получает информацию о хранилище по ID + + + +`Функция ПолучитьХранилище(Знач URL, Знач IDХранилища, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.get](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_get.php) +::: +
+ + +```bsl title="Пример кода" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + IDХранилища = 3; + + Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища); + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.ПолучитьХранилище(URL, IDХранилища, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьХранилище --url "b24-ar17wx.bitrix24.by" --storageid %storageid% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": { + "ID": "3", + "NAME": "Общий диск", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "common", + "ENTITY_ID": "shared_files_s1", + "ROOT_OBJECT_ID": "3" + }, + "time": { + "start": 1719047247.65416, + "finish": 1719047247.68963, + "duration": 0.0354659557342529, + "processing": 0.00417995452880859, + "date_start": "2024-06-22T09:07:27+00:00", + "date_finish": "2024-06-22T09:07:27+00:00", + "operating_reset_at": 1719047847, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storages-list.md b/docs/ru/md/Bitrix24/Storages-managment/Get-storages-list.md similarity index 95% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storages-list.md rename to docs/ru/md/Bitrix24/Storages-managment/Get-storages-list.md index 6b2a623124..1d4f4126f3 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Get-storages-list.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Get-storages-list.md @@ -1,123 +1,126 @@ ---- -sidebar_position: 1 ---- - -# Получить список хранилищ - Получает список доступных хранилищ файлов - - - -`Функция ПолучитьСписокХранилищ(Знач URL, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -
- - - - -```bsl title="Пример кода" - URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; - Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL); - - - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - - Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьСписокХранилищ --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": [ - { - "ID": "3", - "NAME": "Общий диск", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "common", - "ENTITY_ID": "shared_files_s1", - "ROOT_OBJECT_ID": "3" - }, - { - "ID": "1", - "NAME": "Антон Титовец", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "1", - "ROOT_OBJECT_ID": "1" - }, - { - "ID": "16", - "NAME": "iscript13@gmail.com", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "10", - "ROOT_OBJECT_ID": "270" - }, - { - "ID": "4", - "NAME": "Payment Processing Customer Support", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "2", - "ROOT_OBJECT_ID": "4" - }, - { - "ID": "10", - "NAME": "CoPilot", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "4", - "ROOT_OBJECT_ID": "52" - }, - { - "ID": "12", - "NAME": "Поддержка Битрикс24", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "6", - "ROOT_OBJECT_ID": "70" - }, - { - "ID": "14", - "NAME": "Марта", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "user", - "ENTITY_ID": "8", - "ROOT_OBJECT_ID": "72" - } - ], - "total": 7, - "time": { - "start": 1718783911.64028, - "finish": 1718783911.69026, - "duration": 0.0499801635742188, - "processing": 0.00660109519958496, - "date_start": "2024-06-19T07:58:31+00:00", - "date_finish": "2024-06-19T07:58:31+00:00", - "operating_reset_at": 1718784511, - "operating": 0 - } -} -``` +--- +sidebar_position: 1 +--- + +# Получить список хранилищ + Получает список доступных хранилищ файлов + + + +`Функция ПолучитьСписокХранилищ(Знач URL, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.getlist](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getlist.php) +::: +
+ + +```bsl title="Пример кода" + URL = "https://b24-ar17wx.bitrix24.by/rest/1/4swokunb3tk7h7dt/"; + Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL); + + + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + + Результат = OPI_Bitrix24.ПолучитьСписокХранилищ(URL, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСписокХранилищ --url "b24-ar17wx.bitrix24.by" --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": [ + { + "ID": "3", + "NAME": "Общий диск", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "common", + "ENTITY_ID": "shared_files_s1", + "ROOT_OBJECT_ID": "3" + }, + { + "ID": "1", + "NAME": "Антон Титовец", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "1", + "ROOT_OBJECT_ID": "1" + }, + { + "ID": "16", + "NAME": "iscript13@gmail.com", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "10", + "ROOT_OBJECT_ID": "270" + }, + { + "ID": "4", + "NAME": "Payment Processing Customer Support", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "2", + "ROOT_OBJECT_ID": "4" + }, + { + "ID": "10", + "NAME": "CoPilot", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "4", + "ROOT_OBJECT_ID": "52" + }, + { + "ID": "12", + "NAME": "Поддержка Битрикс24", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "6", + "ROOT_OBJECT_ID": "70" + }, + { + "ID": "14", + "NAME": "Марта", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "user", + "ENTITY_ID": "8", + "ROOT_OBJECT_ID": "72" + } + ], + "total": 7, + "time": { + "start": 1718783911.64028, + "finish": 1718783911.69026, + "duration": 0.0499801635742188, + "processing": 0.00660109519958496, + "date_start": "2024-06-19T07:58:31+00:00", + "date_finish": "2024-06-19T07:58:31+00:00", + "operating_reset_at": 1718784511, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-storage.md b/docs/ru/md/Bitrix24/Storages-managment/Rename-storage.md similarity index 87% rename from docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-storage.md rename to docs/ru/md/Bitrix24/Storages-managment/Rename-storage.md index b326db2656..672932842a 100644 --- a/docs/ru/md/Bitrix24/Storages-and-files-managment/Rename-storage.md +++ b/docs/ru/md/Bitrix24/Storages-managment/Rename-storage.md @@ -1,66 +1,69 @@ ---- -sidebar_position: 4 ---- - -# Переименовать хранилище - Изменяет имя хранилища (только для хранилища приложения см. ПолучитьСписокХранилищПриложения) - - - -`Функция ПереименоватьХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт` - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | - | Наименование | --title | Строка | Новое наименование хранилища | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: HTTPОтвет - Переименовать хранилище - -
- - - - -```bsl title="Пример кода" - Наименование = "Новое имя хранилища"; - URL = "b24-ar17wx.bitrix24.by"; - Токен = "b9df7366006e9f06006b12e400000001000..."; - IDХранилища = "18"; - - Результат = OPI_Bitrix24.ПереименоватьХранилище(URL, IDХранилища, Наименование, Токен); -``` - - - -```sh title="Пример команды CLI" - - oint bitrix24 ПереименоватьХранилище --url "b24-ar17wx.bitrix24.by" --storageid "18" --title %title% --token "b9df7366006e9f06006b12e400000001000..." - -``` - -```json title="Результат" -{ - "result": { - "ID": "18", - "NAME": "Новое имя хранилища", - "CODE": null, - "MODULE_ID": "disk", - "ENTITY_TYPE": "restapp", - "ENTITY_ID": "2", - "ROOT_OBJECT_ID": "464" - }, - "time": { - "start": 1719047246.29499, - "finish": 1719047246.35783, - "duration": 0.062842845916748, - "processing": 0.0317339897155762, - "date_start": "2024-06-22T09:07:26+00:00", - "date_finish": "2024-06-22T09:07:26+00:00", - "operating_reset_at": 1719047846, - "operating": 0 - } -} -``` +--- +sidebar_position: 4 +--- + +# Переименовать хранилище + Изменяет имя хранилища (только для хранилища приложения см. ПолучитьСписокХранилищПриложения) + + + +`Функция ПереименоватьХранилище(Знач URL, Знач IDХранилища, Знач Наименование, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDХранилища | --storageid | Строка, Число | Идентификатор хранилища | + | Наименование | --title | Строка | Новое наименование хранилища | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [disk.storage.rename](https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_rename.php) +::: +
+ + +```bsl title="Пример кода" + Наименование = "Новое имя хранилища"; + URL = "b24-ar17wx.bitrix24.by"; + Токен = "b9df7366006e9f06006b12e400000001000..."; + IDХранилища = "18"; + + Результат = OPI_Bitrix24.ПереименоватьХранилище(URL, IDХранилища, Наименование, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПереименоватьХранилище --url "b24-ar17wx.bitrix24.by" --storageid "18" --title %title% --token "b9df7366006e9f06006b12e400000001000..." + +``` + +```json title="Результат" +{ + "result": { + "ID": "18", + "NAME": "Новое имя хранилища", + "CODE": null, + "MODULE_ID": "disk", + "ENTITY_TYPE": "restapp", + "ENTITY_ID": "2", + "ROOT_OBJECT_ID": "464" + }, + "time": { + "start": 1719047246.29499, + "finish": 1719047246.35783, + "duration": 0.062842845916748, + "processing": 0.0317339897155762, + "date_start": "2024-06-22T09:07:26+00:00", + "date_finish": "2024-06-22T09:07:26+00:00", + "operating_reset_at": 1719047846, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Storages-managment/_category_.json b/docs/ru/md/Bitrix24/Storages-managment/_category_.json new file mode 100644 index 0000000000..67a1ee0e86 --- /dev/null +++ b/docs/ru/md/Bitrix24/Storages-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с хранилищами", +"position": "9" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md new file mode 100644 index 0000000000..3fe1c007a6 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Add-tasks-checklist-element.md @@ -0,0 +1,71 @@ +--- +sidebar_position: 1 +--- + +# Добавить элемент чеклиста задачи + Добавляет новый элемент чеклиста задачи + + + +`Функция ДобавитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач Текст, Знач Выполнен = Ложь, Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | Текст | --text | Строка | Текст (заголовок) пункта чек листа | + | Выполнен | --complete | Булево | Отметить пункт как выполненный | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/add.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + + Текст = "Пункт чек-листа"; + + Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, Истина); + + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + + Результат = OPI_Bitrix24.ДобавитьЭлементЧеклистаЗадачи(URL, IDЗадачи, Текст, , Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ДобавитьЭлементЧеклистаЗадачи --url %url% --task %task% --text %text% --complete %complete% --token %token% + +``` + +```json title="Результат" +{ + "result": 96, + "time": { + "start": 1720816505.3041, + "finish": 1720816505.37014, + "duration": 0.0660440921783447, + "processing": 0.0380921363830566, + "date_start": "2024-07-12T20:35:05+00:00", + "date_finish": "2024-07-12T20:35:05+00:00", + "operating_reset_at": 1720817105, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md new file mode 100644 index 0000000000..824a1bc792 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Complete-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 6 +--- + +# Выполнить элемент чеклиста задачи + Помечает элемент чеклиста задачи как выполненный + + + +`Функция ВыполнитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | IDЭлемента | --element | Число, Строка | ID элемента | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.complete](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/complete.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ВыполнитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ВыполнитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720816509.8981, + "finish": 1720816509.94922, + "duration": 0.0511200428009033, + "processing": 0.0246191024780273, + "date_start": "2024-07-12T20:35:09+00:00", + "date_finish": "2024-07-12T20:35:09+00:00", + "operating_reset_at": 1720817109, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md new file mode 100644 index 0000000000..e0ede5275f --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Delete-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 3 +--- + +# Удалить элемент чеклиста задачи + Удаляет элемент из чеклиста задачи + + + +`Функция УдалитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | IDЭлемента | --element | Число, Строка | ID элемента для удаления | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/delete.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.УдалитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УдалитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720816512.25818, + "finish": 1720816512.30984, + "duration": 0.0516610145568848, + "processing": 0.0264489650726318, + "date_start": "2024-07-12T20:35:12+00:00", + "date_finish": "2024-07-12T20:35:12+00:00", + "operating_reset_at": 1720817112, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md new file mode 100644 index 0000000000..063e774367 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist-element.md @@ -0,0 +1,82 @@ +--- +sidebar_position: 5 +--- + +# Получить элемент чеклиста задачи + Получить элемент чеклиста задачи по ID + + + +`Функция ПолучитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | IDЭлемента | --element | Число, Строка | ID элемента для получения | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/get.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "ID": "96", + "TASK_ID": "632", + "PARENT_ID": "94", + "CREATED_BY": "1", + "TITLE": "Новый текст пункта чек-листа", + "SORT_INDEX": "1", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + }, + "time": { + "start": 1720816508.81324, + "finish": 1720816508.85536, + "duration": 0.0421209335327148, + "processing": 0.0174088478088379, + "date_start": "2024-07-12T20:35:08+00:00", + "date_finish": "2024-07-12T20:35:08+00:00", + "operating_reset_at": 1720817108, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md new file mode 100644 index 0000000000..6aba3200bb --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Get-tasks-checklist.md @@ -0,0 +1,95 @@ +--- +sidebar_position: 4 +--- + +# Получить чеклист задачи + Получает список элементов чеклиста задачи + + + +`Функция ПолучитьЧеклистЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/getlist.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + + Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + + Результат = OPI_Bitrix24.ПолучитьЧеклистЗадачи(URL, IDЗадачи, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьЧеклистЗадачи --url %url% --task %task% --token %token% + +``` + +```json title="Результат" +{ + "result": [ + { + "ID": "94", + "TASK_ID": "632", + "PARENT_ID": 0, + "CREATED_BY": "1", + "TITLE": "BX_CHECKLIST_1", + "SORT_INDEX": "0", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + }, + { + "ID": "96", + "TASK_ID": "632", + "PARENT_ID": "94", + "CREATED_BY": "1", + "TITLE": "Новый текст пункта чек-листа", + "SORT_INDEX": "1", + "IS_COMPLETE": "N", + "IS_IMPORTANT": "N", + "TOGGLED_BY": null, + "TOGGLED_DATE": "", + "MEMBERS": [], + "ATTACHMENTS": [] + } + ], + "time": { + "start": 1720816507.68937, + "finish": 1720816507.74166, + "duration": 0.0522880554199219, + "processing": 0.0231881141662598, + "date_start": "2024-07-12T20:35:07+00:00", + "date_finish": "2024-07-12T20:35:07+00:00", + "operating_reset_at": 1720817107, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md new file mode 100644 index 0000000000..30ba12aac7 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Renew-tasks-checklist-element.md @@ -0,0 +1,69 @@ +--- +sidebar_position: 7 +--- + +# Возобновить элемент чеклиста задачи + Снимает пометку элемента как выполненного + + + +`Функция ВозобновитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | IDЭлемента | --element | Число, Строка | ID элемента | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.renew](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/renew.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента); + + + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ВозобновитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ВозобновитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --token %token% + +``` + +```json title="Результат" +{ + "result": true, + "time": { + "start": 1720816511.09347, + "finish": 1720816511.14508, + "duration": 0.051609992980957, + "processing": 0.0250108242034912, + "date_start": "2024-07-12T20:35:11+00:00", + "date_finish": "2024-07-12T20:35:11+00:00", + "operating_reset_at": 1720817111, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md new file mode 100644 index 0000000000..37090d717e --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/Update-tasks-checklist-element.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 2 +--- + +# Изменить элемент чеклиста задачи + Изменяет текст элемента чеклиста задачи + + + +`Функция ИзменитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Текст, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Число, Строка | ID задачи | + | IDЭлемента | --element | Число, Строка | ID элемента чеклиста | + | Текст | --text | Строка | Текст (заголовок) пункта чек листа | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.checklistitem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/checklistitem/update.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_HookTaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_HookCheckElementID"]; + + Текст = "Новый текст пункта чек-листа"; + + Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗадачи = ПараметрыФункции["Bitrix24_TaskID"]; + IDЭлемента = ПараметрыФункции["Bitrix24_CheckElementID"]; + + Результат = OPI_Bitrix24.ИзменитьЭлементЧеклистаЗадачи(URL, IDЗадачи, IDЭлемента, Текст, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьЭлементЧеклистаЗадачи --url %url% --task %task% --element %element% --text %text% --token %token% + +``` + +```json title="Результат" +{ + "result": null, + "time": { + "start": 1720816506.52861, + "finish": 1720816506.58416, + "duration": 0.0555450916290283, + "processing": 0.027979850769043, + "date_start": "2024-07-12T20:35:06+00:00", + "date_finish": "2024-07-12T20:35:06+00:00", + "operating_reset_at": 1720817106, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-checklists-managment/_category_.json b/docs/ru/md/Bitrix24/Tasks-checklists-managment/_category_.json new file mode 100644 index 0000000000..ce756bd819 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-checklists-managment/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Работа с чеклистами задач", +"position": "5" +} \ No newline at end of file diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md b/docs/ru/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md index ec4125f0d5..08ebb03337 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Add-task-to-favorites.md @@ -20,7 +20,10 @@ sidebar_position: 17
- +:::tip +Метод в документации API: [tasks.task.favorite.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_add.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Approve-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Approve-task.md index ca3e7002d8..94fb60521c 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Approve-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Approve-task.md @@ -20,7 +20,10 @@ sidebar_position: 7
- +:::tip +Метод в документации API: [tasks.task.approve](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_approve.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md b/docs/ru/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md index 30ee5ffecf..dc09b0e537 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Attach-file-to-topic.md @@ -21,7 +21,10 @@ sidebar_position: 6
- +:::tip +Метод в документации API: [tasks.task.files.attach](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_files_attach.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Check-task-accesses.md b/docs/ru/md/Bitrix24/Tasks-managment/Check-task-accesses.md index 27cd88ee08..5323a9ec36 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Check-task-accesses.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Check-task-accesses.md @@ -21,7 +21,10 @@ sidebar_position: 20
- +:::tip +Метод в документации API: [tasks.task.getaccess](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getaccess.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Complete-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Complete-task.md index 24ac2861f1..ac38e3a5ec 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Complete-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Complete-task.md @@ -20,7 +20,10 @@ sidebar_position: 9
- +:::tip +Метод в документации API: [tasks.task.complete](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_complete.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Create-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Create-task.md index 6547a2d6cf..ed510bec79 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Create-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Create-task.md @@ -20,7 +20,10 @@ sidebar_position: 3
- +:::tip +Метод в документации API: [tasks.task.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_add.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md b/docs/ru/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md index 7366488832..c42ffc92a7 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Create-tasks-dependencies.md @@ -22,7 +22,10 @@ sidebar_position: 23
- +:::tip +Метод в документации API: [task.dependence.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_add.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Defer-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Defer-task.md index e74247fa99..35a66b5d5c 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Defer-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Defer-task.md @@ -20,7 +20,10 @@ sidebar_position: 11
- +:::tip +Метод в документации API: [tasks.task.defer](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_defer.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Delegate-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Delegate-task.md index 73637d71a6..b0ece1b3e4 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Delegate-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Delegate-task.md @@ -21,7 +21,10 @@ sidebar_position: 16
- +:::tip +Метод в документации API: [tasks.task.delegate](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delegate.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Delete-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Delete-task.md index ad96f4cff8..d8ecd5a77f 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Delete-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Delete-task.md @@ -20,7 +20,10 @@ sidebar_position: 5
- +:::tip +Метод в документации API: [tasks.task.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_delete.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md b/docs/ru/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md index f80270fc95..6bd2a2e50b 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Delete-tasks-dependencies.md @@ -22,7 +22,10 @@ sidebar_position: 24
- +:::tip +Метод в документации API: [task.dependence.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/dependence/task_dependence_delete.php) +::: +
@@ -34,4 +37,18 @@ sidebar_position: 24 ``` - +```json title="Результат" +{ + "result": [], + "time": { + "start": 1720816479.3837, + "finish": 1720816479.41872, + "duration": 0.0350160598754883, + "processing": 0.00787091255187988, + "date_start": "2024-07-12T20:34:39+00:00", + "date_finish": "2024-07-12T20:34:39+00:00", + "operating_reset_at": 1720817079, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Disapprove-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Disapprove-task.md index 0af5ce5c74..39779f3cd6 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Disapprove-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Disapprove-task.md @@ -20,7 +20,10 @@ sidebar_position: 8
- +:::tip +Метод в документации API: [tasks.task.disapprove](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_disapprove.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-comments-filter-structure.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-comments-filter-structure.md deleted file mode 100644 index 2ab7d77396..0000000000 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-comments-filter-structure.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 22 ---- - -# Получить структуру фильтра комментариев - Возвращает структуру полей для фильтрации комментариев в методе ПолучитьСписокКомментариевЗадачи - - -*Функция ПолучитьСтруктуруФильтраКомментариев(Знач Пустая = Ложь) Экспорт* - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | Пустая | --empty | Булево | Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей | - - - Возвращаемое значение: Структура Из КлючИЗначение - Структура полей - -```bsl title="Пример кода" - - - -``` - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьСтруктуруФильтраКомментариев --empty %empty% - -``` - - -```json title="Результат" - - - -``` diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-daily-plan.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-daily-plan.md new file mode 100644 index 0000000000..2c85c19f48 --- /dev/null +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-daily-plan.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 25 +--- + +# Получить план задач на день + Получает план задач на день текущего пользователя + + + +`Функция ПолучитьПланЗадачНаДень(Знач URL, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.planner.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/planner/getlist.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + + Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьПланЗадачНаДень(URL, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьПланЗадачНаДень --url %url% --token %token% + +``` + +```json title="Результат" +{ + "result": [], + "time": { + "start": 1720816513.42336, + "finish": 1720816513.45192, + "duration": 0.0285580158233643, + "processing": 0.000265121459960938, + "date_start": "2024-07-12T20:35:13+00:00", + "date_finish": "2024-07-12T20:35:13+00:00", + "operating_reset_at": 1720817113, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-comments-list.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-task-comments-list.md deleted file mode 100644 index 0195ad0d54..0000000000 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-comments-list.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 20 ---- - -# Получить список комментариев задачи - Полчает список комментариев пользователей к задаче по ID - - -*Функция ПолучитьСписокКомментариевЗадачи(Знач URL, Знач IDЗадачи, Знач Фильтр = "", Знач Токен = "") Экспорт* - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | - | IDЗадачи | --task | Число,Строка | ID задачи | - | Фильтр | --filter | Структура из КлючИЗначение | Структура отбора (см. ПолучитьСтруктуруФильтраКомментариев) | - | Токен | --token | Строка | Токен авторизации, если используется не вебхук | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 - -```bsl title="Пример кода" - - - -``` - -```sh title="Пример команды CLI" - - oint bitrix24 ПолучитьСписокКомментариевЗадачи --url %url% --task %task% --filter %filter% --token %token% - -``` - - -```json title="Результат" - - - -``` diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md index 838a36afd2..b7a1a5b5e7 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-task-fields-structure.md @@ -1,5 +1,5 @@ --- -sidebar_position: 25 +sidebar_position: 26 --- # Получить структуру задачи @@ -19,7 +19,10 @@ sidebar_position: 25
- +:::tip +Метод в документации API: [tasks.task.getFields](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_getFields.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-history.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-task-history.md index c310e91bcb..4d5ee98c03 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-task-history.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-task-history.md @@ -20,7 +20,10 @@ sidebar_position: 19
- +:::tip +Метод в документации API: [tasks.task.history.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_history_list.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-task.md index 73a5bfbae8..1944a5115b 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-task.md @@ -20,7 +20,10 @@ sidebar_position: 1
- +:::tip +Метод в документации API: [tasks.task.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_get.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md index 4576ff8873..3755056e03 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-filter-structure.md @@ -1,5 +1,5 @@ --- -sidebar_position: 26 +sidebar_position: 27 --- # Получить структуру фильтра задач diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-list.md b/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-list.md index 31a06b7059..2a500110cb 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-list.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Get-tasks-list.md @@ -21,7 +21,10 @@ sidebar_position: 2
- +:::tip +Метод в документации API: [tasks.task.list](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_list.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Mute-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Mute-task.md index 18f1a73f2a..ba32b0d01d 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Mute-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Mute-task.md @@ -20,7 +20,10 @@ sidebar_position: 21
- +:::tip +Метод в документации API: [tasks.task.mute](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Pause-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Pause-task.md index addcc2305d..61bcdf8bd3 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Pause-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Pause-task.md @@ -20,7 +20,10 @@ sidebar_position: 12
- +:::tip +Метод в документации API: [tasks.task.pause](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_pause.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md b/docs/ru/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md index 739927f80b..154c344211 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Remove-task-from-favorites.md @@ -20,7 +20,10 @@ sidebar_position: 18
- +:::tip +Метод в документации API: [tasks.task.favorite.remove](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_favorite_remove.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Renew-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Renew-task.md index 5bca58d8d7..44bb753a12 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Renew-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Renew-task.md @@ -20,7 +20,10 @@ sidebar_position: 10
- +:::tip +Метод в документации API: [tasks.task.renew](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_renew.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Start-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Start-task.md index a0447357cc..f54b07d845 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Start-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Start-task.md @@ -20,7 +20,10 @@ sidebar_position: 13
- +:::tip +Метод в документации API: [tasks.task.start](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_start.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Start-watching-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Start-watching-task.md index 5f761bd7e8..4a9e52e628 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Start-watching-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Start-watching-task.md @@ -20,7 +20,10 @@ sidebar_position: 14
- +:::tip +Метод в документации API: [tasks.task.startwatch](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_startwatch.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Stop-watching-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Stop-watching-task.md index 0e90aa66fc..25d2929a97 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Stop-watching-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Stop-watching-task.md @@ -20,7 +20,10 @@ sidebar_position: 15
- +:::tip +Метод в документации API: [tasks.task.stopwatch](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_stopwatch.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Unmute-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Unmute-task.md index 2363802c36..088b32abbb 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Unmute-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Unmute-task.md @@ -20,7 +20,10 @@ sidebar_position: 22
- +:::tip +Метод в документации API: [tasks.task.unmute](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/mute_unmute.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Tasks-managment/Update-task.md b/docs/ru/md/Bitrix24/Tasks-managment/Update-task.md index e8316a6ef6..c9d73b8a7b 100644 --- a/docs/ru/md/Bitrix24/Tasks-managment/Update-task.md +++ b/docs/ru/md/Bitrix24/Tasks-managment/Update-task.md @@ -21,7 +21,10 @@ sidebar_position: 4
- +:::tip +Метод в документации API: [tasks.task.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_update.php) +::: +
```bsl title="Пример кода" diff --git a/docs/ru/md/Bitrix24/Timekeeping/Add-task-time-accounting.md b/docs/ru/md/Bitrix24/Timekeeping/Add-task-time-accounting.md new file mode 100644 index 0000000000..f0ec3401e8 --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/Add-task-time-accounting.md @@ -0,0 +1,82 @@ +--- +sidebar_position: 1 +--- + +# Добавить трудозатраты задачи + Добавляет информацию о затраченном времени пользователя в задачу + + + +`Функция ДобавитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач Время, Знач IDПользователя = "", Знач Текст = "", Знач ДатаУстановки = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Строка, Число | ID задачи для добавления затрат | + | Время | --amount | Строка, Число | Затраченное время в секундах | + | IDПользователя | --user | Строка, Число | ID пользователя, затратившего время | + | Текст | --text | Строка | Текст комментария трудозатраты | + | ДатаУстановки | --date | Строка | Дата установки трудозатрат | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.elapseditem.add](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/add.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + + Время = 3600; + + Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL, IDЗадачи, Время); + + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Текст = "Трудозатраты по обработке"; + IDПользователя = 10; + Время = 7200; + ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1); + + Результат = OPI_Bitrix24.ДобавитьТрудозатратыЗадачи(URL + , IDЗадачи + , Время + , IDПользователя + , Текст + , ДатаУстановки + , Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ДобавитьТрудозатратыЗадачи --url %url% --task %task% --amount %amount% --user %user% --text %text% --date %date% --token %token% + +``` + +```json title="Результат" +{ + "result": 42, + "time": { + "start": 1720816582.16849, + "finish": 1720816582.22964, + "duration": 0.0611569881439209, + "processing": 0.0315871238708496, + "date_start": "2024-07-12T20:36:22+00:00", + "date_finish": "2024-07-12T20:36:22+00:00", + "operating_reset_at": 1720817182, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md b/docs/ru/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md new file mode 100644 index 0000000000..1bd0496d96 --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/Delete-task-time-accounting.md @@ -0,0 +1,67 @@ +--- +sidebar_position: 2 +--- + +# Удалить трудозатраты задачи + Удаляет запись о трудозатратах из задачи + + + +`Функция УдалитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач IDЗаписи, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Строка, Число | ID задачи для добавления затрат | + | IDЗаписи | --record | Строка, Число | ID записи о трудозатратах | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.elapseditem.delete](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/delete.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Результат = OPI_Bitrix24.УдалитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 УдалитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --token %token% + +``` + +```json title="Результат" +{ + "result": null, + "time": { + "start": 1720816586.91135, + "finish": 1720816586.96255, + "duration": 0.0512039661407471, + "processing": 0.0238111019134522, + "date_start": "2024-07-12T20:36:26+00:00", + "date_finish": "2024-07-12T20:36:26+00:00", + "operating_reset_at": 1720817186, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md b/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md new file mode 100644 index 0000000000..68477ce0ac --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting-list.md @@ -0,0 +1,90 @@ +--- +sidebar_position: 3 +--- + +# Получить список трудозатрат задачи + Получает список записей о трудозатратах задачи + + + +`Функция ПолучитьСписокТрудозатратЗадачи(Знач URL, Знач IDЗадачи, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Строка, Число | ID задачи | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.elapseditem.getlist](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/getlist.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + + Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + + Результат = OPI_Bitrix24.ПолучитьСписокТрудозатратЗадачи(URL, IDЗадачи, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьСписокТрудозатратЗадачи --url %url% --task %task% --token %token% + +``` + +```json title="Результат" +{ + "result": [ + { + "ID": "40", + "TASK_ID": "638", + "USER_ID": "1", + "COMMENT_TEXT": "", + "SECONDS": "3600", + "MINUTES": "60", + "SOURCE": "2", + "CREATED_DATE": "2024-07-12T20:36:21+00:00", + "DATE_START": "2024-07-12T20:36:21+00:00", + "DATE_STOP": "2024-07-12T20:36:21+00:00" + }, + { + "ID": "42", + "TASK_ID": "638", + "USER_ID": "10", + "COMMENT_TEXT": "Трудозатраты по обработке", + "SECONDS": "7200", + "MINUTES": "120", + "SOURCE": "2", + "CREATED_DATE": "2024-06-12T17:36:21+00:00", + "DATE_START": "2024-07-12T20:36:22+00:00", + "DATE_STOP": "2024-07-12T20:36:22+00:00" + } + ], + "total": 2, + "time": { + "start": 1720816584.48831, + "finish": 1720816584.5364, + "duration": 0.0480880737304688, + "processing": 0.0219790935516357, + "date_start": "2024-07-12T20:36:24+00:00", + "date_finish": "2024-07-12T20:36:24+00:00", + "operating_reset_at": 1720817184, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting.md b/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting.md new file mode 100644 index 0000000000..907e9656e3 --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/Get-task-time-accounting.md @@ -0,0 +1,78 @@ +--- +sidebar_position: 4 +--- + +# Получить трудозатраты задачи + Получает информацию о записи трудозатрат задачи по ID + + + +`Функция ПолучитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач IDЗаписи, Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Строка, Число | ID задачи | + | IDЗаписи | --record | Строка, Число | ID записи о трудозатратах | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.elapseditem.get](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/get.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Результат = OPI_Bitrix24.ПолучитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ПолучитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --token %token% + +``` + +```json title="Результат" +{ + "result": { + "ID": "42", + "TASK_ID": "638", + "USER_ID": "10", + "COMMENT_TEXT": "Трудозатраты по обработке", + "SECONDS": "7200", + "MINUTES": "120", + "SOURCE": "2", + "CREATED_DATE": "2024-06-12T17:36:21+00:00", + "DATE_START": "2024-07-12T20:36:22+00:00", + "DATE_STOP": "2024-07-12T20:36:22+00:00" + }, + "time": { + "start": 1720816583.31997, + "finish": 1720816583.36716, + "duration": 0.0471861362457275, + "processing": 0.0187540054321289, + "date_start": "2024-07-12T20:36:23+00:00", + "date_finish": "2024-07-12T20:36:23+00:00", + "operating_reset_at": 1720817183, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Timekeeping/Update-task-time-accounting.md b/docs/ru/md/Bitrix24/Timekeeping/Update-task-time-accounting.md new file mode 100644 index 0000000000..ecf92e656a --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/Update-task-time-accounting.md @@ -0,0 +1,83 @@ +--- +sidebar_position: 5 +--- + +# Изменить трудозатраты задачи + Изменяет данные записи о трудозатратах задачи + + + +`Функция ИзменитьТрудозатратыЗадачи(Знач URL, Знач IDЗадачи, Знач IDЗаписи, Знач Время, Знач Текст = "", Знач ДатаУстановки = "", Знач Токен = "") Экспорт` + + | Параметр | CLI опция | Тип | Назначение | + |-|-|-|-| + | URL | --url | Строка | URL внешнего вебхука или адрес Bitrix24 при использовании токена | + | IDЗадачи | --task | Строка, Число | ID задачи | + | IDЗаписи | --record | Строка, Число | ID записи о трудозатратах | + | Время | --amount | Строка, Число | Затраченное время в секундах | + | Текст | --text | Строка | Текст комментария трудозатраты | + | ДатаУстановки | --date | Строка | Дата установки трудозатрат | + | Токен | --token | Строка | Токен авторизации, если используется не вебхук | + + + Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 + +
+ +:::tip +Метод в документации API: [task.elapseditem.update](https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/update.php) +::: +
+ + +```bsl title="Пример кода" + URL = ПараметрыФункции["Bitrix24_URL"]; + IDЗадачи = ПараметрыФункции["Bitrix24_ElapsedTaskID"]; + IDЗаписи = ПараметрыФункции["Bitrix24_HookTimeID"]; + + Текст = "Забытый в прошлый раз текст"; + Время = 4800; + + Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL, IDЗадачи, IDЗаписи, Время, Текст); + + + URL = ПараметрыФункции["Bitrix24_Domain"]; + Токен = ПараметрыФункции["Bitrix24_Token"]; + IDЗаписи = ПараметрыФункции["Bitrix24_TimeID"]; + + Текст = "Новые трудозатраты по обработке"; + Время = 4800; + ДатаУстановки = ДобавитьМесяц(OPI_Инструменты.ПолучитьТекущуюДату(), -1); + + Результат = OPI_Bitrix24.ИзменитьТрудозатратыЗадачи(URL + , IDЗадачи + , IDЗаписи + , Время + , Текст + , ДатаУстановки + , Токен); +``` + + + +```sh title="Пример команды CLI" + + oint bitrix24 ИзменитьТрудозатратыЗадачи --url %url% --task %task% --record %record% --amount %amount% --text %text% --date %date% --token %token% + +``` + +```json title="Результат" +{ + "result": null, + "time": { + "start": 1720816585.70407, + "finish": 1720816585.77088, + "duration": 0.0668020248413086, + "processing": 0.0276288986206055, + "date_start": "2024-07-12T20:36:25+00:00", + "date_finish": "2024-07-12T20:36:25+00:00", + "operating_reset_at": 1720817185, + "operating": 0 + } +} +``` diff --git a/docs/ru/md/Bitrix24/Timekeeping/_category_.json b/docs/ru/md/Bitrix24/Timekeeping/_category_.json new file mode 100644 index 0000000000..03cdb8aa1d --- /dev/null +++ b/docs/ru/md/Bitrix24/Timekeeping/_category_.json @@ -0,0 +1,4 @@ +{ +"label": "Учет рабочего времени", +"position": "8" +} \ No newline at end of file diff --git a/docs/ru/md/Instructions/Airtable.md b/docs/ru/md/Instructions/Airtable.md deleted file mode 100644 index a29921a60f..0000000000 --- a/docs/ru/md/Instructions/Airtable.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -id: Airtable -sidebar_class_name: Airtable ---- - - - -# Airtable - -Этот раздел посвящен библиотеке для работы с Airtable API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -1. Авторизуйтесь в Airtable и перейдите **[на страницу создания персональных токенов](https://airtable.com/create/tokens)**, нажмите **Create new token** - -![BF](../../static/img/Docs/Airtable/1.png) - -2. Введите название для нового токена, выберите из перечня необходимые **Scopes** (разрешения) и **Access** (базы и рабочие пространства, к которым у токена будет доступ) - -![BF](../../static/img/Docs/Airtable/2.png) - -3. Скопируйте новый **токен** - -![BF](../../static/img/Docs/Airtable/3.png) diff --git a/docs/ru/md/Instructions/Bitrix24.md b/docs/ru/md/Instructions/Bitrix24.md deleted file mode 100644 index 5d411cfd91..0000000000 --- a/docs/ru/md/Instructions/Bitrix24.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: Bitrix24 -sidebar_class_name: Bitrix24 ---- - - - -# Bitrix24 - -Этот раздел посвящен библиотеке для работы с Bitrix24 API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -Работать и Bitrix24 через API можно двумя способами: через **Webhook** и через **локальное приложение**. Для обоих вариантов необходимо: - -1. Перейти в подраздел **Разработчикам** в разделе **Приложения** боковой панели - -![BF](../../static/img/Docs/Bitrix24/1.png) - -2. Выбрать пункт **Другое** - -![BF](../../static/img/Docs/Bitrix24/2.png) - -

- -### Для работы через Webhook - -1. Выберите пункт **Входящий вебхук** - -![BF](../../static/img/Docs/Bitrix24/3.png) - -2. Заполните необходимые разрешения в **Настройках прав** и сохраните URL вебхука. Он будет использоваться для выполнения методов библиотеки как параметр **URL**. Необязательный параметр **Токен** в данном случае будет всегда оставаться пустым - -![BF](../../static/img/Docs/Bitrix24/4.png) - -

- -## Для работы через Локальное приложение - -1. Выберите пункт **Локальное приложение** - -![BF](../../static/img/Docs/Bitrix24/5.png) - -2. Выберите путь обработчика (если приложение не подразумевает авторизацию других пользователей, но только управление Bitrix через один аккаунт администратора, то можно выбрать любой адрес, например https://localhost), поставьте галочку **Использует только API** (если необходим только функционал вызова методов библиотеки) и заполните необходимые права - -![BF](../../static/img/Docs/Bitrix24/6.png) - -3. Сохраните **ключ** и **код** приложения - -![BF](../../static/img/Docs/Bitrix24/7.png) - -4. При помощи ключа приложения вызовите функцию **ПолучитьСсылкуАвторизацииПриложения** и перейдите по полученной ссылке в браузере. После авторизации, скопируйте полученный код из адресной строки (или получите его на обработчик, адрес которого был указан в пункте 2) - -![BF](../../static/img/Docs/Bitrix24/8.png) - -5. Передайте полученный код, вместе с ключем и секретом приложения, в функцию **ПолучитьТокен**. Сохраните полученные **access** и **refresh токены** - -6. Время жизни токенов ограничено. Для получение нового токена можно воспользоваться функцией **ОбновитьТокен**, передав тутда refresh токен, ключ и секрет приложения. При обновлении создается не только новый access токен, но и refresh токен тоже - - - - diff --git a/docs/ru/md/Instructions/Dropbox.md b/docs/ru/md/Instructions/Dropbox.md deleted file mode 100644 index 942a258035..0000000000 --- a/docs/ru/md/Instructions/Dropbox.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: Dropbox -sidebar_class_name: Dropbox ---- - - - -# Dropbox - -Этот раздел посвящен библиотеке для работы с Dropbox API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -1. Войдите в свой аккаунт на сайте [Dropbox Developers](https://www.dropbox.com/developers) - -![BF](../../static/img/Docs/Dropbox/1.png) - -1. Перейдите к **App Console** - -![BF](../../static/img/Docs/Dropbox/2.png) - -2. Нажмите **Create app** - -![BF](../../static/img/Docs/Dropbox/3.png) - -4. Введите имя нового приложения и выберите **Full Dropbox** - -![BF](../../static/img/Docs/Dropbox/4.png) - -5. После создания, на странице приложения нажмите **Scoped app** и выберите разрешения, которые необходимы для решения ваших задач. Сохраните **AppKey** и **AppSecret** - -![BF](../../static/img/Docs/Dropbox/5.png) - -6. Получите ссылку авторизации при помощи функции *ПолучитьСсылкуАвторизации(Знач КлючПриложения)* и передите по ней в браузере - -![BF](../../static/img/Docs/Dropbox/6.png) - -7. Передайте **полученный код**, **AppKey** и **AppSecret** в функцию *ПолучитьТокен(Знач КлючПриложения, Знач СекретПриложения, Знач Код)*, сохраните полученные **access_token** и **refresh_token** - -8. По истечении времени жизни access_token, его можно обновить при помощи функции *ОбновитьТокен(Знач КлючПриложения, Знач СекретПриложения, Знач РефрешТокен)* \ No newline at end of file diff --git a/docs/ru/md/Instructions/Google_Calendar.md b/docs/ru/md/Instructions/Google_Calendar.md deleted file mode 100644 index df45dc229e..0000000000 --- a/docs/ru/md/Instructions/Google_Calendar.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: GoogleCalendar -sidebar_class_name: GoogleCalendar ---- - - - -# Google Календарь - -Этот раздел посвящен библиотеке для работы с API Google Calendar. На данной странице описаны все действия, необходимые для полноценного начала работы - -:::important -Если вы уже используете ОПИ для работы с другими сервисами Google Workspase и выполняли стартовую настройку, то пункты **Создание проекта** и **Настройка OAuth** можно пропустить. Необходимо лишь **включить сервис Google Drive** в своем проекте и **заново получить токен** (последние два пункта инструкции). -::: - -## Начало работы - -
- -### Создание проекта - -1. Перейдите на [главную страницу Google Cloud](https://console.cloud.google.com) и создайте проект - -![BF](../../static/img/Docs/GoogleCalendar/1.png) - -2. Выберите созданный проект и в боковом меню перейдите APIs and Services -> OAuth consent screen - -![BF](../../static/img/Docs/GoogleCalendar/2.png) - -3. Выберите пункт External - -![BF](../../static/img/Docs/GoogleCalendar/3.png) - -4. Заполните поля App name, User support email и Email addresses (все поля со звездочками) - -![BF](../../static/img/Docs/GoogleCalendar/4.png) - -5. Нажимайте далее и Save and continue на последней вкладке - -![BF](../../static/img/Docs/GoogleCalendar/5.png) - -6. Нажмите Publish App - -![BF](../../static/img/Docs/GoogleCalendar/6.png) - -
- -### Настройка OAuth - -1. В боковом меню выберите пункт Credentials -> Create Credentials -> OAuth client ID - -![BF](../../static/img/Docs/GoogleCalendar/7.png) - -2. Введите имя и выберите Application type - Desktop app - -![BF](../../static/img/Docs/GoogleCalendar/8.png) - -3. Сохраните ClientID и Client Secret - -![BF](../../static/img/Docs/GoogleCalendar/9.png) - -
- -### Включение сервиса Google Calendar - -1. Перейдите на [страницу Календаря в Marketplace](https://console.cloud.google.com/marketplace/product/google/calendar-json.googleapis.com) - -2. Нажмите Enable - -![BF](../../static/img/Docs/GoogleCalendar/12.png) - -
- -### Получение Токена - -1. Передайте ClientID в функцию OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода() с булево параметрами используемых вами сервисов. Результатом функции будет URL, который необходимо открыть в браузере. Авторизуйтесь при помощи своего аккаунта Google - -![BF](../../static/img/Docs/GoogleCalendar/10.png) - -2. Скопируйте код из URL после авторизации - -![BF](../../static/img/Docs/GoogleCalendar/11.png) - -3. Используйте полученный код, ClientID и Client Secret для вызова функции OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code) - -```json title="Результат функции ПолучитьТокенПоКоду(), если перевести его в JSON" - -{ - "token_type": "Bearer", - "refresh_token": "1//09au6OES3JN9oCgYIARAAGAkSNwF-L9Ir1B7uawfwafT1wE0FKO519Xj6JxawfawfyjMyJ_QlUZYLHZqw", - "scope": "https://www.googleapis.com/auth/calendar", - "expires_in": 3599, - "access_token": "ya29.a0AfB_byA344tXkIawdawdwadadhyZQV8bSZn_snNXtY2HLb7l71awdawdawdad-ASgpzyOSWIvEmPruhUa_1yCCq6jvoD0r_q-fNEsARrH8zpJ3c6LNGWvwdg8CXsSxYaCgYKAWkSawfwafawfrCK0EP5kZY_A0171" -} - -``` - -4. Используйте **access_token** для передачи в качестве параметра Токен при вызове функций библиотеки, а refresh_token - для получения нового access_token (функция OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken)), когда время жизни старого истечет. При обновлении токена refresh_token не обновляется - вы можете использовать его один и тот же для получения нового access_token каждый раз. diff --git a/docs/ru/md/Instructions/Google_Drive.md b/docs/ru/md/Instructions/Google_Drive.md deleted file mode 100644 index 8d897ad8bf..0000000000 --- a/docs/ru/md/Instructions/Google_Drive.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: GoogleDrive -sidebar_class_name: GoogleDrive ---- - - - -# Google Drive - -Этот раздел посвящен библиотеке для работы с API Google Drive. На данной странице описаны все действия, необходимые для полноценного начала работы - -:::important -Если вы уже используете ОПИ для работы с другими сервисами Google Workspase и выполняли стартовую настройку, то пункты **Создание проекта** и **Настройка OAuth** можно пропустить. Необходимо лишь **включить сервис Google Drive** в своем проекте и **заново получить токен** (последние два пункта инструкции). -::: - -## Начало работы - -
- -### Создание проекта - -1. Перейдите на [главную страницу Google Cloud](https://console.cloud.google.com) и создайте проект - -![BF](../../static/img/Docs/GoogleCalendar/1.png) - -2. Выберите созданный проект и в боковом меню перейдите APIs and Services -> OAuth consent screen - -![BF](../../static/img/Docs/GoogleCalendar/2.png) - -3. Выберите пункт External - -![BF](../../static/img/Docs/GoogleCalendar/3.png) - -4. Заполните поля App name, User support email и Email addresses (все поля со звездочками) - -![BF](../../static/img/Docs/GoogleCalendar/4.png) - -5. Нажимайте далее и Save and continue на последней вкладке - -![BF](../../static/img/Docs/GoogleCalendar/5.png) - -6. Нажмите Publish App - -![BF](../../static/img/Docs/GoogleCalendar/6.png) - -
- -### Настройка OAuth - -1. В боковом меню выберите пункт Credentials -> Create Credentials -> OAuth client ID - -![BF](../../static/img/Docs/GoogleCalendar/7.png) - -2. Введите имя и выберите Application type - Desktop app - -![BF](../../static/img/Docs/GoogleCalendar/8.png) - -3. Сохраните ClientID и Client Secret - -![BF](../../static/img/Docs/GoogleCalendar/9.png) - -
- -### Включение сервиса Google Drive - -1. Перейдите на [страницу Drive в Marketplace](https://console.cloud.google.com/marketplace/product/google/drive.googleapis.com) - -2. Нажмите Enable - -![BF](../../static/img/Docs/GoogleDrive/1.png) - -
- -### Получение Токена - -1. Передайте ClientID в функцию OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода() с булево параметрами используемых вами сервисов. Результатом функции будет URL, который необходимо открыть в браузере. Авторизуйтесь при помощи своего аккаунта Google - -![BF](../../static/img/Docs/GoogleCalendar/10.png) - -2. Скопируйте код из URL после авторизации - -![BF](../../static/img/Docs/GoogleCalendar/11.png) - -3. Используйте полученный код, ClientID и Client Secret для вызова функции OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code) - -```json title="Результат функции ПолучитьТокенПоКоду(), если перевести его в JSON" - -{ - "token_type": "Bearer", - "refresh_token": "1//09au6OES3JN9oCgYIARAAGAkSNwF-L9Ir1B7uawfwafT1wE0FKO519Xj6JxawfawfyjMyJ_QlUZYLHZqw", - "scope": "https://www.googleapis.com/auth/...", - "expires_in": 3599, - "access_token": "ya29.a0AfB_byA344tXkIawdawdwadadhyZQV8bSZn_snNXtY2HLb7l71awdawdawdad-ASgpzyOSWIvEmPruhUa_1yCCq6jvoD0r_q-fNEsARrH8zpJ3c6LNGWvwdg8CXsSxYaCgYKAWkSawfwafawfrCK0EP5kZY_A0171" -} - -``` - -4. Используйте **access_token** для передачи в качестве параметра Токен при вызове функций библиотеки, а refresh_token - для получения нового access_token (функция OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken)), когда время жизни старого истечет. При обновлении токена refresh_token не обновляется - вы можете использовать его один и тот же для получения нового access_token каждый раз. diff --git a/docs/ru/md/Instructions/Google_Sheets.md b/docs/ru/md/Instructions/Google_Sheets.md deleted file mode 100644 index 28c96aa9d8..0000000000 --- a/docs/ru/md/Instructions/Google_Sheets.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: GoogleSheets -sidebar_class_name: GoogleSheets ---- - - - -# Google Sheets - -Этот раздел посвящен библиотеке для работы с API Google Sheets. На данной странице описаны все действия, необходимые для полноценного начала работы - -:::important -Если вы уже используете ОПИ для работы с другими сервисами Google Workspase и выполняли стартовую настройку, то пункты **Создание проекта** и **Настройка OAuth** можно пропустить. Необходимо лишь **включить сервис Google Sheets** в своем проекте и **заново получить токен** (последние два пункта инструкции). -::: - -## Начало работы - -
- -### Создание проекта - -1. Перейдите на [главную страницу Google Cloud](https://console.cloud.google.com) и создайте проект - -![BF](../../static/img/Docs/GoogleCalendar/1.png) - -2. Выберите созданный проект и в боковом меню перейдите APIs and Services -> OAuth consent screen - -![BF](../../static/img/Docs/GoogleCalendar/2.png) - -3. Выберите пункт External - -![BF](../../static/img/Docs/GoogleCalendar/3.png) - -4. Заполните поля App name, User support email и Email addresses (все поля со звездочками) - -![BF](../../static/img/Docs/GoogleCalendar/4.png) - -5. Нажимайте далее и Save and continue на последней вкладке - -![BF](../../static/img/Docs/GoogleCalendar/5.png) - -6. Нажмите Publish App - -![BF](../../static/img/Docs/GoogleCalendar/6.png) - -
- -### Настройка OAuth - -1. В боковом меню выберите пункт Credentials -> Create Credentials -> OAuth client ID - -![BF](../../static/img/Docs/GoogleCalendar/7.png) - -2. Введите имя и выберите Application type - Desktop app - -![BF](../../static/img/Docs/GoogleCalendar/8.png) - -3. Сохраните ClientID и Client Secret - -![BF](../../static/img/Docs/GoogleCalendar/9.png) - -
- -### Включение сервиса Google Sheets - -1. Перейдите на [страницу Sheets в Marketplace](https://console.cloud.google.com/marketplace/product/google/sheets.googleapis.com) - -2. Нажмите Enable - -![BF](../../static/img/Docs/GoogleSheets/1.png) - -
- -### Получение Токена - -1. Передайте ClientID в функцию OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода() с булево параметрами используемых вами сервисов. Результатом функции будет URL, который необходимо открыть в браузере. Авторизуйтесь при помощи своего аккаунта Google - -![BF](../../static/img/Docs/GoogleCalendar/10.png) - -2. Скопируйте код из URL после авторизации - -![BF](../../static/img/Docs/GoogleCalendar/11.png) - -3. Используйте полученный код, ClientID и Client Secret для вызова функции OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code) - -```json title="Результат функции ПолучитьТокенПоКоду(), если перевести его в JSON" - -{ - "token_type": "Bearer", - "refresh_token": "1//09au6OES3JN9oCgYIARAAGAkSNwF-L9Ir1B7uawfwafT1wE0FKO519Xj6JxawfawfyjMyJ_QlUZYLHZqw", - "scope": "https://www.googleapis.com/auth/...", - "expires_in": 3599, - "access_token": "ya29.a0AfB_byA344tXkIawdawdwadadhyZQV8bSZn_snNXtY2HLb7l71awdawdawdad-ASgpzyOSWIvEmPruhUa_1yCCq6jvoD0r_q-fNEsARrH8zpJ3c6LNGWvwdg8CXsSxYaCgYKAWkSawfwafawfrCK0EP5kZY_A0171" -} - -``` - -4. Используйте **access_token** для передачи в качестве параметра Токен при вызове функций библиотеки, а refresh_token - для получения нового access_token (функция OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken)), когда время жизни старого истечет. При обновлении токена refresh_token не обновляется - вы можете использовать его один и тот же для получения нового access_token каждый раз. diff --git a/docs/ru/md/Instructions/Notion.md b/docs/ru/md/Instructions/Notion.md deleted file mode 100644 index ceeacdd945..0000000000 --- a/docs/ru/md/Instructions/Notion.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -id: Notion -sidebar_class_name: Notion ---- - - - -# Notion - -Этот раздел посвящен библиотеке для работы с Notion API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -1. Перейдите **[в раздел интеграций портала для разработчиков](https://www.notion.so/my-integrations)** - -![BF](../../static/img/Docs/Notion/1.png) - -2. Введите название вашей интеграции - -![BF](../../static/img/Docs/Notion/2.png) - -3. После завершения создания интеграции, нажмите *Show* и скопируйте **Токен (Secret)** - -![BF](../../static/img/Docs/Notion/3.png) - -4. Перейдите в **[основной интерфейс Notion](https://notion.so)** и создайте новую страницу. Эта страница будет родительской для всех остальных объектов, создаваемых через API - -![BF](../../static/img/Docs/Notion/4.png) - -5. Нажмите три точки в правом верхнем углу и в самом низу найдите пункт *Add connections*. Выберите там свою интеграцию из пунктов 1-3 - -![BF](../../static/img/Docs/Notion/5.png) - -6. Получите ID этой страинцы. Это можно сделать нажав Share -> Copy link или просто скопировав из URL - -![BF](../../static/img/Docs/Notion/6.png) - -**Токен** и **ID страницы** - два параметра, необходимые для работы через API \ No newline at end of file diff --git a/docs/ru/md/Instructions/Slack.md b/docs/ru/md/Instructions/Slack.md deleted file mode 100644 index 308614facb..0000000000 --- a/docs/ru/md/Instructions/Slack.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: Slack -sidebar_class_name: Slack ---- - - - -# Slack - -Этот раздел посвящен библиотеке для работы со Slack Web API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -1. Войдите в свой аккаунт и перейдите на страницу **Your Apps** на сайте [Slack API](https://api.slack.com) - -![BF](../../static/img/Docs/Slack/1.png) - -
- -2. Нажмите **Create App** и выберите пункт **From scratch** - -![BF](../../static/img/Docs/Slack/2.png) - -3. Выберите название и рабочую область, в которой необходимо создать приложение - -![BF](../../static/img/Docs/Slack/3.png) - -
- -4. Создайте новый токен, нажав **Generate Token and Scopes** ниже на странице приложения - -![BF](../../static/img/Docs/Slack/4.png) - -
- -5. Выберите имя и добавьте разрешения - -![BF](../../static/img/Docs/Slack/5.png) - -
- -6. Перейдите в раздел **Premission scope** из пункта установки приложения - -![BF](../../static/img/Docs/Slack/6.png) - -
- -7. Добавьте необходимые для ваших целей разрешения - -![BF](../../static/img/Docs/Slack/7.png) - -
- -8. Установите приложение - -![BF](../../static/img/Docs/Slack/8.png) - -
- -9. Сохраните сгенерированный токен - -![BF](../../static/img/Docs/Slack/9.png) - -
\ No newline at end of file diff --git a/docs/ru/md/Instructions/Start.md b/docs/ru/md/Instructions/Start.md deleted file mode 100644 index 64b083885b..0000000000 --- a/docs/ru/md/Instructions/Start.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: Start -sidebar_class_name: NachaloRaboty ---- - -# Добро пожаловать! - -![OPI](../../static/img/logo_long.png) - -**Открытый пакет интеграций** - набор инструментов для интеграции с некоторыми популярными API посредством CLI, 1C:Enterprise или OneScript. Он состоит из общих модулей, каждый из которых отвечает за свой API, а также нескольких модулей-инструментов, общих для всех. - -Реализованные методы выполняют конечные задачи (вроде *ОтправитьСообщение()* или *СоздатьПост()*), что позволяет использовать их без углубления в реализацию. Однако, код, при этом, достаточно сильно декомпозирован - методы авторизации, получения данных и пр. по возможности вынесены в отдельные функции. Это позволяет легко добавлять новые методы, даже если они еще не реализованы в самой библиотеке на текущий момент. - -
- -Быстрый переход по документации: -
- - - - - - - - - - - - -
- -
- -## Начало работы - -Релизы библиотеки выходят в пяти вариантах: - -- Как CLI приложение для Windows и Linux (exe, rpm, deb) -- Как XML файлы расширения для загрузки через конфигуратор -- Как EDT проект расширения -- Как отдельный файл расширения формата cfe -- Как OneScript пакет расширения ospx - -Вне зависимости от выбранного сопособа установки, получать файлы необходимо из [Release](https://github.com/Bayselonarrend/OpenIntegrations/releases), так как в самих файлах репозитория бывают промежуточные данные и функции, находящиеся в процессе разработки. - -Подробнее о каждом варианте релиза в разделе [Про варианты релизов](/docs/Start/Release-variants) - -
- -## Структура модулей - -Общие модули проекта бывают двух видов: - -- Служебные - - OPI_Инструменты - - OPI_Криптография -- Модули непосредственной работы с API - - OPI_Telegram, OPI_VK... - -:::warning -Не рекомендуется использовать методы служебных модулей в других местах вашей конфигурации (если вы собираетесь обновляться до новых версий в дальнейшем). Для сохранения обратной совместимости, количество/назначение параметров и типы возвращаемых значений для методов работы с API не изменяются, но это не применимо к служебным модулям, которые могут изменяться как угодно для оптимизации и дополнения под новые нужды. Если вам необходим функционал из служебных модулей, рекомендуется скопировать его себе отдельно. -::: diff --git a/docs/ru/md/Instructions/Telegram.md b/docs/ru/md/Instructions/Telegram.md deleted file mode 100644 index 80edeebb65..0000000000 --- a/docs/ru/md/Instructions/Telegram.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: Telegram -sidebar_class_name: Telegram ---- - - - -# Telegram - -Этот раздел посвящен библиотеке для работы с Telegram API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -- Создайте бота Telegram - - 1. Все действия при работе с Telegram API осуществляются посредством ботов. Для создания нового бота необходимо в мессенджере начать диалог с [@BotFather](https://t.me/BotFather) - - ![BF](../../static/img/Docs/Telegram/2.png) - - 2. Выбрать в меню команду */newbot* - - ![BF](../../static/img/Docs/Telegram/3.png) - - 3. BotFather предложит вам выбрать имя и никнейм бота, после чего процедура создания будет завершена - -- Сохраните **токен**, который вам прислал BotFather после завершения создания бота - - ![BF](../../static/img/Docs/Telegram/1.png) - -- (Дополнительно) Определитесь с целью взаимодействия - - Созданного вами бота теперь можно применить двумя способами - - - В качестве чат-бота - - Для автоматизации ведения канала - - В зависимости от выбранного способа примения будет отличаться способ получения **ID чата** - параметра, отвечающего за определение объекта взаимодействия. - - В случае с чат-ботом, ID чата будет являться ID пользователя, с которым бот осуществляет диалог. Если же бота необходимо использовать для ведения канала, то, после добавления его в качестве администратора, вместо ID чата можно использовать имя канала через @ (@MyChannel) - - Токен и ID чата являются основными параметрами всех методов работы с Telegram API \ No newline at end of file diff --git a/docs/ru/md/Instructions/Twitter.md b/docs/ru/md/Instructions/Twitter.md deleted file mode 100644 index efae7d6b47..0000000000 --- a/docs/ru/md/Instructions/Twitter.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -id: Twitter -sidebar_class_name: Twitter ---- - - - -# Twitter | X - -Этот раздел посвящен библиотеке для работы с Twitter API. На данной странице описаны все действия, необходимые для полноценного начала работы. Данная библиотека позволяет работать с функционалом бесплатного плана, т.е. создавать твиты. - -## Начало работы - - -Работа с Twitter подразумевает работу с двумя API - v1 (1.1) и v2, которые, при этом, не относятся к разным видам действий, но просто являются версиями друг друга. Несмотря на то, что Twitter настаивает на использовании v2, вышло так, что некоторые механизмы (в частности механизм загрузки файлов) в ней так и не появилися. Поэтому, даже для создания обычного твита с картинкой необходима работа с обеими версиями API, а, как следствие, двойной набор авторизационных данны. Этот набор описан в функции *ПолучитьСтандартныеПараметры()* - - -```bsl - - Параметры_.Вставить("redirect_uri" , ""); - Параметры_.Вставить("scope" , ""); - Параметры_.Вставить("client_id" , ""); - Параметры_.Вставить("client_secret" , ""); - Параметры_.Вставить("access_token" , ""); - Параметры_.Вставить("refresh_token" , ""); - Параметры_.Вставить("oauth_token" , ""); - Параметры_.Вставить("oauth_token_secret" , ""); - Параметры_.Вставить("oauth_consumer_key" , ""); - Параметры_.Вставить("oauth_consumer_secret", ""); - -``` - -Вы можете определить эти параметры прямо в структуре внутри данной функции или передавать непосредственно при вызове функций уже для работы с API - каждая из них принимает параметры последним необязательным параметром. При такой передаче стандартные параметры будут перезаписаны по ключам. Рассмотрим создание приложения и получение каждого поля - - - ### Создание приложения - Для работы с Twitter API необходимо перейти по адресу [https://developer.twitter.com/](https://developer.twitter.com/), зарегистрироваться и создать новое приложение - - ![BF](../../static/img/Docs/Twitter/1.png) - ![BF](../../static/img/Docs/Twitter/2.png) - ![BF](../../static/img/Docs/Twitter/3.png) - ![BF](../../static/img/Docs/Twitter/4.png) - ![BF](../../static/img/Docs/Twitter/5.png) - - ### Определение полей - После создания приложения можно заполнить необходимые данные в 1С - - - - **redirect_uri** - - redirect_uri - адрес обработчика http-запросов, указанный при регистрации. Авторизация API v2 требует подтверждения входа через браузер, после которого запрос со специальным кодом на данный обработчик должен будет прийти. Далее об этом будет в пункте access_token и refresh_token. - - - - **scope** - - scope определяет доступные для работы функции. В *ПолучитьСтандартныеПараметры()* список scope определен по умолчанию. - - - **client_id** - - ![BF](../../static/img/Docs/Twitter/6.png) - - - **client_secret** - - ![BF](../../static/img/Docs/Twitter/7.png) - - - **access_token** и **refresh_token** - - Эти токены необходимо получить http запросом с указанием кода, который приходит при авторизации на http-сервис redirect_uri. Порядок действий: - 1. Создать ссылку для авторизации в браузере при помощи функции *ПолучитьСсылкуАвторизации* - 2. Добавить в модуль http-сервиса (GET) вызов функции *ОбработкаВходящегоЗапросаПослеАвторизации*, передавая HTTPСервисЗапрос как параметр. - 3. Авторизоваться в браузере по ссылке из п.1. - 3. Сохранить access_token и refresh_token, полученный из функции *ОбработкаВходящегоЗапросаПослеАвторизации* п. 2, в константы или другое хранилище - - - ```bsl title="Получение" - - Функция Twitterget(Запрос) - - Код = Запрос.ПараметрыЗапроса["code"]; - ОтветТокен = OPI_Twitter.ПолучитьТокен(Код, Параметры); - - Константы.TwitterRefresh.Установить(ОтветТокен["refresh_token"]); - Константы.TwitterToken.Установить(ОтветТокен["access_token"]); - - Ответ = Новый HTTPСервисОтвет(200); - Возврат Ответ; - - КонецФункции - - ``` - - ```bsl title="Обновление" - - Процедура ОбновлятьТокенКаждыеДваЧаса(Знач Параметры) - - Ответ = OPI_Twitter.ОбновитьТокен(Параметры); - Константы.TwitterToken.Установить(Ответ["access_token"]); - Константы.TwitterRefresh.Установить(Ответ["refresh_token"]); - - КонецПроцедуры - ``` - - Хардкодить данные токены нельзя, так как acess_token действует всего 2 часа. По истечении этого времени, токен необходимо обновить функцией *ОбновитьТокен*. При этом обновляется как access_token, так и refresh_token. Т.е. при следующем обновлении сгоревшего acess_token токена, refresh_token должен быть из предыдущего запроса. - - ![BF](../../static/img/Docs/Twitter/8.png) - - - - **oauth_token** и **oauth_token_secret** - - ![BF](../../static/img/Docs/Twitter/9.png) - - - **oauth_consumer_key** и **oauth_consumer_secret** - - ![BF](../../static/img/Docs/Twitter/10.png) - - - После заполнения данных полей можно приступать к работе с методами API - - - \ No newline at end of file diff --git a/docs/ru/md/Instructions/VK.md b/docs/ru/md/Instructions/VK.md deleted file mode 100644 index f39029adb5..0000000000 --- a/docs/ru/md/Instructions/VK.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: VK -sidebar_class_name: VK ---- - - - -# ВКонтакте - -Этот раздел посвящен библиотеке для работы с VK API. Она заточена для работы с сообществами и выполнением действий от их имени. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -Для начала работы необходимо получить некоторые параметры для VK API. - -

-Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение. -

- - ```bsl - _Параметры = Новый Структура; - - _Параметры.Вставить("v" , "5.131"); - _Параметры.Вставить("from_group" , "1"); - _Параметры.Вставить("group_id" , "123456789"); - _Параметры.Вставить("owner_id" , "-123456789"); - _Параметры.Вставить("app_id" , "87654321"); - _Параметры.Вставить("access_token" , "vk1.a.E-byuFeG1qcN7..."); - - ``` - -Рассмотрим получение каждого значения: - -**1. v** - - Параметр `v` означает версию VK API. Тестирование проводилось на 5.131, рекомендуется его таким и оставить - -**2. from_group** - - От лица группы. Должен быть 1 - -**3. group_id и owner_id** - - ID группы. Если у вас стандартный адрес группы, то id можно найти в URL. В противном случае он будет на вкладке "Управление" в группе, под полем Адрес. owner_id - тоже самое, но со знаком '-' впереди - - ![BF](../../static/img/Docs/VK/1.png) - -**4. app_id** - - app_id - ID приложения. Для создания приложения необходимо: - - * Перейти по адресу https://id.vk.com/about/business/go, авторизоваться и ввести свои данные физ. или юр. лица - - ![BF](../../static/img/Docs/VK/2.png) - - * Ввести название приложения и выбрать пункт **Web** - - ![BF](../../static/img/Docs/VK/3.png) - - * Ввести домееное имя и URL обработчика перенаправлений. Тут нужно отметить, что данный механизм создания приложений - новый. Еще недавно приложения VK создавались иначе и иметь redirect_url для них было не нужно. На данный момент не совсем понятно, зачем он нужен нам для серверного приложения - просто такого понятия как серверное приложение у VK теперь нет. Теоретически, туда можно вписать что угодно - для работы с библиотекой в получении обратных данных нет необходимости. Однако, с течением времени, это может измениться. - - ![BF](../../static/img/Docs/VK/4.png) - - * Ввести паспортные данные или данные об организации, включить доступ к сообществам (короче, если у вас уже было приложение до этого, то вам крупно повезло, а если нет российского паспорта - придется писать в поддержку) - - ![BF](../../static/img/Docs/VK/8.png) - - * Получить app_id на странице приложения - - ![BF](../../static/img/Docs/VK/5.png) - -**5. access_token** - - Ссылку на получение acess_token можно получить при помощи функции *СоздатьСсылкуПолученияТокена* или склеить вручную: - - https://oauth.vk.com/authorize?client_id= + *app_id* + &scope=offline,wall,groups,photos,stats,stories,ads&v=5.131&response_type=token&redirect_uri=https://api.vk.com/blank.html - - * По этой ссылке необходимо перейти в браузере - * Авторизоваться через ВК и подтвердить доступ - * Забрать токен из параметра URL в адресной строке - - ![BF](../../static/img/Docs/VK/6.png) - -**(Дополнительно) communitytoken** - - Некоторые методы, например для работы с чат-ботом сообщества, принимают в качестве параметра communitytoken - в этих методах он заменяет access_token. Для его получения необходимо: - - * Зайти в раздел "Управление" в группе ВК - * Найти вкладку "Работа с API" - * Нажать "Создать ключ" и забрать его - - ![BF](../../static/img/Docs/VK/7.png) - - Пока вам не нужно использовать такие методы, получать communitytoken не обязательно \ No newline at end of file diff --git a/docs/ru/md/Instructions/Viber.md b/docs/ru/md/Instructions/Viber.md deleted file mode 100644 index 2f9bd2008c..0000000000 --- a/docs/ru/md/Instructions/Viber.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: Viber -sidebar_class_name: Viber ---- - - - -# Viber - -Этот раздел посвящен библиотеке для работы с Viber API. На данной странице описаны все действия, необходимые для полноценного начала работы - -:::warning -Начиная с 05.02.2024 данный способ создания ботов более недействителен: Rakuten отменил возможность создавать ботов бесплатно и теперь для работы с API необходимо проходить верификацию по коммерческой модели. Подробнее [тут](https://help.viber.com/hc/en-us/articles/15247629658525-Bot-commercial-model) -::: - -## Начало работы - -У Viber есть два REST API: один для работы с каналами, а второй - для чат-ботов. В обоих случаях основными параметрами служат **Токен** и **IDПользователя** - -- Если вам необходимо управлять каналом: - 1. Зайдите в приложение Viber и создайте новый канал - - ![BF](../../static/img/Docs/Viber/1.png) - - 2. После создания, перейдите в настройки канала -> Для разработчиков, и скопируйте **Токен** - - ![BF](../../static/img/Docs/Viber/2.png) - - 3. Установите Webhook. См. Установить Webhook - 4. **IDПользователя** - ваш ID (администратора канала). См. Получить информацию о канале - -
- -- Если вам необходим чат-бот: - 1. Перейдите по ссылке [https://partners.viber.com/account/create-bot-account](https://partners.viber.com/account/create-bot-account) и авторизуйтесь с вашим номером телефона, который привязан к Viber - - ![BF](../../static/img/Docs/Viber/3.png) - - 2. Выберите пункт создания нового бота - - ![BF](../../static/img/Docs/Viber/4.png) - - 3. В меню создания бота заполните все необходимые поля - - ![BF](../../static/img/Docs/Viber/5.png) - - 4. Скопируйте **Токен** - - ![BF](../../static/img/Docs/Viber/6.png) - - 4. Найти своего нового бота вы можете отсканировав QR на странице создания или в настройках (пункт чат-боты) в приложении Viber. - - ![BF](../../static/img/Docs/Viber/7.png) - - 5. Сейчас вы не можете начать диалог с ботом, сначала необходимо установить Webhook. См. Установить Webhook - 6. После запуска **IDПользователя** будет ID конкретного человека, ведущего диалог с ботом. Получить можно из обработыки входящих сообщения по Webhook - - - **Важно:** ID одного и того же пользователя у чата и канала - это разные значения. Нельзя использовать ID, полученный из сообщения боту для вызова методов управления каналом и наоборот \ No newline at end of file diff --git a/docs/ru/md/Instructions/Yandex_Disk.md b/docs/ru/md/Instructions/Yandex_Disk.md deleted file mode 100644 index 8934261fe0..0000000000 --- a/docs/ru/md/Instructions/Yandex_Disk.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: YandexDisk -sidebar_class_name: YandexDisk ---- - - - -# Яндекс Диск - -Этот раздел посвящен библиотеке для работы с Яндекс Диск API. На данной странице описаны все действия, необходимые для полноценного начала работы - -## Начало работы - -Для начала работы необходимо получить токен доступа к диску: - -1. Перейдите на [страницу создания приложения](https://oauth.yandex.ru/client/new/) - -![BF](../../static/img/Docs/YandexDisk/1.png) - -2. Введите название сервиса, выберите *Веб-сервисы* в качестве платформы. Redirect URI можно указать любой или выбрать пункт *Подставить URL для отладки* - для работы с библиотекой он не понадобится. - -![BF](../../static/img/Docs/YandexDisk/3.png) - -3. В поле *Доступ к данным* добавьте разрешения как на скриншоте ниже, после чего нажмите *Создать приложение* - -![BF](../../static/img/Docs/YandexDisk/2.png) - -4. Сохраните **ClientID** и **Client secret** со страницы приложения - -![BF](../../static/img/Docs/YandexDisk/4.png) - -5. Вызовите функцию *OPI_YandexID.ПолучитьКодПодтверждения()*, передав ClientID в качестве параметра. Она вернет ответ сервера Yandex, где будут поля: - - **user_code** - необходимо будет ввести в браузере - - **device_code** - необходимо будет передать в другую функцию - - **verification_url** - URL, который нужно открыть в браузере -
- ```json title="Результат функции ПолучитьКодПодтверждения(), если перевести его в JSON" - { - "verification_url": "https://ya.ru/device", - "user_code": "gjehyruw", - "interval": 5, - "expires_in": 300, - "device_code": "12207cafec1b40ad8d0052af3faf0d12" - } - ``` - -6. Откройте URL из **verification_url** в барузере. Скорее всего это будет https://ya.ru/device. В появившееся поле введите **user_code** из пункта 5 - -![BF](../../static/img/Docs/YandexDisk/5.png) - -7. После ввода кода в пункте 6, вызовите функцию *OPI_YandexID.ПреобразоватьКодВТокен()*, передав туда **ClientID** и **ClientSecret** из пункта 4, а также **device_code** из пункта 5. Сохраните полученные **acess_token** и **refresh_token** - -```json title="Результат функции ПреобразоватьКодВТокен(), если перевести его в JSON" -{ - "token_type": "bearer", - "refresh_token": "1:Tj6nD2vgE2L8jwSm:YgWjQXPv6_y3e07GW70ig2AOyEXoRVsKKpApGHq2EOg7pfx0MKrXiCrfLBFtzgQawdawdwadad3Sasa9z2H0vSeZKNmZmA", - "expires_in": 31535956, - "access_token": "y0_AgAAAABWxxdkAAs0QgAAAAD59cawdawdwadadVKIiwGK__crw" -} -``` - -**acess_token** используется во всех остальных функциях библиотеки, а при помощи **refresh_token** его можно обновить, когда срок жизни будет подходить к концу (при помощи функции *ОбновитьТокен()*) \ No newline at end of file diff --git a/docs/ru/md/Start/CLI_version.md b/docs/ru/md/Start/CLI_version.md deleted file mode 100644 index b63125b847..0000000000 --- a/docs/ru/md/Start/CLI_version.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Работа с CLI версией - -**OInt CLI** - приложение для командой строки, которое позволяет использовать методы Открытого пакета интеграций независимо от 1С и OneScript. Для его работы требуется **.Net Framework 4.8** или сопоставимый **Mono Runtime** (при использовании deb и rpm пакетов устанавливается автоматически) - -## Первый запуск - -Для начала работы необходимо вызвать команду `oint` из командной строки/терминала. При установке из пакетов (Linux) или установщика (Windows, после перезагрузки), сделать это можно из любого места без дополнительных действий. При использовании портативной версии (исполняемого файла exe) `oint` необходимо запускать по полному пути к файлу. В Linux-дистрибутивах, также, предварительно нужно будет прописать `chmod +x <путь к файлу>/oint` - -Запуск портативной версии в RHEL/Fedora/CentOS (дистрибутивы, использующие rpm-пакеты) осуществляется командой
`mono <путь к файлу>/oint "$@"` - -![demo](./img/1.gif) - -## Справка - -После запуска приложения, вы увидите начальную страницу, где есть перечень доступных библиотек. Для того, чтобы просмотреть список доступных методов конкретной библиотеки, необходимо просто написать `oint` и её название. Например `oint telegram`. Аналогично можно узнать подробности о конкретном методе - необходимо вызвать команду `oint <библиотека> <метод>`, например `oint telegram ОтправитьТекстовоеСообщение` - ->**Важно:** Имена библиотек чувствительны к регистру и пишутся строчными буквами. Имена методов к регистру не чувствительны - -![demo](./img/3.gif) - -## Использование методов -Как и большинство других программ, нацеленных на использование в bat/sh скриптах, каждое отдельное действие Oint CLI вызывается полной строкой вызова следующего вида: - -```powershell - oint <библиотека> <метод> --парам1 "Значение" --парам2 "Значение"... -``` - -Что касается параметров, то чаще всего передаваемые туда данные - строки. Это может быть текст, пути к файлам, URL и пр. Однако, в OInt есть методы, которые принимают и другие, менее очевидные виды данных. Это могут быть: - - + Даты - передаются как строки формата ISO 8601 - + Массивы - передаются как строки вида `"['Знач1','Знач2','Знач3']"` - + JSON - передается как путь к файлу - -После выполнения запрашиваемого действия, программа выводит результат и завершает работу. По умолчанию, вывод осуществляется в консоль, но вы можете перенаправить его в файл - как стандартным способом `>`, так и при помощи общего параметра `--out`. Разница между двумя этими способами заключается в кодировке сохраняемого файла: при использовании `>` это будет кодировка оболочки, а при использованни `--out` - UTF-8 (используется внутри OInt при работе). Также использование `--out` обязательно для методов, возвращающих двоичные данные в ответе (вроде скачивания файла из Google Drive, например) - -![demo](./img/2.gif) - -Всю дальнейшую информацию, которая может понадобиться вам для работы, вы сможете найти в других разделах данной документации, а также во встроенной справке OInt CLI diff --git a/docs/ru/md/Start/Release-variants.md b/docs/ru/md/Start/Release-variants.md deleted file mode 100644 index 088087aede..0000000000 --- a/docs/ru/md/Start/Release-variants.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Про варианты релизов - -Открытый пакет интеграций - это проект с тремя путями развития: 1С, OneScript и CLI. Основная версия - 1С, которая далее автоматически трансформируется в пакет для OneScript, а из него - в CLI приложение. Каждый из этих путей имеет свои варианты распространения - всего их 8: 3 для 1С, 4 для CLI и 1 для OneScript. Здесь приведены описания каждого из них - ->Ссылка на последний релиз: [Тык!](https://github.com/Bayselonarrend/OpenIntegrations/releases/latest) - -## 1С:Enterprise -Данные варианты релизов - различные формы поставки расширения для платформы 1С:Предприятие - - -**OpenIntegrations_x.x.x.cfe** - стандартный вариант поставки расширения конфигурации 1С:Предприятие. Для начала работы достаточно загрузить его в список расширений вашей конкретной конфигурации. Разработка ведется в режиме совместимости 1С 8.3.9 - - -**XML.zip** - это zip-архив, который содержит в себе файлы стандартной выгрузки расширения 1С "в файлы". Аналогично варианту с CFE, распакованный архив можно использовать для загрузки расширения через панель Расширений конфигурации в конкретном проекте - - -**EDT.zip** - это zip-архив, который содержит в себе файлы проекта расширения EDT. Этот вариант поставки предназначен для быстрого старта работы с ОПИ в тех случаях, когда разработка основной конфигурации ведется с использованием 1C Enterprise Development Tools - -
- -## CLI -Данные варианты релизов - различные формы поставки OInt CLI - кросплатформенного приложения для терминала/командной строки, реализующего полный функционал библиотеки ОПИ без привязки к тех. стеку 1С/OS. Системные требования OInt - системные требования OneScript: **.Net Framework 4.8 (Windows)** или **сопоставимая версия Mono (Linux)** - - -**oint.exe** - исполняемый файл, который, несмотря на Windows-ориентированное расширение, является кросплатформенным. Для запуска требуется .Net Framework 4.8 или Mono совместимой версии. В Windows и Debian-based дистрибутивах данное приложение запускается просто через командную строку/терминал, а в дистрибутивах, основанных на RHEL - через ```mono oint.exe "$@"``` - - -**oint_x.x.x_installer.exe** - это Windows-установщик. Рекомендуемый способ установки для ОС Windows, так как при его использовании автоматически создается каталог программы и прописывается PATH (после презагрузки компьютера). Это позволяет в дальнейшем запускать приложение из любого места, просто написав `oint` в командной строке - - -**oint_x.x.x_all.deb** - это DEB-пакет, предназанченный для установки OInt в Debian/Ubuntu дистрибутивах. При его использовании зависимости Mono устанавливаются автоматически, следовательно никаких дополнительных действий для начала работы не требуется - - -**oint-x.x.x-1.el7.x86_64.rpm** - это RPM-пакет, предназанченный для установки OInt в RHEL/Fedora/CentOS дистрибутивах. При его использовании зависимости Mono устанавливаются автоматически, следовательно никаких дополнительных действий для начала работы не требуется. Также не требуется запуск через `mono`, как в случае с exe - -
- - -## OneScript -Данные варианты релизов предназначены для использования в OneScript-проектах - - -**oint-x.x.x.ospx** - это OSPX пакет, предназначенный для установки через пакетный менеджер OPM. Вы можете использовать его для оффлайн установки при помощи команды -``` opm install -f "./OInt-x.x.x.ospx" ```. -Если отсутствие интернета на машине не предполагается, гораздо проще установить OInt напрямую из хаба пакетов. Скачивания файла для этого не требуется, достаточно выполнить команду ``` opm install oint ``` - - - -
\ No newline at end of file diff --git a/docs/ru/md/Start/img/1.gif b/docs/ru/md/Start/img/1.gif deleted file mode 100644 index ca5af98bde5bd9e9a8fa51387e00304c9e190fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73908 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 K|1U?XOJ%1`DqG2#WrQJQ z%i0K$2w`Ly`!jui&-J^W=enLh<}-87XYTtxpX>VE=e*AQPO>yNVq+0t0RVu_#Mt06 z0Dx#eK>&o2_Js{7z46ZqylkWgRP>+vO*7~{bj@@D;9WZFp$h}eX7)3-4+H@A_J1Ex zmv5;%00*nNH6zH7HnHOG9|G(X+o;e-oUrspL>oF`YguDISy(HNhw zt1%aEhq*A^93~IvDLI{YVq}qMM*q?aw~9ZFLI%a8K1Hy^EXBO+X|PHIT5&9bW}zC>~PW;X45NOqIvWF4M<0+F))U7JyGdR%)=eN3U-u|J6b)l zsT`@^6+1{K-_}BKfs^nEA!Z_5esk-e?Wp~>-^G+Cx)63J@(OqKK+fjy=2KXEb@;Ze z418~-@fdLuuAyUoE^;7oU=@Dhk0 zUwac*a80kZqQD`iUiT))FF~1!Tqzran?KmT?Hu#1J$1o%b28%-E5c5Q3K+sr1^{{2 zX$-_oxQYY9cHQmRNQZi+T`rW$Ka<#gzophMoj8m`UeExy#O^DC%z!Vr%ZHEQ6Plmz-&#)5EA1gRQ6d(V30AlZr*GI50g*DZ;HDMW_! z^K2ixUJ(aYRGaZUoCJl)mif*FeI!XAT*a<+E_|y11>@#`7#ua!Z2|V|JH66X1pMjH}(%p>Ve^1V_+&nY<6nX<;>yH zawTlCI3IsWzw-2gs0NH#PdR{|m^pLQY@15fn30`ShLz*Aiht#Wn`Aq3#ffmXR3DN;#KdY)G9#wDx~bkLtAv6vSQBb>3n)( z-a{QGJ(6!GLgU{>`(D6$hjy@BMb{j#|rJID@x7HQLGeIYQZC=vi zq2Hii%?0r>eHJ62MgniFOIBpZF=aFZS*d=WxrpZE_Xy~hjt(QRg6JeGUVct)ZsUt- z1m&GuCwI|gb(k_VYCE-vFKRb-*JeQ3Qyg$RWDohhAl*6c9PY90&BlyDap4O$n2EcE zCku0R!maOVLryk(3g_xh4qN~Kkd4E~CJ=lK-qljBfZV(RG$w=x_+}>DGKKc+rmt@{ zoR~5sycZw+6Kp+V4-3GF1KN2LxCb| z&0+>FU`TrFQ{l~4xyvskg$Kc-X-mB62Sw^@!ASXkchP(ZAM*6f+!i=agc+YrXD*MS zX8w;i-jzK=f-r?g(RKua6{?(dEY0^IR?5(hP8@KRQJ84FGhIM2YK?qBO*N`4FHBMw z2cFp~V4y>wh6D24os-tBS9QGMz736GrRrSHehl_FZ@_&C;4ThOr0bc0|x6M zP565y5nVjP5idz}^~e0yuuQg}$6ZJeteJZQtSU)374>sJofAC0s9q5@#$({lmU8kE z&fa~Ljsc4@B4Mn+6!krEB`}nxajthYw+>}PfX_;Jfst6@8pLOH9bxUo;Qd~%aBde8Gf4&>ZLPkUm*X3sW z@l2(nJ%~unDB=z6_JH)?)+m4Q%FZv zBR`vy+y17HwQH(Kwyet--B9UAU$OVQ05J^Y6Lt?yo@MI@0~{L{GM01y9tG*MlfORU zuO64@F0Eds;9fVkB=T1luNEql}S(sb@tdcH&99FFNCdUO*q3OdSm-Vng zL~r>o`0`niapCaQ5N^(Fu4s&Cvr_M)Sf46nIXki-4lsZPBw0E?EB6+7eRZ}W9OT15 z6o?FEWEhCC&qg3Oz9^dtr2~UteFS_o!0pMDt&AarI(}SEoqSvREg1W~Q22fVR`s+<9vYFA8o8AK_nE@;ONMJ#7Cy zs^O*S*;8j~a=Tv5oNkWfHi67-)W!}hy0*9}4~CQ9g+tAnkQEDx5w+}L3Sl4A^f=Z6 z=HDu9Cv5Ogz1c$gI`|)arbLOk7dM&DK2M@JP_aG&zn2?h)uIL0&zZBXbHjYpc{Z8Z z)>iU4mNyVfLAe4t^acr{V)|3!0gv3I!HBS$4Rx!55|XdWO$puH^N99u3!Q=OJA;Uj z0@#F8(PYMHQtKaFF(SACvLO&XC_FD30{SdD_Dj0UzY3K+dey7%-bI-AY=x<9xVS4^ z_{*bZb;hMzvihR4#!NX%5~>3rd(DL}d=3l=Y2A-5*)~V^S-SP(mI&B}JEJRsMH6=V zP_i8Gj0whNdkWVdO_Y3g!i+u}$U$$;MoTO_F)k^IhQhQ|un5DstJkoTDzyyT3~4#$ zSzxv!VNzUt7#XQ|>ZNo59N<%~((QiyGoD?ze%wa*tO>`LD~^siE2vUroAIRR6(^dFRK@Tii?+EHrs?zb10<`pX_CsP!DoelN%;2+E*M6OVq zy3?7@fsRw#eFxrxHzb_7krO?Cf4X-4!s>IR!CnwBDa5`<85D;yh!Q`SU$e*I!1QDH zO4YhQM8scPv&o4!4s^2IVmG|x9U|On^#V@hvpewSfId_!pKcp&dV zlaOj10`oNma|K{o>Mcm4ga^L=63T)1#R`L6?np4SZRmf-6em-BE9glJx^IGF-`T=1 zg+7SJY);IaV+N`E?GDYYeikV&4Aq6aA;+N)aptuROefzU_?K9tcL^MU%8?ro{GaUn z*Gn=ZnU3=!3OiCkKH9k^5Mt%w50B)p9u|h@m1E2A5H3R0gXfu^022vt@=}=!Y%dBO zKF^d6OcbiU;l72Do=?oDFCH^|wL7z$WWl3x#zH2nz+q=izW?}uA150Q)U`Zotr?YJ`S%RM&rc)NKE|6tkLSADt= z*Tsciw*do{J8Uag@6<49dw@ULt0?g4KSxO_B*bw(YAaU2PJ3NUp}0{I9ImmT zmk{>xO@8fOt$N!vT-n_dbuE>I{QG~l8@i@aMKq=VDvUIShNe6&%rk8fbT1T74d2|^w{6!SU=gKB=qs=1m~AB^wuyCD=AM3OrF~`(v$yl?y^%C0ez#1 z{t043VBMeXWlgWM!~qi1HF5(}<^*kdW?`4bqF z?Ty+|m>O48pA3ERrTue}y$ICc1t6}7odL)5UIYv^;htZd(hI-q0-XxK)eb^Civ!ZG zsWT*)cY_~w5&rV<+S$`cPFRB|$W9m9=5e?%i`0LxvJho1bLn?Y_N@2}uV5YQnY=i_ zIpMEC5>mXoC?HL*&53i2ZUWG!xd6Hg1oW6oYOBd$+5pu65(c|2CAUtj;5F)1{fnQHa z7d-n^dUs0Y%fzUHKH;=6pm}GZ@Suc09>L9w0T_OFxg{4v~33}nZ7t?Z!y2ZX;hEGmI?JiZ zL!f~5tfID$QE+j9S5H5>wi-P3@%N4^vhf1g5~;)k2?Y^i<(K8>;c7@wDb2C*Bk<(> zS`qw(>2ChG4)c2p*6H9%lXS=N=OUVZ_0;vK!@K?qbMd3nDxxzYlC8@dFK2(%De*p5 zp3ST`_??_CBwa}DD;%vp{(Z2D&kBTo+Z^t-ybq-VP26PZpMI_ zQdNO9a>Z8kE3G1EoM{f~rs1ZF9okcher!YW-2OQ(yuoQC@Dyp%Cjh)Nf2hcSKCVbt zTt^f@l~i2kIGYyp3}Jb=4us+bp?3O|sB^{uDhVB#Y#>@-$C*J1PEG*W6{Z7bGa2;I zBmgc<1L0q}Z>moE2T&CK4B@-aD z*=-$rtOQ>KlZ388fBpsI4|-V%M*pDh`Br(xR>Sdi*CwFF2n9=|$84FWP+rL}u!n-U zqC;o}Blug&!OHA4ZEh}5C*3Dwprf>d<{)tXx8;dzLeEFSk(?QD*adJ^XH{6mM4j(; znaEPKW9CUoa}>Y!Ix7o{&OdH$p|m1In2CJVcB#QGii=Mtgv9|pZ!{NxtVPgRSxKBZ zC+zkynijAVvrx?#-+QpMmR;aK0`7kEvu9X;K&S^a!5C+hShY|4&rtE=?ZEpM-A6_t zjixKgMl^uFk{bq!_;o2N^y*sFrGK$U_yf>v)7GB{$-Ll-dBwuOy`RTM&t4QeVAxG` z^&MiO&mW1iMDfL{btKZR* zfS6%Vl!JP=Ta-K+zQ!~8J&`QJYL_hpS-bwU6UHzL*n~<;r}i}tC)lLS1kgzYme&5>I!XZlP+n(T{MP>1B_(V-qhhlpQ@IG z+=l>W*%!)b%{2HkTz|K)5m4d>%H)2AHxwPsLWjmc)M1hWL?U3>%Jh=|SVl2dc>^f0gi9VG*n z<@rsuSLtRc0;WZ_!&M>VFXT(nV@15EHgS9-Kd+ryHqdlqpZ z7kjrgeZcF`N5F&E>l7kk{a9^O_N0HaUeloadt%FSt)_VPK1|dGXjF>4WKUnOGu@V8 zi}nC5J&(TTt*;d_>qjY?IVO+3UFmbgYLO-dmUq8pws%(Snl~Ju+z@0_9kX# z%%71{9m>VV5*61gz_2&mPkz|m6r&I18^?QGg-2};xl=WmcSRzqfkVHkVz$d+92GyV z37jfQj`u?2)nbPBp?vdQs`}f#2Uw${H@BaN-iJJky)w`Ak3p3gE845G>9s+)OpEg6 zA>f%!a z+PyT%uOwBU@B5nN%DY7%pYR(gx&B&hTG+!kMha^4OwQ2ay3kOKyFt;Eftt*H(ureg zuOm(73af#t$`8OAnwU=C9k^suPmdR=3;MgMKg(+Q`ZoCow{5#SI8c9109@=XNNO#w zXvk(Pq@28<`5y4lO^gxqvo+0PqpHuSLC(fybC`gMhf?!0$kU7~_5`ma7C8{E=>vM^ zGqnfa3`bep4b1gktEr(aLKzn9O+1QL(Y-Ro7YhGwRZjLPbq0@AoQG-QjoL1U_P94E zYrSm^is;KqeS}vL`S?mT>Ns|^`oSAH-NU9GwzM-hH~qal^5fgvK1a39QT-bqJ#`Mp1pFMG&%bn> zcN91f$=X3)I1TNZ3=I(tyBmy*@O!P*?XgCneGclQOI{F%M4cV(^1 z7McM?fTc1x4&4k92lADgDQLM!)w>Ro*nR+M@na; zzKn7Zb|f{?qI=X%9HsCc?+0^Njdwc#@ld|?$h(@XNnZOEXSF;K& zxU`+{Y7a}?4{mu#2}7VlUKVc9fWfW!L80P;p>^qMYM*}K%&D&>OzA(?5``TPwf25d zI%lM~CKzgkt_80OTgTia>IHdan_aeCx<>yd{8hsVX|3I7qIEhEg54F^`QxBD(`;ST zU;`$n7#>YWhEOK1)+LxgFlQNYE@cK=cie1>K|x8}^*XK}PAfEYf;=sgvq`db7anDc zO0FyN?WWj2ta`ThWAba~UbP2bC$I04tC>;%mQ~%s`o~JuKnj-f<3MA&@qCka562UZ zzY=3~RfE|SsUcM{! zA`H0d{XxmVwDComCSEQqRq7pE(mF|@yvr&WVAz!!V5c@goed(^{P9w?w|lQ>eavdy z{_xPA0hA~z2wG~V%1X9&DUUg-{E@D3bT=Dgb4}poW5yS~Is0NnR&_b}u|9tCq359~ z@}9@lkW+Ef3G0OD3k3hQe9d=M2RTW$E7W(}O{qcBG(dAXM5s0VunJ~*mtj$PKQ-Ah ze{a4)WrmZ+>v*PjU0G64*$@kFc^cYrk}O2I#m+$Pdl^X{^lR2uk})@ZGVXYC;;4Qv z&&2_AETd23C*)}Ki=bmn(FtOV_1a6Zrhn6R7MXAX3@f4a&`qceE)Li;4q6#Yfw|oo zRDSuvn*JvP;T;V&HP>`5kUOKf2!I~Sz{VIjT*5G;z5ZYE$7fpoZ;0hrF09(Y63`hy z3iMT z-aM2iT>#^7P^W&t8YBnh;sjMv-u?$;?Q|_nTUzjt7aer< zV>b^2&CW@d#M2iW#6db}(piF+N(Lo4KLfY|AplzHi>NrionwLBf1VM1bXZJ`>Ed1! z;QJp%+K(qk1w5oV#$p*1HyTl^`l>aT7--Ec8P{!?^4 zTvvlk^#C3^V=-m@jpUM%8(=<~0KWr_PIR38#{hEH^F>fDdiMx%sXD21t!pPM0lY8}KU0x6{VL z0?R^W4r@2Jkb5A~eu3KtLDDMPYCNeksaa?4h_v~mcrXD0zB_t5OhN?&`}{I0!7+l9;YG1dEblketm6vdJD20uao_hznVkFw2zA^}P2kho-EJk1zdI zUmwSx`QcC?d5T7*2!&InW|^d1U_1GaGE`=M3$sV7QH32kF zzt1ot>f+-U7#Vk1)#+j>D~Pe%(of3oEJy)N=Mx7-nu(Y=QYuPEP9SE`37x-C$9dfcrntLt%CmP7uo|NMYYB+B>bE(CCY)D zb!ML2+Zm*7Ihy+_Jm-;$Ckl+c6jp_av23xB`~>#Ys6w!Kd<)KFk2rbS-ud$FlV*n) zbR@KBWH#*&Q6cBUl-u(c#jeH^1&dlLnL$S_FPk}yq9t`pVf=rqBy|)Qu5m16Nqz&% z82l0iBfJVYRb;2q4_J_=0j=#|v)78hMn2se`OAt%H^M;tQLH@lJZ`a+2MvkkAM<%( zfsvxo+8X7hV#I5-=Tmd(6pc%9`rk)wpY*K`bpneFL4&pDs7_t|HEuB^O_pwLSb1S|Ms5EtkgL`X!$C@jpVs>viK z&849wC@v(d_~em{tcdOl5qm#TlQ&Y*;?ioG(gwzI5@2O*ZDmty6_sZy`bMhqva0s( zs)6ZG&1{}}hCEZ#&{UV#)Y8|qchh@mq;K>_-`du|&C}4{?d8*_#y;UD+6LyPugp!Y zEnYsiu(h*#>t^NdW#tp{Ix_jKgPVh?k%PlqCkrd5*Y-{yyx#f5I)D27-Y>{CEZViK z!!171Eh*>YyAK~fd43E}b${>c?(O37&eqd6*6W?qr_Vm0{DVH_miWGR^^1@9PtFT` z?;jW%9~2T96qXiL-Wu%Z9TFTInpYB*kQkPd8y(;mot+(BR2dr{8(Yy57abg*n3j+f zpOBoLkXoD^8JiO5pOTZEQd|M4Y)Fd@Osnb4NY2YhN&nJ4mK7D7RZ*Fpot~Xvke&ZE zCnYYYy*t0GKEJHB;Co}i_nxAZ^rFf)ZC!@Z5Qy)8d_Te^P!Z2sBT`4jr{=lFQv&=|D23_8BnKRPoo zzA!MiHn6ri)Z8^RH$U7tJOUja**YDa7#}^m93L8;80ehrZ=M|Ln_SzRnwXiIT%MVm zo0(gmofw;)9iLlSncLWz+c}-TyjmF>U74F-S=w6N*jXFxS^vGaF*mxgzPx#Gv3Yp1 zwY0spI=*#qy*;oHByZL+X`ubpV`C#Yp;QZon zdHeA9*5UEV(c$LN@&3{E^~uKg$>GJx<@L$+_1X3H`RU2|>Gk>f<@x3H`PIca@NcfK zFOF9(PWCQNw=S+uFRrgIfxoVRU)NVxz>l7}K0doXzPdhHxjxyyJ~_HR-MBvc4g6u? zk6mA!U0?29UjqNUy1u-=zB;f9wNYjKp>h^#CwRq z@9eokEgaX?klQ36JHk zj?#?wP-@A5`|@R(osrB>@}75=ed&&UXxx<~U!K*QDEM~$S7&*4Uni0~eH#(I{UG?rlME6@zZ zRF(Rg!;P_WtC^qmwa33_n**<@RKM4q?ynB!8}xmzKR@1C=uTB__#bUS|WA0*v693v_q?!!N zQq)sTi=}97)7+()=T2)&v4%b@%W)<#7R&MGS-Dv;-yw6$i53pcKNB3Ve9#b_=TAWh z(4n;z-K&%4pGi33=_?3+d#5YuW`~1)!W&W!ObC9AXu)DZrmRF_rFH4OqMyj3R7E`{ zYC;%YHEULQ6DrRLMSTpf=lli2DNR&`iq+CP3UV}bSr7_pSPL|dX1$R}6QmIG#P?bv zTG2TK`xT1w;2&*PXpKK9pph4pP%cDNmXswL0T0R&`kW=0myA`C59geSl;6WC_IMP= z={&UC_b3Act}|_;hHd9bh|$}2ysr@BVsPIqm#pCLr}I(_pkm>jR>j>X%J}9NWxWt2 zW$$*vYKR09(VAxWgEn^j&wXST;ATt#l<`4DLekd{5qTr?e(m*1&NX8T&qKUbdM}b9 z`$Qoc=NnyM*?N4ji=Kk8$}dIDDqX6ITZbwcWQEWiPp@D5#cm%9k2Gd@5rVk~c{4D0 z*9zWLX`CUFtxkP7zTP^X@j!lXGW&_x`ee?Jspw=rNMQS9Ax!qc>0*?Y_32WaS<&fo z(!1@`6^QSHv(?O4>$A0-?4q;vf~xJajgs~U=bK+gtyEe2e>Wm?UhK3G z+g$8+Fcn|y^$7gF*oVq;ULFi-*<2ounH66i{d)KN@_5#l^XgMTHM{ugY_sb3 z)%i|4=k>+GsLl1|$x1N*WXHdO3dDebkmVZT$#y(YlpyfL9gRrBJDxZ}5JV=qCN$k0 zFOnVzl0ZijmdlPeHAWhWtlSU0gq=^!N@-|X9Y2U_c0NB0O2aUdYbKl6@e%Av!+O`z zOnJ8B3&u#tx%QQ7p(We(lT%8^i|uG(6yEh$3rZ)*mTP6z-3`$0Nhhl6Xno+a8)%4; zLDDYQ#+|SmWUiD!Hrmm~U$Yx*8MXp_VVmHLOCxi01qh0iDH`D_olNwpRLxOBC z%ugwkmbkM+MtCngEGUznNxoA-cP}EYCzDa2vs1-oFA{?Bg;`d1 zX3bu7NzfN|Gx=`aiM^QWo-YsHb#}iv+ly_)$a?52-(y6!AJ?Ij#U0z(V=BBK4-LxV z&6e-A)ZI@Q>&fD;>g=_4*-xCs$QEpu|7oAFpR}r!Ej-%!)2U`Zc_%1aWJSKuWnw?& zq$gYSxbwR2H2r~zatN`^QJAj}l=SUEDL4AY|(r|)vq?i=?19T74NqTc+1iJb| zTn;j*F>~c)6$T;_4l`Xm zRTxSqJIs+&&eMqP8p;wr%vB4{dz!5A((~cvWgP}2}fUZlnX7jx+g|zjw(um3tyWl zPEHI?9935L7FxgSo}4~As%pe6vh`K`HBWY2-Jx7$AKU$FS@`%HG`PqiTXAY#_qb-P zx5%lgdurR|xONt^*tuPCdN1L)ZdJM1Wwd+xsOGqSC%E{-isH=K#PRo&OFiME?wPBz z;|35`i3hUMEIj#1BZ^9i7je%l(xa0moRE@FOiFWTdM7_fewO$M^vq$oo-|WqmHNTm z_rOa$X<=3=4bbYDC#pSZeHc<2WTv!0HhIz}__H+RUC#pL`AIt%t1Qe{X_1!vv_np% zEF!kYgb*3=AD*WSQUVcza6urHRS+Bs;!a;`gF6cDym)iT9J?C=Dw)zrs6G-B3706C zARJQf{0-|Be)jgfcO(WS?;i0k)%W+o{1@}foXzr47=ls4|CyaGsYvWEKG8H~VsG2faMp!r$<}L`<^9Z+-NW83-(lCdhAed0q`d_#U+v(TN9u#&RPmxTyaLUJD2w z?xu_FJK%*}X)kEjTa8GGp5;xoXYrFGe?#!2k zdR4|I?QHPJ!-0ewc=Y=Hx-}*seDLG<(nTH2X+E(X$&aU6y~UB^Xz2<=B9vG;+c?b9 zA#npj&mfQ9X@I1sU3Lb=Op|t9t&PUQ=U3>t>@MuN|4JeK*N(H=p@E=vyeY zp~EVo)ddP!hmrmRYn#K2oA2Wf^lN!|v3G#qp)#DG|{^BmA?!QBN0)#YF zt_paYI$#CDl-`0FUsZ)KNNzrLAYt|qYP zAFVP=3$sO~_mBCROf(2WVUR}jC*Y^g9hcYeXK~%Nd{9fYoue2C(w&MlTkhjF6Uy}> zWa!f$FJG+-K}0uvoy3>oEFIasKVR=!8vq8=n6qj$9B+2wx5shHdtP0Pm$!!}&J|
(|x43677u&C}b@1sMP`Nfm7Ops_e}hws<3 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
  • z2mx%zDlpLbXQ9dd+`5_%kh`cMHZ zRbbdHR?fi-)uKS9B&J!!OGWy1iy2H|3ILC(MUVh#;jF}HR#H$7vSOvb%m`vss4$#( zT{j|3j?5SknWlnFI!MJx$_9}3^c4mJE_){8j&LGe3(=cr#m;hc!UDi8lO_Z=PK4gn`*Fm5Wv-gR}vGFbR6tC@H|9Xt7Y94Kl175v>xJ5K&8G0;B|%$~Pi#RvYA^c2CFcF+^`H zjodYC<&=)Zbt8+^l6vlgaE#D;5S`0_dB`m-YK1v+-y#muc~Y>MF2VAVMRdr29@xnk zT0QO_Pzv7$A&Y>hs5!oALRPXMvKttRN=Mn`idLr!M%&;4d{-YexUE@2nU$;uqKxlJ zsdDi-0(u2b6uwjlTTv?xn?V-LJX~5t?^r-k#$)rlQKJNrznsrl5VEPV?WOP_=$*S; zwuuX;U^MVewLLwkL?ZY{H3+4{B&xvZQfWR$98gNxMMOo=MUH?VMh#15O0W#c`T=M* z5(T^(+1(R}pQ}&gN30tLy-MLUDohLTSJO370;wNH7!nI73<$UIC1K-%%tY3-@4(x8nL@N~L{i=y;D@i#q@zH$lPP8kjYbGYBL0=!Z*#JGE|85)N>_j zxb=br0tdY~Nb4XN#18rpk-KNa_9~DxDNLhxK>Tk`sl?9-T{iN{WmZ*p0XArr==;aJpB;R6xw`|+EIBJ}}mw{eU3#vDv z3d&_fCjkj3Oo>I8%t+%IFt+mC<13QF@_HRZ#$te0lN0&lBiD^Wi$^Z*rylOxEdxGE zZ}g&fa?owTdb@^YMX|D!UuDJ2OXo$Ngnj5Ibv-XEJ0i+@Of*3zO{zYfv`|%^lINed zy=V7q^+Vim`Y8UM772S2dfZ62=Aug%+6gMQ$@n9@#F*3>$0ozHyUii zqTm0xoEMz4zNtUmv97?ss_4L9N#-3z*{_=iq}ipYU*yuFN!=g46-i;6EZ=wTS9u;U z^?n|ayPcAg_U2+~n88NZoULbVw$Gr-BOdtIziC$fwd3Tb(v+&2pGexT=*9zj@$k(6 zL$-1DJme#@lX9|`C|8_*^&TtsT|EwqWeQgfqng8zi5P=*iP@Xtb1xSL?83>ia5LBo ze(aF!i$%Vb(8;-UwL03q#1y|PR~o3iu=eBCY`eoZV~;m47`}{fm%{;A61hYPL1eNl zzR00amOl$Op48<~XPOzmKm39)=bk|;h2M^%m5(m$@Inyn!`&>Z<syzvmiCzg?f7yRgfxc`+<~{nomXByT+oTbPUDAB`-*4K)0eE61G ziCruJC%P#WO(bnO1N{xNV6pM)MH>6{SCH zjw2#>&5D0+M31d7Ng3wv^AhY`0Y@WHY$k%rC-|1Z z8aiPxCLgav7I0CHoJK^cc6jg->&;pVRTgv zV}V>Np>YwGGp!gEzy*Yc*Tg|IP~*-=wC|_v~oR?^1|bz(pXh$ z4up}%((H3ZJDm`8u2i%OTvLlMDQsLd3|Jo!qzy>0se;(TDZHn+7-JNkDqKG)@nAxa zXat}FxhfDpgZMo`vR;j%FTjIv3SXjl&A4bKU1Z5YZeoZ{XHl6LLAD+eOPA)&2$rj$ zr5=;{8DMY`rcS~nNOb0-f@^_-g^>N9j&2=CdMO2AweaOQ;obpM7_r%0^()&69`R%% z4itb)0LB4a)eGoJ3wXESz<$9-oItQB$)RRaH|Coort7R(Fp?r41mB*t|=Uc zhc6&QmuiIxoV1Yf?#hhjqK91t`MQ8N~H}?I9D3TDpafWx#MrZf%7G?@UQ$L!vEXaexVqkoK^cCt*8Nk68hBS>!h{b_F#tN!%leqEs#xTdY@ zK+e5rgbTd?o_o%#z7^LuWs7Q)PdC=u&7Ua;omoyG5Hqde8!PYaPGsMI@yGt}GvAjq ziWRG?w)Oa?zI!|qX`hosI1#ia>VPUROQ^ZmivwzN##_un%Fh}qtc`4*IQbr!8eAt5 zuzbF})`Lfcq})y$ja|_|mEu?eyXZm7WvcN=aF7x3J!25p#z?x4Qix3lEets04QQL}1==Z55x$7y!;sVx=D4y?g?$0rZV=#6oTgJDzUJ`ZewNxyQBPx#Ro z*Oc;v`#wX-+s6r70EfnnJDCbG4;D4IJs&pPr4X+ub%6CywH6-QvdF4Lw<(KaeM;pW zdel|biCBl-gZ>Z0|H0XzsOug)2HpNg1+~tP<2o?(YaD#E@807&BX7}CccFoU`yz~Q zW0{&6uWvVPTS+jw@@NHaZ_nw6q5H}Bs*;CHpK_W~#avAi^^J&K(ir$Y+8vdG1=9mS zgBaGt)O{@1q7_kpZhvod;-%TOJ)qRRFzG zqr3U9^mBh*&>4C@Z}*BlT%Z4?f~Z`4wVcvE{LR=Sq*Yy&qAL^KMp{sLTDNg#5s1)7 z;P3eh?T>E3tEmll;KtC7VEEsyd{p3Zah-nfZ0Wk#Kq&uo_`W%oF)6U=X=mLH>YHx3 zL){NuX~={8qH^!2)rm-Af2tkUos~YzM_*QD#$f=bNznQIhs=XcHq6eNkfvF1rT=t$ zefD9Cay|n4r#SP{n`7H4<{?vLI6wFU9nKGXs)F&IPh&(z-orgU4?`yxI%^m=0s1{x zZI9^#j}Pe$gC1}4GYxzfowghLAE{bX<3HTA{PcN8M`MpB)u5dcmm-rxfkSwyE%9VOv>Nt>@uO%py z(vWGMLH0PDe5Ftt@}{U}gA?5KXY>7c8+8UnvrD#CQ0uR^yv{HwUq~3GNBh52V2hmC zq&Iw7_;5#6g1BYx9Q}!%FTOIbdmJpX4Sjc>2NLM;I1yadXbwfh2!uo?~y}mq#c4W1k>@# z^`Z92FE*#9W0qMR2@5-WS@<^ZOt_Y~d^b6uJ~9 zU8lp>Z0^rCX*l_Jsa5gMy)cLh98Sy?>znppP zgkF8w()_5)<8z9!J zgS!ya{xp%E4e6iV8oa;2$W!V^R%8`8_5U#T`7wVb+wjclB`D8v*0+u~{nqgx4FAud zT@C(wGsAlZ9u*H}o?L*MegYC~Y^fQP6)!4_kGP&*&0wK-lt%^B>m3X@zl$>X`cjbi zxw=!DY4czPZnOg@Daqi95SFMSXkS zlh0%4=Kn^gpXzuVK)FgztE=-lsW46^C?NX0cNvO&sl7b#QrJyji*7EGNl=|T)~c#M z9Prnk1;X9lnwYT9_&@iI!Ogc3;g0dwDnsQ=kVotdSYT!4JNb=VeeK=(g7#`3#-erZ zelIkfoDCs87W-zR!^$BDVvLQyiIX`33d53Fk$G;R)+(0v%q5wpw}#91Ye}%(UMMp0 z1;jptngc<(ph4=wH(nuY>0?Z8y-hc_w}+j8Ey~yGL1-f5S%NI9xfj2UAq||MVY$@` zy`$qXo(q#=2Q^51NSE3w!RqiHf%WIqKHFOyWclBAR^_QM6R1gX`vA-+RUYxMACKLv zQea}`qSKdI=w-eF!jo9EQ@WROB{zd|wJ9UJd+Tj5oc*CRAoiDSQi zN5jyd?wUd2Wo*BSaaii~1&g__+gG!yDB-dh{# z77bSIS{isoJTZIw9P1r6Wm;hJqp+WTudpIvLTx!eAVIh!7(2>gBtNCbb)0A5%Ms{r zE0uV=v5=&ExqhxvTA`vQf zIaz}zfcPF(fSRq}r*-6LCI;Ed+6874YT|@2tdR@}RVL#g9np*H)1IgXgXep3xga3~ zgiwZ{LYRr0MxUy2=o8uY0p=kZ^fWUdUF6=%#L5A^IFbJ_%hV0TQdw>gmpQL-PZkog zG{FolA(rjEsL@x#tP5EIxuUQTjooo=VxN#q1|9pfCOs@aapF?gxX6(J0uaDA2m%Wc z7YPDfnZTO^$01nO<{C%H_==4n_GoNtS>9bjqOS%&rY454LwnTD6A|`hOi##)Y=n6= zYV?`H04FVp%C?X*ZMsG8I!^j=;j2b8Ceuu#GL~nL(C|3(`VqBBI?Rd)GwTqV*J{)6 zHU^goE#(nT_+AP_>sZV5n}&Z)vwntV|Nfa~>T8>8qEF=eZ!~N0~{=>wIg$Vay z4PGo_oM(rZiuCEd^J`88l!CU4ER-AwcGr@cg=qNG?p-$fk=1YZ75k)4)`DRq;>%b5v7>N&O z^s%t%y#ZpF(L{t@m)dt$iy{lm2q22DHFXr=si1xq80MyhbOH-Nqo1s$b^#VDfp-Wi zCIZ>R6Z+H&O&10J`H5k*Y^zD2jvJweVLRokJ$Hyay8w?_tzi%7xe$S003C@_szWf+ zER4$Go29aFg=%{#U_xbKv-pmv6^@H)^n~Dbk;XyJM3Ex`m9{AU%0;FcAIrj)t6iF5 z1U{csF3>9!*fT)mcF?wO6@98Pco=520~WAn%AqU5xLsh$WrcXNtj5%Ms^*hGK<2=g z%oI(2>e$L77`rhc5d#vpngpNcd#N)WQbiWktg|#$%9y|^Rh-CeL*PW`$3AfpIJKq*6hO0qdVty;!N$}A`pO9#Q0>;<8%T|Jg4RtFOe2E8zK3la z2?o}(ExOe~WpKw~zRP6mpKJI=6KW$j@PB+3gtzIJGR-`+2J?V%7eA?!g>({NI1$D> zS{YDdD_?^+qQ%b(E(kVRP+0*x*e;Ds_c)g7lz)uJQFfe?zURgOhzVtKMX}4)7fZ%<@hMsIdwN77k&+NOZQUSVwKu__{?Ir^D#8 zFpD0IB^O3_f}0hxzzy)FR2YB{f&0Zp=tcHA=Bs_u*=}mU)gF$shk&=&zbt|d3$AVF zVblr!y+D!w4!FZf7~L19KM4ckSjHa&XT>elM!wmifE1U#>8#z|I<>1j?_x;=rJ3b% z3zWanoG;VhiCgCO62jX>4v;ul%`z)z$)O8p9UqFWGHz5m#|nwVTI3eNmF%cMb+11I zX5J@SaR_OhDzFjffjk`22-av=*c?Uq8P zH73<8t2mfv542^YS$UO(j}_U?s~uhq4V9HTI?OV7Y(_u-z71!`+1DS)$y> ze3x0!7*Y<%5yr7F&s2>G0ZyTU_HvN}2DIn`sl(cUSQu`ChxdhU=0ZaiL`2g()o=?k zXe9=T)k5cTf$2CO%MlpW3LVL;L*E7Nxp0T8kTWebQbVC|pkaH2M=Z+;1w%KpT!%GT zFQwLn{E@o@_(B1x3v@Xyf)3AlLF3eOmkMPLs*WiR9Em%E_nrnJe2-WNx7?io$&)4% zu<+xc9UyWhYCU>JXtRJG2L#mYV7bT@`pFKBE~TjfC>X_m0PZmlK)qpR1Mnb>+lfe) z%PgE?pQUG$7#``OhtW7pPta-sy&0x&V{dRS3!p_9S8F|(ECa?nhb*FdKFff~vgs1| zA$mz1I7I9k+Ova{eEnLcahKMA2JW5Avh@UA)go6+g#UQ2eYL==jAhK}^{Lfba3Bi| zhU)_K5e*<7ptG*sqY3dol7!z&W$hM=f!^bpG z7MceDa~=~d8(=ND&cYnZw80ai(EJFq{KWLJ7QI>~h00#W5qj?s1y&0k%0Fco8)Er)yg;A7p0o{tRhm2Nm`*2Adls_1A`ki)YwRU-&AUI#@c( zb=yW9y$%H}^rl#Cn7N8i`8U<>E_?6y-hB5p3}$oC!c5q#=-?BS6k@Y3UUt4OD z)`m2!WTlc~MjcV`043YL#$wGeHu1qDPRzBc-T0lsYl}UPTHO5>GH9{$+^($qy^bXT zq+WQj&y(HP*k$KZi8_l_*3ex*yJj*#APcDR!>t-gE&e4S#J86J?=`z9lTG{a#hneO z_C6_ZSg25?tWS8nu>_m?U6gYoIpJ`3_l~;oT8l3jMrChlMNb0UVKlg|q4MDERYh3g zVR+J-D=8sKPIKMGekjNmIcRa!^3^(j72H3W?cF8f?+P;d z-kY~Pz*f)X(6zuP)bD5iXxf{%$5!%>)aP1=m_0ii;l3#J?0G4Zjix-f{W)Lc-5z*W zHX2F0@$07BErF@j5(|MTAvph2Seb~vIM#kS_3Wvq#hT`e57$y3Hyrv>S9qGetPp_N z^RdHYe;rc$%#Ov24EF4ASeyKNLxH5hp}vq8wEbqn$+nUBgGYmB3Ek~SlSDV%>;>M7 zTB}y(Qef*f?XKg&18D`r&4s(KSLfgU>`-?3J7HC5PPjO64|1IuFU_@?2~z*xr6A7s zp8ay#fzEf%?WM&5&J2-8CL&!~XOBOc(oE{|T3yiUza5zv(j8$EDe|5b=%=IBc39W4q~aOIuOZ-@BdXF2;O^I}Gs6Lf`?grvYjhCiS+@aB@1x>{i0_zUNLEAZgy-Jt;g;GIJj?qL&fQCK@WW$+M#eB|U?cF^eFjG7XO#3i#vwB*xB zqo%X_{s338!n$)sKG4Q8HG*+mgPZ;kO8=P-!b^Go?LjfZfhJa9N%wqXhzg$Y;E;bc zJN<&Fp@aR%r`K_w8N~R}`e5Hl%`LizO~4ycUdsZ9MO}!4kozusK$yrCjsr%11v>5HhR2zY@T)!zetq9B1VO{rlSWg4 z%zGDiOFZ0O0C&^qK+joP$JEwSmMFsC6Yu(3_@ju_+%&!IpVC`MFPEyn;UjBiLKm0KF4{zAr7zb<05srFX`}X(0rv(5y=F`uPEk$b0 zu{|$0lHrchDo(rce z*xbI&q0!2IIl9^&kULa5)$&dwmu*yN5Q$~1B9wA>w0Uly1sW()@I0;MEIN=q?i+#`-V4}SjB_c zmbuBB5fzNVx9qCabs)7eH=8H4Sb<_rQT9$vBl%_@am$XSoNs=0c-t_mwKBi*Nale( zLLK#NjDPJ}OHwNSFH;ZSz)gD0zB=i_kWLapmbCLNTlNU06CPYM+Kk{c&Ry@51V7RB z=`;7?qmS>%4-_59+SifYjjtZ*1Dy61Ez^rE9cjfdRk}u! z#th#;u-SHzD3Pu`{xrKXvZaW9Ap7HHJN=|_)sjFKwvHOn(2zLF)8n0AF2r+>E2eO% zw`O3?Td@_wBZ(1oHDDNz|I3O^ZiWiJA312sCS|St$ZJNCIEt7$c_0^~ z_o``YS0JX*xs>(jccj@hj2~B6_EHUH4s1Cb(fQ`+fOPr^1(mjJ27@1t-d;@7%@gfPAg!*uN5= zM1>%w2X3*R9%YjcRwpq)+$Zh^N_viD{B8ug4d6T68Zp@OL1TQb7PR89^rE8R#>L%8 zKsB;-V5j}VmC0@WOVcW`TN#b?HWudKRU{5ieMOYa^x6|gYW8(!pekoT=SdzGeto4y zAivLl0*?wLvhi7f)CJ(6iu)9(iQzk*$&-H&R0`;XN&QczGGPw5QwBfKL0B3*nhUpj zp~T_1b%NwVH9?iDaX5*uB-yuEIW?f%T5zb;MU9Dwqop6E>itp(MFmfxQurNqka+W&)loMimt=}tQR+Kq|{4Q9-A}5-fej81jn6lXBB=8*LmOnfG+4v$=VE?&J z7Upe-i&P{00q#mp*2?|Qlrd1-q9AEeU~pI6WPdfmfHtVHe6NZ$GvQSgPWGBDpNz6j zq*kL_4icBC;C`tBk$)*1*t#Hb8RST}16su0La7a7vSyE(Z|pD4Zb$LiGkI6 zBNFQIZW_vsTo%#XFrQTn07e*|`7u=g3h(3+&+e=nSHp))FYykojKao-?nkIOBYbYE}^2$EMt6 z^wNGNSnVBd(Tf_t!|**LFyg4;DwQ;Behy8_kJ$g45@tK82?~>o%w3-F4I^|_o~aoT z-Svwu=#_n)zWZ( z=uSm-L2H&x|2T5ro=Fswt6lkX0OcAqSDsP`2c7~Fd!Vr5m)TzHo3oM2c543K`^?tr zzlHvgo#0le57TmPR_ZpaG1^!*Wp%Z-FW@E1C_Q$Q#pzOn^F~e8elmQbeq8K33PF?f zSEQbq+u}VV6|2XEgg=`5!>@K!WzUO-{uz!UE^=0_Y6I{G)ndkC(ZOGbLBm_!(jX^XJuE>VR242ljZ67Zv1Nqd@e^@PD2xn z$^Wzd2yhB|?kvvkaMzPVgZP7r1A1%zM}CqoTdVcLZm-Uye3_L6pI>qSb|aaIEjH7N z|0Y@1H{MiCvXd*(&gmw^qq0KdV_P;UO&-2?N9A!hQ?1&I!po>?WIMqGPD^^8Y18P^S z?a$9kp1_6898% zZ=C&c{daETUi`9}QJY_im$4I_Pnl4bc{?i-DMyMOFV?$U?j-O3%kh!cm2KC?V5?Jfw%h~#qKvv+)6s#{vB~VVe);jp73ha^00|#!<@%Iqn>729x|>BxBijeFQ)#PN&Yzv{&|o5x0wcPPYT%85b*1xfc>TnQ4&Mez^Hn} zIA|K!kQ8{hA@JCvz*D9{r;~!tH3VIF6!e>E@a3f7YYoA_KZ0C>klv(_{x3l?j-Eyo z@@PBhfvNf9N1?`9#V4Ik&3vfXGRN$!HGj@y^=QNJ_F<=-aLYRV6I;SflP+O?>w3lt zv-rZinZdF-%lhKuwKgGq?(T<5yvZjYgA3bOlXN{Z@z9O4%$s#XiMH0>JG|cJGr`Ho zm>r&WV^R3N!Fi1 z2l4fJ^9NY4hI468W6W!f>(4J0onuXo=$JIuglTJ&sk60Id9cFf{dN>wuJdb${#=GuV^#@@Ut%P%| zE9P=M^qJ-R3n@)F3gv6O#0&PHW_3YDBItW+(Bo%Dmw)+4(=%O+1r5=xK&>TAJ^_so z3i1t2^pP=}88@PoYuQcvnR3V`-q!&pKt`yIdO(}iV$-9=>ah z!$%%5Lk{<4;+|-1EWa`@c&_+Q=|eWdS0ev-_~V<7*=EbDF#}XrY%Z194D0lKCt=)4;sVcRc#YXV zy0o{|#Cwyl2)XeMUIbRlcDVW@q%q?rEaupJ+G;c71*+9Fo!Q&VegA09-wH~#z&LjSRCDHJ!Hs&Q8{t*o2 z-{oyiHh(2>!Df*fskkhGsfvq#BN!S!Wb=-f-e$Y#h$g-wyq~9G9}9+N6_hui5PBf? zdj6bg-?}Wt`klZg@rw1g8gjA5=&YJprl8CV)_nOb@5T};{BcR~SHWUW_72xIHvA5M zpmHcAfYMT8bHnlH0?%4b)yvlq4}jM8PqyW~s^B&eXQ{a2fMr|kkgs^#P9zsxuq}R| z%m4k(hvNq`Sxsi^MgvRZ&c=uA~i#G7lP z%PfnHOh}$Z++vc46^286WVD=cXUSrpO}BBoj-szYM=%kMRKg7bu?Mj16d3)Oq%Z`? z;!;E+KBuIHOiv7kIqR3ud|T0k6S zBGe2$pwz52b=_wjxkp|b1sR{9btTV$LNprEK#ORm`Loqgzq0hyyYRyb zn_8NY`X9qvtoN5D^&-{i42`9m#uU;Jk7^8d=&X(^3@HzcTND(A&Pd53;%K-hEb{?A zS*@*q1GvH{25dw>=8p=H;K39NOs?Bh=HquJLT7_Y{!0Zjz zU|vDo$2XPo^t&b@o7C_mA0Gj^_B`vE-9)Cqc#�sz!gFL}FNa>og>+Jr1TLPHHHT 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 diff --git a/docs/ru/md/Start/img/3.png b/docs/ru/md/Start/img/3.png deleted file mode 100644 index e61645a9d4526f0c59243b295e14d0bc62fb3fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13158 zcmb7rWmFtZ(C*?MJh;2V;<~slu1RnLgd{iwXR#36o!~CP6WoF&xD(vnU3d5Hd(XM| z?{~f*b7p$GyS93&ySkp5rz3T=RPeAVu>k-8o|>wn9sq!ZctiqVq9bmmZsm6WmE84I zWMdW#wcEFUDQGVCOHPQTaWQ zs7R5lvLO+QiPSr2=1b6f=PyRI9jiIHb?wrE&`#}Dt@yx%oSe#<%9F) z%Umx#4fywMOFfVx`8qQ!r9+6AFWGy;K52~kJvGd-Av03wm53rGKmd#5c??|hUQa2N znUzt$eb~94HP_>tP5v4>=Dz4?mAM=OjcuL}Ct~#9fcW zGJWy|CuO!Ek%#4g34q-18KqGpxiH7Ba5BDI6FL3zDB5_lk*RtvyCo*C-W`EOWWPxw zJ513l_`5M_kY4K#L65KenKY5NSth-Ho=%cRS#p`R&y{x}d?i>m2w5dwU+&8XVg3Tk zubb|yz(jI|Vx+pbgsphHkPMkU+4{~@&T=O7XWJ^>%Yi)(#??|~-La48q@Pd4J?ST<$qOALy%G?hci-s%`UmN&ZGfqfLa68o=t1!bTleXyhqTV6>JJ79Vs1c^jkuG?7q4tiBht1v1L0%+y5S%E4&!9sw<;H`LTH%VfBfk15i zmts!Rl4%u&_qb87XiEIA!vR!jGPWV>+LR&eswg@{EzivYa;BLfRLVMb&%>X8d6|Ie zK1J>0zI@a4Lwf`#)IP>U;^O?K$LpbxcMW7EJ}DCo`+oYPPreoa#Z?9-J_frdpwnZn zKo7w+`pW1DQFM~rLa1DsQoV}dXq-->fPy!4!+GIUzG{Chqb%NV21-4Q5K!BN(~s0K zh>f8t%le|=ic$eap9C|Tbd)6$qw>VKfv8m(H`ZGpoqJ-@duFToNG+(j`B8nqwDwzX zoqHV70gbSC;I|x1G=In~Ou7FMa@$OQi#+Z?5~TpJ!--fg04=?4x!RmvJeU+A@^+ZG z+;qQDS|TH>VuB7dS$_bqA)w?|@bCsY-=Xa^hfe$J-I8Lx#G%tiy~|!_gN*O;U2e7< zyF!Afj|U#(coJMp;t{+D6WsYajAL7^;>CKqrvd>mvu#tK#-^ zDR3Ct1#$xSmnK4&N~EBxT3bDJ3fF|(L@lM!)%2)yFo{B)J>TxpJ04kb7armvN~E$~ z0KxhCUsOQ|r_+T_)WDP8V-DUG${Ip}TaQ?~^&{jNSpY={AZwtlIB zTZAZhAs@#+8W_|k83d96m^L`x8CC3FkdP#F2aOPH3>=K34&!V0=qmScpaX{E?P!=% z2r+P1?A(}79+!Flv7HlNw zs<@lKS|-B|q6C>%#|S073H;kiZp!j+9MvlLG&%H(2%s&+!tRk}ioZ^M1Cz;efj~Cz zYJ|I6F?5nMIIcrhiPbT4V~24$9Oa7;;3?H&@R{h9ybr=sNbMAWikGB}EfFS5Hk6=} zE(owykHUdo5K2@;Zo&{m*yBSeHacsh5%xs@paWw7pBX7r%0A+hTxoy-OhJVVG|B)! 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 YCPvlcaTB?SvoQcQB`w7odCQRh1I9W@od5s; diff --git a/docs/ru/md/Start/img/4.png b/docs/ru/md/Start/img/4.png deleted file mode 100644 index 7b74f244a6915e652a411bf5298243fbc4b77a7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23046 zcmbSSg;$$TuuYHx0g6+gxVuAfE$;5c-Q7d5;#S<bMM5ctIA=5NI(Dp08>H!qb2|Vguev>P~X5`j6JGs{=4$jl#>E9 zOpzYJFOX~{RU`p`rX+NzIWqhj%}w6G699NS_}>#a;#y?|02t&de3aDo`*fC%9E872 z7^TJ^)`g!*GN-w|Q9g{0AKTRxL90)Rc7D!YF3*I&ynC){ucXAJ>TYrIYU}F<^s$+8 z;?Lcf47%{8=xS+H@j1u~gnkMA|36xG%^&Cc+7xJXy_-M^)6vbb=~8t=7IclQ5b>S~ zEOAQZy3GBkxkCNvp#a(?3X9M`7S4nx1ve9YdtCUC6KtJP&$#qYtOlcaG1j=_I3J^L zjadx@p)^Y}O&ELIVML%l!Ia3JF#X3NMMr}I3qhV8i;cFrd5bgLadps}HzX3chsR@UAbP8!iSqrBAZ&Lybj$*))4byS_V+F(TKZ-+F~P!<>p} z2<@*4I8I+}xcQsW&*8{vgu)neGNKN$=9vp@^iUp01hYCAN09789ftKbCC0nH*U^1Z z1i!W+sWLI$f2wH^5zTT+EUeqF!ra_ns3}BBW)3{~IdvsJn}_SmQgXe4|GSrDHHc%fY)YGU6Glf2=? zhd7UR1qV0%ARKRa^tZ+HVSlR)s`{`(yF}82QA>eM)q%KA0E4U**AsY}! zYz0fWmV8B>X>3(x4GQ^8t=_K=pg{2KP1L_+33lrzEZY!ESUKC6s7$gi`H4Y&F0;n$ zM?<*FcQVYqj=(|$+J=pS!A1IqmF;Mj?d=pktsu^6vqpW{plwkMWV1K>udGdqiqlSg z*wC!O#Mo_!KG_ibi|Fnqz|k(T2yrp?!(oOdY$)&NZQ-!?*zE#!q-iHzq_0C^xSVxB zNn>5W%I!h4j&VQ*p7f<9mM~M8v_%^pi>eW#y9V&1z2@g#VzXZ8yYWifQy{=V(zdG25i#Q6 zy03W24q+ciqH(1@9n!@NK!s^E;VMoO(aPsR1|q+^qW%b^W(pH`omC3{jnDy<8S*fq z+jijsJUnm3M&^r?v%ASN1_et$Y`h;rQU3Ksvs;gYF^%GVUzJZ8nucPK5o>!KdPgb( z3oJOI?+f)WJiQwOs?@ya=#;!SSv(27cG-%9daGwIlv7E~=wM zrINZ~ou&mD;W!&Jib?QE_@(9LpzRzFW;|nW|MN-~T?akkIzlGa+sBBckMy`%|} zcIDT<3SZQJAw)9S&;7l*5G7ryooct9pDlWtJ{+q@?R+*}e~907M=L`0TasXIVvdWH zRx)12b<;sEQhWGgmPRqKRp%pW$Q97qcr9W-PrhDz>~w`*u30EvNfIeye~>*YP>KZk zi+c#4i%48InV1<4sQbiL)aA4HsZ?rkaQOj|($9XYN5|iqy~P`YG}T78oMUO4IhPa+ zeWGE3$oCj{>){>m+|@d18|Vo>UpfMIC>ATlZyjd`Jcju-8QzxvsvoqIT$X?0#qhrWq6SM8%DR)}m;y$9_2qMz`+3w-_0nDy*^HHb)m^;!vRi@MCpv_5Py2a% zo7|hpSVriw|1EwTUkjG0u|6r@tBZ<};w$(U)JL%WFPVo8YI%M5pA02PAj*C6TRO-u z%?>#eMYN8vh;2lfNK=lZ>^JTT4^$6}ikYS9f9N&MGN&?Xxuiei+hm%_Ty$7st`s4; zCGCFlCZ^jy)eOUGPS6+FmQ3xShdRIKt(fGoQD4NRW7Vs_e%07gbbB?dCUrfu4dG6M zaChjrPj^P(y4~?o<{6OA6e}3xfnkXzc6ODC87#-j#?28^COuC670R)+^vt>Fw)R!2 zBIW{oto9{(uGEKj(pXOy<$;yxDbydaLKAEH6)p1Loy6Zv#JJlaL#mh)Axlu=KRK6C zH^)jFy(7sq-e6Jh*iK}W`NZ&Ekoh9v=}G(G(S0Dfwn$XWZeZ=jCE6bu^;;;;jSfFv zey601DUVq=?t^Syn}wiv0;C1(i2eFvL6=!jjjb0!5oTKb(f;^%D-+Ai2cKDLP>x^% zxp=U{_W_jsmkK}$Yjtb-n~tEhD3W*_qfOKEuMiEPQ|}YP9=|c>_h4#5gk@DD?$dZe zKoEo7)ae`#!LDKf+}p|(JaYu?u&oseH$4`G%y-Ne94@hQx&k6q2Cy1)F9gUGOs((B zSgQxw^wJgbY4eT=d1iAt?|sp%lpqFN(M{KOnpi_mIKeb&*3PUGuXdv*h z!pPU}zQj%1{1bWz6ft|PEl7E1Mh@&t)YsD1y8{pGs39$@xAx5!fN=uvFq`S(CiMN4 z?vq+zrrDr``IquNru6r)C-wZ4^9x-0{D=WEzh9mx>N($6pfmn%^ymOE>`fErXN8mp zsRx=}$mPBBVxm-lSG%!B<@Aa>uk+(B5e^u#5p?idek}dB79-F(lhS(E%>f&w8L63W zd-8;O2%=FbT(NF|4^W0BSXd_)FhRiJvE$bP@o$A3w|1)w9x~Z~-m$CKN`~A0DInvb zhjQD{nfai_9$YR=;L`rH?RW1}s{!jeRWU)|}zcaZvcv`5ycA ze9~yvDi-3AEN=H?SnyBS`5wlCLO20zk7IC z7TY1Oj8s!SVEg_nzLGb%S6B|p15PW@jVG3?KUrup*06crq0#SRjqCSQKuieh)??^&Ci0TM#{+1h{ zXlG;y&Zf*HRy|@b#eCp~$^%uNH?vN8a2(-mrPOzOuAn8>V^QYl*PiJvTkgu~k8#qn z8c7$unOE2EiSa_8+U(^-hqpKk8YxAC|HZm&^_142Hl|YaxRkIl#4sORmubhe)rUIS z4^%6H)mDR-g3|#s@#wHR?Y|3$>PRj;hTU zYi^*o?}Y;QaK}kjg4w@#SY4GRWgCP&4XfM;ExZ^bFoybxeZs$c5FaOyQ9mR+X^?PY z0wBHKMW@3Z0n+vOf~|^ilt;oDZMf9n{JmzP1XFzW{^fb@ANs)xz4%-d9?DIKT+^Wr zfSVu|zxc00>TGB#gTA8KvS5pn`k|KEufKYT?1;u;)P;d_O||FNn1|6Q_=Jwt`b{>- zLm4IsisILIWdP+6->YY;JfgYpmgmL_jja-FA=Al}K1Em;;teo~E7z?l4;k?#8x$X> zmE>=e`D$Cb^;9n(79NyN_qF%~H6r`Ty{-$A_G*OeI5xRgdTcPZ3x<1G%Ig<@(Pr2z zIx6G7pF^Gx>4v*u*4BmUz{PU$^%_;a;SH(i=Z(?udl$+GJgL=AcG<->iZVLAr1x?? zhTmqj5dcR&4EsN#G+Y|D$1_RUC*@*N4fn(aX7wXAQQ|d)m6`yuUd5x!Np3wD<|z>H z)@#4w$In|Fq?9hO2}JXs?-Sf@_XP5~%FOf5MU6zF_YtFi>ay7LHHO?X8C7A^5wQ15 zRwy-2excj$KtcRqsKB7|@|`I>CqRx2 z3y}0Zf2nu=u35>N$0r4oR#7kbJhFqdb&Hro4DnD7OW5 zNH0(f#8Blkp3XXKiTdsH-V*aeclXwu$R9DcWDJS!H3-MEXJ8C z)`idz0G!NpgjW_-LQrjw28Qi|LQEa>dJFbyxaV~n%D#m|ht7ivdQM6$+-kNYRE9nN zt{d#AM$F_m_ckKNJP@-RcPWayY)JhYnkv`%V%%h>5lbNsB*RgRFGX4+r8o3lk;Zjt z#j2%hfA{WXJub1+F9UJ}D*E~Ip(#;mnlz#m9}q@*>5eb_V!Uw^_tmuUGOIOPCW1=8Fx!B}iv7)*n0C zdOC2;pk4`xtuh3vDW=G;(MeRh*Hag?zO|e+Od~;t`(e zl?}XQG_LZt_Zp>kOJmkfsjxK%)A?2iphib^LmWlgc4DSnKMg`z_`@so^~XKLAx$=3 zF?-@@4$Zf$gxwLq-v7=(w0um0?F&6><%MGI;hy8NH(FK$Kwoj%&ud4CBMM0+U-&@<2u%yO_g$Pl=<(( zzGb)py2X{jQ#V@*N|~Bb#o;SWNTS;>4X{TP=asfp>d|n;cZ_EK!$Qa&2NiS3=(DAj z)4vVER0dA!r@YXT>8jGEKL$=^r$@8&w<2sK(wO})3?LjFYJ~??aRb)&)fcKflN??i ztRv-0@_2Mi^wNqSi1z=~99O!)^|3mW8n3ad8sOevT6U+mb;+83rN^WJiO@2bq2Nn!~Q1#joJfioo zStu(A`iPpe+cEV18`>kS&=YX5|AJCwk<0IOc;mh_6@P!R*-EE!eLo+6b%AH&-;N!u z@p>4x1tgqUC0k=OANZ)vt42P~vQ({IN3{1VCG|DPvCQbjvlh_ZVcwvh+EHjf_%3;Tomay?`)bsm1Sqv9r?jU1o{jziY1_4YWhI-= zm)rs>CYf08Vtz^jtJADYn=FL=%Z>QPQ(PB$~8oU}Ege&wp$V-X0C*iD4WW zH>-J-y}M-;r>_m$&(ad#rG@mIHkG$-kE&~f-`PSjPu73IGbPJ|X^jgmOZ&YF zOs8SZE(;x!wO;X!z=w#2^=@;2nQU{DKux!M7kqLiq;wqh|5C&yr!_?bZmS}ZLZ*8h z01|d8!=Ltd7h(tfQ@Eo&NDbWX(ZuKv+I9XG!}{K4%1i)((V87c+pQNW3BGZ?l5FYE zb04h74I7y8xP8eVRY=D-v;V!W^Ss(X8)FTh9_P@0o}*oEHtN%3-IS~G*cLNP7q;Yv zUL8zGT7w9SXk+l^`?VMhV4~1`lPIi|%1o^EiOQVIVky%gN$WWL;wZI(x%@z1oh@;P z42Y3HL}%DBvS@jBs+4C$VOk!xs->iC$EO53N>^4Z=%)DjLn z7TG#TmO5bNWi5xoa3q@shF!G%DY(iNAE+snctx>*vnTiDwzS=!qw%^Sm!zm7Rm%^n zQ);3NUMW%}7}w!3Mux;lJeIa1+7j3Vr;_l|(zzY|22Fl`cu}Lgm@pQYaLbeVDC0@-slN70ra$ zBbz}Eg_=%35m~t+L(b|`9*ez$G-*pYT{pW0mqbs6#q4$$GQRgSYRgmW z?cPS9quD_Z8RCzRlV@GIzhlcKZ(Z$h2Q37_J0&YAZ3GgNR|M4(s>-$B-XgV0rjOy1 zkV{swo0u_$#tnE&1iA+l1JcsslphBonPi%+S_`x3Ry;TJ=w>|GLwUZv{>&r9xb(dv6_qL&NZ7VQVWiY5UG<+gk7jdq+&{P< zQ-kkJqV8LeZhy@)XsU`U?9yugRk}5&B*OeG2=Jv4olT(=7(b@#^9_^Oe{XJIL}zf) zLp6H&&(n6N?Hvtdr7S+?lYmBGlbU{2#(N0PlMmLLRV`rAL2uFHPLzPsrCJieS=29C z2;;r%8rG>Ly7*_WDOA)MWeO<)oV{hO6|Ej+|D0orK9FV!d$Ex^W#G>uj92z67*?TJ z>DX|bQG+3hC*Z~g?dArzZ*E3QfVS|{ggcsBXA_S#T2_Bwl*R8h?wL;@K!0zO1=G}X z+}Sn-QkBi)7_WU1g%SixuSUP+UV1d=x@>?D!SkAtL_SV3nUD=L`HW@#I13ODeEzIr zcivc>BdIvUM;l?&U_ADXc@sr^e)vT1XgRg=uvEMH&@utn+6rxVI8IG&$^i=z_#hmm zR`^Agd`^f4$PNrkQZxNQ$Q~MS$yK9N#GnMYr~1}{^yU3F+d5>VW{bFFw5q8o_q`bh zGGx2Z0iTUOJOrE4>$eKl4Edb@_5#zfpaXCHW^+srPw8Kui-E`-f7cl};+5%U6yNN! z>L1{3DCF>VSeWt9A=YOlLyVeTGQD4Ag>qxJI)*@1#V96kqHunV|M+o6(gl# zq9F<}y9pq`kE{ntZrU_iGt;35X@A?2fJtXmv?2zDVcbMYPNZ}+nSgX4*C1wJ zD`i(F@JjGswaiF- zX>?V7FITP~$~q81Vd{8Avi|05_z$~Eot`i;(V#2+TR1XaqPXRRC&{;Ev}gC7@7EQUK2{wA*XL5s=I($<2LR8 zcJ9;xm$2|*%^(iBTo^W`OD37mKKRc=%gyDccdd3Marm2-5~y^A+Op`&hq4dHxUB@^ zP1gt2k%bh_kKStWXuTLnXZvvAB6qqJ&k78>j~$Mi4>q53;ClgdzpVux;95;4f8vQY zthZ7yk(QtRl*iIi$*ZZ1u8-ct7qMWphS~Sv*7Y6uzh<1|Qh=jNCqq!N9UcWWUaML3 z)N=viCTCqQYd%FWFVBt@SX@nV4qGoWrfDJj$yC~vLCEm9B(*o~p|h+QOO^id}kiu$QYY6kU$F6LOU6^!uG0yx-O}{xp2yJHpZ!go~F$!ae_v>u%iY7D>eW@YwpNT0NR8{^t zy9KG5uLY^v93DnwJQsn-KPW(jW}>se6IcirN+pEGX%e**9x|V8ah6jo5zk zG53%e!i$50Q%X%kLx2T!i+FS;q*Thx|Cy}%cPlW7T%{JgvwUUA4w#F|<9T(%Uw(+Z z_F~Gw5nXV6w8q~1I#bbxO?%d~1}JUQy}hmYKz?)xRXHoH{IvMBS~W7ZPO`vnBad!H zp?D`n`&)8A1|U*;6j#K*BDjLG@8l3&AmFvc%6UhCn=YBoPQR_D;m)E1=~t?s)>QoJ z+3+ZCQ6|8aR7eVqvl+-Keh^J?CLrNO(AO^YKya;<$PGjBIi!UKpZ)gocr{T=>kXVI zX;@^@xRsSscP@?knnn0gYc*n?fug4(=r^_975&*p zgIevkg|F7=8(|=&gPU|m_(>d~v;1G~PVaM~=T$%j-^?FS)l>?YUgZ0e z*}3E*V5xfwQSD&(HZUC5ux^XXVYEj$`xM6Qk2@RBwpwWEW!?c?aXZ6BiEcnpSA$t& z?}v0}eSjefd12dB1yqv#v`sP{%`HdS`S^VP(e%?3c5J!lHnxcdIPc$wNwvTyj!vw= z1d`#mno4PL3P^Pl~)E9{bKIXKQ?%tv=PyPrT`^ywzP_T9t z>rGizh4hgN``~(DOEBOZqqc{LX})4BNV@$(ysY-acLRiy62WdpY0&NT=-(r0%cWWt zP$1=Z;A#)hM*&4v4~T)QGz+{@O-UOdRe#=URwWxNn0-oeUzoG5tZb~DY)`OLaBHk^ zMK`q2R+**2mCR&!|>v0t5~shI*vFw$PclRmi-^uZVqLP0Wd^1;9W z*>Eb#5hhY8Vz=+qGDE#+3{%-*ekLv)Q+Z(t(L93yMSwdH33dE0e@arO zH&qA@$ut!R;1~5{RuN^OuD}{>Cp@bG@OV<2?Z5X?fBGupd;&82HU0kZ`8C)(8!Aun z_H0Or;*Ll#7Q8;D$Lh_ZQ)(a`r8(KW$Euf3+~P)snIjT${;uo17mK1L7u*pkeP}h59kywaDiCmoandvUDSm)THIPdPYrafT%7?Fih1}-+0U;=7!{#_CIT^B{ z#@{2#HPYVZ2`SxE*pH~0VM6a*Y55q*B`>x*6SV<}v4|h#fRs-4hslCtFcb}fzBPjY zp{onNG2J32Fi^X_H5s8umn^_|C?DI*yU2Gl&AQ$tSrr8U`L{5JPg5g}RtjRMwV zsX-k;+gOMl@T1H$hIlvlWqQkg@I0S26X1>*|0ZxkKnr{OR%?JSOevXPhk4A#8b1dE zUq2tTXTRBbd-F8uIIeTD&67V9%NQKH(gw(KhuAIuuWf)Tzjgt*ZIcd*DNt{uKQ~iz zC+i*AX(7v?pH#ssqO>2gpxvb%mz$dR#T;LsvCBtaMiQ+SujKe1#TD-wdR-Indi`g= z^c+{SCu=`E-}0svi43YG6%Eh{c<+%|%jX*Msl;9M<7Zp8HMN zrt4@}7D$QfLMq@>1;Ih_V_nj`mR^faL?EKpb+{hHa!-R{X_m`Nio0w{w&=3iqE{AB zn-aRwt2AkJ~&c2pi*k|dFEHl<4m!c$703o`7a1EPI3~7ITETEHmm>ZDN^s!zAxJo zm1feh*aL|~u>j5l0N||Z{its^WXO=xUfe8-A91DQA!^1Q5+l>s^h;6#xl1)la9m=6 zd6c&5`;NnmCF2V+XdY=RbfMvgh4+n7MZLa)^P9&eHbPWbMt@2gOX=Mfav=MY`n3Z2 zDbMvK59LK-K#2Bvv7a2K(VTzO&{pu{Q^LaU$~UWVO7ECIx=PU;s@Y@!cre};3UlD= z|7-_2ZI>zVS|3plUtkp;HGd*s=$>G?nqx!_c$H;@6p~f~h};3A7mV=vY}5f#exZw} zJNeT~dISrPM%~Or0G@4CAR_ZjJq#vKHAqsm>W(B&?Ry{3$Ig}-#9FV!6Q3fATcw5= zsGVrM-upub;+{CTG%iW-OkjGj&}?k_w6l`WrnUI*j=Gy=VnJI%@oZJL4aOxcdSA6F zypC-_111s~0EV|aGdNR$G!N0Np_P^ICJkCXXS~z}$=Qz;pmIcrB zV|&bofMyoc*yH=kka`fn$5Rx({{IvU(gyNRx3N$eSA7NL+!Y>uO@rq{QpEliq{YRE zdS>ywaZhD`C#-D*=cFyOpzY)j>gC1ct^dkwTRT^1C3}KmTsB{$92~qvEutBBNec${ z{(zXr63p$b@L~KMH2Ik#1|G#}aIWPn>MbKbWlt)5r@u3NS`sH46M+8p6$KZL|U=mAhab8^rTuM*RuK9)VqPcfswNr>G zlYM?$UjOWm7f1nJ8wA#2->^1hSOal3};|QBO@e zz#CkaTsYqGLr3q^AO`SJ<`E(DTVj9qs`34OCg_tFkVIU6(wB5>&AJg4&nS+d(Ibc4 zvg+Fg3fw%{)N&>1nD|HoZk>el6yhxVfTE*=^h=p>`wpZlj9xjRW~7nGF62x~6*!em z+>Cpb9k!0UcOQD`N>2MaG4bph^>w&Z_Rndhx^ush5pY{3{!cra5dox7e=I8G=Ppzn zu=A1ArJ1570}d*1o^m3DKDa2hMCue1>}4Jx99HiwzuUVnJ|46LM-3c=op)QlV@GQd zO*p<_vqdZT;rHt}sqeqq)5SWw3=9XLEzPWWk>_ZVId0EVaiVoamaGYQ~0g=cRwz8 z6s1f*{PRb8?d@s1ag(ZcWGoeh;W|F3Ee8>w`JF61pm%}jTKZ+B1dt5u0~YDR>PvY5 z8ljNg_}ngh1nnQf4lrpuQQz|Hc>*hCpWykg6z4{CAR8Y`39lhE8MJJpWSCi}+Qj%9oFF<8`p(jRDmj!)0B) z#N#_(&IQAsGxo;1M(JT!pHk9taHRbo)^p#mCWuDXM8YRR{L-fhoLX=+M2HL_VXL$TOXJQb?_q&F0Qv8Np2gM_cDwJ|FuJ+W$^zr34{F$_7fBfl=k$n&z#r+r?*zE=MoI{hV zd{!f^e0bU6G5I|bzN(E{?gw)2(U45rBDbH<`X~*AkXigr1GUNktN4M#vLLs|s#$I7 z!T=Jq{*F&X$Q3MOuH{Mk)L%U+aw_n~Wj59~BN&7%zIx(71slJP6J% zpk|r9;w#hy3Eh}NHkuw>iZq(vT&_SJ)*4b?k}f+c>L@BwshMn< zZ@2$;i@VGTnut`bR34kybAPz-*Qz%I3%WXmP1h?{H!pnGpgA%YXZx(2E1Rk_=Jj2o zc!`ZfRr-B^`qmx5XG-x z*xJ)6<%)d^!sOFxi}eGDd9FnlbctEi_`ZOd@Mi$o3ic?xh$xu@452z zQk?~wI8v|1ZBDEE6YDW_!#AUL%nYBX-2(dq)A55^B4+7Cb*pccuv&NZa}dYQMOWgb z9C9I=*!v(^LocV5X#S}znXTnImS7a)#uMLKa(aS0d}~9kE{+HFGwgz2NrmP1X8~T8 zCD8L>9s;obD{LE2lvJnQ$9$S0-({_(zNGdatsas(+#8 z6Czwnahc72N~n-(6on>JQe8N0!h?wVj(1(K2O&A(@7dEEI?D#d5dkeyylEGn}99@@k=sEqhnOZ zeuFD!knD+%Q#lFQs=_sK8)GsL!*Eh%K%hb)(_BSXzyxqoqiXMfQF|SoZ!E1+g~wK_ zHzPLNC2BC4saD3H)JenjWk}Hl{J`F%gPcXB!W?iblorIGTE@5bfEVaicR$fDT_t-o z2Vaown++W0RMW((!Be$tdEqe_ZO&QO)LUp^+4Vv*()Ch9`KQvbqu+4{87veCJ6mGB zU-o1}X_g-~!0TA~Bp=EjLqpR9^KWAYmt8kXtlyvcaB{qt<=f_IYJFj2S)s1(jZ0sI zUYZ0oTNQm!Af=!leKC03>30^pm(Bms%=OO9%;-#F>s71L?rP4u^@TD-bt`X*T>F%# z!1U=^l%j_C)OgXB3t8+QG_0tRRI$}tit2Xwi#FZkv|Zy>mRzdX0bLvv__<;3-5$mI z_govC-x-L{)t!wt7KnwFu-RO3SEGX9J_-va{)1}sID`j1*4mNYq4AuQPYgazAa#z1 z=Gh->)y2CKf7-X>d;5;G^uw^=$G_-ga#*|c86JH|=5KfDhtjZ%BF|Ktw1bxEqbRmq z`}>se*g`I``D`-LDyz3Pt2Yf;i*q=KELS>Ul9>uN9mbN)J=A~%a`fp8I5F6y!h`o;*D(EUc@?FH9Daddga%q_Gj;7wW(aGDJu<KZs=%XP803mOdKOuIiweS>v)U`nne@v>_#Bcl6o&bh2;LjuDWD zTegy4E1RbdcxVpfca@PQLIL;vr4Y1bClm0FXM@&0%V?@bDl}hso+V-}z9+c%2^QVv zxvjsD#EiSfKi+_K+Yco@DT5o(JFZ7HK-oOGs>TBE9S5-BDo(_Q5_IrCg2!*pO6jrH z?U@Kh%3$SFg~B`rsPJ^4*0ldQ-d+;g1Snm+@?u}q{EEktv4diafJw3^=Yyp|sAP-n z{0egSHLWFyH1H6~)TirBg1wh32FKh_*DI?#dl3(H<|;IeFAu94uX58p_R)z&+Q!HO zy_Sp@b%;gFe=n9=>5zSnoW7T+7B>B{6Kjc{z=6wVQQ&S=mI`Mn`{yg|)=TI*9Ue1p zZi<2o5*T}Xk_nDci`7%P@tG^gu|6sIBwd9g?t)RXCw+lrk;QyiRp>j&%a~_ zSIx8jxcuu6xZB4%T}ss%Pde(AZ1M91TBUBaHz=H{i|lOq{LFn~)h2ws zsh(FK@4T(f*;|LI1m4en!8|!Ee7-L`fQz#iA~!^<%zO%dh1@2pSCu}fh?Ii}$~Om= zmxTf_%qq4YBByZn^akOgX=+%9O!2fSJimcR6ZFwF;oFMSjTXdwqW5wd+)nhruC|!P z!itOsRlueUCOJ;C;i0iI3323a)TJ7QNZPTspKs?(vr2B&R+fg#S0t-Qp~eCfVdqXA z#)TiuAUG{HnvukGdxKQ9C`kT?ov$8(9EN=J2?7LxQd z`!ebcH84X*<j#jR`7xDB*%MU{5Q&{Z{y4As{IF& z48iqx8?IwIMeZ+8H3b@%3i}hhArEdOGvC73n1HCT0MnA12>^2mbnnf-HQ(AaR+aa* z6BXwwIrmYvf8VtV*@L032zuOH2m3h+(G z12FAsFaK~k>!W8u*V8yQyDXZ%wA##R9}ia1xg#VaH=-Hg_mPbks{U#y9r02-HCW6n z+ztOVO~wh_UMtOOHIB1s1uwJ13&w^EH8MP(F+A<*0FIy^VzNc<4)oZ2%RC5}2(eOM z(Ox)nr1H)$Ej5$0dNSz_iAK-dr^-Eb>*_1&iR1>P0;p9!Uj zTGEs7g@}1$fy!F+TCoy`RAP(Cc!WWCBK3DFBqS~+Iw;PrTfuj`$Y;Vn@wjx#v}8rq zvQwwOt8E@Zf6vaOL!d92H?AhgjM}8On{XJuB*~!n`mfkE%uiZqFW-MoLY&E`1i1tX zM_#j!j(P^ta{pe5Fe|;97ZQv@=H~Q?K*!ahgiyUEClYk{Ip4Qb7Q`vfJ;DOfX40I& zGWs^3x5)Cl>osrcV}4D9<{Z+h|KVCvP*rPhjE&2On2oW!U_e;V)c|tmzvZnP`wZ4J zq3?_Rin!H7jyg&iWv$h7Gdnz$`Jd26LEgG@SU!_OiJqGaHZ_TiA#ha!C!;*$b9_ea zQh$?q@Xy3bIw7B6{1nNi)+&=Vk6Y;mbYyH6t}k?Y-eeqxgJ z+Tl2FwvRB)M?NSsw9_%ekS}-^jhJGlvy8@jFDnbHmPaY??jiRsZ203HKURq&5}xlg zC#PcNEQW|kbRb2s`uuwg&P{;JUw8Q9$Gr&&rTrb%a_d#mSGHEulC1nYl}%}81c$C}J9!tW`l@yC-@SEUke%z3s#Z*BzP zseR06WXL%ak~FE00OPB)03A>9&8euexw*{;O2P_67OLDz0ak8gc)r{@$yvr@RewvB z-{D@9&Mwyy_2!4ClYYUp7@n8|SHRsB=8N~iw+d4qn6`x$B@L5UfU78s%5OUL3$rM|@=n@_%%QnnU_C5mDB9N>eBrdE z9h{9Hu9B&IvI;xcbH9`xKhPQ@e1tX4J2u&Gi8*`_pj=u9GHPqzB7+%_n2Nti$*g*H zOqF(g_Bm1&&Eao@D^c%fOEqKe`?W?43i&plb3F*kE1IC+Jq#L{=N%X9468iI&6NkM z5W1O`M*b^d3?l#p7=Ag311=Q{hIU56dy=|Orq4g7h2x}2rNKr9|5aVr$xo8iSTya< zseYAxq>e0)h853OuCVuSTFMRgD%54uJ%~8!))=7`6RAC2-)+5ZdsC#oSK6@~=s051 zur+IYMMLyqSR6v4Q)~0RMtSB`aDm1uV#;z;c;?~tg)x}qmiHuaFsgd~a;Me)qCp=I zynVahw$x;nIXv(i!f#%Sz{rweaVz7LhebrNUWN^w(vfCT2m+^tJn>`crcoU1ZUx>@ z=&%{UwfsVyzm*7BX_0OSHhu&~?cwI(|DbP1sv=cRrH#kLyO;okbd@M(tN!lc0t&HUpF)It_e?>k9yZ&YRQz572(cKsR?nM#JaVtMUa^OYQa3iL#P?bjSVIp);Y8+Fb&wX z5qa`y{jo0Q606i}QfjJJ@a1jFXpP69jY44oiFQ3T5_On&G$YdE!=q=b&$G{10Ta*O zlm15McqUJ!`p5F4wo9Cg^{#g`vD;*kIh5;gUHMv4Po&hXRiz455#uS^X`N_;<35(S zI!lPD5O{|)aM{)1z{n66cR-QijzYYEu->=eJD_0KcR?PQNHAW3PYEwd7I6{#0`{vnVl)Umv4+NV+hKz( z-fr3wM3=+rvwx9A-&+tP>KC$b<+=Y6F0UywbrlLYXH{wv03~1mCXC8Bon8l=bpQ`o zci7{{k}io;NZa)Jzq!72YGalTVWd(V3=aN1AjheH1B}0Ym(Hb&wQZ`Oqj@ z;HN7YA^#(8>tAqY*Ewc19NgKF@e;?3^=>9&>7jJw?v!0X@AgMxx0l!`WsKYzbr`a)Ow!k}jN;{$~ALNFi# zmsVarvKKlBZ=^t_1he>vad1#{J}$GF!~(irV>ihcDx?^Pujjs1m|f{nOeI}qau|kH zAY<5^O;{4LmraFAd&xYSUtyhBnXH5(igzL<6eUcg768Sb8#xR3tgzrSu4Tc-FW#DP z$Ou=#q~(T@5~1GI+iL0nU?O+)usw??!`g1?o&A2hru%UfE<=!**hJ8jN_1~{74&5U zrjd?&Y=BVqJob)BQLUiI%oa`6g!dlT&Km9VdAqle-kMp+<8vk*P0qOX=IRC0vzeO|%!h6V*a z=m%)E&-a6MnBZb6q;A?V|Nv^86Z47b3QJP=F*_N+(YTkM8W^{ zT2MSc&%DdlMiEo!PPpQkuYhY0(*9$u7Ti}jSDQmPj2?2A>XcYU;%DQpCi%WQaO&1FBImmaUlPzM7Ucy2rRV29KUNMTa{l4w^P?-B|Q5isLC~?achhxmN zRGFALMa@4?z=ur~?!1Yt{hv*Q9}U7p{EyCQz!`vk_)@zv-!1CF6PWL?2ekUlnjQ@d zmqV3bcr|*;B|UH}AFu`y)LRco2~gBE0nZ%S zhbx$PEOQ~J>ju>xSi`~&qhU|?8-X{6zbrGTAVJ(zxmuJ#{w2K;kazlCkK#a+7FI(DzVXmldc1J_mC8xenp(!^v1# z-LNz`^@jlqsntLE&(=;50FTW=^lcF#;)8%QlFp=SiHWVhB4GdJh-G7F7 zWirBFMqme0ZM#eHPz)|Qi`2#(WIS0gIAGQLFQ*b`5$cRmGVi~rNNHo_8EHlc{sj|Y zVh?6W=S)KIpE~6L=}q%Ksj^|Gau$@T(`R3jtm{k2vk$x?y`AM-h841uBIab$OU3qH zP?Ib8uqu>N85R@opQm%bE%G9{GMHK3`y z?zlpJ$Fxf7|9s!(izy_%2GScN+_qr+c!GM`GtXS>xgJi3yesm(r$`813aC;*#QlkrNWCvLU`{I^Z7@zUKYsn!{NF{Z@wcBIH$JP9iy0 z8}h0;{=ubHBuisTuy++5|6=;70u z{5Pe`!|HEE)EuS_Za4uCTUwo-7Y+L=QOlF;{q~crz)xTGs&Qq$L}_CWX&{VD6_$Go zf7AMzG&i4F7+hlnED{_GiHzD6iMS61V4lr|BM7y^ySQvl`op!$osCv~cTtT5xXL^i zSDJD(z%y+6rcaI9{nWg}A=rG@6GVBH12dO(1{MC>hq z-W++T^}X9)4sXQV0G9-SK#z@8bD8-r(B7lt?@_D%jYRh^r(gx z_f+s|n^x@K(s;duIb@J}F~{}Hk3S4YzqGU=HHb2RTBIHnN1xLoao5_rG$rUYE7|aU z0GrPXs*gF=o6@531`WQm0dmhY@rc*pzV{Y!_Y^Y~qLDX40A}xRWFjBQK4X^F3(ZHd z{ET1HW{sLEDE?vj6Ro^6vb?n<-0F2}i5IpUQ(iwyydup!+s!WGw1@L2kqA4CnoyMC zVbgzCrJsv8^KI99*5mbXVsJ(<4}YyrCOsCZ-S-k@eSIQtR8m#Pc2}DoU**uk@47NE#d0{54``v@{sdU5*{@%!ICZ}PlezQSb}PH_%C-Zrm|v2Rq}j0*vl z0MtHn z6F}n;E?Fvxl_9_+kAW+$Gn$dw&)3s^{1f>gP6(?G3;N-{u8v|tm;MLkEbfRf(R3_0gqh(G~_=XmKE z3^9-q0QexmMRth#0nle98nE%vC?ZO`w1|ODt!$&KfGt5C30b){HJeT#X4L8cIL6l$jmsl4id?T%y8@#9Un8;1l;uP4ZJeN?Fy9>a}&nQJiaSy1vR zVQiItqU{|Gn@Co+{$+^I7`^a(b`Y9~9v)>ZdfCQ;b(J4aHVp&9KOWq>zB;xn0JXNF zDb`|9{Tu)KQI#PV7aw+>!y^28T#6xcVm}v`Rho>cE4~%!G+$0sU}rg5JV0bQ4B$%L zjEka893#=1_XHu-Obnx$SC`&a5P_uStQNOqQGA}nFViib_NwqzfMv9 z;kOKZ#-(g+o`P$$*SH9?nGBTxK}ans8HDb{gkK~l6RS2&tj!fs)h+`?0VBmH8B3=U zR|z1eF(0x~a2bfGvB00XTqd3UMwH9FR4>g$DBw{D~Y z&_^0CZKoScd{0GNw&m#=i|r2oJlw>$b-b}u=TGl4wu$114Sm1IXpaQQ_s)5Pj!JeH zLp{K0I{2e`T7(}rf8Ei8eIoP`71U-Mb50&40FY3(`{JL;atj*SgzE(8r3%Kiz&mle zy%ajDhlM>E0T$s2m~|y?C~LEa^b|b&MQL8fTlH@iWN3~pzg?z~j+<#CZ-0~lI89WX z#GMx^{-kkHS@Fobhp#xr*Yhk2yS+66TypNswB)mF-(ZXUE zAv5E-uJbx&T49-yPA0bHD3<&UaG5{s?_H%w^A8v+#Yn-KB-eaT z>KPOSubka9R!_-_})+=HGpIzRUdeTHsZgnL$Ie@^ku zTM-BolJywhEgINJ5q`z@z?7__{Ul8&B}V*rU5|GvxMeiPes7( zX#kM$Z;C^oUvik?Sr0dM-leROZLm)U>=*iONp}Y6ZuT(uNVC!<9q;Fece#KM@9~9s z!iP!Hc*v|3c%@`3<7N?6XwbxTI8_GVpn;ozNWEO-O-HN1e@}K|? zpkb)K+cR~{u=mki+&{Q~gj4eAWm$wrDl<JbdVe>TfZ>ioR| z&-WAe{sxG4HCJVn2&>BAkDSl7Z0si*UZg~QKuH>OS;wvlMo3wlKInNgm7C*+zbgzW z>U`fKr0NGEsS~f1v$qkbonI@pg3t2NCy7^9Sz6m+z8A4`e(!xlQ_u7zRNjjnngQJH zX#M+_@+o`?qZsFPN1Ep!N4&z`*#%B?=_+Obn;&`C$8_7EuA7R~RMEI!qws2Gg)B3% zu89ML1#P}>l%NT>Im2*0WAc<^U?FL+gK={jObK1y88bnar5fpc#Gnc!Rw{L z!UVdXu`<}S2SntI)$@UD{6!R}Y=v3#JL8JIQ!b^@uoA%4wA>Bs2{g8YyLhnSao(Fd znJ(J;8~n4y@)54G3Wrd&V^mLf!GJ-Dy6G43GDa&fYCB-@dq-=eqC>$lE%X+gloCe+ zf;udMqfXTTpt|sE?1wH+_VrCZ?fe>QaGeSAs=1fzv-*}g{Tiy4ajnU$D8l@o1sR|E$`RhV6_XxjLGBUx(^W)LTH1hGMUV4l8BR+I8MiNcth#+T;A$@b`qn zqi>%{{3?`5_qa9&ToV-_Tjx z5mP{}RH%|{{Pm3p?9&(@eXHjGzC($d3Hx6kYb1n6NU;vbB_Jx+2b10U;GE)qp`^V` zV>oZCN~{2QGl-IPEJEZtJbdL)=;f&hd-~K7mqLGz0egpKrgu=W#XZ^>93NJFS$B%g~fAuf8}5klQ*pp?1F>zj`90K19- z)F)lP&B@crXsrw#Bjw4H;GK`2urQS9rNyUT?9BKhs9eBCPNj7}N{$SQ zPmT6rSfStCmUfjIMK`~AgSOvy&~l!SX9b&KUNe&C3o*^7E1HC_vr2yvX_@ICoiNh3 zz`P}Ibd&}H#@Us;l2^7)&)FRC`L!#>f%9gXs7Wg2dlx-E(=k5WgaV1I_hkmwwrxgv zk2jfkHMhh6VL&N;h_A-+Z9O$DWc0`@^_b7uj&z~xzq5>)dU61EiUxwSt-w>a9`K$ZxL=!mk@_Yu=W0J%Z0p{sUVL@U2C`X!?H$_Kgzq z5lISFbki^WgY8$ z^-_W7&%x>_U)|$5>4m9oTH2i=)-UXq;i9b-LT2OXcE?4X@v9;z^6w2rPdS_=0Vx_i zwA5!ls9pan-%zG0HemccS@s)I6#e$bns69GNEgdf%r6m6(N#zJ(>9#oGTE;5-zScZ zr&E%V(^pZb(*{?eQPJsN?_R$H!yBCN{4IXb3hhUZv1=r9*yi?SiFh-&lcAExJd3~U zwev_hHOLY|)m_`Gvt4qAq8y@{UJun&IVgrI|AMHQuwTOwb?&Awt8!QVc z<<=JyC1_qfIqKqV9fkNKsc(jR$*nNfGkjo|52j4amP`@J_7COSQhG6Q9ehb=Nd+su z|Dp$-O@Af%;?-Krt(Qd&*7q2cMbj}hSieH(&tz%Iwm;)CX*o1aP%Ek;d7Pi*ZtG8V zn}-LCUp0cy%Wd0)&8IgduEnO$1(^4K#*$8FL%?=hs%pl3q-KIkJwr;z^NIha%QU@5 zX|=HgJTa=qX@6L&{Q}v@PiS@(XOm?%UPlx=GjuYu0a#W~bKyR-2Sc>}f5Y!-+w`#F zZnZ*_P2OO&Y0q7frS;^3Z3a_(v+*Ugx3)Zv>Q+(@R<^T7rP$fwIk$n|o#=}jTaN>Gqq^p`wot_ol; zp^MgVn;EEKVR{i?4D}(v^J~jpEEogN;}>mTc+<#TirHTs)J}^>Ajl4~r6Z*TnZ{bu zDkrxKddjo%QYP&a10ILk)7)HWwN74^lD20GHgC%UTcKUv>&AXQNQu{x*~|}@ z81tR>amNKKp2cLq21{@GAAGC}Fto8DCI=1|F#$7H$c6qVHnW29IY}RlS zwW@zjN>W&VVZ|lCfxKX@xp>|EMVVWcTGBsZ)0|o9A9^ z9wr&Ss%>So2BV~M;muO|)VfFFtO*cH!M$93 zveTL%#O>fq6X|KQ(hN1-kDd&)Yu6R`7!|BssJOHv|8)B47a0)xR{f&TFtz%-@$^vP zyQ24vw85%{3F6jJ%5=GhO4;qy9@`D^vkC9S*mCt>XJ2AP5GYC{fPs9k!6uYazG0Tu zHT)@Q;F1~3kts)bLKBj{bduKrPUYG?YQg*EOmh_F7Wz#^K)$18t88s9`AQr3&V z6uaklvKvIZ`@ex%FouI!b8EnON!OlAas+ois}nDu5Qs$fHqdcLRCl`9*>eb--!o2I z(#6v@c?M%a>&`Y4r<8R#{Pw-cTdS`5n_33xoeL;pM9?9R-JMkA=1_ldP^;sqDAmyK zivzZ{8MY7>XzC>)Gun_;PZDsnbb>^Q$!|X3kywq>`x?o&+|SXH-f?I9h9GI`5}!Pr2FNR z-)ZBd`=aJa?T&qDqu_P`GKV=->csxYkE26Ha7^%aCbth-coY|^hG&Ruu22A$;BEwj zLa=MD_)hzh-u(Lan<(loG1GkUzlipBvnghFi6Y9gh*65XDc~q=08BX~Y~ z_{25uO3xFy;OCYN24_;du-&`T_cRbs zRa0xa906nA!V>P0KQ|(F@AWkc&5mxpxc*CdF(LOO*4<=1g`lXEr(*6t%Y10Dt=v_h`=n;`wqu%=1_`YK9DdW3=C(-GZ0@d_(F_0rGz zfl4itV?DbTlbo!ak;tPPyG9wzAxk=A5``7i)Eqk8w6&D&G!o{}I~jx2Tkd3~7c;-V zrQB$B;r)C%%TH>O&5>XBpf^uQAJSPug2NEW=3UaUa6>Y^8-ZG)U2SCx=~X9n4Fc!(&rkcUyoPNmqO3BD*~Qz02}lGd5G`xXjRhjH*KKDuCC=q)H86z%*&hbT8% zYO=~=C?h*9o%BW;U<6wR1Xh#RU0( zKYK;1BDz}$0FlUtm-QXXBk3&dd(pEi7eCsc&vw3W+g}-H=ufsWy39W#T=zqV7^WZq z0DPXB)dv{7xcrX1MHn95q#~0=qK>uS!!u%O%p%I~&R*zfLwTs(nVdDL-l(&OU<;+VlPT z)nmV?qO2Y5E<)lK{ejOE*vmo7y$EZ2!#RW9f+yM_(=c+ylx60vB|{g=UM>j{x}I9q z*C!=!L|^l~QpiID_+D!9ww{3SP3nA(##;^wuGb7&so2^1*in8Mv*}agvB(xbUc4#l z;p9nUW^q0pg=gzko{&0%_@3TLS6LDEnomzmm$v688*rfN8jv#09z{C)ot3kXRbQT` z*E9;dCSIbieIq5N0EPi9Hh8aH6Iec1x1vBcnex6=5@+cI#M{k{cMvzw>!AHMC+c7_)K${IDCs1>TJ)LD+`AbSO0@dGCu!-j}i_R!W= zA1E{J1k0b;U)p_^?7I*~g{)%$h*|U3xI6{ldAkmbX;G& zX+A$FyTzr3aZI|OFD3I*SkZGi)|v`CG|GBf{Wb|Bh6<&?{Or6K7Ecx7* zlF~h*8s?i2B{Gu*^!}e-mxn;IOpikm?;7!mOI~G^X!lb3qW#l^i^zauq?8`?F z3;yw2Wd8a|1%Ne`g@C;$pK+3Zu3EJQhL2^~=o3UOi5#7q@K;NiTGrT`y~&ljHQ@n2 zaKv57i5D?@SZB!1WGBoY>yLpbni;b&xlv2|i?Chg6?|DV;~p2KEgyaCZvX#(maLi1 Z7$GZ~SoYM>7|`7eXlv?g)Tr5q{|`?{9<~4g diff --git a/docs/ru/md/Start/img/5.png b/docs/ru/md/Start/img/5.png deleted file mode 100644 index 950f0e6391eecdcf4907a95b5eebd80061283e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2020 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 Hn+N{^f!}OY diff --git a/docs/ru/md/Start/img/7.png b/docs/ru/md/Start/img/7.png deleted file mode 100644 index 83ad223f15570d6fc9d6cb445baa512e9652a2b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6851 zcmZvBc{G%7`1dn2j2R3gl|3d~RAbGSWejDHEcx2^t!!mUzA-~%%TBgbmLxmLuFNDN zONPo4qLD3P?AtIe-}k)lIlps$e>~4~U+aBc*Zn#7_QaXo&_OWsG6MjB(9_j61pv@- z69mAZ#~<5!CGICwfT<1^sQSXccuX*OXc}n(z?)o%XP-9+`tl$%kwZd_4IxbmMR7VC>CqmLOgp~J8AQ0EWs?fiVP z+DBV?F+UOD{v}6QE?_QaRa`ko&SNeo=U`&v@WqsJz>Ay&Bo>Au{I4(B>%$qnGHa$8 zXp2RGJzkX8+U1Pk^35H|zgnO;rVhGO#;xq^Q^pQvi_awszNEpPl?@R~T@Pw=vQ3Rf zN}gO=>UHaRck>n9bdgW;`6Dp)y7rLWcNuO{zod_)7s^4Hpe-B(!HnWeQ$<~$@LQtO zMS>u^kPM|*?5Douk|*8*Hzt8E=qy6QnLxWKbJwrJvkw6O{?`^|D+kq<=Ne|2dd^@& zDF;&SW9#>tO?xLL-&b}QU+aNV%Oxjox(Z-u;|)WAE}aCt7@fHTPA(-xEdSPRW}ybm z4zYC_M>A}(ZTa1ObE(8NS6?p)QsfPMKg7`>7s6#lN^myDXx^8%r%#;-ZUg?kW{)qS z;KHex_i%HaI!J06h;&(bEhYg%^xUkUm6b5Pg5N))8zf6v!gv^~O(dG{;>{7$6ZgEj z2JXW3;t-Oeifk!`Ad;x@rCLG)gLaWHKa=htFiIDn`6wl+R%t7y^%zPz(#Wy2uQD~A z0VH^V1G=mISj7oZ%5y@zOYr9xx&m>e=Ou6v7d9D!J76l^AQ;`#}GC5;d$I$EHn>*cnk$cOUBU^C))BrKpfr*86pl~H+g+tCxE`{x&oz)H%O zV&xeE$aLfN#8Sd$cRo9_z|cvMBE1S_@}o+mloJya<0CI8T}Vh!vxw^-*5arFRv_$! zG^k1K~V#(eiJ}_&>cJrIi zTk&+0(j8@x)^Vv+jLUwnfceABGkwObtB|rxs&B-5+jg+c&a(%SPB$>sL>BHsmXiSP z@ccgZ%#8_hh)JfO-_R`_VB&5EZd}X?-rbdwP2T;!^b^PTwGot0cQ~YJV2ce_rC1lo z0dm)e2@h!s;T% z&HuRZ=S!V{3yBN;*Gbpmzdo_p86fOrj0p?7S3=&a@)xn6sHFIZK5)_%{7>cA=K68> ztoi$y&=V+#$g+{^K|+KNml4?5B!`b9dn{Tl3IIX6>6Io7{(6HeI?(4haL%D;UmUoH z>OseVi;ZXa1Zt5#Mhv{Py&ANaaWbUirFlx8ewhQY-T`z3Gu*}-GA|Mg zQ^dDj$9C*5SUyYeJWGLQjSjth@ypeIhs>hqVeHruMG zwO4-C126W7=yIr)+jJa89JawnpiX~OYiZwCf$A)aD&$bctcM7}n4 zeYtI+7$X-8L*SvvNEnfQuoWqn&!LTnVjxsa0�MV_7Q;A^b4?VldkM;KfUhy2xWu z36?-yD$^Q+cV$M!-Q5z1A9EQX!+13z`JhqcFXDPf#&Yrf;z7#Dhbm2oCm;`S#?ss6 z*w}}={8$pE{fG@1PO6h5WLi6)fTv2SEctJb<_U6F?t-cWpwYybA_PK+qv$(v=c(3M zrgDfrui^BX4f|a5bzxmDUJN)v?f3mRULW;+JrkfqQ7!-k;xw^-C#Kdxxq7V5PSE$= zebhmFNB`F#-r3>G-Lq2;2{}LPjjDSofWqlsoXNaM{4l3TUPs*YG+DOQV)T^x)*n{b__s(*Y+a41 zy_~z@ea90FmB%mg03BO3r|9gBr*RHDlbx*2MjFL%Pcl&K1|Yv4Otn3++y68dwsO(W zrf*wvZBy;n^@M4Hi)F2yWxZTvBkgnaa$7a}$sNw<4WJmpK;T$Ypy({^jp!>Oji)YO z_!6^m)UU;|7gYBvZ6m}(h|v>JLs9&Av0DC~SIl6~?}pnlRlP3duwCDG`+3d~;Ki_a zAT<~iwaZtrg&qj<8#zr=n@q~-=!P4KvI(WK(mzi0a5cyh9qmNuTiR4cVNKqN)1wmenjy&S9 zOESEm6fVuo9gV&-RwNGo}PSR9J37_%#%LO1--HKt2j*u$4>smQhPjOX! z{pGp$?|P6}BLFwksmQ3pxyZF&sMrMXKbA#;< z+#q5klQ0??IM2a*)a7|7x``Vz=m9e!)jRlQ2QaL^s+cC$-Lw5&y2pU~!xcl#OH9=p6m)w|0qM^+9cClp?+XN92p5Ab8@zTIV1OCv-bv zz*}OZd$a&lC*lf7L#3Y?6MNOx<_E>&^HzfyS-qz=eyz&0$mkCV%HvZ(A4@}fz69mP zPVJ0Dq!=sBjos_dL%yW7#cM>mW zfnzeyj#?*kAI*nSQq|VPW?7>u1#xRehiwJf9Z^usJ1>=K_)ODl=jpU#xZ^{d?i_}B z@U<(QRmHyrVIRCUbhFbwNHthu z{}EK$V97Ab7xB##sj!+jLE9q^;#jm%E22oy6A1Ve-H8oEuh8eP!DE&2 z&G2Pn0PaX=uq<$CHs%s#hvlo54ILd$(k@$+9e&youPKy989Vqs9j6*{LC41SaxEL- zH|GnDjlsiuW6q&w=XvLb)n>{Lt9m7I^}cY&e$sVD2UaW=PyG{~$`nxY7)dVe>b-U;bkWz{80gFW@8H~^~he3*l>Wb5q_)5?EP-&EdG zebyNBE_Ax4RcbggV6YKFOV%s#_B&WKHueoOjIX_1-|oc6vjdIOv|$|>!{UY`TP(SY z!Ff=dHvPBJe}!&xj0#)Us-V{UyOza_W#|HawXFB9^;@l7+-+PpDA420fZ-NFYj|Q1uc327e`e{A{_+hfv)jc22Uv zG&WXz4F3N++=<31sYpwbc3yrQ8_)$ zHnu6fL3@o@9w;e$WA3*?e$whQJZk?_tV&174W(ew@gR#<$G_BHmkwTOjHk>yg`W@y|R6|@N(J^p;HXI0qRVt{L2o_yxsHZ8=p1y}8Pcizd;*~IrwHAfLsrdTRRCZ6c zv@E`Fae^*Ddh+r8g1~wW+jTH!yA*iWI70;NZ*ks6-h>Zc!SSZ;C3i&RWgN@zD$>#M zHV2Wwpv#Ej?cMnv_%8Yi_H5&Y4Y@`heQ!!v@VuU`6F6(awl8-lLJT8WXZzsy^230c4jrpQ3 z)_ES(0`UJ<^V_cu(`4(p<| z!<}KZ#b3ha=-bgfpY^5=-;0X9?saGmx=JAE(l6ZjuwZh-UZMWD$+T-BX9O0HN4djV z;jtprIm)-Zg?OSF4pXM8f=OEc6q7WRrC_sp?A<1+8OJvl#={7>OvAAmpV zY+fhX=3N0Y3?se*r^GWkV0PS*62T@x?_Czlw7aH&FBW=j?>y}y#Guo{;T809eR(`v zoDW0$O3biFJL`o|rf?{=PJaO`e+6*N zoXsdI1ue{`jUa#rfuI}M2u@zi>+D0SI^x$a@e#MxgO1eO*ukqXIl%ELevdsP$g&yv z9q1d*gQf^IL@3wX=_*(z%=BbHvmeFcBX>HcfN*_LSew^rq&E=Sd=lpG{$au66wcmj0d#tBJ>s3r>SN&(km(jLH?s-KP+gz*l~Wz@n)FoM)AF<6nHHi ze_Q>|_`rL~!@$&jJ{#KcJsXEfH+v-M_E-%R16$K%#Skt+^Q$3t%V{IMgzvTJPrz?y z80s$BVfD0yLmSjFfHU{435`(HpWxdX3ox`jPfH0|Xs^Fg*8pwKm zT^H~vyRlW;@e0owb2PinA|jsTjJvYo@mq?ef$#N|s#FKHGedL2?E^G49q!MTQzxa| zluDjL8|aU$ZZ#&q$kMgysqtO;_mO^{1w3+u(U%vT@~$7&SDVun`ACJ6JmT{p%oIr$ zhvpnCjFY18Evhh;*f7ma<(t)48jq?yb-OebV`NThv~|!hM}r8LoQG|Kmi;n&W%`1q zdsy79YCwR*+qj!tb!}*ay#yx0NG3Ehda5FRr*+3$^Mb|xOY2K(D}x=$y;+h zEDg2R5I_N?m(y%Cywp*J`!XSBkk1E_9(Zk5pV%kW@OV;GDbIeyc7B9WD%L+j!e6LM zwsCR3CIe)3-!9qe#r;-82;fr)2rU(l8bvJSy*-{JAzxV;HfXM@`KA>5NbuO{hw4y; zH!LkAy9b9VMH6CyHay40!KGLBjRW|<2E)C5e`{BSgU1!7dzP9EKX7fdFphIwA7TV+ z+rjKwNZVoyg=aTq16u6|Tyxu!eOj#)w}LF+U+J}Evh#rg50CqvoeK`L$tBy3M;*^OZwE$eEX0Nc3a0LVKSJMxs8z4dOET@Z82u*QQV;0;?gj{5 zw*+)^By??>?+9`_+35o zcz}_;rG;_Wh2_0h`u-{nDkkEgCZZ4Xvn=f5eZ~`ZH8Vi?Dnr1W2UHW+aHG5GPOhZI z8G`)BkqNtl<|FZ-cBaq=-|52*K8d>-+sWKOtT&j{kY_bFK6Fq=Q9m$*Pxa`xQxEOS zwVC^7c42~bXNk`69|N701cxBZQcUkFc+Zwk!(m?-RdlosrUn`t$iP=V?D-t+qfuNV zlD+lKP^@9b{4aaoy^-+z+vBW5)B$ZkNQfC|$h4Mjj9O-SXtPl^leQgVDOvm2_msk) zHnZ_83L}9To9{24NnMdHCrd9ME7eG}znkqn@4TVV$ds z8*RhsiCK($oBy>bH{xik;RV53;7_hv)>ruyf&`|*#)i@*ZQFID6hr3J{a|`^3!cUvwLeNp1GWOI=r= z(HAlDrk6{+;@&-1ZF*mw!ZZxSNNd=ldn<4KDFj7aRz>N+WRlB1Dd;SIGoa-U0r&?g z_pE$_D0dj}?wDe1EZOKCf&Efw(2K@fB}wcvB)8$m1o3*VO43@tb~ks;_sO!;kF%2U zuZiT|D(?_vo#?R5e2`c7=24wn;pc5T=|qjOz!^gYwLb=eSnO6Axe$FGXvwuuu?8p= tW(Kab>`>~kcIg!lHLBm%+hsav#N>8c;}`Vl;~!6e-nARrRanQ!{{wlXwV?n2 diff --git a/docs/ru/md/Start/img/8.png b/docs/ru/md/Start/img/8.png deleted file mode 100644 index 0cfcdef647d402125cb4f76afa82c3270ea9b25a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7871 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 J-Briv{|B;_zrX+h diff --git a/docs/ru/md/VK/Ad-account-management/Pause-advertising-ad.md b/docs/ru/md/VK/Ad-account-management/Pause-advertising-ad.md deleted file mode 100644 index f92d10d8eb..0000000000 --- a/docs/ru/md/VK/Ad-account-management/Pause-advertising-ad.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Приостановить рекламное объявление - Приостанавливает показ рекламного объявления - - -*Функция ПриостановитьРекламноеОбъявление(Знач IDКабинета, Знач IDОбъявления, Знач Параметры = "") Экспорт* - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | IDКабинета | --cabinet | Строка,Число | ID рекламного кабинета | - | IDОбъявления | --adv | Строка,Число | ID объявления | - | Параметры | --auth | Структура из Строка | JSON авторизации или путь к .json | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK - -```bsl title="Пример кода" - - - Ответ = OPI_VK.ПриостановитьРекламноеОбъявление(1234567890, 1029701085, Параметры); - Ответ = OPI_Инструменты.JSONСтрокой(Ответ); - - -``` - -```sh title="Пример команды CLI" - - oint vk ПриостановитьРекламноеОбъявление --cabinet %cabinet% --adv %adv% --auth %auth% - -``` - - -```json title="Результат" - -{ - "response": [ - { - "id": 1029701085 - } - ] - } - -``` diff --git a/docs/ru/md/VK/Product-selection-management/Add-product-to-selection.md b/docs/ru/md/VK/Product-selection-management/Add-product-to-selection.md deleted file mode 100644 index f4f191ea01..0000000000 --- a/docs/ru/md/VK/Product-selection-management/Add-product-to-selection.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Добавить товар в подборку - Добавляет товар в подборку - - -*Функция ДобавитьТоварВПодборку(Знач МассивТоваров, Знач Подборка, Знач Параметры = "") Экспорт* - - | Параметр | CLI опция | Тип | Назначение | - |-|-|-|-| - | МассивТоваров | --items | Массив из Строка, Число | Массив товаров или товар | - | Подборка | --sel | Строка | ID подборки | - | Параметры | --auth | Структура из Строка | JSON авторизации или путь к .json | - - - Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK - -```bsl title="Пример кода" - - - Ответ = OPI_VK.ДобавитьТоварВПодборку(8656559, 40, Параметры); - Ответ = OPI_Инструменты.JSONСтрокой(Ответ); - - -``` - -```sh title="Пример команды CLI" - - oint vk ДобавитьТоварВПодборку --items %items% --sel %sel% --auth %auth% - -``` - - -```json title="Результат" - -{ - "response": 1 - } - -``` diff --git a/service/dictionaries/en.json b/service/dictionaries/en.json index 3f66808af8..b2474d34fa 100644 --- a/service/dictionaries/en.json +++ b/service/dictionaries/en.json @@ -5042,5 +5042,10 @@ "Работа с Twitter подразумевает работу с двумя API - v1 (1.1) и v2, которые, при этом, не относятся к разным видам действий, но просто являются версиями друг друга. Несмотря на то, что Twitter настаивает на использовании v2, вышло так, что некоторые механизмы (в частности механизм загрузки файлов) в ней так и не появилися. Поэтому, даже для создания обычного твита с картинкой необходима работа с обеими версиями API, а, как следствие, двойной набор авторизационных данны. Этот набор описан в функции": "Working with Twitter involves using two APIs - v1 (1.1) and v2, which are not separate types of actions but simply different versions of the API. Despite Twitter's preference for v2, it turned out that some mechanisms (such as the file upload mechanism) did not appear in it. Therefore, even for creating a regular tweet with an image, you need to work with both API versions, resulting in a double set of authentication data. This set is described in the function", "Не рекомендуется использовать методы служебных модулей в других местах вашей конфигурации (если вы собираетесь обновляться до новых версий в дальнейшем). Для сохранения обратной совместимости, количество\/назначение параметров и типы возвращаемых значений для методов работы с API не изменяются, но это не применимо к служебным модулям, которые могут изменяться как угодно для оптимизации и дополнения под новые нужды. Если вам необходим функционал из служебных модулей, рекомендуется скопировать его себе отдельно": "It is not recommended to use the methods of utility modules in other parts of your configuration (if you plan to update to new versions in the future). To maintain backward compatibility, the number\/purpose of parameters and the return types for API interaction methods do not change, but this does not apply to utility modules, which can be modified in any way for optimization and adaptation to new requirements. If you need functionality from the utility modules, it is recommended to copy it separately", "Ввести домееное имя и URL обработчика перенаправлений. Тут нужно отметить, что данный механизм создания приложений - новый. Еще недавно приложения VK создавались иначе и иметь redirect_url для них было не нужно. На данный момент не совсем понятно, зачем он нужен нам для серверного приложения - просто такого понятия как серверное приложение у VK теперь нет. Теоретически, туда можно вписать что угодно - для работы с библиотекой в получении обратных данных нет необходимости. Однако, с течением времени, это может измениться": "Enter the domain name and the URL of the redirect handler. It's worth noting that this mechanism for creating VK applications is new. Until recently, VK applications were created differently, and having a redirect URL was unnecessary. At the moment, it's not entirely clear why it's needed for our server application - VK no longer distinguishes server applications as such. Theoretically, you can enter anything there - there is no need for receiving callback data to work with the library. However, this may change over time", -"Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение": "The list of necessary data in the form of a structure is contained in the function *GetStandardParameters()*. You can specify parameter values directly within it or pass them as a structure when calling any other library methods as an optional parameter *Parameters* (the last one in all library methods). In the latter case, the standard parameters will be overwritten by the ones passed during the method call. Only the data with matching keys will be overwritten. If a parameter exists in the standard set but was not passed during the method call, it will retain its default value" +"Перечень необходимых данных в виде структуры содержится в функции *ПолучитьСтандартныеПараметры()*. Вы можете указывать значения параметров прямо в ней или же передавать их структурой при вызове любых других методов библиотеки в качестве необязательного параметра *Параметры* (последний во всех методах билиотеки). В последнем случае стандартные параметры будут перезаписаны по ключам теми, которые переданы при вызове метода. Перезаписаны будут только совпадающие по ключам данные. Если какой то параметр есть в наборе стандартных, но не был передан при вызове метода, то он сохранит стандартное значение": "The list of necessary data in the form of a structure is contained in the function *GetStandardParameters()*. You can specify parameter values directly within it or pass them as a structure when calling any other library methods as an optional parameter *Parameters* (the last one in all library methods). In the latter case, the standard parameters will be overwritten by the ones passed during the method call. Only the data with matching keys will be overwritten. If a parameter exists in the standard set but was not passed during the method call, it will retain its default value", +"Это сообщение было удалено": "This message was deleted", +"Записал":"Write it!", +"Не спланированы":"Not planned", +"Сделаю на неделе":"For this week", +"Сохранить":"Save" } diff --git a/src/en/OInt/packagedef b/src/en/OInt/packagedef index 67e44e2df2..e3e8429e0d 100644 --- a/src/en/OInt/packagedef +++ b/src/en/OInt/packagedef @@ -1,4 +1,4 @@ -Описание.Имя("oint") +Описание.Имя("oint") .Версия("1.11.0") .Автор("bayselonarrend") .АдресАвтора("bayselonarrend@gmail.com") diff --git a/src/en/OPI/DT-INF/PROJECT.PMF b/src/en/OPI/DT-INF/PROJECT.PMF index d72af02b06..0839fe3b17 100644 --- a/src/en/OPI/DT-INF/PROJECT.PMF +++ b/src/en/OPI/DT-INF/PROJECT.PMF @@ -1,3 +1,4 @@ Manifest-Version: 1.0 Runtime-Version: 8.3.15 -Base-Project: OpenIntegrations_ENG +Base-Project: OpenIntegrations_Eng +Manifest-Version: 1.0 diff --git a/src/ru/OInt/lib.config b/src/ru/OInt/lib.config index 92fd8c06d7..984bd2e070 100644 --- a/src/ru/OInt/lib.config +++ b/src/ru/OInt/lib.config @@ -1,21 +1,21 @@  - - - - - - - - - - - - - + + + + - - + + + + + + + + + + + diff --git a/src/ru/OPI/src/Configuration/Configuration.mdo b/src/ru/OPI/src/Configuration/Configuration.mdo index bec018c96d..8f917a17b7 100644 --- a/src/ru/OPI/src/Configuration/Configuration.mdo +++ b/src/ru/OPI/src/Configuration/Configuration.mdo @@ -57,7 +57,6 @@ CommonModule.OPI_Slack CommonModule.OPI_Airtable CommonModule.OPI_Dropbox - CommonModule.OPI_Bitrix24 CommonModule.OPI_Тесты CommonModule.OPI_ПолучениеДанныхТестов
  • $bCSAysaG&1B571S`U`qxB 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%0DINZIo$_j;{&<6Z0Mr{ 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 SyJ(GZ!05(p{YqVz7ykxDRYxEI diff --git a/docs/ru/md/Start/img/3.gif b/docs/ru/md/Start/img/3.gif deleted file mode 100644 index 12d043fd36d0fc54387d4782c510a56e00ec1cbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249636 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