Вопрос

Не нашел инструкции как настроить отображение времени начала календаря в мобильном приложении, чтобы отображение было как в веб-интерфейсе. 

У меня такой же вопрос

3 комментария

Что такое «время начала календаря»? От сотворения мира?

Зверев Александр,

в представлении Расписание  время начала дня. Обычно это 8 или 9 утра. В моб приложении день начинается с 0 часов дня.  

Стандартно есть только переключение между днём и неделей, время начала дня не настраивается.

Возможно, такое удастся поменять силами разработчика, логика этого раздела реализована в схемах MobileActivityGridPageViewV2 и MobileActivityGridPageControllerV2.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

Суть проблемы: в чешской локализации невозможно добавить стандартную деталь. При сохранении изменений в консоли ошибка «Cannot read property 'name' of undefined» (версия 7.7).

 Кейс 1:

- открываем в мастере мобильного приложения «Настроить детали» в разделе «Заказы» (Objednбvky).

 

- добавляем деталь «Продукт в заказе» (Produkt v objednбvce)

 

- в результате добавления детали «Продукты в заказе» в дизайнере мобильного приложения происходит свал:

 

Если опять перейти в настройки детали, то caption этой детали не отображается.

 

Кейс 2:

- в мастере мобильного приложения открыть настройки стандартной детали, например, раздела «Контрагенты» (Firmy)

 

- ничего не добавляем, а только необходимо нажать на кнопку сохранить;

 

- заново открываем настройки детали раздела «Контрагенты».  Увидим, что caption снова не отображаются. Снова нажимаем на сохранить.

 

- в результате возникает такая же ошибка.

 

Доп. информация:

- На русской и английской локализации не удается воспроизвести ошибку.

- В 7.8 не удалось воспроизвести, так как нет демки с чешской локализацией.

- При создании детали нормально формируется код:

{
    "operation": "insert",
    "name": "settings",
    "values": {
        "entitySchemaName": "Order",
        "details": [],
        "columnSets": [],
        "localizableStrings": {
            "primaryColumnSetOrder_caption": "Zбkladnн informace",
            "OrderProductDetailV2StandartDetailOrder_caption": "Produkt v objednбvce"
        },
        "settingsType": "RecordPage",
        "operation": "insert"
    }
},

но у самой локализационной строки OrderProductDetailV2StandartDetailOrder_caption значение пустое. Если же туда добавить руками Produkt v objednбvce, то на странице перечня деталей карты Заказ мобильного приложения название появляется. Если же мы будем добавлять деталь сразу на страницу - то тоже самое сначала название детали видно, но после ее конфигурирования, сохранения страницы и повторного ее открытия видим undefined вместо названия. При этом никаких ошибок ни в консоли, ни в запросах нет.

Решение

Для решения проблемы необходимо:

1)      Создать замещающий клиентский модуль(Nahrazující uživatelský modul) для схемы «Mobile app module - Section designer»

Внутри написать такой код:

define("MobileSectionDesignerModule", [],
    function() {
        return {};
    }
);
Ext.define("Terrasoft.MobileDesignerSchemaManager.override", {
    override: "Terrasoft.MobileDesignerSchemaManager",
    statics: {
        getCultureValues: function(value) {
            var res = this.callParent(arguments);
            res["cs-CZ"] = value;
            return res;
        }
    }
});

 

2)      После чего, удалить проблемный раздел из конфигурации:

А) Удалить схемы

UsrMobileOrderActionsSettingsDefaultWorkplace

UsrMobileOrderGridPageSettingsDefaultWorkplace

UsrMobileOrderProductActionsSettingsDefaultWorkplace

UsrMobileOrderProductGridPageSettingsDefaultWorkplace

UsrMobileOrderProductRecordPageSettingsDefaultWorkplace

UsrMobileOrderRecordPageSettingsDefaultWorkplace

 

Б) В манифесте MobileApplicationManifestDefaultWorkplace

Удалить локализируемую строку OrderSectionTitle

И в блоке "Modules" удалить "Order"

3)      И снова добавить раздел и деталь  через дизайнер.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Доброго времени!

Возникла необходимость фильтрации записей в детали "UsrProductInAccount" раздела Контрагенты "Account". Данная деталь отображена в манифесте

"Models": {
        "UsrProductInAccount": {
            "RequiredModels": [
                "UsrProductInAccount",
                "Account",
                "Product",
                "SocialMessage"
            ],
            "ModelExtensions": [],
            "PagesExtensions": [
                "UsrMobileUsrProductInAccountActionsSettingsFieldForceWorkplace",
                "UsrMobileUsrProductInAccountGridPageSettingsFieldForceWorkplace",
                "UsrMobileUsrProductInAccountRecordPageSettingsFieldForceWorkplace",
                "UsrMobileProductInAccountConfig"
            ]
        }
    }

Созданный модуль "UsrMobileProductInAccountConfig" отобразил в манифесте и прописал сам фильтр. Фильтр исключает все записи с заполненным реквизитом "UsrDateSale".

Terrasoft.sdk.Module.addFilter("UsrProductInAccount", Ext.create("Terrasoft.Filter", {
    name: "UsrProductInAccountFilter",
    type: Terrasoft.FilterTypes.Group,
    subfilters: [
            Ext.create("Terrasoft.Filter", {
                property: "UsrDateSale",
                    // Оператор отрицания
                isNot: false,
                    // Не заполнено
                value: null
            })
        ]
    }));

Выполняю синхронизацию. Результат не получен. В чём может быть причина?

Спасибо.

У меня такой же вопрос

1 комментарий

Алексей, здравствуйте!

Это не раздел (Terrasoft.sdk.Module), а стандартная деталь. Соответственно, для нее нужно использовать Terrasoft.sdk.Details. А именно нужно добавить в схему UsrMobileAccountModuleConfig след. код:

 
Terrasoft.sdk.Details.addFilter("Account", "UsrSchema4DetailStandardDetail", {
   property: "UsrDateSale",
   isNot: false,
   value: null
});

В результате к существующей фильтрации детали по родительской записи (по контрагенту) добавится необходимая клиенту фильтрация по колонке UsrDateSale.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

Ошибка: у сотрудника не отображается в мобильной версии завершенная активность (визит). Сам же визит отображается в десктопе (представление «Расписание» в активностях). Используется платформа UIv1. Версия приложения 7.6 pharma

Кейс:

  1. Засихронизироваться под пользователем;
  2. Открыть расписание/список активностей за 23.03.2017;
  3. В результате визит «Визит к врачу: ФИО, Адрес, ДЕРМАТОЛОГ» не отображается за 23.03.2017.

Доп. инфа:

В десктопе данный визит есть

Также данная активность если открыть активности контакта врача.

Причина

В этом проекте доработана базовая фильтрация раздела Активности (проектное решение)

Происходит дополнительная фильтрация по НОВЫМ полям «Начало факт» и «Завершение факт»

Примерно такая:

SELECT *
FROM [Activity] AS [Activity]
WHERE 
(
    (
        NOT([Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6')
        AND
        datetime([Activity].[DueDate]) >= datetime('2017-03-22 22:00:00.000Z')
    )
    OR
    (
        [Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6'
        AND
        datetime([Activity].[ActualDueDate]) >= datetime('2017-03-22 22:00:00.000Z')
    )
)
AND
(
    (
        [Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6'
        AND
        datetime([Activity].[ActualStartDate]) <= datetime('2017-03-23 21:59:59.000Z')
    )
    OR
    (
        NOT([Activity].[StatusId] = '4bdbb88f-58e6-df11-971b-001d60e938c6')
        AND
        datetime([Activity].[StartDate]) <= datetime('2017-03-23 21:59:59.000Z')
    )
)

У данной активности

Не заполнено поле «Завершение факт» поэтому она и не попадает в реестр мобильного приложения.

Решение

Заполнить колонку "Завершение факт" и/или "Начало факт" (ActualDueDate или ActualStartDate) тем же значением, что и в колонках "StartDate" и "DueDate" на уровне БД.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Доброго времени!

В строку быстрого поиска в разделе были выведены дополнительные колонки по которым осуществляется поиск. Интересует вопрос как убрать зависимость от регистра?

Спасибо!

У меня такой же вопрос

4 комментария

Есть несколько вариантов обходных решений. 

1. В манифесте выставляем параметр - PreferedFilterFuncType: 'Terrasoft.FilterFunctions.SubStringOf'. 
Поиск станет не чуствителен к регистру. Но и станет искать по подстроке (во всех разделах).

2. Вводим при поиске значок %. 

Проверялось только на английской локализации.

Мотков Илья,

Всё реализовано именно так, как описано в 1 пункте. В результате тестов было замечено, что на Android устройствах, в режимах работы online/offline всё корректно работает. На ios же в online поиске всё отрабатывает корректно, а вот offline чувствителен к регистру.

Мотков Илья,

Причём заметил, что на английской локализации всё корректно, что нельзя сказать про русскую в режиме Offline на ios. 

Спасибо за уточняющую информацию, она будет передана разработчикам.

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

Симулятор мобильного приложения не работает. System.ArgumentException: An item with the same key has already been added

Причина

Данная ошибка вызвана не корректными изменениями в конфигурации приложения, а точнее при разработке мобильных приложений.

Скорее всего были добавлены локализуемые строки в пользовательской мобильном манифесте приложения, которые дублируют строки из «MobileApplicationManifestMobile».

Решение

Для исправления необходимо или обновить приложение до последней версии 7.5.0 или изменить локализуемые строки в пользовательской схеме (например, «UsrMobileApplicationManifestCustom2Schema»).

Например в название локализированных строк добавить префикс Custom

 

Необходимые условия и возможные ограничения

Иметь права системного администратора.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

  1. Определено несколько одинаковых позиций по распределению прав по операциям.
  2. Текущий пользователь не имеет прав доступа на объект "MobileData".

Причина

Не розданы права доступа на объекты мобильного приложения и не актуализирована организационная структура.

Решение

1. Раздать права доступа на объекты мобильного приложения;

2. Актуализировать организационную структуру.

Скриншот для 7.5:

Скриншот для 7.4:

Необходимые условия и возможные ограничения

Права администратора.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

Тип: Terrasoft.SqlProxyException%0D%0AСообщение: Возникло исключение SQL%0D%0A%0D%0AТип: Terrasoft.SqlException%0D%0AСообщение: undefined: Cannot call method 'setRecord' of undefined%0D%0A%0D%0A

Причина

Данное сообщение говорит о том, что на устройстве были произведены подключения под разными пользователями. При смене базы, бывает возникает такое сообщение.

Решение

Необходимо очистить кэш базы и выполнить повторную синхронизацию.

Важно! Если есть какие-то несинхронизированные данные, то при очистке кэша – они удалятся с мобильного устройства!

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Контекст клиента

MobileApplicationInvoiceManifest not found; MobileApplicationoportunityManifest not found; MobileApplicationLeadManifest not found; 

Причина

В системной настройке «Манифесты мобильного приложения» ошибочно прописан указанный манифест.

Решение

Просто убрать этот манифест из списка манифестов в указанной  системной настройке.

Необходимые условия и возможные ограничения

Права администратора. Очистка Redis после удаления.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

Симптомы

При подключении на on-site получается следующая ошибка (браузер старой версии) :
ServiceStack.Redis.RedisResponseException: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error., sPort: 53192, LastCommand: \\r\\n в ServiceStack.Redis.RedisNativeClient.CreateResponseError(String error)\\r\\n в ServiceStack.Redis.RedisNativeClient.ReadInt()\\r\\n в ServiceStack.Redis.RedisNativeClient.Expire(String key, Int32 seconds)\\r\\n в ServiceStack.Redis.RedisClient.ExpireEntryIn(String key, TimeSpan expireIn)\\r\\n в Terrasoft.Redis.RedisSessionStateStoreProvider.ResetItemTimeout(HttpContext context, String id)\\r\\n в System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)\\r\\n в System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication

Причина

Данная ошибка связана из-за пользовательских настроек работы Redis на сервере.

Решение

Более детально можете ознакомиться с ошибкой на сторонних сервисах. Например:

http://stackoverflow.com/questions/19581059/misconf-redis-is-configured-to-save-rdb-snapshots;

http://stackoverflow.com/questions/19873048/redis-is-configured-to-save-rdb-snapshots-but-is-currently-not-able-to-persist;

https://gist.github.com/kapkaev/4619127.

Для корректной работы используйте мобильную версию приложения. Через мобильный браузер мы не гарантируем корректную работу приложения.

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать