7.15
Sales_Creatio_team_edition

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

Делая Печатную форму в FasrReport, наткнулся на это предупреждение

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

Как его убрать?

Или почему может быть при печати именно печатной формы, писаться ошибка Faled - Server Problem?

Нравится

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

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

Данное предупреждение означает, что в системе есть кастомный пакет (возможно, тот, где эта печатная форма) где подключена внешняя сборка System.IO.Packaging.dll более старой версии. 

Рекомендуется обновить библиотеку System.IO.Packaging.dll до новой версии 4.0.3.0 разработчику этого пакета. 

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

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

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

Данное предупреждение означает, что в системе есть кастомный пакет (возможно, тот, где эта печатная форма) где подключена внешняя сборка System.IO.Packaging.dll более старой версии. 

Рекомендуется обновить библиотеку System.IO.Packaging.dll до новой версии 4.0.3.0 разработчику этого пакета. 

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

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

Мотков Илья, Понял, спасибо большое за ответ!

Показать все комментарии
7.15_()
-Sales_Creatio
team_edition_()

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

Вопрос таков. Как кодом можно сделать двойную воронку по определенной колонке двух разделов?

Есть раздел заявки и заказы, оба имеют поле стадия заявки.

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

код ниже работает только для обычной воронки:

{

    "parameters": {

        "seriesConfig": [],

        "orderBy": "QualifyStatus.StageNumber",

        "orderDirection": "Ascending",

        "caption": "Воронка продаж",

        "sectionId": "7f3f22d6-f36b-1410-6584-1c6f65e16a47",

        "primaryColumnName": "Id",

        "yAxisConfig": {

            "position": 0

        },

        "schemaName": "qrtOrder",

        "sectionBindingColumn": "Id",

        "func": 1,

        "type": "funnel",

        "xAxisColumn": "qrtOrderStage",

        "YAxisCaption": "Продаж",

        "styleColor": "widget-coral",

        "filterData": "{\"className\":\"Terrasoft.FilterGroup\",\"items\":{\"53e3b5d1-690f-4fc2-9d45-dedb87f66279\":{\"className\":\"Terrasoft.InFilter\",\"filterType\":4,\"comparisonType\":4,\"isEnabled\":true,\"trimDateTimeParameterToDate\":false,\"leftExpression\":{\"className\":\"Terrasoft.ColumnExpression\",\"expressionType\":0,\"columnPath\":\"qrtOrderStage\"},\"isAggregative\":false,\"key\":\"53e3b5d1-690f-4fc2-9d45-dedb87f66279\",\"dataValueType\":10,\"leftExpressionCaption\":\"Стадия лида\",\"referenceSchemaName\":\"qrtOrderStage\",\"rightExpressions\":[{\"className\":\"Terrasoft.ParameterExpression\",\"expressionType\":2,\"parameter\":{\"className\":\"Terrasoft.Parameter\",\"dataValueType\":10,\"value\":{\"Name\":\"Потребность отсутствует\",\"Id\":\"51adc3ec-3503-4b10-a00b-8be3b0e11f08\",\"value\":\"51adc3ec-3503-4b10-a00b-8be3b0e11f08\",\"displayValue\":\"Потребность отсутствует\"}}},{\"className\":\"Terrasoft.ParameterExpression\",\"expressionType\":2,\"parameter\":{\"className\":\"Terrasoft.Parameter\",\"dataValueType\":10,\"value\":{\"Name\":\"Дисквалифицирован\",\"Id\":\"128c3718-771a-4d1e-9035-6fa135ca5f70\",\"value\":\"128c3718-771a-4d1e-9035-6fa135ca5f70\",\"displayValue\":\"Дисквалифицирован\"}}}]}},\"logicalOperation\":0,\"isEnabled\":true,\"filterType\":6,\"rootSchemaName\":\"Lead\",\"key\":\"\"}"

    },

    "configurationMessage": "GetChartConfig"

}

Нравится

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

Вообще, в настройке итогов уже есть стандартный блок, который так и называется, «Сквозная воронка» (см. схемы с FullPipeline в названии). Но он заточен под разделы лидов и продаж, это видно, например, в коде FullPipelineDesigner:

_getDefaultEntities: function() {
	return [
		{
			"schemaName": "Lead",
			"connectedWith": null,
			"calculatedOperations": [{"operation": "Amount", "targetColumnName": "Budget"}],
			"filters": null
		},
		{
			"schemaName": "Opportunity",
			"calculatedOperations": [{"operation": "Amount", "targetColumnName": "Budget"}],
			"connectedWith": {
				"type": 0,
				"schemaName": "Lead",
				"connectionSchemaName": "Lead",
				"parentSchemaColumnName": "Opportunity",
				"childSchemaColumnName": "Id"
			},
			"filters": null
		}
	];
},

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

Вообще, в настройке итогов уже есть стандартный блок, который так и называется, «Сквозная воронка» (см. схемы с FullPipeline в названии). Но он заточен под разделы лидов и продаж, это видно, например, в коде FullPipelineDesigner:

_getDefaultEntities: function() {
	return [
		{
			"schemaName": "Lead",
			"connectedWith": null,
			"calculatedOperations": [{"operation": "Amount", "targetColumnName": "Budget"}],
			"filters": null
		},
		{
			"schemaName": "Opportunity",
			"calculatedOperations": [{"operation": "Amount", "targetColumnName": "Budget"}],
			"connectedWith": {
				"type": 0,
				"schemaName": "Lead",
				"connectionSchemaName": "Lead",
				"parentSchemaColumnName": "Opportunity",
				"childSchemaColumnName": "Id"
			},
			"filters": null
		}
	];
},

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

Зверев Александр, Спасибо за ответ!

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

Добрый день,

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

Пример: кейс Лид. В рамках кейса есть ряд активностей. Завершение активностей приводит к переходу по стадиям кейса. При выполнении задачи (текущей активности)  в рамках кейса, пользователь вносит изменения в колонки записи Лида. После выполнения поставленной задачи, пользователь завершает текущую активность, что приводит к переходу на следующую стадию. При переходе по стадиям страница обновляется, и все не сохраненные изменения в колонках теряются. 

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

Т.е., необходимо, в момент завершения активности пользователем, автоматически сохранить внесенные изменения. 

Такая же задача стоит и в случае запуска бизнес-процесса по записи в разделе.

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

Заранее благодарен.

 

Нравится

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

Ещё в описании последнего релиза написана фраза "При запуске процесса по записи и последующем возврате к этой записи все несохраненные данные на странице сохранятся."



Возможно, это и имеется в виду?

Добрый вечер.

Вашу задачу с автоматическим сохранением можно решить через механизм обмена сообщений. Подробнее посмотрите в статье на Академии.

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

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

Ещё в описании последнего релиза написана фраза "При запуске процесса по записи и последующем возврате к этой записи все несохраненные данные на странице сохранятся."



Возможно, это и имеется в виду?

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

Алла, спасибо. Это, к сожалению, не мой уровень. Спрошу разработчика, если более простого метода нет.

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

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

Показать все комментарии
7.15_()
-Sales_Creatio
team_edition_()

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

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

 

 

Нравится

3 комментария
Отчёты
Аналитический отчет
выборка
отображение
7.15_()
-Sales_Creatio
team_edition_()

Добрый день.

Есть используемые разделы Лиды, Тендеры, Продажи. Для того чтобы посмотреть количество завершенных или не завершенных проектов по ответственному, необходимо заходить в каждый раздел и смотреть там. А необходима вся картина целиком: Ответственный и все продажи, тендеры и лиды по нему с определённым фильтром - как это можно сделать?

Был другой вариант, вести все записи в одном разделе (например Продажи) с присвоением типа продажа/лид/тендер - но тогда другая проблема: отображение колонок в разделе строго определенное. Есть возможность сохранять разные варианты отображения колонок?

Нравится

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

Попробуйте построить диаграмму "Список" в разделе "Контакты". Сделайте фильтр по текущему контакту. Добавьте в диаграмму колонку, нажмите "+", выберите интересующий объект, в котором контакт является ответственным, и постройте по нему показатель. Например, "+" -> "Продажа (по колонке Ответственный)" -> "Количество". Настройте фильтры для объекта.

В диаграмме отобразятся показатели по отфильтрованным в разделе "Контакт" контактам.

Попробуйте построить диаграмму "Список" в разделе "Контакты". Сделайте фильтр по текущему контакту. Добавьте в диаграмму колонку, нажмите "+", выберите интересующий объект, в котором контакт является ответственным, и постройте по нему показатель. Например, "+" -> "Продажа (по колонке Ответственный)" -> "Количество". Настройте фильтры для объекта.

В диаграмме отобразятся показатели по отфильтрованным в разделе "Контакт" контактам.

Мне логичнее кажется 2-й вариант, так как тендер - это всего лишь Продажа с определённым типом (и возможно, со своими стадиями).



А настраивать колонки для разных фильтров можно с помощью дополнения https://marketplace.creatio.com/app/list-setup-folder-creatio

Или сделать схему по view, выбирающему при помощи union из интересующих таблиц нужные колонки в единообразном виде, создать раздел или справочник по ней. А потом смотреть в реестре или строить аналитику по ней.

Показать все комментарии
курс валют
конвертация
currency
7.13_()
-Sales_Creatio
team_edition_()

Добрый день!

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

Обратили внимание что платеж, в карточке Платежа отражается по курсу, который соответствует Дате создания записи в системе. Т.е. в том случае когда загружаются платежи за ранние периоды, конвертация курса валют не учитывает дату платежа (хотя правильная логика - это конвертировать валютный платеж по курсу, соответствующему дате платежа). 

Выяснили что, в методе setCurrencyRate используется коробочный метод LoadCurrencyRate модуля MoneyModule, в который передается текущая дата платежа (т.е. дата создания записи в системе) Т.о. если импорт платежей был создан в системе в январе 2020 года, но, например - дата импортируемого платежа за ноябрь 2009 года, то платеж будет конвертироваться по курсу января 2020 года.

Возникает вопрос: почему логика опирается на дату создания записи, а не на дату фактического платежа?

Можно ли изменить логику в методе LoadCurrencyRate модуля MoneyModule?

 

Нравится

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

Судя по коду, LoadCurrencyRate  получает дату извне в параметре, а заполняет её функция setCurrencyRate на конкретной карточке. Видимо, у Вас в ней берётся дата не из того поля. Нужно менять там, а не в MoneyModule.

/**
 * Calls onLoadCurrencyRate and sets specified currencyRateAttribute if currencyAttribute isn't empty.
 * @param currencyAttribute - Currency attribute.
 * @param currencyRateAttribute - Currency rate attribute.
 * @param startDate - Currency start date.
 * @param {function} callback
 */
moneyModule.LoadCurrencyRate = function(currencyAttribute, currencyRateAttribute, startDate, callback) {
	var currency = this.get(currencyAttribute);
	if (Ext.isEmpty(currency)) {
		return;
	}
	moneyModule.self.onLoadCurrencyRate.call(this, currency.value, startDate,
		function(item) {
			this.set(currencyRateAttribute, item.Rate);
			if (callback) {
				callback.call(this);
			}
		}, function() {
			this.set(currencyRateAttribute, null);
		});
};

Не вижу раздела «Платежи», видимо, он разработан в ходе проекта или переименован. Как называется схема карточки?

Мультивалютное поле работает с теми данными, которые есть в связанных с ним полях объекта: сумма, сумма в базовой валюте, выбранная валюта и курс. Вам нужно, чтобы уже при заливке были корректные данные во всех этих полях.

Показать все комментарии
C#
бизнес-процесс
обращение
7.15_()
-Sales_Creatio
team_edition_()

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

Подскажите как можно из Бизнес процесса обратится к C# методу?

Нравится

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

Добрый день! Здесь -  http://prntscr.com/qr8kpl подключаем нам нужное пространство имен, затем объявляем экземпляр класса и вызываем метод - http://prntscr.com/qr8lqh 

Добрый день! Здесь -  http://prntscr.com/qr8kpl подключаем нам нужное пространство имен, затем объявляем экземпляр класса и вызываем метод - http://prntscr.com/qr8lqh 

Показать все комментарии
7.14_()
-Sales_Creatio
team_edition_()

Здравствуйте! Необходимо привязать данные раздела "Контрагенты" и "Контакты" к пакету, но выдает ошибку, ругаясь на поле "Основной контакт", когда оно заполнено у контрагента.

Привязал данные раздела "Контакты", ругается на Контрагенты.

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

Нравится

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

Добрый день.

Посмотрите обсуждение в этом посте.

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

Добрый день.

Посмотрите обсуждение в этом посте.

Показать все комментарии
импорт
импорт данных из Exсel
импорт Excel
e-mail
7.13_()
-Sales_Creatio
team_edition_()

Добрый день!

Подскажите пожалуйста, можно ли в систему загрузить с помощью импорта из Excel 2 и более e-mail адресов в карточку Контакта?

Есть база Контактов, у которых помимо основного e-mail, указано дополнительно ещё несколько e-mail. Есть жизненная необходимость проимпортировать записи с помощью Excel, чтобы в карточке Контакта поле E-mail заполнилось автоматически с учетом нескольких электронных адресов.

Если ли какой-либо механизм или метод?

На данный момент несколько электронных адресов в карточку Контакта не получается загрузить импортом:

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

Нравится

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

Максимова Екатерина,

Так как в карточке контакта только 1 поле E-mail, то добавить несколько e-mail в карточку контакта можно несколькими способами.

1. В карточке контакта добавить нужное количество полей email и в каждое из этих полей проимпортировать нужное значение.

2. Вариант, который предложил Владимир, создать ещё один файл Excel и внести в него информацию по всем e-mail контактов и проимпортировать данную информацию в таблицу со средствами связи контакта.

Например, у контакт1 есть e-mail1, email2 и email3.

Тогда Ваша таблица будет выглядеть так:

Контакт - Тип связи - Номер

контакт1 - Email - e-mail1

контакт1 - Email - e-mail2

контакт1 - Email - e-mail3

Создать отдельный Excel файл с колонками Контакт - Тип связи - Номер (там несколько полей под Номер) и заимпортировать в объект Средства связи контакта

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

Владимир, нужно проимпортировать именно несколько 

 E-mail

Максимова Екатерина,

Не совсем понимаю, в чем именно заключается проблема?

Опишите подробнее.

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

У 1 Контакта есть несколько электронных адресов, каким образом можно загрузить их импортом?

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

Максимова Екатерина,

Так как в карточке контакта только 1 поле E-mail, то добавить несколько e-mail в карточку контакта можно несколькими способами.

1. В карточке контакта добавить нужное количество полей email и в каждое из этих полей проимпортировать нужное значение.

2. Вариант, который предложил Владимир, создать ещё один файл Excel и внести в него информацию по всем e-mail контактов и проимпортировать данную информацию в таблицу со средствами связи контакта.

Например, у контакт1 есть e-mail1, email2 и email3.

Тогда Ваша таблица будет выглядеть так:

Контакт - Тип связи - Номер

контакт1 - Email - e-mail1

контакт1 - Email - e-mail2

контакт1 - Email - e-mail3

Показать все комментарии
Установка и Администрирование
7.15_()
-Sales_Creatio
team_edition_()

Добрый день! Есть потребность в реализации "Журнала изменений" с настраиваемыми колонками и фильтрацией для нужд некоторых пользователей. Выбор пал на готовое решение от:

https://marketplace.terrasoft.ua/app/record-version-control-creatio

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



Не подскажете, пожалуйста, как именно понять, какая именно схема задействована в тот или иной момент?

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



Заранее спасибо за помощь

Нравится

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

Добрый вечер.

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

Также можно смотреть в разделе 'Конфигурация' через поиск по названию или заголовку.

Добрый вечер.

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

Также можно смотреть в разделе 'Конфигурация' через поиск по названию или заголовку.

Конкретно для раздела контактов схема называется Contact, плюс часть информации в карточку подтягивается из деталей: ContactAddress, ContactCommunication и др.

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

Также см. тему.

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