Мобильное приложение. Актуализация данных при синхронизации (IsAdministratedByRights)
Вопрос
Пользователь создает визит в мобильном приложении, синхронизируется. Удаляет визит в веб версии.
Пользователь синхронизируется в мобильном приложении, визиты не удаляются. Пользователь делает очистку кэша – визиты удаляются.
Возможно ли выполнять синхронизацию (чтобы удалялясь записи, уже удаленные в веб-версии) без сброса кэша?
Ответ
В мобильном приложении не реализовано удаление удаленных в десктопе записей. Это объясняется тем, что на сервере по умолчанию не выполняется никакого логирования, соотвественно, мобильное приложение не знает, что произошло удаление.
Если вы хотите, чтобы удаление происходило, то для нужных вам моделей, например, модели Активности, нужно включить дополнительную опцию в манифесте "IsAdministratedByRights": true.
Например:
{ "SyncOptions": { "ModelDataImportConfig": [ { "Name": "Activity", "IsAdministratedByRights": true } ] } }
Этот признак добавляет в синхронизацию дополнительный шаг, в котором отбирается выборка данных с сервера и сравнивается с выборкой данных, которые есть в мобильном приложении. "Лишние" записи удаляются. Время синхронизации увеличится пропорционально объему выборок, которые нужно сравнить (чем больше будет данных, тем дольше будет проходить синхронизация).