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

Прикрепленные файлы

Нравится

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

Подскажите, где находятся подробные логи о ошибке, в котором я могу узнать на что конкретно он ругается

В логах инсталяции я не увидел никаких ошибок

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

Нравится

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

Логи по обновлению хранятся в той директории, в которую вы распаковали архивы обновления. Файл с логами называется  UpdateExtendedLog, если я Вас правильно понял.

Логи обновления пишутся в папку Log для каждой версии из \InstallPackages. Например, \InstallPackages\7_17_3\Log.

 

Что касается ошибки со скриншота - такая ошибка может возникнуть в случае, если в конфигурации нет пакета CustomerCenterSofkey. Проверьте компиляцию после обновления, если она завершается без ошибок, то ошибку обновления можно игнорировать.

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

При открытии мини-карточки раздела и запуска маски, она не блокирует поля мини-карточки, так как находится за ней. Как сделать что бы мини-карточка закрывалась маской во время ее запуска?

Нравится

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

Если "копнуть" и посмотреть, как работает ShowBodyMask, то можно увидеть, что маска применяется к элементу, переданному в конфиге. Если таковой не указан, то к body. Потому для решения Вашей задачи достаточно примерно такой конструкции:

this.showBodyMask({
	selector: "#MiniPageContentContainer"
});

 

Добрый день, Александр!

Опишите, пожалуйста, более детально (возможно на скриншотах или видео) как воспроизводится кейс, который Вы хотите обойти.

ч 

Жмурко Сергей Николаевич,

Есть мини карточка, есть вызов сервиса и ожидание его ответа

. Пока ожидаем, нужно заблокировать карточку от изменений (как это делаем в обычных карточках "MaskHelper.ShowBodyMask()"). Но при вызове "MaskHelper.ShowBodyMask()" блокировку и затенение получаем за миникарточкой а не поверх нее.

Если "копнуть" и посмотреть, как работает ShowBodyMask, то можно увидеть, что маска применяется к элементу, переданному в конфиге. Если таковой не указан, то к body. Потому для решения Вашей задачи достаточно примерно такой конструкции:

this.showBodyMask({
	selector: "#MiniPageContentContainer"
});

 

Если нужно заблокировать и кнопки, то id будет уже AlignableMiniPageContainer

Лопатин Константин,

спасибо большое. В принципе так и пробовал, но упустил что нежно еще слово "Container"

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

Добавляю в игнор лист по кнопке "Не считать дублями".

Но что делать если нажал нечаянно и хочу вернуть обратно?

Нравится

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

Удалить запись из таблицы AccountDuplicateSearchGroupExclusions.

Василий, решение вашего запроса зависит от механизма дедупликации, который используется на сайте.

Для механизма поиска дублей на хранимых процедурах достаточно удалить записи  из таблиц AccountDuplicateSearchGroupExclusions/ContactDuplicateSearchGroupExclusions для очистки всех записей, которые были помечены как "Не считать дублями".

Для механизма поиска дублей с использованием сервиса дедупликации ( детальнее в статье https://academy.terrasoft.ua/docs/user/ustanovka_i_administrirovanie/ra…) для сброса признаков "Не являются дублями" всех помеченных пачек дублей на сервисе дедупликации необходимо почистить таблицу UniqueEntity в mongodb. 

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

Делаю форму фильтрации отчета фаст репорта, нужно сделать подписку на изменение поля(настройка видимости, доступности, автозаполнения)

Подписка не срабатывает. Кто сталкивался с подобным и какие есть варианты исправить?

return {
		messages: {},
        attributes: {
            "IsContract": {
                "dataValueType": Terrasoft.DataValueType.BOOLEAN,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
				"value": false,
                "dependencies": [
					{
						"columns": ["WiseSectionSettlements"],
						"methodName": "RecalcIsContract"
					}
                ]
            },
...
methods: {
			RecalcIsContract: function() {
				this.set("IsContract", (this.get("WiseSectionSettlements") &&
					this.get("WiseSectionSettlements").value === "5cfa748e-185e-40fa-ab0e-a29ab91aa10d"));
			},

 

Нравится

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

Странный у вас код в методе RecalcIsContract. Надо делать в два атрибута в IsContract изначальное состояние, и дополнительный атрибут с пересчитанным состоянием IsContract относительно условий.

Либо через конвертер, в BasePageV2 есть пример

{

                "operation": "insert",

                "name": "CardContentWrapper",

                "values": {

                    "id": "CardContentWrapper",

                    "selectors": {"wrapEl": "#CardContentWrapper"},

                    "itemType": Terrasoft.ViewItemType.CONTAINER,

                    "wrapClass": ["card-content-container"],

                    "items": [],

                    "markerValue": {

                        "bindTo": "IsEntityInitialized",

                        "bindConfig": {

                            "converter": "getCardContentContainerMarkerValue"

                        }

                    }

                }

            }

 

getCardContentContainerMarkerValue: function() {

                return this.get("IsEntityInitialized") ? "EntityLoaded" : "EntityLoading";

            }

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

Добрый день. При добавлении обращения любым способом такая ошибка. Помогите! Что делать? Поддержка игнорит нас((( The INSERT statement conflicted with the FOREIGN KEY constraint "FKHt8lBgKfy2jprTXzDRFvnS56zg". The conflict occurred in database "bpmpredprod", table "dbo.Case", column 'Id'. The statement has been terminated. ---> System.Data.SqlClient.SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint "FKHt8lBgKfy2jprTXzDRFvnS56zg". The conflict occurred in database "bpmpredprod", table "dbo.Case", column 'Id'. The statement has been terminated.

Нравится

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

Уверены, что ошибка именно в коробочном функционале?

Скорее всего есть какая-то доработка на именно вашем сайте (напр. процесс), которая пытается добавить записи на деталь обращения, но подставляет неверный Id записи обращения.

Либо же логика пытается добавить записи на деталь ДО сохранения обращения в БД. Все заполнения деталей возможны только после сохранения основной записи в базу данных.

Уверены, что ошибка именно в коробочном функционале?

Скорее всего есть какая-то доработка на именно вашем сайте (напр. процесс), которая пытается добавить записи на деталь обращения, но подставляет неверный Id записи обращения.

Либо же логика пытается добавить записи на деталь ДО сохранения обращения в БД. Все заполнения деталей возможны только после сохранения основной записи в базу данных.

Владислав Литвинчук,

Ошибка возникла после обновления на версию 7.16.

До этого все работало стабильно. Мне кажется при таком раскладе дело не в логике.

Есть еще какие-то варианты?

Спасибо!

Надежда, это ссылка на Case из таблицы CaseLifecycle. Проверьте, нет ли у Вас  каких-то доработок в этом объекте или его страницах, которые могли сломаться при обновлении. Если нет и сломалось обновление системы без доработок, лучше обратиться к поддержке.

Ещё, если есть доступ к SQL-серверу, можно посмотреть, что за запрос идёт и приводит к ошибке, там какой-то конкретный Guid, с нулями или ещё что-то.

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

Добрый день, Александр!

Доработки ЖЦ были, переопределили схему в нашем пакете: добавлено поле в объект, и добавлено отслеживание изменений этого поля в объекте Case и его запись в ЖЦ. 

Как можно оперативно исправить ошибку? Спасибо за помощь!

Действительно проблемы были из-за доработок событийных процессов объекта Case. В новой версии 7.16 добавилась колонка CaseRecordId в объекте CaseLifeCycle, которая не обрабатывалась у нас.

Всем спасибо!

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

Здравствуйте, скажите пожалуйста есть ли в crm возможность выгрузки диаграмм в excel формате?

Нравится

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

Доброе утро.

 

Для некоторых типов диаграмм можно выгрузить через меню настройки для графика - сначала 'Показать данные', потом настроить нужные колонки и 'Экспорт в Excel':

 

 

 

Обратите внимание, если Вы используете больше одной серии, то выгрузить данные в Excel можно только по той серии, которая настроена первой.

 

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

Доброе утро.

 

Для некоторых типов диаграмм можно выгрузить через меню настройки для графика - сначала 'Показать данные', потом настроить нужные колонки и 'Экспорт в Excel':

 

 

 

Обратите внимание, если Вы используете больше одной серии, то выгрузить данные в Excel можно только по той серии, которая настроена первой.

 

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

Попробуйте с помощью дополнения https://marketplace.terrasoft.ua/app/excel-reports-builder-creatio выгружать данные в шаблон с графиками

Алла Савельева,

Да спасибо. Этот способ я знаю, я имел ввиду, можно ли выгружать сразу диаграммы, а не строить из выгруженных данных

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

Спасибо, ознакомлюсь с данным дополнением

Ещё вариант (пробовал как эксперимент, но не пробовал в реальных кейсах) - использовать Power BI, получая данные по ODATA

 

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

Добрый день!

Установили дополнение "Calculated metrics for Creatio" https://marketplace.terrasoft.ru/app/calculated-metrics-creatio?activity=marketplace-iframe

Но после установки дополнения в списке блоков итогов не добавился пункт "Расчетный показатель". Точнее, его видно было только под Supervisor, но после перезахода в приложение и у него пропал этот пункт меню в блоке итогов.

Замещений модуля BootstrapModulesV2 в системе нет.

Как победить проблему? Кто-то сталкивался?

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

Версия: Service Enterprise 7.16.2

Нравится

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

Павел, добрый день! не получилось воспроизвести ошибку выше на базовом продукте. После установки появляется отдельный пункт Расчетный показатель.

 

Уточните, какие еще решения с функциональностью, расширяющей дашборды, у вас установлены?

Ирина, добрый день!

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

В дебаггере js браузера не могу найти метод getWidgetTypes из схемы ViewModelSchemaDesignerSchema. Пытался понять, идёт ли вызов вообще.

 

define("ViewModelSchemaDesignerSchema", ["DFDashboardDesigner", "WidgetGridLayoutEditItemModel"],
	function() {
		return {
			messages: {},
			attributes: {},
			methods: {
				getWidgetTypes: function() {
					var types = this.callParent(arguments);
					types.CalculatedMetric = {
						"type": "DFCalculationIndicator",
						"caption": this.get("Resources.Strings.NewWidgetCalculatedMetricCaption")
					};
					return types;
				}
			},
			details: {},
			diff: [],
			infoDiff: []
		};
	});

 

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

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

Ирина, добрый день! Компиляцию и генерацию проводил - не помогло. Это первое что я попробовал сделать для решения проблемы. Ошибок в логах приложения после компиляции нет.

Лазоренко Ирина,

При попытке открыть дашборд  'Расчётная аналитика' который идёт в поставке, в разделе Контакты, вижу ошибки в консоли 

Лазоренко Ирина,

При попытке редактировать дашборд  'Расчётная аналитика' который идёт в поставке, в разделе Контакты, вижу ошибки в консоли

Павел, добрый день!

 

установите повторно приложение и пришлите лог установки приложения. После установки проверьте, что в Конфигурации появился пакет CalculationIndicator.gz.

 

Также проверьте консоль и пришлите ошибку, если таковая будет, при открытии списка выбора типа нового итога.

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

1. Во вкладке "Файлы и примечания" необходимо Панель инструментов перенести вниз. Прилагаю изображения "как есть" и "как нужно".

 

2. Если файл/ таблица, размещенная там большая по размеру, то появляется прокручивание. Можно ли отображать все полностью без прокручивания? ( Прилагаю изображения "как есть" )

Нравится

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

Этот редактор реализован на стороннем компоненте CKEditor.

Согласно его документации, для переключения панели вниз нужно изменить одно свойство с top на bottom:

config.toolbarLocation = 'bottom';

Этот компонент реализован в js-файле ядра, как он меняется, написано тут. Но тогда поменяется всюду по системе, да и правки ядра не всегда возможны и не очень правильны.

По прокрутке аналогично, тут и тут, это задаётся в CSS.

Лучше будет переопределить свойства на уровне схемы в конфигурации.

 

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

Спасибо большое! Попробуем воспользоваться) 

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

Всем привет. Столкнулся с такой проблемой:

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

Очень долго выполнялась бизнес-логика, когда пользователь CRM в странице редактирования Обращения пытается подгрузить шаблон письма. 

Запустил в SQL Profiler трасировку, выполнил действие, нашел.

Заметил, что Duration гораздо больше CPU + Reads, и нет никакого плана выполнения для такого запроса.

Сталкивался ли кто с подобной ситуацией? Какие меры предпринимали?

Я так понимаю, что рано или поздно данная ситуация возникает у всех, если развивать СРМ с куча интеграций и т.п., получения обращений в систему с 5 почт, подключением сотрудников в количестве от 30-48.

Ресурсов у сервера БД достаточно, 2 виртуалки, по 2 ТБ памяти, по 98 ГБ ОЗУ, процессор 2.4Ггц X 12 ядер.

Нравится

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

Саид, как видно со скриншота, это запрос на вставку в таблицу активностей записи с названием "Диагностировать и решить инцидент #...".

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

Или дело в какой-то глобальной блокировке на таблицу, наложенную одновременнно работающей другой логикой.

Не пробовали аналогичный запрос (естественно, с другим Id) запускать из Management Studio вручную, так тоже тормозит?

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

Да, это на добавление активности "Диагностировать  и решить инцидент ..." запись в трасировке, я забыл в описании указать. В следующий раз попробую через Management Studio выполнить запрос. Вот не знаю почему, но после добавления 2 индексов в SysCaseRight действия такие, как Отправка письма в обращении и т.д., переход между состояниями в кейсе страницы редактирования, стали работать быстрее заметно.

Саид, после добавления индексов ускорилась же не работа конкретного запроса вставки активности, а всё действие? Может, там перед этим (или после) ещё был длительный запрос чтения обращений с учётом прав, он и ускорился?

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

Да, он ускорился.

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

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

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