diskmobile 26.600.0 Заметное

Diskmobile 26.600.0: выбираем папку для перемещения и копирования

4 мин чтения Устаревших API: 1
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

В мобильном Диске 26.600.0 файл можно переместить или скопировать в любую папку любого доступного диска, не выходя из приложения. Ещё мобильный клиент научился открывать HTML-файлы по единой ссылке. Серверная часть выбора папки описана в разборе Disk 26.1500.0, здесь — что видит пользователь и что получают разработчики мобильных расширений.

Новое

Перемещайте и копируйте в любую папку

Новое окно выбора назначения переключает диски, показывает путь, ищет папки в выбранном хранилище и умеет создать папку прямо на месте. Открыть можно и папку, куда класть файл нельзя: подходящее место может оказаться глубже. Кнопка подтверждения активна, только когда сервер ответил allowed, а создать папку разрешено при folder.rights.canAdd === true. Диски с ограничением видны в списке с пояснением, но выбрать их нельзя.

Перемещение доступно при праве rights.canMarkDeleted на адресуемом объекте. Копированию право удаления не нужно: достаточно, чтобы объект был исходным (id === realObjectId) и адресуемым. В режиме единой ссылки работает прежний сценарий копирования с проверкой rights.canAdd === true. Окончательно права проверяет серверный модуль Disk.

Если в папке назначения уже есть файл с таким именем, приложение спросит, сохранить оба или отменить операцию. После успеха уведомление предлагает перейти в папку. Перемещение может вернуть объекту новый ID: тогда клиент убирает старую запись из списка и загружает новую вместе с правами.

Встройте выбор папки в своё расширение

Корневой disk/destination-picker экспортирует openDestinationPicker({ objectId, operation, context, parentWidget, order }). Функция сама открывает окно и выполняет move или copy, но ничего не возвращает, так что дождаться результата через неё нельзя. Параметр order она принимает, но не использует.

        jn.define('my/files/actions', (require, exports, module) => {
    const { openDestinationPicker } = require('disk/destination-picker');

    function copyTo(file, context, layout)
    {
        openDestinationPicker({ objectId: file.id, operation: 'copy', context, parentWidget: layout });
    }

    module.exports = { copyTo };
});

    

Штатное меню показывает новый сценарий при features.destinationPicker === true и отсутствии context.uniqueCode. Внутри openDestinationPicker этих проверок нет, при прямом вызове делайте их сами. Флаг приходит в сетевом ответе списка, а в Disk 26.1500.0 серверный Configuration::isDestinationPickerEnabled() всегда возвращает true.

Если нужен свой интерфейс, в disk/destination-picker/src/api есть шесть асинхронных функций: getDestinationStorages, listDestinationFolders, searchDestinationFolders, checkDestination, applyDestination, createDestinationFolder. Они ходят в disk.api.Destination и сводят ответы к состояниям allowed, denied, gone, name_conflict, name_rejected, failed.

Открывайте HTML по единой ссылке

Если в данных файла есть links.htmlViewer, приложение открывает HTML-просмотр, а не сразу предлагает скачать файл. Для своих экранов есть htmlViewerOpener({ uniqueCode, title, parentWidget }) из disk/opener/html-viewer: он возвращает Promise<LayoutWidget> и открывает /mobile/disk/html-viewer.php, без uniqueCode Promise отклоняется. Сам просмотрщик HTML в этом обновлении не реализован.

В диалоге внешней ссылки карточка настроек безопасности теперь скрывается, когда сервер вернул externalLink.canEditSettings === false. Если поля нет, карточка остаётся.

Мелочи и находки

  • Свои JN-расширения на disk/pull проверьте до обновления. Middleware createAddObjectsOnlyFromCurrentFolderMiddleware(currentFolderId) удалён без алиаса, замена — createAddedObjectRecipientsMiddleware(currentFolderId, itemIds). Экспортируемые middleware теперь отклоняют Promise объектом Error, поэтому сравнивайте error.message, а не саму причину со строкой.
  • Pull-событие objectAdded может одним пакетом добавить файл и обновить строку его родительской папки. Для таких случаев экспортированы isParentFolderOnlyRecipient и buildPullListMessage, а список единой ссылки больше не перезагружается целиком.
  • renameByUnifiedLink(uniqueCode, newName, autoCorrect = true): третий аргумент теперь по умолчанию true, то есть сервер сам поправит недопустимое имя. Нужна прежняя строгость — передайте false. addSubFolderByUnifiedLink() получил четвёртый аргумент autoCorrect = true, а выбор назначения отдельно показывает ошибки name_empty, invalid_characters и name_taken.
  • Список файлов передаёт через getVoiceContext экран, папку, хранилище, поиск, фильтр и сортировку. Это задел под голосовые сценарии, самих голосовых действий в версии нет.

Устаревшие и удалённые API в этой версии

Символ Статус Чем заменять
disk/pull:createAddObjectsOnlyFromCurrentFolderMiddleware Удалено disk/pull:createAddedObjectRecipientsMiddleware

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

diskmobile 26.500.0 Заметное

Diskmobile 26.500.0: ссылки на файлы Диска и папки по единой ссылке открываются в приложении

В diskmobile 26.500.0 мобильное приложение научилось само открывать обычные ссылки на файлы Диска и единые ссылки на папки, а внутри такой папки с файлами можно работать как в своём хранилище. На сервере для этого появились три действия контроллеров. Прошлую версию мы разбирали в [diskmobile 26.400….

1 мин
diskmobile 26.400.0 Заметное

Diskmobile 26.400.0: единые ссылки без отклонённых промисов и один маршрут disk:path

Diskmobile 26.400.0 вышел в коробку 17 сентября 2026 года (по официальному каналу «Битрикс24 changelog») и правит только JS-расширения мобильного приложения, PHP-API и БД не тронуты. `unifiedOpener()` из `disk/opener/unified-link/opener` при запрете доступа или ненайденной ссылке больше не отклоняет…

2 мин
timemanmobile 26.600.0 Заметное Свежее

Timemanmobile 26.550.0–26.600.0: отдельная карточка отчёта и диагностика начала дня

В timemanmobile 26.550.0 и 26.600.0 рабочий отчёт открывается в приложении отдельной карточкой, а не страницей портала. Отчёт, отправленный после полуночи, больше не считает отметки за чужой день. А если форма начала дня не показалась, теперь видно почему: причину пишет диагностический журнал.

4 мин
stafftrackmobile 26.600.0 Заметное Свежее

Stafftrackmobile 26.600.0: офисы с телефона и список присутствия команды

Мобильная часть [Stafftrack 26.600.0](/bitrix-updates/stafftrack/stafftrack-26-600-0): с телефона теперь можно создавать и редактировать офисы, искать сотрудника в списке присутствия команды и видеть, что рабочий отчёт готов к отправке. Всё это включается серверными флагами и зависит от версии прило…

4 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти