Доброго времени суток!

В управлении конфигурацией во вкладке "Администрирование: доступ к объектам" для раздела "Контакт" хочу настроить права доступа всем пользователям с организационной ролью "Консультанты". Во вкладке "Доступ к объекту" есть только одно правило для роли "Консультанты" с разрешением на чтение записей, во вкладке "Доступ к записям по умолчанию: чтение" тоже всего одно правило для чтения записей, созданных всеми сотрудниками, для "Консультантов". Вне зависимости от наличия правила доступа во вкладке "Доступ к записям по умолчанию: чтение" консультант видит 236 записей. Если прогнать БП, который дает права доступа для записей, за которыми числится ответственным консультант (их в системе 2 тестовые записи), то в разделе "Контакты" консультант будет видеть 238 записей. Я хочу разобраться, по какому принципу система отображает эти 236 записей. Подскажите, пожалуйста, в чем может быть причина? Для сведения, в системе свыше 3 млн контактов. Как можно найти признак, который объединяет эти записи?

Изображение удалено.

Нравится

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

Добрый день!

Насколько я понимаю, вопрос в том, почему при розданных правах консультант видит 236 записей, а если создать 2 тестовых, в которых ответственным назначить консультанта, и прогнать БП, который раздает права - консультант будет видеть 238 записей?



Для решения данного вопроса попробуйте выключить права доступа к записям. Судя по вашему описанию, в них нет необходимости, т.к. роль консультант и так имеет право на чтение объекта "Контакт".

Судя по большому количеству записей данного раздела в вашей системе - можно предположить, что они были импортированы через Excel или путем обогащения данных. В таком случае есть вероятность, что это и вызывает конфликт. Т.к. импортированные записи могут не совпадать с признаком "созданная сотрудником".

Если это поможет, консультант должен видеть ~ 3млн контактов, верно?

Показать все комментарии

Добрый день. Есть некоторые дорабоки которые находятся в пакете custom на стенде dev. Подскажите пожалуйста, каким образом, безболезненно для системы, мы можем перенести пакеты на продакшн версию? Спасибо.

Нравится

2 комментария
Лучший ответ

Здравствуйте.

Если Вы знаете, в каких сервисах и какие доработки выполнялись, то можно выполнить только перенос нужных сервисов. Если есть привязки с данными, то их можно перенести sql-запросами.

На будущее, если планируете дорабатывать что-то ещё, лучше будет создать свой пакет, выполнить соответствующую настройку, чтобы изменения из мастеров деталей и разделов попадали в Ваш пакет, а не в Custom и переносить обновления через выгрузку пакетов, как рекомендует Алексей.

Создать свой пакет, перенести туда все доработки. Экспортировать пакет в ZIP и установить его на продакшн.

Здравствуйте.

Если Вы знаете, в каких сервисах и какие доработки выполнялись, то можно выполнить только перенос нужных сервисов. Если есть привязки с данными, то их можно перенести sql-запросами.

На будущее, если планируете дорабатывать что-то ещё, лучше будет создать свой пакет, выполнить соответствующую настройку, чтобы изменения из мастеров деталей и разделов попадали в Ваш пакет, а не в Custom и переносить обновления через выгрузку пакетов, как рекомендует Алексей.

Показать все комментарии

Развернул сайт разработки, подключил  SSL Let's encrypt все запросы и интеграции ходят корректно, сертификат принимает. В мастере мобильного приложения зашел во все схемы и сохранил. Получаю ошибку которой не вижу в community,  может кто-то сталкивался?

Model Name: CPH2009 Platform: Android Platform Version: 11 Resolution: 360x756 IsHybridMode: true RootAppDirectory: creatio ApplicationVersion: 7.18.6 ApplicationMajorVersion: 7.18 UseNativeSynchronization: true UseNativeImport: true UseNativeExport: true UseNativeLogout: true UseNativeMetadataSync: false UseNativeFullSynchronization: false UseDataService: true IsDevMode: false CurrentDateTime: 2022-01-20T19:09:15.553Z ServerUrl: https://suncrm.space/ ContactId: null CultureName: null ApplicationRevision: null WorkplaceCode: null ProductInfo: {"ProductName":"Creatio","ProductEdition":"enterprise","CustomerId":"","Version":{"Major":7,"Minor":18,"Build":5,"Revision":1501,"MajorRevision":0,"MinorRevision":1501}} Type: Terrasoft.SyncException Message: В процессе синхронизации произошла ошибка Stack trace: Function.handleException(terrasoft-all-combined.js:26896:37) Object.callback(sencha-touch-all-debug.js:10397:26) Class.callUserErrorHandler(terrasoft-all-combined.js:21844:9) Object.callback(sencha-touch-all-debug.js:10397:26) Class.callFailure(terrasoft-all-combined.js:21503:11) Object.callback(sencha-touch-all-debug.js:10397:26) Function.failure(terrasoft-all-combined.js:36406:17) Object.callback(sencha-touch-all-debug.js:10397:26) Object.requestItemFailure(terrasoft-all-combined.js:34794:17) Class.onRequestFailure(terrasoft-all-combined.js:34602:16) Object.callback(sencha-touch-all-debug.js:10397:26) terrasoft-all-combined.js:34798:13 Object.callback(sencha-touch-all-debug.js:10397:26) Class.finish(terrasoft-all-combined.js:35206:11) Class.finishCancellableOperation(terrasoft-all-combined.js:1576:43) Class.(terrasoft-all-combined.js:34783:12) Object.callback(sencha-touch-all-debug.js:10397:26) terrasoft-all-combined.js:34961:11 Object.callback(sencha-touch-all-debug.js:10397:26) Class.finish(terrasoft-all-combined.js:35206:11) Class.finishCancellableOperation(terrasoft-all-combined.js:1576:43) Class.executeCallbackIfNotCanceled(terrasoft-all-combined.js:34960:10) Class.failureHandler(terrasoft-all-combined.js:34977:10) Object.callback(sencha-touch-all-debug.js:10397:26) Class.onComplete(sencha-touch-all-debug.js:36405:17) Class.onStateChange(sencha-touch-all-debug.js:36341:18) XMLHttpRequest.(sencha-touch-all-debug.js:3233:27) Type: Terrasoft.ServerException Message: Запрос на сервер вернул ошибку AdditionalInfo: { "requestId": 11, "status": 500 }

Нравится

0 комментариев
Показать все комментарии

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

Воспользовался статьей Академии для показывания на странице редактирования (Page) обычной кнопки в контейнере ActionsMenuButton. Кнопка должна отображаться или скрываться по условию, по полю из схемы объекта, это условие проверяется при загрузке страницы. 

 

В коде страницы был создан Атрибут:

Изображение удалено.

 

Метод:

Изображение удалено.

Кнопка:

Изображение удалено.

После этого кнопка стала активной не при первом открытии записи, а  после обновления этой страницы в браузере по F5.

Изображение удалено.

При отладке атрибут undefined. Испытано несколько способов, включая лукапный атрибут из примера с запросом esq. Теперь появилось значение в атрибуте в методе init, но при заходе отладчика в метод что включает активность кнопки условие правильно возвращает true, однако кнопка активной не становится.

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

 

Вопросы:

1. есть ли способ сразу получить значение атрибута в init , не привязывая к нему инициализирующий его метод который содержит esq запрос к базе ? Дело в том что запрос выполняется синхронно с загрузкой страницы.

2. как можно проверить отправку получение сообщения sandbox в браузере?

3. Верно ли что если я напишу в каком-нибудь методе this.set("АтрибутАктивностиКнопки") то привязанная к этому атрибуту активность кнопки поменяется сразу? Визуально. То есть кнопка заблокируется / станет серой ? 

Нравится

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

Посмотрите пример теме  по ссылке, я там писал в комментариях в чем проблема, в том примере проверка видимости была у "действия", а у вас на кнопке, смысл такой же. https://community.terrasoft.ru/questions/dinamecheskaoe-izmenenie-aktiv…

Показать все комментарии

Добрый день!



На вновь установленной on-site версии 7.16.2 Sales (PostgreSQL) отсутствует функционал поиска и объединения дублей. На ранее установленной on-site версии 7.14.0 Bank Customer Journey (MSSQL)  данный фунционал присутствовал сразу, без установки дополнительных программ.

Подскажите, нужно ли делать установки, описанные в статье  https://academy.terrasoft.ru/docs/user/razvertyvanie_onsite/nastrojka_konteinernikh_komponentov/massovyj_poisk_dublej/nastroit_massovyy_poisk_dubley , либо функционал поиска и объединения дублей можно добавить стандартными настройками системы (если да, просьба написать какими) 

Нравится

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

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

 

На MsSql поиск дублей (для разделов контрагенты, контакты и лиды) работал без микросервиса, т.к. происходил через процедуры внутри базы, для PostgreSQL этих процедур к сожалению нет.

Трефилов Павел Сергеевич,

Спасибо за информацию!

Показать все комментарии

Добрый день!

Добавил свою деталь на страницу Контракты. Сохранил изменения. Перезашел  в приложение, сразу перекидывает на окно Управления конфигурацией и показывает вопрос: "Чтобы продолжить работу в Creatio, необходимо компилировать конфигурацию. Вы хотите скомпилировать сейчас?"

 

После окончания  компиляции (без ошибок, по крайней мере не выводит) пытаюсь зайти в приложение и все повторяется по новой.

Подскажите почему так происходит и что делать? Подозреваю, что криво создал деталь, так как это первый опыт.

 

Заранее спасибо.

 

Нравится

5 комментариев

Добрый день!

Подскажите, пожалуйста, ваш сайт находится в cloud или on-site?

Если в cloud, то как называется ваш сайт?

Данное поведение наблюдается только у вас или у всех пользователей?

Yanina Ryssjanova,

Добрый день! Сайт находится on-site. Это тестовое приложение, так что я там один нахожусь. Сгенерировал исходный код для всех схем, перекомпилировал все, но при попытки войти, после запроса авторизации снова просит перекомпилировать. И по новой

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

Необходимо увеличить мощности сервера.

Yanina Ryssjanova,

 

Боюсь не из-за этого. В пике оперативы задейстовано 18%, ЦПУ 30%. В адресной строке браузера видна ошибка: error=BasePackagesNotInstalled 

Могли бы вы приложить скриншот и полный текст ошибки который возникает при входе в приложение, перед тем как просит скомпилировать приложение?

Или попробуйте через конфигурацию удалить созданную деталь, выполнить генерацию и компиляцию. Будет ли после этого возникать ошибка при входе в приложение?

Показать все комментарии

Добрый день, коллеги!

Можно ли у Вас уточнить? Мне нужна логика детали "Продукт в продаже".

Тоесть Добавляю/Изменяю/Удаляю и поле в карточке заполняется суммой сложенных из детали. 

Нравится

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

Добрый день!

Логика расчета суммы продажи находится во внутреннем процессе объекта OpportunityProductInterest

Yanina Ryssjanova,

Эм, а можно подробнее. Тут я вижу БП с сценарием. И в бизнес процессе событие срабатывает, только когда нажата кнопка сохранить. 

Не совсем понимаю какие подробности вам необходимы, при всех действиях Добавления/Изменения записи "Продукт в продаже" происходит событие OpportunityProductInterestSaved (или OpportunityProductInterestDeleted при удалении) в которых вызываться метод CalckOpportunityAmount.

Как и было сказано ранее, посмотреть это можно здесь.

Тамже и находится реализация метода CalckOpportunityAmount.

 

Показать все комментарии

Кто-то подскажет, можно ли очищать таблицу SysSyncMetaData? Насколько я правильно понимаю в ней хранятся временные метаданные синхронизации с Exchange. Очень много записей за период, когда была еще версия 7.13.

Нравится

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

Добрый день, Евгений!

Эта таблица используется для хранения необходимой метаинформации для синхронизации Exchange календарей, задач и контактов. При очистке этой таблице может возникнуть проблема со синхронизацией писем (будут дублироваться записи в Exchange), по этому мы не рекомендуем удалять записи из таблицы SysSyncMetaData. 

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

Показать все комментарии

Доброго дня!

Установили 7.15.4, но после ввода логина-пароля на странице ничего не происходит, а консоль "краснеет". Сам файл /ServiceModel/AuthService.svc в папке есть .. Как это исправить, есть идеи?

 

Изображение удалено.

Нравится

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

Добрый день.

 

Пройдитесь ещё раз по инструкции по разворачиванию приложения bpm'online on-site, возможно, требуется донастроить какой-то компонент либо же серверу приложений на что-то не хватает доступа.

Также посмотрите файлы логов, часто там можно найти информацию о непосредственной причине проблемы. Их можно найти на сервере в папке Temp/BPMOnline.

Разобрался, спасибо!

Не хватало модуля IIS "Авторизация по HTTP" и WCF

Показать все комментарии

Доброго времени суток!

Подскажите, пожалуйста, каким будет самый оптимальный способ фильтрации записей раздела, при котором пользователь видит только "свои" записи, за которыми он закреплен, как ответственный, но также может искать нужные записи среди всех записей раздела? 

Т.е. пользователь с ролью "продавец" видит в разделе 100 своих записей, но также имеет возможность искать среди остальных 900 записей из общей тысячи.

Нравится

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

Если не надо полностью скрывать информацию, то можно сделать с помощью быстрых фильтров, как в Активностях или Обращениях

Владимир Соколов,

что делать в случае необходимости полностью скрывать информацию?

Арнур Келгенбаев,

Да, это нужно, когда доступ надо ограничить, но обеспечить проверку, нет ли таких контрагентов и контактов уже в базе. Довольно много разработки, но мы делали так:

 

Хранимая процедура, которая возвращает набор данных (обычно намного меньше полей, чем в объекте). Страница, на которой можно задать параметры поиска и в детали получить результат. Ещё делали вариант вывода таблицы при изменении, например, названия контрагента, чтобы дубликаты отлавливать уже до ввода всей информации. 

Показать все комментарии