1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-12 04:34:10 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca 2024-06-11 13:33:50 +00:00 committed by Vitaly the Alpaca (bot)
parent 0a8c9c13af
commit c2ce72bf7d
33 changed files with 4694 additions and 4366 deletions

195
.github/workflows/oint_test_Bitrix24.yml vendored Normal file
View File

@ -0,0 +1,195 @@

name: OINT | Тестирование Bitrix24
# Controls when the workflow will run
on:
workflow_dispatch:
jobs:
Decode:
runs-on: ubuntu-latest
if: ${{ always() }}
steps:
- uses: actions/checkout@v4
- name: Расшифровать тестовые данные
run: gpg --quiet --batch --yes --decrypt --passphrase="$ENC_JSON" --output ./data.json ./data.json.gpg
env:
ENC_JSON: ${{ secrets.ENC_JSON }}
- name: Записать тестовые данные в кэш
uses: actions/cache/save@v3
with:
key: test-data
path: ./data.json
Build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: otymko/setup-onescript@v1.4
with:
version: 1.9.0
- name: Установить asserts и 1testrunner
run: |
opm install asserts
opm install 1testrunner
- name: Установить OInt
run: |
cd ./src/ru/OInt
opm build
opm install *.ospx
- name: Записать артефакт
uses: actions/upload-artifact@v4
with:
name: oint
path: ./src/ru/OInt/*.ospx
Testing-Bitrix24:
runs-on: ubuntu-latest
needs: [Decode, Build]
steps:
- uses: actions/checkout@v2
- uses: otymko/setup-onescript@v1.4
with:
version: 1.9.0
- name: Получить тестовые данные из кэша
uses: actions/cache/restore@v3
with:
key: test-data
path: ./data.json
- name: Установить asserts и 1testrunner
run: |
opm install asserts
opm install 1testrunner
- name: Установить OInt
run: |
cd ./src/ru/OInt
opm build
opm install *.ospx
- name: Работа с токеном
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСТокеном"
- name: Серверное время
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_СерверноеВремя"
- name: Работа с новостями
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСНовостями"
- name: Записать логи
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
- name: Записать измененные данные
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3
with:
key: test-data_new
path: ./data.json
Encode:
runs-on: ubuntu-latest
needs: [Testing-Bitrix24]
if: ${{ always() }}
permissions:
contents: write
steps:
- uses: actions/checkout@v2
- name: Обновить данные в репозитории
run: git pull https://github.com/Bayselonarrend/OpenIntegrations
- name: Получить тестовые данные из кэша
uses: actions/cache/restore@v3
with:
key: test-data_new
path: ./data.json
- name: Зашифровать данные обратно
continue-on-error: false
run: |
rm -f ./data.json.gpg
gpg --batch --symmetric --cipher-algo AES256 --passphrase="$ENC_JSON" data.json
rm -f ./data.json
env:
ENC_JSON: ${{ secrets.ENC_JSON }}
- name: Получить логи Bitrix24
uses: actions/cache/restore@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
- name: Очистка логов Bitrix24
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
- name: Записать данные
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_user_name: Vitaly the Alpaca (bot)
commit_user_email: vitaly.the.alpaca@gmail.com
commit_author: Vitaly the Alpaca <vitaly.the.alpaca@gmail.com>
commit_message: Обновление зашифрованных данных по результатам тестов (workflow)
Clear-Cache:
runs-on: ubuntu-latest
needs: [Testing-Bitrix24, Encode]
if: ${{ always() }}
steps:
- name: Очистка основного кэша
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data"
- name: Очистка кэша Google
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_google"
- name: Очистка кэша Twitter
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_new"

View File

@ -1010,9 +1010,58 @@ jobs:
key: logs-Dropbox key: logs-Dropbox
path: ./docs/results/Dropbox path: ./docs/results/Dropbox
Testing-Bitrix24:
runs-on: ubuntu-latest
needs: [Decode, Build]
steps:
- uses: actions/checkout@v2
- uses: otymko/setup-onescript@v1.4
with:
version: 1.9.0
- name: Получить тестовые данные из кэша
uses: actions/cache/restore@v3
with:
key: test-data
path: ./data.json
- name: Установить asserts и 1testrunner
run: |
opm install asserts
opm install 1testrunner
- name: Установить OInt
run: |
cd ./src/ru/OInt
opm build
opm install *.ospx
- name: Работа с токеном
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСТокеном"
- name: Серверное время
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_СерверноеВремя"
- name: Работа с новостями
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСНовостями"
- name: Записать логи
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
Encode: Encode:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox] needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24]
if: ${{ always() }} if: ${{ always() }}
permissions: permissions:
contents: write contents: write
@ -1248,6 +1297,22 @@ jobs:
-H "X-GitHub-Api-Version: 2022-11-28" \ -H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox" "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox"
- name: Получить логи Bitrix24
uses: actions/cache/restore@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
- name: Очистка логов Bitrix24
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
- name: Записать данные - name: Записать данные
uses: stefanzweifel/git-auto-commit-action@v5 uses: stefanzweifel/git-auto-commit-action@v5
@ -1260,7 +1325,7 @@ jobs:
Clear-Cache: Clear-Cache:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Encode] needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Encode]
if: ${{ always() }} if: ${{ always() }}
steps: steps:
- name: Очистка основного кэша - name: Очистка основного кэша

View File

@ -1010,9 +1010,58 @@ jobs:
key: logs-Dropbox key: logs-Dropbox
path: ./docs/results/Dropbox path: ./docs/results/Dropbox
Testing-Bitrix24:
runs-on: ubuntu-latest
needs: [Decode, Build]
steps:
- uses: actions/checkout@v2
- uses: otymko/setup-onescript@v1.4
with:
version: 1.9.0
- name: Получить тестовые данные из кэша
uses: actions/cache/restore@v3
with:
key: test-data
path: ./data.json
- name: Установить asserts и 1testrunner
run: |
opm install asserts
opm install 1testrunner
- name: Установить OInt
run: |
cd ./src/en/OInt
opm build
opm install *.ospx
- name: Token management
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_TokenManagment"
- name: Server time
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_ServerTime"
- name: Posts managment
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "B24_PostsManagment"
- name: Записать логи
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
Encode: Encode:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox] needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24]
if: ${{ always() }} if: ${{ always() }}
permissions: permissions:
contents: write contents: write
@ -1248,6 +1297,22 @@ jobs:
-H "X-GitHub-Api-Version: 2022-11-28" \ -H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox" "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox"
- name: Получить логи Bitrix24
uses: actions/cache/restore@v3
with:
key: logs-Bitrix24
path: ./docs/results/Bitrix24
- name: Очистка логов Bitrix24
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"
- name: Записать данные - name: Записать данные
uses: stefanzweifel/git-auto-commit-action@v5 uses: stefanzweifel/git-auto-commit-action@v5
@ -1260,7 +1325,7 @@ jobs:
Clear-Cache: Clear-Cache:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Encode] needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Encode]
if: ${{ always() }} if: ${{ always() }}
steps: steps:
- name: Очистка основного кэша - name: Очистка основного кэша

File diff suppressed because it is too large Load Diff

View File

@ -1,286 +1,286 @@
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os // OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
// Lib: Bitrix24 // Lib: Bitrix24
// CLI: bitrix24 // CLI: bitrix24
// MIT License // MIT License
// Copyright (c) 2023 Anton Tsitavets // Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights // in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is // copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions: // furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all // The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software. // copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations // https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off // BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off // BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off // BSLLS:IncorrectLineBreak-off
// BSLLS:UnreachableCode-off // BSLLS:UnreachableCode-off
// BSLLS:CommentedCode-off // BSLLS:CommentedCode-off
//@skip-check module-structure-top-region //@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions //@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content //@skip-check wrong-string-literal-content
//@skip-check method-too-many-params //@skip-check method-too-many-params
// Uncomment if OneScript is executed // Uncomment if OneScript is executed
#Use "../../tools" #Use "../../tools"
#Region Public #Region Public
#Region SettingsAndAdministartion #Region SettingsAndAdministartion
// Get app authentication link // Get app authentication link
// Forms a link for authorization via the browser // Forms a link for authorization via the browser
// //
// Parameters: // Parameters:
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com') // Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// //
// Returns: // Returns:
// String - URL for browser transition // String - URL for browser transition
Function GetAppAuthLink(Val Domain, Val ClientID) Export Function GetAppAuthLink(Val Domain, Val ClientID) Export
OPI_TypeConversion.GetLine(Domain); OPI_TypeConversion.GetLine(Domain);
OPI_TypeConversion.GetLine(ClientID); OPI_TypeConversion.GetLine(ClientID);
If Not StrStartsWith(Domain, "http") Then If Not StrStartsWith(Domain, "http") Then
URL = "https://" + Domain; URL = "https://" + Domain;
EndIf; EndIf;
If Not StrEndsWith(URL, "/") Then If Not StrEndsWith(URL, "/") Then
URL = URL + "/"; URL = URL + "/";
EndIf; EndIf;
URL = URL + "oauth/authorize/?client_id=" + ClientID; URL = URL + "oauth/authorize/?client_id=" + ClientID;
Return URL; Return URL;
EndFunction EndFunction
// Get token // Get token
// Get token by auth code // Get token by auth code
// //
// Parameters: // Parameters:
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// ClientSecret - String - Client secret from app settings // ClientSecret - String - Client secret from app settings
// Code - String - Code from browser auth page // Code - String - Code from browser auth page
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Parameters = New Structure; Parameters = New Structure;
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters); OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters); OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters); OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
OPI_Tools.AddField("code" , Code , "String", Parameters); OPI_Tools.AddField("code" , Code , "String", Parameters);
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Refresh token // Refresh token
// Update token by refresh token // Update token by refresh token
// //
// Parameters: // Parameters:
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// ClientSecret - String - Client secret from app settings // ClientSecret - String - Client secret from app settings
// Refresh - String - Refresh token // Refresh - String - Refresh token
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Parameters = New Structure; Parameters = New Structure;
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters); OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters); OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters); OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters); OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Server time // Server time
// Get current server time // Get current server time
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function ServerTime(Val URL, Val Token = "") Export Function ServerTime(Val URL, Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "server.time"); Parameters = NormalizeAuth(URL, Token, "server.time");
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
#EndRegion #EndRegion
#Region NewsFeed #Region NewsFeed
// Create post. // Create post.
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// Text - String - Text of post // Text - String - Text of post
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group) // Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data // Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
// Title - String - Title // Title - String - Title
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function CreatePost(Val URL Function CreatePost(Val URL
, Val Text , Val Text
, Val Visibility = "UA" , Val Visibility = "UA"
, Val Files = "" , Val Files = ""
, Val Title = "" , Val Title = ""
, Val Token = "") Export , Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add"); Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters); OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters); OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters); OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
If ValueIsFilled(Files) Then If ValueIsFilled(Files) Then
OPI_TypeConversion.GetCollection(Files); OPI_TypeConversion.GetCollection(Files);
ArrayOfFiles = NormalizeFiles(Files); ArrayOfFiles = NormalizeFiles(Files);
If Not ArrayOfFiles.Count() = 0 Then If Not ArrayOfFiles.Count() = 0 Then
Parameters.Insert("FILES", ArrayOfFiles); Parameters.Insert("FILES", ArrayOfFiles);
EndIf; EndIf;
EndIf; EndIf;
Response = OPI_Tools.Post(URL, Parameters); Response = OPI_Tools.Post(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Delete post. // Delete post.
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// PostID - String, Number - Id of post to remove // PostID - String, Number - Id of post to remove
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function DeletePost(Val URL, Val PostID, Val Token = "") Export Function DeletePost(Val URL, Val PostID, Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete"); Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters); OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters); Response = OPI_Tools.Post(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
#EndRegion #EndRegion
#EndRegion #EndRegion
#Region Internal #Region Internal
Function NormalizeAuth(URL, Val Token, Val Method = "") Function NormalizeAuth(URL, Val Token, Val Method = "")
OPI_TypeConversion.GetLine(URL); OPI_TypeConversion.GetLine(URL);
OPI_TypeConversion.GetLine(Token); OPI_TypeConversion.GetLine(Token);
Parameters = New Structure; Parameters = New Structure;
IsTokenAuth = ValueIsFilled(Token); IsTokenAuth = ValueIsFilled(Token);
UncorrectItems = New Array; UncorrectItems = New Array;
UncorrectItems.Add("https://"); UncorrectItems.Add("https://");
UncorrectItems.Add("http://"); UncorrectItems.Add("http://");
UncorrectItems.Add("www."); UncorrectItems.Add("www.");
For Each DeletedElement In UncorrectItems Do For Each DeletedElement In UncorrectItems Do
URL = StrReplace(URL, DeletedElement, ""); URL = StrReplace(URL, DeletedElement, "");
EndDo; EndDo;
URL = TrimAll(URL); URL = TrimAll(URL);
If Not StrEndsWith(URL, "/") Then If Not StrEndsWith(URL, "/") Then
URL = URL + "/"; URL = URL + "/";
EndIf; EndIf;
If IsTokenAuth Then If IsTokenAuth Then
If Not StrEndsWith(URL, "rest/") Then If Not StrEndsWith(URL, "rest/") Then
URL = URL + "rest/"; URL = URL + "rest/";
EndIf; EndIf;
Parameters.Insert("auth", Token); Parameters.Insert("auth", Token);
EndIf; EndIf;
If ValueIsFilled(Method) Then If ValueIsFilled(Method) Then
URL = URL + TrimAll(Method); URL = URL + TrimAll(Method);
EndIf; EndIf;
Return Parameters; Return Parameters;
EndFunction EndFunction
Function NormalizeFiles(Val Files) Function NormalizeFiles(Val Files)
NormalizedFiles = New Array; NormalizedFiles = New Array;
If Not TypeOf(Files) = Type("Map") Then If Not TypeOf(Files) = Type("Map") Then
Return NormalizedFiles; Return NormalizedFiles;
EndIf; EndIf;
For Each File In Files Do For Each File In Files Do
CurrentArray = New Array; CurrentArray = New Array;
CurrentFile = File.Value; CurrentFile = File.Value;
CurrentName = File.Key; CurrentName = File.Key;
OPI_TypeConversion.GetBinaryData(CurrentFile); OPI_TypeConversion.GetBinaryData(CurrentFile);
OPI_TypeConversion.GetLine(CurrentName); OPI_TypeConversion.GetLine(CurrentName);
CurrentArray.Add(CurrentName); CurrentArray.Add(CurrentName);
CurrentArray.Add(Base64String(CurrentFile)); CurrentArray.Add(Base64String(CurrentFile));
NormalizedFiles.Add(CurrentArray); NormalizedFiles.Add(CurrentArray);
EndDo; EndDo;
Return NormalizedFiles; Return NormalizedFiles;
EndFunction EndFunction
#EndRegion #EndRegion

View File

@ -1,21 +1,21 @@
<package-def> <package-def>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/> <module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/> <module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/> <module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/> <module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/>
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/> <module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/> <module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
<module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/>
<module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/>
<module name="OPI_TypeConversion" file="tools/Modules/OPI_TypeConversion.os"/> <module name="OPI_TypeConversion" file="tools/Modules/OPI_TypeConversion.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/>
</package-def> </package-def>

View File

@ -5460,7 +5460,7 @@ Procedure Bitrix24_ServerTime(FunctionParameters)
Result = OPI_Bitrix24.ServerTime(URL); Result = OPI_Bitrix24.ServerTime(URL);
OPI_TestDataRetrieval.WriteLog(Result, "ServerTime (хуto)", "Bitrix24"); OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
Check_BitrixTime(Result); // SKIP Check_BitrixTime(Result); // SKIP
@ -5490,7 +5490,7 @@ Procedure Bitrix24_CreatePost(FunctionParameters)
Result = OPI_Bitrix24.CreatePost(URL, Text, , Files, Title); Result = OPI_Bitrix24.CreatePost(URL, Text, , Files, Title);
OPI_TestDataRetrieval.WriteLog(Result, "CreatePost (хуto)", "Bitrix24"); OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
Check_BitrixPost(Result); // SKIP Check_BitrixPost(Result); // SKIP
@ -5523,7 +5523,7 @@ Procedure Bitrix24_DeletePost(FunctionParameters)
Result = OPI_Bitrix24.DeletePost(URL, PostID); Result = OPI_Bitrix24.DeletePost(URL, PostID);
OPI_TestDataRetrieval.WriteLog(Result, "DeletePost (хуto)", "Bitrix24"); OPI_TestDataRetrieval.WriteLog(Result, ")", "Bitrix24");
Check_BitrixTrue(Result); // SKIP Check_BitrixTrue(Result); // SKIP

View File

@ -1,286 +1,286 @@
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os // OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
// Lib: Bitrix24 // Lib: Bitrix24
// CLI: bitrix24 // CLI: bitrix24
// MIT License // MIT License
// Copyright (c) 2023 Anton Tsitavets // Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights // in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is // copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions: // furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all // The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software. // copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations // https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off // BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off // BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off // BSLLS:IncorrectLineBreak-off
// BSLLS:UnreachableCode-off // BSLLS:UnreachableCode-off
// BSLLS:CommentedCode-off // BSLLS:CommentedCode-off
//@skip-check module-structure-top-region //@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions //@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content //@skip-check wrong-string-literal-content
//@skip-check method-too-many-params //@skip-check method-too-many-params
// Uncomment if OneScript is executed // Uncomment if OneScript is executed
// #Use "../../tools" // #Use "../../tools"
#Region Public #Region Public
#Region SettingsAndAdministartion #Region SettingsAndAdministartion
// Get app authentication link // Get app authentication link
// Forms a link for authorization via the browser // Forms a link for authorization via the browser
// //
// Parameters: // Parameters:
// Domain - String - Current Bitrix URL (like 'portal.bitrix24.com') // Domain - String - Current Bitrix URL (like 'portal.bitrix24.com')
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// //
// Returns: // Returns:
// String - URL for browser transition // String - URL for browser transition
Function GetAppAuthLink(Val Domain, Val ClientID) Export Function GetAppAuthLink(Val Domain, Val ClientID) Export
OPI_TypeConversion.GetLine(Domain); OPI_TypeConversion.GetLine(Domain);
OPI_TypeConversion.GetLine(ClientID); OPI_TypeConversion.GetLine(ClientID);
If Not StrStartsWith(Domain, "http") Then If Not StrStartsWith(Domain, "http") Then
URL = "https://" + Domain; URL = "https://" + Domain;
EndIf; EndIf;
If Not StrEndsWith(URL, "/") Then If Not StrEndsWith(URL, "/") Then
URL = URL + "/"; URL = URL + "/";
EndIf; EndIf;
URL = URL + "oauth/authorize/?client_id=" + ClientID; URL = URL + "oauth/authorize/?client_id=" + ClientID;
Return URL; Return URL;
EndFunction EndFunction
// Get token // Get token
// Get token by auth code // Get token by auth code
// //
// Parameters: // Parameters:
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// ClientSecret - String - Client secret from app settings // ClientSecret - String - Client secret from app settings
// Code - String - Code from browser auth page // Code - String - Code from browser auth page
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export Function GetToken(Val ClientID, Val ClientSecret, Val Code) Export
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Parameters = New Structure; Parameters = New Structure;
OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters); OPI_Tools.AddField("grant_type" , "authorization_code", "String", Parameters);
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters); OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters); OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
OPI_Tools.AddField("code" , Code , "String", Parameters); OPI_Tools.AddField("code" , Code , "String", Parameters);
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Refresh token // Refresh token
// Update token by refresh token // Update token by refresh token
// //
// Parameters: // Parameters:
// ClientID - String - Client ID from app settings // ClientID - String - Client ID from app settings
// ClientSecret - String - Client secret from app settings // ClientSecret - String - Client secret from app settings
// Refresh - String - Refresh token // Refresh - String - Refresh token
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export Function RefreshToken(Val ClientID, Val ClientSecret, Val Refresh) Export
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Parameters = New Structure; Parameters = New Structure;
OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters); OPI_Tools.AddField("grant_type" , "refresh_token" , "String", Parameters);
OPI_Tools.AddField("client_id" , ClientID , "String", Parameters); OPI_Tools.AddField("client_id" , ClientID , "String", Parameters);
OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters); OPI_Tools.AddField("client_secret", ClientSecret , "String", Parameters);
OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters); OPI_Tools.AddField("refresh_token", Refresh , "String", Parameters);
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Server time // Server time
// Get current server time // Get current server time
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function ServerTime(Val URL, Val Token = "") Export Function ServerTime(Val URL, Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "server.time"); Parameters = NormalizeAuth(URL, Token, "server.time");
Response = OPI_Tools.Get(URL, Parameters); Response = OPI_Tools.Get(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
#EndRegion #EndRegion
#Region NewsFeed #Region NewsFeed
// Create post. // Create post.
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// Text - String - Text of post // Text - String - Text of post
// Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group) // Visibility - String - Array or a single post target (UA all, SG<X> work group, U<X> user, DR<X> depart., G<X> group)
// Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data // Files - String - Data inложенandй, где toлюч > andмя file, value > path to file andдand дinоandчные Data
// Title - String - Title // Title - String - Title
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function CreatePost(Val URL Function CreatePost(Val URL
, Val Text , Val Text
, Val Visibility = "UA" , Val Visibility = "UA"
, Val Files = "" , Val Files = ""
, Val Title = "" , Val Title = ""
, Val Token = "") Export , Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "log.blogpost.add"); Parameters = NormalizeAuth(URL, Token, "log.blogpost.add");
OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters); OPI_Tools.AddField("POST_MESSAGE", Text , "String", Parameters);
OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters); OPI_Tools.AddField("POST_TITLE" , Title, "String", Parameters);
OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters); OPI_Tools.AddField("DEST" , Visibility , "Array", Parameters);
If ValueIsFilled(Files) Then If ValueIsFilled(Files) Then
OPI_TypeConversion.GetCollection(Files); OPI_TypeConversion.GetCollection(Files);
ArrayOfFiles = NormalizeFiles(Files); ArrayOfFiles = NormalizeFiles(Files);
If Not ArrayOfFiles.Count() = 0 Then If Not ArrayOfFiles.Count() = 0 Then
Parameters.Insert("FILES", ArrayOfFiles); Parameters.Insert("FILES", ArrayOfFiles);
EndIf; EndIf;
EndIf; EndIf;
Response = OPI_Tools.Post(URL, Parameters); Response = OPI_Tools.Post(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
// Delete post. // Delete post.
// //
// Parameters: // Parameters:
// URL - String - URL of webhook or a Bitrix24 domain, when token used // URL - String - URL of webhook or a Bitrix24 domain, when token used
// PostID - String, Number - Id of post to remove // PostID - String, Number - Id of post to remove
// Token - String - Access token, when not-webhook method used // Token - String - Access token, when not-webhook method used
// //
// Returns: // Returns:
// Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API // Map Of KeyAndValue - serialized JSON of answer from Bitrix24 API
Function DeletePost(Val URL, Val PostID, Val Token = "") Export Function DeletePost(Val URL, Val PostID, Val Token = "") Export
Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete"); Parameters = NormalizeAuth(URL, Token, "log.blogpost.delete");
OPI_Tools.AddField("POST_ID", PostID, "String", Parameters); OPI_Tools.AddField("POST_ID", PostID, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters); Response = OPI_Tools.Post(URL, Parameters);
Return Response; Return Response;
EndFunction EndFunction
#EndRegion #EndRegion
#EndRegion #EndRegion
#Region Internal #Region Internal
Function NormalizeAuth(URL, Val Token, Val Method = "") Function NormalizeAuth(URL, Val Token, Val Method = "")
OPI_TypeConversion.GetLine(URL); OPI_TypeConversion.GetLine(URL);
OPI_TypeConversion.GetLine(Token); OPI_TypeConversion.GetLine(Token);
Parameters = New Structure; Parameters = New Structure;
IsTokenAuth = ValueIsFilled(Token); IsTokenAuth = ValueIsFilled(Token);
UncorrectItems = New Array; UncorrectItems = New Array;
UncorrectItems.Add("https://"); UncorrectItems.Add("https://");
UncorrectItems.Add("http://"); UncorrectItems.Add("http://");
UncorrectItems.Add("www."); UncorrectItems.Add("www.");
For Each DeletedElement In UncorrectItems Do For Each DeletedElement In UncorrectItems Do
URL = StrReplace(URL, DeletedElement, ""); URL = StrReplace(URL, DeletedElement, "");
EndDo; EndDo;
URL = TrimAll(URL); URL = TrimAll(URL);
If Not StrEndsWith(URL, "/") Then If Not StrEndsWith(URL, "/") Then
URL = URL + "/"; URL = URL + "/";
EndIf; EndIf;
If IsTokenAuth Then If IsTokenAuth Then
If Not StrEndsWith(URL, "rest/") Then If Not StrEndsWith(URL, "rest/") Then
URL = URL + "rest/"; URL = URL + "rest/";
EndIf; EndIf;
Parameters.Insert("auth", Token); Parameters.Insert("auth", Token);
EndIf; EndIf;
If ValueIsFilled(Method) Then If ValueIsFilled(Method) Then
URL = URL + TrimAll(Method); URL = URL + TrimAll(Method);
EndIf; EndIf;
Return Parameters; Return Parameters;
EndFunction EndFunction
Function NormalizeFiles(Val Files) Function NormalizeFiles(Val Files)
NormalizedFiles = New Array; NormalizedFiles = New Array;
If Not TypeOf(Files) = Type("Map") Then If Not TypeOf(Files) = Type("Map") Then
Return NormalizedFiles; Return NormalizedFiles;
EndIf; EndIf;
For Each File In Files Do For Each File In Files Do
CurrentArray = New Array; CurrentArray = New Array;
CurrentFile = File.Value; CurrentFile = File.Value;
CurrentName = File.Key; CurrentName = File.Key;
OPI_TypeConversion.GetBinaryData(CurrentFile); OPI_TypeConversion.GetBinaryData(CurrentFile);
OPI_TypeConversion.GetLine(CurrentName); OPI_TypeConversion.GetLine(CurrentName);
CurrentArray.Add(CurrentName); CurrentArray.Add(CurrentName);
CurrentArray.Add(Base64String(CurrentFile)); CurrentArray.Add(Base64String(CurrentFile));
NormalizedFiles.Add(CurrentArray); NormalizedFiles.Add(CurrentArray);
EndDo; EndDo;
Return NormalizedFiles; Return NormalizedFiles;
EndFunction EndFunction
#EndRegion #EndRegion

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="496e68cd-c70d-4c15-aa9e-c2aad28abf8a"> <mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="496e68cd-c70d-4c15-aa9e-c2aad28abf8a">
<name>OPI_Bitrix24</name> <name>OPI_Bitrix24</name>
<synonym> <synonym>
<key>en</key> <key>en</key>
<value>Bitrix24 (OPI)</value> <value>Bitrix24 (OPI)</value>
</synonym> </synonym>
<server>true</server> <server>true</server>
<externalConnection>true</externalConnection> <externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication> <clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule> </mdclass:CommonModule>

View File

@ -1,14 +1,14 @@
Function ПолучитьСостав() Export Function ПолучитьСостав() Export
CompositionTable = New ValueTable(); CompositionTable = New ValueTable();
CompositionTable.Columns.Add("Библиотека"); CompositionTable.Columns.Add("Библиотека");
CompositionTable.Columns.Add("Модуль"); CompositionTable.Columns.Add("Модуль");
CompositionTable.Columns.Add("Метод"); CompositionTable.Columns.Add("Метод");
CompositionTable.Columns.Add("МетодПоиска"); CompositionTable.Columns.Add("МетодПоиска");
CompositionTable.Columns.Add("Параметр"); CompositionTable.Columns.Add("Параметр");
CompositionTable.Columns.Add("Описание"); CompositionTable.Columns.Add("Описание");
CompositionTable.Columns.Add("ОписаниеМетода"); CompositionTable.Columns.Add("ОписаниеМетода");
CompositionTable.Columns.Add("Область"); CompositionTable.Columns.Add("Область");
Return CompositionTable; Return CompositionTable;
EndFunction EndFunction

View File

@ -142,7 +142,7 @@
NewLine.Метод = "GetObjectInformation"; NewLine.Метод = "GetObjectInformation";
NewLine.МетодПоиска = "GETOBJECTINFORMATION"; NewLine.МетодПоиска = "GETOBJECTINFORMATION";
NewLine.Параметр = "--detail"; NewLine.Параметр = "--detail";
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - No)"; NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - False)";
NewLine.Область = "File and directory management"; NewLine.Область = "File and directory management";
@ -173,7 +173,7 @@
NewLine.Метод = "GetListOfFolderFiles"; NewLine.Метод = "GetListOfFolderFiles";
NewLine.МетодПоиска = "GETLISTOFFOLDERFILES"; NewLine.МетодПоиска = "GETLISTOFFOLDERFILES";
NewLine.Параметр = "--detail"; NewLine.Параметр = "--detail";
NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - No)"; NewLine.Описание = "Adds additional information fields for media files (optional, def. val. - False)";
NewLine.Область = "File and directory management"; NewLine.Область = "File and directory management";
@ -245,7 +245,7 @@
NewLine.Метод = "UploadFile"; NewLine.Метод = "UploadFile";
NewLine.МетодПоиска = "UPLOADFILE"; NewLine.МетодПоиска = "UPLOADFILE";
NewLine.Параметр = "--overwrite"; NewLine.Параметр = "--overwrite";
NewLine.Описание = "Overwrite file in case of path conflicts (optional, def. val. - No)"; NewLine.Описание = "Overwrite file in case of path conflicts (optional, def. val. - False)";
NewLine.Область = "File and directory management"; NewLine.Область = "File and directory management";
@ -328,7 +328,7 @@
NewLine.Метод = "DeleteObject"; NewLine.Метод = "DeleteObject";
NewLine.МетодПоиска = "DELETEOBJECT"; NewLine.МетодПоиска = "DELETEOBJECT";
NewLine.Параметр = "--permanently"; NewLine.Параметр = "--permanently";
NewLine.Описание = "Delete object without the possibility of recovery (optional, def. val. - No)"; NewLine.Описание = "Delete object without the possibility of recovery (optional, def. val. - False)";
NewLine.Область = "File and directory management"; NewLine.Область = "File and directory management";
@ -681,7 +681,7 @@
NewLine.Метод = "AddUsersToFile"; NewLine.Метод = "AddUsersToFile";
NewLine.МетодПоиска = "ADDUSERSTOFILE"; NewLine.МетодПоиска = "ADDUSERSTOFILE";
NewLine.Параметр = "--readonly"; NewLine.Параметр = "--readonly";
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - Да)"; NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - True)";
NewLine.Область = "Shared access settings"; NewLine.Область = "Shared access settings";
@ -722,7 +722,7 @@
NewLine.Метод = "AddUsersToFolder"; NewLine.Метод = "AddUsersToFolder";
NewLine.МетодПоиска = "ADDUSERSTOFOLDER"; NewLine.МетодПоиска = "ADDUSERSTOFOLDER";
NewLine.Параметр = "--readonly"; NewLine.Параметр = "--readonly";
NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - Да)"; NewLine.Описание = "Prohibits file editing for the external user (optional, def. val. - True)";
NewLine.Область = "Shared access settings"; NewLine.Область = "Shared access settings";

View File

@ -246,7 +246,7 @@
NewLine.Метод = "EditListCalendar"; NewLine.Метод = "EditListCalendar";
NewLine.МетодПоиска = "EDITLISTCALENDAR"; NewLine.МетодПоиска = "EDITLISTCALENDAR";
NewLine.Параметр = "--hidden"; NewLine.Параметр = "--hidden";
NewLine.Описание = "Hidden calendar (optional, def. val. - No)"; NewLine.Описание = "Hidden calendar (optional, def. val. - False)";
NewLine.Область = "Calendar list management"; NewLine.Область = "Calendar list management";

View File

@ -58,7 +58,7 @@
NewLine.Метод = "GetDirectoriesList"; NewLine.Метод = "GetDirectoriesList";
NewLine.МетодПоиска = "GETDIRECTORIESLIST"; NewLine.МетодПоиска = "GETDIRECTORIESLIST";
NewLine.Параметр = "--depth"; NewLine.Параметр = "--depth";
NewLine.Описание = "Adds a list of files to the directory fields (optional, def. val. - No)"; NewLine.Описание = "Adds a list of files to the directory fields (optional, def. val. - False)";
NewLine.Область = "File and directory management"; NewLine.Область = "File and directory management";

View File

@ -27,7 +27,7 @@
NewLine.Метод = "FormCodeRetrievalLink"; NewLine.Метод = "FormCodeRetrievalLink";
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK"; NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
NewLine.Параметр = "--calendar"; NewLine.Параметр = "--calendar";
NewLine.Описание = "Calendar methods permission (optional, def. val. - Да)"; NewLine.Описание = "Calendar methods permission (optional, def. val. - True)";
NewLine.Область = "Public"; NewLine.Область = "Public";
@ -37,7 +37,7 @@
NewLine.Метод = "FormCodeRetrievalLink"; NewLine.Метод = "FormCodeRetrievalLink";
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK"; NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
NewLine.Параметр = "--drive"; NewLine.Параметр = "--drive";
NewLine.Описание = "Drive methods permission (optional, def. val. - Да)"; NewLine.Описание = "Drive methods permission (optional, def. val. - True)";
NewLine.Область = "Public"; NewLine.Область = "Public";
@ -47,7 +47,7 @@
NewLine.Метод = "FormCodeRetrievalLink"; NewLine.Метод = "FormCodeRetrievalLink";
NewLine.МетодПоиска = "FORMCODERETRIEVALLINK"; NewLine.МетодПоиска = "FORMCODERETRIEVALLINK";
NewLine.Параметр = "--sheets"; NewLine.Параметр = "--sheets";
NewLine.Описание = "Sheets methods permission (optional, def. val. - Да)"; NewLine.Описание = "Sheets methods permission (optional, def. val. - True)";
NewLine.Область = "Public"; NewLine.Область = "Public";

View File

@ -165,7 +165,7 @@
NewLine.Метод = "EditPageProperties"; NewLine.Метод = "EditPageProperties";
NewLine.МетодПоиска = "EDITPAGEPROPERTIES"; NewLine.МетодПоиска = "EDITPAGEPROPERTIES";
NewLine.Параметр = "--archive"; NewLine.Параметр = "--archive";
NewLine.Описание = "Archive page or not (boolean) (optional, def. val. - No)"; NewLine.Описание = "Archive page or not (boolean) (optional, def. val. - False)";
NewLine.Область = "Page management"; NewLine.Область = "Page management";
@ -381,7 +381,7 @@
NewLine.Метод = "ReturnBlock"; NewLine.Метод = "ReturnBlock";
NewLine.МетодПоиска = "RETURNBLOCK"; NewLine.МетодПоиска = "RETURNBLOCK";
NewLine.Параметр = "--core"; NewLine.Параметр = "--core";
NewLine.Описание = "True > service fields are deleted, only the block itself remains (optional, def. val. - Да)"; NewLine.Описание = "True > service fields are deleted, only the block itself remains (optional, def. val. - True)";
NewLine.Область = "Blocks managment"; NewLine.Область = "Blocks managment";

View File

@ -254,7 +254,7 @@
NewLine.Метод = "DeleteMessage"; NewLine.Метод = "DeleteMessage";
NewLine.МетодПоиска = "DELETEMESSAGE"; NewLine.МетодПоиска = "DELETEMESSAGE";
NewLine.Параметр = "--issheduled"; NewLine.Параметр = "--issheduled";
NewLine.Описание = "Indicator of deleting a delayed message (optional, def. val. - No)"; NewLine.Описание = "Indicator of deleting a delayed message (optional, def. val. - False)";
NewLine.Область = "Message management"; NewLine.Область = "Message management";
@ -378,7 +378,7 @@
NewLine.Метод = "GetChannelList"; NewLine.Метод = "GetChannelList";
NewLine.МетодПоиска = "GETCHANNELLIST"; NewLine.МетодПоиска = "GETCHANNELLIST";
NewLine.Параметр = "--notarchived"; NewLine.Параметр = "--notarchived";
NewLine.Описание = "Indicator of excluding archived channels (optional, def. val. - No)"; NewLine.Описание = "Indicator of excluding archived channels (optional, def. val. - False)";
NewLine.Область = "Channel management"; NewLine.Область = "Channel management";
@ -450,7 +450,7 @@
NewLine.Метод = "CreateChannel"; NewLine.Метод = "CreateChannel";
NewLine.МетодПоиска = "CREATECHANNEL"; NewLine.МетодПоиска = "CREATECHANNEL";
NewLine.Параметр = "--private"; NewLine.Параметр = "--private";
NewLine.Описание = "Create channel as private (optional, def. val. - No)"; NewLine.Описание = "Create channel as private (optional, def. val. - False)";
NewLine.Область = "Channel management"; NewLine.Область = "Channel management";

View File

@ -699,7 +699,7 @@
NewLine.Метод = "SendPoll"; NewLine.Метод = "SendPoll";
NewLine.МетодПоиска = "SENDPOLL"; NewLine.МетодПоиска = "SENDPOLL";
NewLine.Параметр = "--anonymous"; NewLine.Параметр = "--anonymous";
NewLine.Описание = "Poll anonymity (optional, def. val. - Да)"; NewLine.Описание = "Poll anonymity (optional, def. val. - True)";
NewLine.Область = "Data sending"; NewLine.Область = "Data sending";
@ -761,7 +761,7 @@
NewLine.Метод = "FormKeyboardFromButtonArray"; NewLine.Метод = "FormKeyboardFromButtonArray";
NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY"; NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY";
NewLine.Параметр = "--under"; NewLine.Параметр = "--under";
NewLine.Описание = "Keyboard under the message or on the bottom panel (optional, def. val. - No)"; NewLine.Описание = "Keyboard under the message or on the bottom panel (optional, def. val. - False)";
NewLine.Область = "Data sending"; NewLine.Область = "Data sending";
@ -771,7 +771,7 @@
NewLine.Метод = "FormKeyboardFromButtonArray"; NewLine.Метод = "FormKeyboardFromButtonArray";
NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY"; NewLine.МетодПоиска = "FORMKEYBOARDFROMBUTTONARRAY";
NewLine.Параметр = "--column"; NewLine.Параметр = "--column";
NewLine.Описание = "True > buttons are displayed in a column, False > in a row (optional, def. val. - Да)"; NewLine.Описание = "True > buttons are displayed in a column, False > in a row (optional, def. val. - True)";
NewLine.Область = "Data sending"; NewLine.Область = "Data sending";

View File

@ -58,7 +58,7 @@
NewLine.Метод = "CreatePost"; NewLine.Метод = "CreatePost";
NewLine.МетодПоиска = "CREATEPOST"; NewLine.МетодПоиска = "CREATEPOST";
NewLine.Параметр = "--ad"; NewLine.Параметр = "--ad";
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - No)"; NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - False)";
NewLine.Область = "Community managment"; NewLine.Область = "Community managment";
@ -118,7 +118,7 @@
NewLine.Метод = "CreateCompositePost"; NewLine.Метод = "CreateCompositePost";
NewLine.МетодПоиска = "CREATECOMPOSITEPOST"; NewLine.МетодПоиска = "CREATECOMPOSITEPOST";
NewLine.Параметр = "--ad"; NewLine.Параметр = "--ad";
NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - No)"; NewLine.Описание = "Sign ""This is an ad"" (optional, def. val. - False)";
NewLine.Область = "Community managment"; NewLine.Область = "Community managment";
@ -578,7 +578,7 @@
NewLine.Метод = "CloseDiscussion"; NewLine.Метод = "CloseDiscussion";
NewLine.МетодПоиска = "CLOSEDISCUSSION"; NewLine.МетодПоиска = "CLOSEDISCUSSION";
NewLine.Параметр = "--remove"; NewLine.Параметр = "--remove";
NewLine.Описание = "Delete completely (True) or close (optional, def. val. - No)"; NewLine.Описание = "Delete completely (True) or close (optional, def. val. - False)";
NewLine.Область = "Discussion management"; NewLine.Область = "Discussion management";
@ -748,7 +748,7 @@
NewLine.Метод = "MakeRepost"; NewLine.Метод = "MakeRepost";
NewLine.МетодПоиска = "MAKEREPOST"; NewLine.МетодПоиска = "MAKEREPOST";
NewLine.Параметр = "--ad"; NewLine.Параметр = "--ad";
NewLine.Описание = "Sign of an advertising post (optional, def. val. - No)"; NewLine.Описание = "Sign of an advertising post (optional, def. val. - False)";
NewLine.Область = "Interactive actions"; NewLine.Область = "Interactive actions";
@ -1510,7 +1510,7 @@
NewLine.Метод = "CreateProductCollection"; NewLine.Метод = "CreateProductCollection";
NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION"; NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION";
NewLine.Параметр = "--main"; NewLine.Параметр = "--main";
NewLine.Описание = "Main (optional, def. val. - No)"; NewLine.Описание = "Main (optional, def. val. - False)";
NewLine.Область = "Product selection management"; NewLine.Область = "Product selection management";
@ -1520,7 +1520,7 @@
NewLine.Метод = "CreateProductCollection"; NewLine.Метод = "CreateProductCollection";
NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION"; NewLine.МетодПоиска = "CREATEPRODUCTCOLLECTION";
NewLine.Параметр = "--hidden"; NewLine.Параметр = "--hidden";
NewLine.Описание = "Hidden (optional, def. val. - No)"; NewLine.Описание = "Hidden (optional, def. val. - False)";
NewLine.Область = "Product selection management"; NewLine.Область = "Product selection management";
@ -1580,7 +1580,7 @@
NewLine.Метод = "EditProductCollection"; NewLine.Метод = "EditProductCollection";
NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION"; NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION";
NewLine.Параметр = "--main"; NewLine.Параметр = "--main";
NewLine.Описание = "Main (optional, def. val. - No)"; NewLine.Описание = "Main (optional, def. val. - False)";
NewLine.Область = "Product selection management"; NewLine.Область = "Product selection management";
@ -1590,7 +1590,7 @@
NewLine.Метод = "EditProductCollection"; NewLine.Метод = "EditProductCollection";
NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION"; NewLine.МетодПоиска = "EDITPRODUCTCOLLECTION";
NewLine.Параметр = "--hidden"; NewLine.Параметр = "--hidden";
NewLine.Описание = "Hidden (optional, def. val. - No)"; NewLine.Описание = "Hidden (optional, def. val. - False)";
NewLine.Область = "Product selection management"; NewLine.Область = "Product selection management";

View File

@ -90,7 +90,7 @@
NewLine.Метод = "DeleteObject"; NewLine.Метод = "DeleteObject";
NewLine.МетодПоиска = "DELETEOBJECT"; NewLine.МетодПоиска = "DELETEOBJECT";
NewLine.Параметр = "--can"; NewLine.Параметр = "--can";
NewLine.Описание = "To cart (optional, def. val. - Да)"; NewLine.Описание = "To cart (optional, def. val. - True)";
NewLine.Область = "File and folder management"; NewLine.Область = "File and folder management";
@ -131,7 +131,7 @@
NewLine.Метод = "CreateObjectCopy"; NewLine.Метод = "CreateObjectCopy";
NewLine.МетодПоиска = "CREATEOBJECTCOPY"; NewLine.МетодПоиска = "CREATEOBJECTCOPY";
NewLine.Параметр = "--rewrite"; NewLine.Параметр = "--rewrite";
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)"; NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
NewLine.Область = "File and folder management"; NewLine.Область = "File and folder management";
@ -237,7 +237,7 @@
NewLine.Метод = "GetFilesList"; NewLine.Метод = "GetFilesList";
NewLine.МетодПоиска = "GETFILESLIST"; NewLine.МетодПоиска = "GETFILESLIST";
NewLine.Параметр = "--datesort"; NewLine.Параметр = "--datesort";
NewLine.Описание = "True > sort by date, False > alphabetically (optional, def. val. - No)"; NewLine.Описание = "True > sort by date, False > alphabetically (optional, def. val. - False)";
NewLine.Область = "File and folder management"; NewLine.Область = "File and folder management";
@ -278,7 +278,7 @@
NewLine.Метод = "MoveObject"; NewLine.Метод = "MoveObject";
NewLine.МетодПоиска = "MOVEOBJECT"; NewLine.МетодПоиска = "MOVEOBJECT";
NewLine.Параметр = "--rewrite"; NewLine.Параметр = "--rewrite";
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)"; NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
NewLine.Область = "File and folder management"; NewLine.Область = "File and folder management";
@ -319,7 +319,7 @@
NewLine.Метод = "UploadFile"; NewLine.Метод = "UploadFile";
NewLine.МетодПоиска = "UPLOADFILE"; NewLine.МетодПоиска = "UPLOADFILE";
NewLine.Параметр = "--rewrite"; NewLine.Параметр = "--rewrite";
NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - No)"; NewLine.Описание = "Overwrite if a file with the same name already exists (optional, def. val. - False)";
NewLine.Область = "File and folder management"; NewLine.Область = "File and folder management";

View File

@ -6,21 +6,21 @@
Функция ПолучитьСоответствиеКомандМодулей() Экспорт Функция ПолучитьСоответствиеКомандМодулей() Экспорт
СоответствиеКомандМодулей = Новый Соответствие(); СоответствиеКомандМодулей = Новый Соответствие();
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable"); СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24"); СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox"); СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar"); СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar");
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive"); СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive");
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets"); СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets");
СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace"); СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace");
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
Возврат СоответствиеКомандМодулей; Возврат СоответствиеКомандМодулей;
КонецФункции КонецФункции

View File

@ -1,286 +1,286 @@
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os // OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
// Lib: Bitrix24 // Lib: Bitrix24
// CLI: bitrix24 // CLI: bitrix24
// MIT License // MIT License
// Copyright (c) 2023 Anton Tsitavets // Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal // of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights // in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is // copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions: // furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all // The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software. // copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE. // SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations // https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:Typo-off // BSLLS:Typo-off
// BSLLS:LatinAndCyrillicSymbolInWord-off // BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off // BSLLS:IncorrectLineBreak-off
// BSLLS:UnreachableCode-off // BSLLS:UnreachableCode-off
// BSLLS:CommentedCode-off // BSLLS:CommentedCode-off
//@skip-check module-structure-top-region //@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions //@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content //@skip-check wrong-string-literal-content
//@skip-check method-too-many-params //@skip-check method-too-many-params
// Раскомментировать, если выполняется OneScript // Раскомментировать, если выполняется OneScript
#Использовать "../../tools" #Использовать "../../tools"
#Область ПрограммныйИнтерфейс #Область ПрограммныйИнтерфейс
#Область НастройкиИАдминистрирование #Область НастройкиИАдминистрирование
// Получить ссылку авторизации приложения // Получить ссылку авторизации приложения
// Формирует ссылку для авторизации через браузер // Формирует ссылку для авторизации через браузер
// //
// Параметры: // Параметры:
// Домен - Строка - Адрес битрикс вида portal.bitrix24.com // Домен - Строка - Адрес битрикс вида portal.bitrix24.com
// ClientID - Строка - Client ID из настроек приложения // ClientID - Строка - Client ID из настроек приложения
// //
// Возвращаемое значение: // Возвращаемое значение:
// Строка - URL для перехода в браузере // Строка - URL для перехода в браузере
Функция ПолучитьСсылкуАвторизацииПриложения(Знач Домен, Знач ClientID) Экспорт Функция ПолучитьСсылкуАвторизацииПриложения(Знач Домен, Знач ClientID) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Домен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Домен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID); OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
Если Не СтрНачинаетсяС(Домен, "http") Тогда Если Не СтрНачинаетсяС(Домен, "http") Тогда
URL = "https://" + Домен; URL = "https://" + Домен;
КонецЕсли; КонецЕсли;
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
URL = URL + "/"; URL = URL + "/";
КонецЕсли; КонецЕсли;
URL = URL + "oauth/authorize/?client_id=" + ClientID; URL = URL + "oauth/authorize/?client_id=" + ClientID;
Возврат URL; Возврат URL;
КонецФункции КонецФункции
// Получить токен // Получить токен
// Получает токен по коду авторизации // Получает токен по коду авторизации
// //
// Параметры: // Параметры:
// ClientID - Строка - Client ID из настроек приложения // ClientID - Строка - Client ID из настроек приложения
// ClientSecret - Строка - Client secret из настроек приложения // ClientSecret - Строка - Client secret из настроек приложения
// Code - Строка - Code из авторизации через браузер // Code - Строка - Code из авторизации через браузер
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ПолучитьТокен(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт Функция ПолучитьТокен(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Параметры = Новый Структура; Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("grant_type" , "authorization_code", "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("grant_type" , "authorization_code", "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("code" , Code , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("code" , Code , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры); Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ; Возврат Ответ;
КонецФункции КонецФункции
// Обновить токен // Обновить токен
// Обновляет токен по Refresh токену // Обновляет токен по Refresh токену
// //
// Параметры: // Параметры:
// ClientID - Строка - Client ID из настроек приложения // ClientID - Строка - Client ID из настроек приложения
// ClientSecret - Строка - Client secret из настроек приложения // ClientSecret - Строка - Client secret из настроек приложения
// Refresh - Строка - Refresh токен // Refresh - Строка - Refresh токен
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач Refresh) Экспорт Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач Refresh) Экспорт
URL = "https://oauth.bitrix.info/oauth/token/"; URL = "https://oauth.bitrix.info/oauth/token/";
Параметры = Новый Структура; Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("grant_type" , "refresh_token" , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("client_id" , ClientID , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("client_secret", ClientSecret , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("refresh_token", Refresh , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("refresh_token", Refresh , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры); Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ; Возврат Ответ;
Конецфункции Конецфункции
// Серверное время // Серверное время
// Получает текущее серверное время // Получает текущее серверное время
// //
// Параметры: // Параметры:
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена // URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
// Токен - Строка - Токен авторизации, если используется не веб-хук // Токен - Строка - Токен авторизации, если используется не веб-хук
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция СерверноеВремя(Знач URL, Знач Токен = "") Экспорт Функция СерверноеВремя(Знач URL, Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "server.time"); Параметры = НормализоватьАвторизацию(URL, Токен, "server.time");
Ответ = OPI_Инструменты.Get(URL, Параметры); Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ; Возврат Ответ;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#Область ЖиваяЛента #Область ЖиваяЛента
// Создать новость. // Создать новость.
// //
// Параметры: // Параметры:
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена // URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
// Текст - Строка - Текст новости // Текст - Строка - Текст новости
// Видмость - Строка - Массив/Один получатель (UA все, SG<X> раб. группа, U<X> пользователь, DR<X> отдел, G<X> группа) // Видмость - Строка - Массив/Один получатель (UA все, SG<X> раб. группа, U<X> пользователь, DR<X> отдел, G<X> группа)
// Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные // Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные
// Заголовок - Строка - Заголовок // Заголовок - Строка - Заголовок
// Токен - Строка - Токен авторизации, если используется не веб-хук // Токен - Строка - Токен авторизации, если используется не веб-хук
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция СоздатьНовость(Знач URL Функция СоздатьНовость(Знач URL
, Знач Текст , Знач Текст
, Знач Видмость = "UA" , Знач Видмость = "UA"
, Знач Файлы = "" , Знач Файлы = ""
, Знач Заголовок = "" , Знач Заголовок = ""
, Знач Токен = "") Экспорт , Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add"); Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add");
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок, "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("DEST" , Видмость , "Массив", Параметры); OPI_Инструменты.ДобавитьПоле("DEST" , Видмость , "Массив", Параметры);
Если ЗначениеЗаполнено(Файлы) Тогда Если ЗначениеЗаполнено(Файлы) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы); OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
МассивФайлов = НормализоватьФайлы(Файлы); МассивФайлов = НормализоватьФайлы(Файлы);
Если Не МассивФайлов.Количество() = 0 Тогда Если Не МассивФайлов.Количество() = 0 Тогда
Параметры.Вставить("FILES", МассивФайлов); Параметры.Вставить("FILES", МассивФайлов);
КонецЕсли; КонецЕсли;
Конецесли; Конецесли;
Ответ = OPI_Инструменты.Post(URL, Параметры); Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ; Возврат Ответ;
КонецФункции КонецФункции
// Удалить новость. // Удалить новость.
// //
// Параметры: // Параметры:
// URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена // URL - Строка - URL внешнего веб-хука или адрес Bitrix24 при использовании токена
// IDНовости - Строка, Число - ID новости для удаления // IDНовости - Строка, Число - ID новости для удаления
// Токен - Строка - Токен авторизации, если используется не веб-хук // Токен - Строка - Токен авторизации, если используется не веб-хук
// //
// Возвращаемое значение: // Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24 // Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция УдалитьНовость(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт Функция УдалитьНовость(Знач URL, Знач IDНовости, Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.delete"); Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.delete");
OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры); OPI_Инструменты.ДобавитьПоле("POST_ID", IDНовости, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры); Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ; Возврат Ответ;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
Функция НормализоватьАвторизацию(URL, Знач Токен, Знач Метод = "") Функция НормализоватьАвторизацию(URL, Знач Токен, Знач Метод = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL); OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен); OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Параметры = Новый Структура; Параметры = Новый Структура;
ЭтоАвторизацияТокеном = ЗначениеЗаполнено(Токен); ЭтоАвторизацияТокеном = ЗначениеЗаполнено(Токен);
МассивЛишнихЭлементов = Новый Массив; МассивЛишнихЭлементов = Новый Массив;
МассивЛишнихЭлементов.Добавить("https://"); МассивЛишнихЭлементов.Добавить("https://");
МассивЛишнихЭлементов.Добавить("http://"); МассивЛишнихЭлементов.Добавить("http://");
МассивЛишнихЭлементов.Добавить("www."); МассивЛишнихЭлементов.Добавить("www.");
Для Каждого УдаляемыйЭлемент Из МассивЛишнихЭлементов Цикл Для Каждого УдаляемыйЭлемент Из МассивЛишнихЭлементов Цикл
URL = СтрЗаменить(URL, УдаляемыйЭлемент, ""); URL = СтрЗаменить(URL, УдаляемыйЭлемент, "");
КонецЦикла; КонецЦикла;
URL = СокрЛП(URL); URL = СокрЛП(URL);
Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда Если Не СтрЗаканчиваетсяНа(URL, "/") Тогда
URL = URL + "/"; URL = URL + "/";
КонецЕсли; КонецЕсли;
Если ЭтоАвторизацияТокеном Тогда Если ЭтоАвторизацияТокеном Тогда
Если Не СтрЗаканчиваетсяНа(URL, "rest/") Тогда Если Не СтрЗаканчиваетсяНа(URL, "rest/") Тогда
URL = URL + "rest/"; URL = URL + "rest/";
КонецЕсли; КонецЕсли;
Параметры.Вставить("auth", Токен); Параметры.Вставить("auth", Токен);
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(Метод) Тогда Если ЗначениеЗаполнено(Метод) Тогда
URL = URL + СокрЛП(Метод); URL = URL + СокрЛП(Метод);
КонецЕсли; КонецЕсли;
Возврат Параметры; Возврат Параметры;
КонецФункции КонецФункции
Функция НормализоватьФайлы(Знач Файлы) Функция НормализоватьФайлы(Знач Файлы)
НормализованныеФайлы = Новый Массив; НормализованныеФайлы = Новый Массив;
Если Не ТипЗнч(Файлы) = Тип("Соответствие") Тогда Если Не ТипЗнч(Файлы) = Тип("Соответствие") Тогда
Возврат НормализованныеФайлы; Возврат НормализованныеФайлы;
КонецЕсли; КонецЕсли;
Для Каждого Файл Из Файлы Цикл Для Каждого Файл Из Файлы Цикл
ТекущийМассив = Новый Массив; ТекущийМассив = Новый Массив;
ТекущийФайл = Файл.Значение; ТекущийФайл = Файл.Значение;
ТекущееИмя = Файл.Ключ; ТекущееИмя = Файл.Ключ;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл); OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя); OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
ТекущийМассив.Добавить(ТекущееИмя); ТекущийМассив.Добавить(ТекущееИмя);
ТекущийМассив.Добавить(Base64Строка(ТекущийФайл)); ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
НормализованныеФайлы.Добавить(ТекущийМассив); НормализованныеФайлы.Добавить(ТекущийМассив);
КонецЦикла; КонецЦикла;
Возврат НормализованныеФайлы; Возврат НормализованныеФайлы;
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти

View File

@ -1,21 +1,21 @@
<package-def> <package-def>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/> <module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/> <module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/> <module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/> <module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/> <module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/> <module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/> <module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
</package-def> </package-def>

View File

@ -1,55 +1,55 @@
Функция ПолучитьСостав() Экспорт Функция ПолучитьСостав() Экспорт
ТаблицаСостава = Новый ТаблицаЗначений(); ТаблицаСостава = Новый ТаблицаЗначений();
ТаблицаСостава.Колонки.Добавить("Библиотека"); ТаблицаСостава.Колонки.Добавить("Библиотека");
ТаблицаСостава.Колонки.Добавить("Модуль"); ТаблицаСостава.Колонки.Добавить("Модуль");
ТаблицаСостава.Колонки.Добавить("Метод"); ТаблицаСостава.Колонки.Добавить("Метод");
ТаблицаСостава.Колонки.Добавить("МетодПоиска"); ТаблицаСостава.Колонки.Добавить("МетодПоиска");
ТаблицаСостава.Колонки.Добавить("Параметр"); ТаблицаСостава.Колонки.Добавить("Параметр");
ТаблицаСостава.Колонки.Добавить("Описание"); ТаблицаСостава.Колонки.Добавить("Описание");
ТаблицаСостава.Колонки.Добавить("ОписаниеМетода"); ТаблицаСостава.Колонки.Добавить("ОписаниеМетода");
ТаблицаСостава.Колонки.Добавить("Область"); ТаблицаСостава.Колонки.Добавить("Область");
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "bitrix24"; НоваяСтрока.Библиотека = "bitrix24";
НоваяСтрока.Модуль = "OPI_Bitrix24"; НоваяСтрока.Модуль = "OPI_Bitrix24";
НоваяСтрока.Метод = "СерверноеВремя"; НоваяСтрока.Метод = "СерверноеВремя";
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ"; НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена"; НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
НоваяСтрока.Описание = "URL внешнего веб"; НоваяСтрока.Описание = "URL внешнего веб";
НоваяСтрока.Область = "Настройки и администрирование"; НоваяСтрока.Область = "Настройки и администрирование";
НоваяСтрока.ОписаниеМетода = "Получает текущее серверное время"; НоваяСтрока.ОписаниеМетода = "Получает текущее серверное время";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "bitrix24"; НоваяСтрока.Библиотека = "bitrix24";
НоваяСтрока.Модуль = "OPI_Bitrix24"; НоваяСтрока.Модуль = "OPI_Bitrix24";
НоваяСтрока.Метод = "СерверноеВремя"; НоваяСтрока.Метод = "СерверноеВремя";
НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ"; НоваяСтрока.МетодПоиска = "СЕРВЕРНОЕВРЕМЯ";
НоваяСтрока.Параметр = "--хук"; НоваяСтрока.Параметр = "--хук";
НоваяСтрока.Описание = "Токен авторизации, если используется не веб (необяз. по ум. - Пустое значение)"; НоваяСтрока.Описание = "Токен авторизации, если используется не веб (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Настройки и администрирование"; НоваяСтрока.Область = "Настройки и администрирование";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "bitrix24"; НоваяСтрока.Библиотека = "bitrix24";
НоваяСтрока.Модуль = "OPI_Bitrix24"; НоваяСтрока.Модуль = "OPI_Bitrix24";
НоваяСтрока.Метод = "СоздатьНовость"; НоваяСтрока.Метод = "СоздатьНовость";
НоваяСтрока.МетодПоиска = "СОЗДАТЬНОВОСТЬ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬНОВОСТЬ";
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена"; НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
НоваяСтрока.Описание = "URL внешнего веб"; НоваяСтрока.Описание = "URL внешнего веб";
НоваяСтрока.Область = "Живая лента"; НоваяСтрока.Область = "Живая лента";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "bitrix24"; НоваяСтрока.Библиотека = "bitrix24";
НоваяСтрока.Модуль = "OPI_Bitrix24"; НоваяСтрока.Модуль = "OPI_Bitrix24";
НоваяСтрока.Метод = "УдалитьНовость"; НоваяСтрока.Метод = "УдалитьНовость";
НоваяСтрока.МетодПоиска = "УДАЛИТЬНОВОСТЬ"; НоваяСтрока.МетодПоиска = "УДАЛИТЬНОВОСТЬ";
НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена"; НоваяСтрока.Параметр = "--хука или адрес Bitrix24 при использовании токена";
НоваяСтрока.Описание = "URL внешнего веб"; НоваяСтрока.Описание = "URL внешнего веб";
НоваяСтрока.Область = "Живая лента"; НоваяСтрока.Область = "Живая лента";
Возврат ТаблицаСостава; Возврат ТаблицаСостава;
КонецФункции КонецФункции

View File

@ -142,7 +142,7 @@
НоваяСтрока.Метод = "ПолучитьИнформациюОбОбъекте"; НоваяСтрока.Метод = "ПолучитьИнформациюОбОбъекте";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОБОБЪЕКТЕ"; НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОБОБЪЕКТЕ";
НоваяСтрока.Параметр = "--detail"; НоваяСтрока.Параметр = "--detail";
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и каталогами"; НоваяСтрока.Область = "Работа с файлами и каталогами";
@ -173,7 +173,7 @@
НоваяСтрока.Метод = "ПолучитьСписокФайловПапки"; НоваяСтрока.Метод = "ПолучитьСписокФайловПапки";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВПАПКИ"; НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВПАПКИ";
НоваяСтрока.Параметр = "--detail"; НоваяСтрока.Параметр = "--detail";
НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Добавляет дополнительные поля информации для медиафайлов (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и каталогами"; НоваяСтрока.Область = "Работа с файлами и каталогами";
@ -245,7 +245,7 @@
НоваяСтрока.Метод = "ЗагрузитьФайл"; НоваяСтрока.Метод = "ЗагрузитьФайл";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ"; НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ";
НоваяСтрока.Параметр = "--overwrite"; НоваяСтрока.Параметр = "--overwrite";
НоваяСтрока.Описание = "Перезаписывать файл при конфликте путей (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Перезаписывать файл при конфликте путей (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и каталогами"; НоваяСтрока.Область = "Работа с файлами и каталогами";
@ -689,7 +689,7 @@
НоваяСтрока.Метод = "ДобавитьПользователейКФайлу"; НоваяСтрока.Метод = "ДобавитьПользователейКФайлу";
НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКФАЙЛУ"; НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКФАЙЛУ";
НоваяСтрока.Параметр = "--readonly"; НоваяСтрока.Параметр = "--readonly";
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - Да)"; НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - True)";
НоваяСтрока.Область = "Настройки совместного доступа"; НоваяСтрока.Область = "Настройки совместного доступа";
@ -734,7 +734,7 @@
НоваяСтрока.Метод = "ДобавитьПользователейКПапке"; НоваяСтрока.Метод = "ДобавитьПользователейКПапке";
НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКПАПКЕ"; НоваяСтрока.МетодПоиска = "ДОБАВИТЬПОЛЬЗОВАТЕЛЕЙКПАПКЕ";
НоваяСтрока.Параметр = "--readonly"; НоваяСтрока.Параметр = "--readonly";
НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - Да)"; НоваяСтрока.Описание = "Запрещает редактирование файла для стороннего пользователя (необяз. по ум. - True)";
НоваяСтрока.Область = "Настройки совместного доступа"; НоваяСтрока.Область = "Настройки совместного доступа";

View File

@ -246,7 +246,7 @@
НоваяСтрока.Метод = "ИзменитьКалендарьСписка"; НоваяСтрока.Метод = "ИзменитьКалендарьСписка";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬКАЛЕНДАРЬСПИСКА"; НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬКАЛЕНДАРЬСПИСКА";
НоваяСтрока.Параметр = "--hidden"; НоваяСтрока.Параметр = "--hidden";
НоваяСтрока.Описание = "Скрытый календарь (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Скрытый календарь (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа со списком календарей"; НоваяСтрока.Область = "Работа со списком календарей";

View File

@ -58,7 +58,7 @@
НоваяСтрока.Метод = "ПолучитьСписокКаталогов"; НоваяСтрока.Метод = "ПолучитьСписокКаталогов";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАТАЛОГОВ"; НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАТАЛОГОВ";
НоваяСтрока.Параметр = "--depth"; НоваяСтрока.Параметр = "--depth";
НоваяСтрока.Описание = "Добавляет список файлов к полям каталога (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Добавляет список файлов к полям каталога (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и каталогами"; НоваяСтрока.Область = "Работа с файлами и каталогами";

View File

@ -27,7 +27,7 @@
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода"; НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА"; НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
НоваяСтрока.Параметр = "--calendar"; НоваяСтрока.Параметр = "--calendar";
НоваяСтрока.Описание = "разрешение на методы Calendar (необяз. по ум. - Да)"; НоваяСтрока.Описание = "разрешение на методы Calendar (необяз. по ум. - True)";
НоваяСтрока.Область = "Программный интерфейс"; НоваяСтрока.Область = "Программный интерфейс";
@ -37,7 +37,7 @@
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода"; НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА"; НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
НоваяСтрока.Параметр = "--drive"; НоваяСтрока.Параметр = "--drive";
НоваяСтрока.Описание = "разрешение на методы Drive (необяз. по ум. - Да)"; НоваяСтрока.Описание = "разрешение на методы Drive (необяз. по ум. - True)";
НоваяСтрока.Область = "Программный интерфейс"; НоваяСтрока.Область = "Программный интерфейс";
@ -47,7 +47,7 @@
НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода"; НоваяСтрока.Метод = "СформироватьСсылкуПолученияКода";
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА"; НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬССЫЛКУПОЛУЧЕНИЯКОДА";
НоваяСтрока.Параметр = "--sheets"; НоваяСтрока.Параметр = "--sheets";
НоваяСтрока.Описание = "разрешение на методы Sheets (необяз. по ум. - Да)"; НоваяСтрока.Описание = "разрешение на методы Sheets (необяз. по ум. - True)";
НоваяСтрока.Область = "Программный интерфейс"; НоваяСтрока.Область = "Программный интерфейс";

View File

@ -165,7 +165,7 @@
НоваяСтрока.Метод = "ИзменитьСвойстваСтраницы"; НоваяСтрока.Метод = "ИзменитьСвойстваСтраницы";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬСВОЙСТВАСТРАНИЦЫ"; НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬСВОЙСТВАСТРАНИЦЫ";
НоваяСтрока.Параметр = "--archive"; НоваяСтрока.Параметр = "--archive";
НоваяСтрока.Описание = "Архивировать страницу или нет (булево) (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Архивировать страницу или нет (булево) (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа со страницами"; НоваяСтрока.Область = "Работа со страницами";
@ -381,7 +381,7 @@
НоваяСтрока.Метод = "ВернутьБлок"; НоваяСтрока.Метод = "ВернутьБлок";
НоваяСтрока.МетодПоиска = "ВЕРНУТЬБЛОК"; НоваяСтрока.МетодПоиска = "ВЕРНУТЬБЛОК";
НоваяСтрока.Параметр = "--core"; НоваяСтрока.Параметр = "--core";
НоваяСтрока.Описание = "Истина > служебные поля удаляются, остается только сам блок (необяз. по ум. - Да)"; НоваяСтрока.Описание = "Истина > служебные поля удаляются, остается только сам блок (необяз. по ум. - True)";
НоваяСтрока.Область = "Работа с блоками"; НоваяСтрока.Область = "Работа с блоками";

View File

@ -272,7 +272,7 @@
НоваяСтрока.Метод = "УдалитьСообщение"; НоваяСтрока.Метод = "УдалитьСообщение";
НоваяСтрока.МетодПоиска = "УДАЛИТЬСООБЩЕНИЕ"; НоваяСтрока.МетодПоиска = "УДАЛИТЬСООБЩЕНИЕ";
НоваяСтрока.Параметр = "--issheduled"; НоваяСтрока.Параметр = "--issheduled";
НоваяСтрока.Описание = "Признак удаления отложенного сообщения (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Признак удаления отложенного сообщения (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с сообщениями"; НоваяСтрока.Область = "Работа с сообщениями";
@ -396,7 +396,7 @@
НоваяСтрока.Метод = "ПолучитьСписокКаналов"; НоваяСтрока.Метод = "ПолучитьСписокКаналов";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАНАЛОВ"; НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККАНАЛОВ";
НоваяСтрока.Параметр = "--notarchived"; НоваяСтрока.Параметр = "--notarchived";
НоваяСтрока.Описание = "Признак исключения архивированных каналов (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Признак исключения архивированных каналов (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с каналами"; НоваяСтрока.Область = "Работа с каналами";
@ -468,7 +468,7 @@
НоваяСтрока.Метод = "СоздатьКанал"; НоваяСтрока.Метод = "СоздатьКанал";
НоваяСтрока.МетодПоиска = "СОЗДАТЬКАНАЛ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬКАНАЛ";
НоваяСтрока.Параметр = "--private"; НоваяСтрока.Параметр = "--private";
НоваяСтрока.Описание = "Создать канал приватным (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Создать канал приватным (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с каналами"; НоваяСтрока.Область = "Работа с каналами";

View File

@ -703,7 +703,7 @@
НоваяСтрока.Метод = "ОтправитьОпрос"; НоваяСтрока.Метод = "ОтправитьОпрос";
НоваяСтрока.МетодПоиска = "ОТПРАВИТЬОПРОС"; НоваяСтрока.МетодПоиска = "ОТПРАВИТЬОПРОС";
НоваяСтрока.Параметр = "--anonymous"; НоваяСтрока.Параметр = "--anonymous";
НоваяСтрока.Описание = "Анонимность опроса (необяз. по ум. - Да)"; НоваяСтрока.Описание = "Анонимность опроса (необяз. по ум. - True)";
НоваяСтрока.Область = "Отправка данных"; НоваяСтрока.Область = "Отправка данных";
@ -769,7 +769,7 @@
НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок"; НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок";
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК"; НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК";
НоваяСтрока.Параметр = "--under"; НоваяСтрока.Параметр = "--under";
НоваяСтрока.Описание = "Клавиатура под сообщением или на нижней панели (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Клавиатура под сообщением или на нижней панели (необяз. по ум. - False)";
НоваяСтрока.Область = "Отправка данных"; НоваяСтрока.Область = "Отправка данных";
@ -779,7 +779,7 @@
НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок"; НоваяСтрока.Метод = "СформироватьКлавиатуруПоМассивуКнопок";
НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК"; НоваяСтрока.МетодПоиска = "СФОРМИРОВАТЬКЛАВИАТУРУПОМАССИВУКНОПОК";
НоваяСтрока.Параметр = "--column"; НоваяСтрока.Параметр = "--column";
НоваяСтрока.Описание = "Истина > кнопки выводятся в столбик, Ложь > в строку (необяз. по ум. - Да)"; НоваяСтрока.Описание = "Истина > кнопки выводятся в столбик, Ложь > в строку (необяз. по ум. - True)";
НоваяСтрока.Область = "Отправка данных"; НоваяСтрока.Область = "Отправка данных";

View File

@ -62,7 +62,7 @@
НоваяСтрока.Метод = "СоздатьПост"; НоваяСтрока.Метод = "СоздатьПост";
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОСТ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬПОСТ";
НоваяСтрока.Параметр = "--ad"; НоваяСтрока.Параметр = "--ad";
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с группой"; НоваяСтрока.Область = "Работа с группой";
@ -126,7 +126,7 @@
НоваяСтрока.Метод = "СоздатьСоставнойПост"; НоваяСтрока.Метод = "СоздатьСоставнойПост";
НоваяСтрока.МетодПоиска = "СОЗДАТЬСОСТАВНОЙПОСТ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬСОСТАВНОЙПОСТ";
НоваяСтрока.Параметр = "--ad"; НоваяСтрока.Параметр = "--ad";
НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Признак ""Это реклама"" (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с группой"; НоваяСтрока.Область = "Работа с группой";
@ -590,7 +590,7 @@
НоваяСтрока.Метод = "ЗакрытьОбсуждение"; НоваяСтрока.Метод = "ЗакрытьОбсуждение";
НоваяСтрока.МетодПоиска = "ЗАКРЫТЬОБСУЖДЕНИЕ"; НоваяСтрока.МетодПоиска = "ЗАКРЫТЬОБСУЖДЕНИЕ";
НоваяСтрока.Параметр = "--remove"; НоваяСтрока.Параметр = "--remove";
НоваяСтрока.Описание = "Удалить полностью (Истина) или закрыть (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Удалить полностью (Истина) или закрыть (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с обсуждениями"; НоваяСтрока.Область = "Работа с обсуждениями";
@ -760,7 +760,7 @@
НоваяСтрока.Метод = "СделатьРепост"; НоваяСтрока.Метод = "СделатьРепост";
НоваяСтрока.МетодПоиска = "СДЕЛАТЬРЕПОСТ"; НоваяСтрока.МетодПоиска = "СДЕЛАТЬРЕПОСТ";
НоваяСтрока.Параметр = "--ad"; НоваяСтрока.Параметр = "--ad";
НоваяСтрока.Описание = "Признак рекламного поста (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Признак рекламного поста (необяз. по ум. - False)";
НоваяСтрока.Область = "Интерактивные действия"; НоваяСтрока.Область = "Интерактивные действия";
@ -1544,7 +1544,7 @@
НоваяСтрока.Метод = "СоздатьПодборкуТоваров"; НоваяСтрока.Метод = "СоздатьПодборкуТоваров";
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ";
НоваяСтрока.Параметр = "--main"; НоваяСтрока.Параметр = "--main";
НоваяСтрока.Описание = "Основная (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Основная (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с подборками товаров"; НоваяСтрока.Область = "Работа с подборками товаров";
@ -1554,7 +1554,7 @@
НоваяСтрока.Метод = "СоздатьПодборкуТоваров"; НоваяСтрока.Метод = "СоздатьПодборкуТоваров";
НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ"; НоваяСтрока.МетодПоиска = "СОЗДАТЬПОДБОРКУТОВАРОВ";
НоваяСтрока.Параметр = "--hidden"; НоваяСтрока.Параметр = "--hidden";
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Скрытая (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с подборками товаров"; НоваяСтрока.Область = "Работа с подборками товаров";
@ -1614,7 +1614,7 @@
НоваяСтрока.Метод = "ИзменитьПодборкуТоваров"; НоваяСтрока.Метод = "ИзменитьПодборкуТоваров";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ"; НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ";
НоваяСтрока.Параметр = "--main"; НоваяСтрока.Параметр = "--main";
НоваяСтрока.Описание = "Основная (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Основная (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с подборками товаров"; НоваяСтрока.Область = "Работа с подборками товаров";
@ -1624,7 +1624,7 @@
НоваяСтрока.Метод = "ИзменитьПодборкуТоваров"; НоваяСтрока.Метод = "ИзменитьПодборкуТоваров";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ"; НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬПОДБОРКУТОВАРОВ";
НоваяСтрока.Параметр = "--hidden"; НоваяСтрока.Параметр = "--hidden";
НоваяСтрока.Описание = "Скрытая (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Скрытая (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с подборками товаров"; НоваяСтрока.Область = "Работа с подборками товаров";

View File

@ -90,7 +90,7 @@
НоваяСтрока.Метод = "УдалитьОбъект"; НоваяСтрока.Метод = "УдалитьОбъект";
НоваяСтрока.МетодПоиска = "УДАЛИТЬОБЪЕКТ"; НоваяСтрока.МетодПоиска = "УДАЛИТЬОБЪЕКТ";
НоваяСтрока.Параметр = "--can"; НоваяСтрока.Параметр = "--can";
НоваяСтрока.Описание = "В корзину (необяз. по ум. - Да)"; НоваяСтрока.Описание = "В корзину (необяз. по ум. - True)";
НоваяСтрока.Область = "Работа с файлами и папками"; НоваяСтрока.Область = "Работа с файлами и папками";
@ -131,7 +131,7 @@
НоваяСтрока.Метод = "СоздатьКопиюОбъекта"; НоваяСтрока.Метод = "СоздатьКопиюОбъекта";
НоваяСтрока.МетодПоиска = "СОЗДАТЬКОПИЮОБЪЕКТА"; НоваяСтрока.МетодПоиска = "СОЗДАТЬКОПИЮОБЪЕКТА";
НоваяСтрока.Параметр = "--rewrite"; НоваяСтрока.Параметр = "--rewrite";
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и папками"; НоваяСтрока.Область = "Работа с файлами и папками";
@ -237,7 +237,7 @@
НоваяСтрока.Метод = "ПолучитьСписокФайлов"; НоваяСтрока.Метод = "ПолучитьСписокФайлов";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВ"; НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКФАЙЛОВ";
НоваяСтрока.Параметр = "--datesort"; НоваяСтрока.Параметр = "--datesort";
НоваяСтрока.Описание = "Истина > сортировать по дате, Ложь > по алфавиту (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Истина > сортировать по дате, Ложь > по алфавиту (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и папками"; НоваяСтрока.Область = "Работа с файлами и папками";
@ -278,7 +278,7 @@
НоваяСтрока.Метод = "ПереместитьОбъект"; НоваяСтрока.Метод = "ПереместитьОбъект";
НоваяСтрока.МетодПоиска = "ПЕРЕМЕСТИТЬОБЪЕКТ"; НоваяСтрока.МетодПоиска = "ПЕРЕМЕСТИТЬОБЪЕКТ";
НоваяСтрока.Параметр = "--rewrite"; НоваяСтрока.Параметр = "--rewrite";
НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Перезаписывать если файл с таким именем уже существует (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и папками"; НоваяСтрока.Область = "Работа с файлами и папками";
@ -319,7 +319,7 @@
НоваяСтрока.Метод = "ЗагрузитьФайл"; НоваяСтрока.Метод = "ЗагрузитьФайл";
НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ"; НоваяСтрока.МетодПоиска = "ЗАГРУЗИТЬФАЙЛ";
НоваяСтрока.Параметр = "--rewrite"; НоваяСтрока.Параметр = "--rewrite";
НоваяСтрока.Описание = "Перезаписывать, если файл с таким именем уже существует (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Перезаписывать, если файл с таким именем уже существует (необяз. по ум. - False)";
НоваяСтрока.Область = "Работа с файлами и папками"; НоваяСтрока.Область = "Работа с файлами и папками";

View File

@ -6,21 +6,21 @@
Функция ПолучитьСоответствиеКомандМодулей() Экспорт Функция ПолучитьСоответствиеКомандМодулей() Экспорт
СоответствиеКомандМодулей = Новый Соответствие(); СоответствиеКомандМодулей = Новый Соответствие();
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable"); СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24"); СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox"); СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar"); СоответствиеКомандМодулей.Вставить("gcalendar", "OPI_GoogleCalendar");
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive"); СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive");
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
СоответствиеКомандМодулей.Вставить("dropbox", "OPI_Dropbox");
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets"); СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets");
СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace"); СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace");
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
СоответствиеКомандМодулей.Вставить("slack", "OPI_Slack");
СоответствиеКомандМодулей.Вставить("telegram", "OPI_Telegram");
СоответствиеКомандМодулей.Вставить("twitter", "OPI_Twitter");
СоответствиеКомандМодулей.Вставить("viber", "OPI_Viber");
СоответствиеКомандМодулей.Вставить("vk", "OPI_VK");
СоответствиеКомандМодулей.Вставить("yadisk", "OPI_YandexDisk");
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
Возврат СоответствиеКомандМодулей; Возврат СоответствиеКомандМодулей;
КонецФункции КонецФункции