Signmobile 26.200.0–26.300.0: подписанные документы КЭДО можно аннулировать с телефона
Signmobile 26.200.0 и 26.300.0 пришли в коробочный Битрикс24 одним днём. В 26.200.0 только внутренние правки, а 26.300.0 перенесла в мобильное приложение аннулирование подписанных документов КЭДО из sign 26.700.0. Пригодится порталам с кадровым ЭДО и тем, кто пишет свои мобильные расширения поверх signmobile.
Новое
Аннулируйте документ с карточки
В мобильных «Моих документах» появилась вкладка «Аннулированы», она стоит перед «Журналом действий». На карточке документа есть кнопка «Аннулировать», после аннулирования она меняется на «Снять аннулирование». Приложение спрашивает подтверждение, после действия показывает тост и перечитывает список без кэша. У аннулированного документа в карточке вместо статуса второй стороны написано «Аннулировано».
Кнопку видит подписант, который уже подписал документ, если его «Право на аннулирование документов» распространяется на создателя документа (в данных грида это canAnnul). По умолчанию у роли сотрудника этого права нет, у роли руководителя оно действует на документы своего отдела и подотделов.
Отдельно включать функцию не нужно. Доступность проверяет Bitrix\SignMobile\Config\Feature::isDocumentAnnulEnabled(): мобильный API не ниже 54 и фича kedoDocumentAnnul, которая в sign 26.700.0 уже числится выпущенной. Порог API тот же, что у самого грида «Моих документов», так что если грид открывается, версии приложения хватит.
Вызывайте экшены с ID своей записи
Аннулирование и его отмена идут через экшены signmobile.api.document.annul и signmobile.api.document.cancelAnnulment с параметром int $memberId. Ошибки контроллер отдаёт с текстом для пользователя: нет права аннулировать этот документ (проверка та же, что в вебе), документ не найден, сотрудник ещё не подписал. Передавайте ID записи текущего пользователя (myMemberInProcess.id в данных грида). В документе, который начал сотрудник, строка грида показывает представителя компании, и с его ID сервер вернёт ошибку «Отметку можно поставить только после того, как сотрудник подписал документ». Веб-экшены sign адресуют участника по uid, мобильные по числовому ID.
Доступна ли функция, сообщает экшен signmobile.api.document.isE2bAvailable. Рядом с isE2bAvailable он теперь возвращает isDocumentAnnulAvailable. Аннулированные документы отдаёт signmobile.document.getDocumentList с filterParams.tabId = 'preset_annulled'.
async function annulMyRecord(memberId)
{
const { data } = await BX.ajax.runAction('signmobile.api.document.isE2bAvailable');
if (!data.isDocumentAnnulAvailable)
{
return false;
}
try
{
await BX.ajax.runAction('signmobile.api.document.annul', { data: { memberId } });
return true;
}
catch (response)
{
// текст ошибки, как правило, локализован, его можно показать в тосте
console.error(response.errors?.[0]?.message);
return false;
}
}