disk.file.search
Найти файлы и папки
Описание
Метод disk.file.search находит файлы и папки на Диске по текстовому запросу.
Поиск работает по индексу: в него попадают имена файлов и папок, а для документов — еще и текст внутри файла. Объекты в корзине метод не находит.
В результат попадают только объекты, которые доступны текущему пользователю на чтение. Объекты из хранилищ без внутренних прав доступа — например, из хранилищ других модулей — метод не возвращает. Папки чатов исключаются из выдачи.
Запрос короче трех символов метод отклоняет, поэтому для подсказки по первым введенным буквам он не подходит. Чтобы пройти по известной структуре, используйте методы disk.storage.getChildren и disk.folder.getChildren, а если идентификатор файла уже известен — disk.file.get.
Параметры
QUERY
string
обязательный
Текст поискового запроса.
Длина — от 3 до 255 символов. Повторяющиеся пробелы схлопываются в один, пробелы по краям обрезаются, длина проверяется уже после этого
TYPE
enum
необязательный
Тип объектов в результате:
file— только файлыfolder— только папкиall— файлы и папки
Значение по умолчанию — file
FILTER
object
необязательный
Область поиска (подробное описание).
Без этого параметра метод ищет по всем доступным пользователю хранилищам
start
integer
необязательный
Смещение для постраничной навигации.
За один запрос метод возвращает не более 50 объектов. Значение параметра — количество пропущенных объектов, а не номер страницы: при start=10 выдача начнется с одиннадцатого объекта.
Значение по умолчанию — 0. Максимальное значение — 1000, большее метод приводит к 1000.
Имя параметра пишется строчными буквами, в отличие от остальных параметров метода
Параметр FILTER
STORAGE_ID
integer
необязательный
Необязательный ключ. Идентификатор хранилища, внутри которого нужно искать.
Идентификатор можно получить методом disk.storage.getList
FOLDER_ID
integer
необязательный
Необязательный ключ. Идентификатор папки, внутри которой нужно искать. Поиск идет и по вложенным папкам, сама папка в результат не попадает.
Идентификатор можно получить методом disk.folder.getChildren
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"QUERY":"тест","TYPE":"all","FILTER":{"STORAGE_ID":1}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/disk.file.search
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"QUERY":"тест","TYPE":"all","FILTER":{"STORAGE_ID":1},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/disk.file.search
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
// Fields marked optional come only for files or only for folders
type DiskFileSearchItem = {
ID: string
NAME: string
CODE: string | null
STORAGE_ID: string
TYPE: 'file' | 'folder'
REAL_OBJECT_ID?: string
PARENT_ID: string
DELETED_TYPE: string
GLOBAL_CONTENT_VERSION?: string
FILE_ID?: string
SIZE?: string
CREATE_TIME: ISODate
UPDATE_TIME: ISODate
DELETE_TIME: ISODate | null
CREATED_BY: string
UPDATED_BY: string
DELETED_BY: string
DOWNLOAD_URL?: string
DETAIL_URL: string | null
}
try {
const response = await $b24.actions.v2.call.make<DiskFileSearchItem[]>({
method: 'disk.file.search',
params: {
QUERY: 'тест',
TYPE: 'all',
FILTER: {
STORAGE_ID: 1,
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
result.forEach((item) => console.info(item.ID, item.TYPE, item.NAME))
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function searchDiskFiles() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'disk.file.search',
params: {
QUERY: 'тест',
TYPE: 'all',
FILTER: {
STORAGE_ID: 1
}
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
result.forEach(function (item) {
console.info(item.ID, item.TYPE, item.NAME)
})
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', searchDiskFiles)
</script>
try {
$response = $b24Service
->core
->call(
'disk.file.search',
[
'QUERY' => 'тест',
'TYPE' => 'all',
'FILTER' => [
'STORAGE_ID' => 1
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error searching files: ' . $e->getMessage();
}
BX24.callMethod(
"disk.file.search",
{
QUERY: "тест",
TYPE: "all",
FILTER: {
STORAGE_ID: 1
}
},
function (result)
{
if (result.error())
console.error(result.error());
else
console.dir(result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'disk.file.search',
[
'QUERY' => 'тест',
'TYPE' => 'all',
'FILTER' => [
'STORAGE_ID' => 1
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "disk.file.search", b24.Params{
"QUERY": "тест",
"TYPE": "all",
"FILTER": b24.Params{
"STORAGE_ID": 1,
},
})
if err != nil {
return fmt.Errorf("disk.file.search: %w", err)
}
var items []struct {
ID b24.ID `json:"ID"`
Name string `json:"NAME"`
StorageID b24.ID `json:"STORAGE_ID"`
Type string `json:"TYPE"`
RealObjectID b24.ID `json:"REAL_OBJECT_ID"`
ParentID b24.ID `json:"PARENT_ID"`
}
if err := json.Unmarshal(res.Result, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID, it.Name)
}
Ответ
HTTP-статус: 200
{
"result": [
{
"ID": "1739",
"NAME": "Новая папка для теста процесса",
"CODE": null,
"STORAGE_ID": "1",
"TYPE": "folder",
"REAL_OBJECT_ID": "1739",
"PARENT_ID": "649",
"DELETED_TYPE": "0",
"CREATE_TIME": "2020-10-26T16:25:33+03:00",
"UPDATE_TIME": "2024-11-26T09:23:03+03:00",
"DELETE_TIME": null,
"CREATED_BY": "0",
"UPDATED_BY": "1",
"DELETED_BY": "0",
"DETAIL_URL": "https://test.bitrix24.ru/company/personal/user/1/disk/path/Созданные файлы/Новая папка для теста процесса"
},
{
"ID": "1277",
"NAME": "Роман Савин - Тестирование Дот Ком.pdf",
"CODE": null,
"STORAGE_ID": "1",
"TYPE": "file",
"PARENT_ID": "1275",
"DELETED_TYPE": "0",
"GLOBAL_CONTENT_VERSION": "1",
"FILE_ID": "1983",
"SIZE": "5517483",
"CREATE_TIME": "2020-08-07T15:43:48+03:00",
"UPDATE_TIME": "2020-08-07T15:43:48+03:00",
"DELETE_TIME": null,
"CREATED_BY": "1",
"UPDATED_BY": "1",
"DELETED_BY": "0",
"DOWNLOAD_URL": "https://test.bitrix24.ru/rest/download.json?auth=**put_access_token_here**&token=disk%7CaWQ9MTI3NyZfPXVqVGJUMmxoclBOb0JmQjVLWmxyWnRISWFTQ2M5V2hT",
"DETAIL_URL": "https://test.bitrix24.ru/company/personal/user/1/disk/file/Загруженные файлы/Файлы из Google Drive/Роман Савин - Тестирование Дот Ком.pdf"
}
],
"time": {
"start": 1785494344,
"finish": 1785494344.440217,
"duration": 0.4402170181274414,
"processing": 0,
"date_start": "2026-07-31T13:39:04+03:00",
"date_finish": "2026-07-31T13:39:04+03:00",
"operating_reset_at": 1785494944,
"operating": 0.13181495666503906
}
}
Возвращаемые данные
result
array
Массив найденных объектов (подробное описание)
next
integer
Смещение для следующего запроса. Приходит только тогда, когда есть следующая страница (пример)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "INVALID_QUERY",
"error_description": "Search query is invalid. (INVALID_QUERY)."
}
| Код | Описание | Значение |
|---|---|---|
ERROR_ARGUMENT |
Invalid value of parameter { Parameter #0 [ <required> $QUERY ] }. |
Не передан обязательный параметр QUERY |
INVALID_QUERY |
Search query is invalid. (INVALID_QUERY). | Запрос короче 3 или длиннее 255 символов либо передан не строкой |
INVALID_TYPE |
Search result type is invalid. (INVALID_TYPE). | Значение TYPE отличается от file, folder и all |
INVALID_FILTER |
Search filter contains an unknown field. (INVALID_FILTER). | В FILTER передан ключ, кроме STORAGE_ID и FOLDER_ID |
NOT_FOUND |
Search scope was not found. (NOT_FOUND). | Хранилище или папка из FILTER не существует, недоступна пользователю на чтение или папка не принадлежит указанному хранилищу. Та же ошибка приходит, если FILTER передан не объектом |
UNSUPPORTED_STORAGE |
Search is not supported for this storage. (UNSUPPORTED_STORAGE). | В указанном хранилище не используются внутренние права доступа Диска |

