Здравствуйте! Подскажите как можно сделать связи Email c контактом/контрагентом/договором(добавил в ссылочное поле в группу полей связей) при автоматической отправке email письма элементом в бизнес-процессе Отправить Email, отправка идет с использованием шаблона. Когда выбираешь ручную отправку, то там можно указать связи и все показывается на детали Email(Активности), а когда выбираешь автоматическая отправка...ничего не происходит...и нельзя выбрать ничего

Нравится

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

Атюкин Егор Эдуардович,

Посмотрите хороший пример отсылки с шаблонами в Service Creatio процесс "

SendEmailToCaseContactProcess"

 

Правда, на других продуктах пока не получилось его использовать

Какое-то время назад интересовался тем же. Ответ был - никак.



Потому пришлось скрипт (он есть в Service Creatio, но в других версиях не работал) использовать для этого

Владимир Соколов, а что за скрипт?

вот здесь  поясняется почему не работают связи при автоматической отправки письма элементов Отправить Email. Просто не создается экземпляр Activity. Как вариант создать активность типа Email, а потом её отправить скриптом.

var activityId = AddActivityDataUserTask.RecordId;
var emailClientFactory = ClassFactory.Get<EmailClientFactory>(new ConstructorArgument("userConnection", UserConnection));
var activityEmailSender = new ActivityEmailSender(emailClientFactory, UserConnection);
activityEmailSender.Send(activityId);
return true;

 

Атюкин Егор Эдуардович,

Посмотрите хороший пример отсылки с шаблонами в Service Creatio процесс "

SendEmailToCaseContactProcess"

 

Правда, на других продуктах пока не получилось его использовать

Алексей Следь,

Так, пробовал, не работает

Обновление:

Я не указывал зависимости в Usings

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

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

Спасибо большое, посмотрел!)

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

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

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

Нравится

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

Добрый день! Данная функциональность реализована в представлении Пользователей системы - https://prnt.sc/snx8dg

Нигрескул Алексей, Я понимаю, там и смотрел, эта деталь ссылается на объект Сеанс пользователя, про который и писал...

Егор, не всегда вставка в таблицу данных идёт так, что срабатывает логика на уровне БП. Например, если вставлять по ESQ или элементом процесса, то срабатывает, а если серверным классом Insert или напрямую через базу, то нет. Аналогично и с изменением и удалением. В стандартном механизме логина в систему в ядре используется именно Insert для начала сессии и Update для её завершения.

 

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

 

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

 

Либо вообще не делать отдельную сущность, а настроить в своём разделе отображение той стандартной детали, о которой писал Алексей. А если нужно совмещать с другими данными, то смотреть в сторону создания view в базе и объекта по нему.

 

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

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

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

Нравится

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

в diff

{

                "operation": "merge",

                "name": "AddTypedRecordButton",

                "parentName": "Detail",

                "propertyName": "tools",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "controlConfig": {

                        "menu": {

                            "items": {"bindTo": "addMenuItems"}

                        }

                    },

                "visible": true,

                "enabled": true

                }

            },

methods

init: function() {

                this.callParent(arguments);

                this.initAddMenuItems();

            },

            initAddMenuItems: function() {

                var addMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");

                addMenuItems.add("addContactItem", this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        "Caption": {"bindTo": "Resources.Strings.AddContactCaption"},

                        "Click": {"bindTo": "addRecipient"},

                        "Tag": "addContact"

                    }

                }));

                addMenuItems.add("addbytemplateItem", this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        "Caption": {"bindTo": "Resources.Strings.AddByTemplate"},

                        "Click": {"bindTo": "addRecipient"},

                        "Tag": "addbytemplate"

                    }

                }));

                this.set("addMenuItems", addMenuItems);

            },

 

в diff

{

                "operation": "merge",

                "name": "AddTypedRecordButton",

                "parentName": "Detail",

                "propertyName": "tools",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "controlConfig": {

                        "menu": {

                            "items": {"bindTo": "addMenuItems"}

                        }

                    },

                "visible": true,

                "enabled": true

                }

            },

methods

init: function() {

                this.callParent(arguments);

                this.initAddMenuItems();

            },

            initAddMenuItems: function() {

                var addMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");

                addMenuItems.add("addContactItem", this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        "Caption": {"bindTo": "Resources.Strings.AddContactCaption"},

                        "Click": {"bindTo": "addRecipient"},

                        "Tag": "addContact"

                    }

                }));

                addMenuItems.add("addbytemplateItem", this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        "Caption": {"bindTo": "Resources.Strings.AddByTemplate"},

                        "Click": {"bindTo": "addRecipient"},

                        "Tag": "addbytemplate"

                    }

                }));

                this.set("addMenuItems", addMenuItems);

            },

 

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

Наш бизнес построен так, что мы продаем с одной стороны компаниям, с другой стороны клиентам.

Необходимо создать 2 независимые воронки есть ли такая возможность?

Нравится

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

Евгений, используйте функционал дизайнера кейсов. Он позволит вам добавить неограниченное количество воронок в зависимости от типа продаж(например). Почитать подробнее можно здесь https://academy.terrasoft.ru/documents/technic-bpms/7-16/nachalo-raboty…

Евгений, используйте функционал дизайнера кейсов. Он позволит вам добавить неограниченное количество воронок в зависимости от типа продаж(например). Почитать подробнее можно здесь https://academy.terrasoft.ru/documents/technic-bpms/7-16/nachalo-raboty…

Сидоров Александр Валерьевич, спасибо большое!

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

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

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

При создании отчета в детали Пользоватлеьские фильтры не сохраняется Путь к заголовку http://prntscr.com/slrin8

Из-за этого невозможно настроить фильтр

Нравится

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

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

 

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

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

Спасибо, буду ждать

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

 

ответственная команда выпустит обновление решения с исправлением этой ошибки 8 июня. Отдельно напишу, когда обновленный пакет будет доступен на маркетплейсе.

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

Добрый день, столкнулся с проблемой при установке Conference room booking for Creatio на SalesTeam_7.15.4 для PostgreSQL.

Ошибка падает на установке пакета:

Terrasoft.Common.DbOperationException: Npgsql.PostgresException (0x80004005): 23503: INSERT или UPDATE в таблице "SysPackageDataLcz" нарушает ограничение внешнего ключа "FKfg1JPl35PDx2FCE8Oagxv7VAMIc"

 

Насколько я понимаю, проблема связана с тем, что для культуры fr-FR для MSSQL и PostgreSQL разные Id.

Нравится

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

Добрый день, Артем,

 

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

Добрый день, Артем,

 

не получилось воспроизвести указанную вами ошибку на чистой сборке Sales Team 7.15.4 для PostgreSQL (даже с включенной культурой fr-FR), дополнение устанавливается без ошибок. Пришлите, пожалуйста, лог установки с ошибкой для более детального анализа и предоставьте в личное сообщение, если есть такая возможность, доступ к сайту, где воспроизводится ошибка.

 

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

2020-05-15 17:56:45,334 Загрузка файла: ConferenceRoom.gz 100%

2020-05-15 17:56:45,415 Началось резервное копирование конфигурации.

2020-05-15 17:56:45,431 Загрузка пакетов из архива

2020-05-15 17:56:45,943 Пакет "ConferenceRoom" загружен

2020-05-15 17:56:45,943 Загрузка пакетов из базы данных

2020-05-15 17:56:47,704 Загрузка пакетов из базы данных

2020-05-15 17:56:49,479 Резервная копия конфигурации успешно создана.

2020-05-15 17:56:49,529 Установка приложения из файла началась. Имя приложения: ConferenceRoom. Код: ConferenceRoom.

2020-05-15 17:56:49,532 Подготовка пакетов к инсталляции

2020-05-15 17:56:49,555 Загрузка пакетов из архива

2020-05-15 17:56:49,690 Пакет "ConferenceRoom" загружен

2020-05-15 17:56:49,703 Загрузка пакетов из базы данных

2020-05-15 17:56:51,335 Сравнение пакетов

2020-05-15 17:56:51,576 Сохранена схема "Activity" в пакете "ConferenceRoom"

2020-05-15 17:56:51,593 Сохранена схема "ActivityMiniPage" в пакете "ConferenceRoom"

2020-05-15 17:56:51,606 Сохранена схема "ActivityPageV2" в пакете "ConferenceRoom"

2020-05-15 17:56:51,619 Сохранена схема "ActivitySectionConferenceRoomGridRowViewModel" в пакете "ConferenceRoom"

2020-05-15 17:56:51,632 Сохранена схема "ActivitySectionV2" в пакете "ConferenceRoom"

2020-05-15 17:56:51,647 Сохранена схема "ConferenceRoom" в пакете "ConferenceRoom"

2020-05-15 17:56:51,658 Сохранена схема "ConferenceRoomEntityEventListener" в пакете "ConferenceRoom"

2020-05-15 17:56:51,658 Сохранена схема "ConferenceRoomFilterModule" в пакете "ConferenceRoom"

2020-05-15 17:56:51,684 Сохранена схема "ConferenceRoomFilterSchema" в пакете "ConferenceRoom"

2020-05-15 17:56:51,694 Сохранена схема "ConferenceRoomHandler" в пакете "ConferenceRoom"

2020-05-15 17:56:51,707 Сохранена схема "ConferenceRoomInActivity" в пакете "ConferenceRoom"

2020-05-15 17:56:51,719 Сохранена схема "ConferenceRoomMixin" в пакете "ConferenceRoom"

2020-05-15 17:56:51,719 Сохранена схема "ConferenceRoomValidator" в пакете "ConferenceRoom"

2020-05-15 17:56:51,802 Terrasoft.Common.DbOperationException: Npgsql.PostgresException (0x80004005): 23503: INSERT или UPDATE в таблице "SysPackageDataLcz" нарушает ограничение внешнего ключа "FKfg1JPl35PDx2FCE8Oagxv7VAMIc"

   в Npgsql.NpgsqlConnector.<DoReadMessage>d__157.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlConnector.<ReadMessage>d__156.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в Npgsql.NpgsqlConnector.<ReadMessage>d__156.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в Npgsql.NpgsqlDataReader.<NextResult>d__32.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlDataReader.NextResult()

   в Npgsql.NpgsqlCommand.<Execute>d__71.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlCommand.<ExecuteNonQuery>d__84.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlCommand.ExecuteNonQuery()

   в Polly.Policy.<>c__DisplayClass119_0`1.<Execute>b__0(Context ctx, CancellationToken ct)

   в Polly.Policy.<>c__DisplayClass129_0`1.<ExecuteInternal>b__0(Context ctx, CancellationToken ct)

   в Polly.Policy.<>c__DisplayClass103_0.<NoOp>b__1(Context ctx, CancellationToken ct)

   в Polly.NoOp.NoOpEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.<>c.<NoOp>b__103_0(Action`2 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.ExecuteInternal[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.Execute[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.Execute[TResult](Func`1 action)

   в Terrasoft.Core.DB.DBExecutor.ExecuteCommand[TResult](Func`2 commandExecutionCallback, String sqlText, QueryParameterCollection queryParameters, CancellationToken cancellationToken)

   в Terrasoft.DB.PostgreSql.PostgreSqlExecutor.Execute(String sqlText, QueryParameterCollection queryParameters)

   в Terrasoft.Core.Entities.Entity.InsertToDB(Boolean skipLookupColumnValues, Boolean validateRequired) ---> Npgsql.PostgresException: 23503: INSERT или UPDATE в таблице "SysPackageDataLcz" нарушает ограничение внешнего ключа "FKfg1JPl35PDx2FCE8Oagxv7VAMIc"

   в Npgsql.NpgsqlConnector.<DoReadMessage>d__157.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlConnector.<ReadMessage>d__156.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в Npgsql.NpgsqlConnector.<ReadMessage>d__156.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в Npgsql.NpgsqlDataReader.<NextResult>d__32.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlDataReader.NextResult()

   в Npgsql.NpgsqlCommand.<Execute>d__71.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlCommand.<ExecuteNonQuery>d__84.MoveNext()

--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---

   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   в Npgsql.NpgsqlCommand.ExecuteNonQuery()

   в Polly.Policy.<>c__DisplayClass119_0`1.<Execute>b__0(Context ctx, CancellationToken ct)

   в Polly.Policy.<>c__DisplayClass129_0`1.<ExecuteInternal>b__0(Context ctx, CancellationToken ct)

   в Polly.Policy.<>c__DisplayClass103_0.<NoOp>b__1(Context ctx, CancellationToken ct)

   в Polly.NoOp.NoOpEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.<>c.<NoOp>b__103_0(Action`2 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.ExecuteInternal[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.Execute[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   в Polly.Policy.Execute[TResult](Func`1 action)

   в Terrasoft.Core.DB.DBExecutor.ExecuteCommand[TResult](Func`2 commandExecutionCallback, String sqlText, QueryParameterCollection queryParameters, CancellationToken cancellationToken)

   в Terrasoft.DB.PostgreSql.PostgreSqlExecutor.Execute(String sqlText, QueryParameterCollection queryParameters)

   в Terrasoft.Core.Entities.Entity.InsertToDB(Boolean skipLookupColumnValues, Boolean validateRequired)

   --- Конец трассировки внутреннего стека исключений ---

   в Terrasoft.Core.Entities.Entity.InsertToDB(Boolean skipLookupColumnValues, Boolean validateRequired)

   в Terrasoft.Core.Entities.Entity.InternalSave(Boolean validateRequired, Boolean setColumnDefValue)

   в Terrasoft.Core.Entities.Entity.Save(Boolean validateRequired, Boolean setColumnDefValue)

   в Terrasoft.Core.Packages.PackageDBStorage.SavePackageSchemaDataLocalization(Package package, PackageSchemaDataDescriptor dataDescriptor, IPackageContentProvider contentProvider, Guid sysPackageSchemaDataId)

   в Terrasoft.Core.Packages.PackageDBStorage.SaveSchemaData(Package package, PackageSchemaDataDescriptor dataDescriptor, IPackageContentProvider contentProvider)

   в Terrasoft.Core.Packages.PackageDBStorage.SavePackageSchemaDatas(Package package, IPackageContentProvider contentProvider)

   в Terrasoft.Core.Packages.PackageDBStorage.SavePackage(Package package, IPackageContentProvider contentProvider)

   в Terrasoft.Core.Packages.PackageDBStorage.ProcessPackage(Package package, IPackageContentProvider packageContentProvider, Dictionary`2 packageIdCollection)

   в Terrasoft.Core.Packages.PackageDBStorage.ProcessPackages(IPackageContentProvider packageContentProvider, Dictionary`2 packageIdCollection)

   в Terrasoft.Core.Packages.PackageDBStorage.Save(IPackageContentProvider packageContentProvider)

   в Terrasoft.Core.AppInstallation.Packages.Operations.SystemPackageOperations.PackageDBStorageInternal.Save(IPackageContentProvider packageContentProvider)

   в Terrasoft.Core.AppInstallation.Packages.Operations.SystemPackageOperations.Save(IEnumerable`1 packages, PackageInstallOptions options)

   в Terrasoft.Core.AppInstallation.Packages.SystemPackageManager.Save(PackageInstallOptions installOptions)

   в Terrasoft.Core.AppInstallation.Packages.AppInstaller.Install(String sourcePath, String destinationPath, PackageInstallOptions installOptions, IInstalledAppInfo installedAppInfo)

   в Terrasoft.WebApp.PackageInstaller.AppInstallerServiceInternal.<>c__DisplayClass7_0.<InstallApp>b__0()

   в Terrasoft.WebApp.PackageInstaller.BaseInstallerServiceInternal.InvokeWithLogging[TResult](Func`1 action)

2020-05-15 17:58:34,754 Начало восстановления конфигурации из резервной копии

2020-05-15 17:58:34,754 Загрузка пакетов из архива

2020-05-15 17:58:34,754 Загрузка пакетов из базы данных

2020-05-15 17:58:36,423 Сравнение пакетов

2020-05-15 17:58:36,423 Восстановление конфигурации из резервной копии завершено

Добрый день, Артем,

 

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

Добрый день, Артем,

 

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

Отлично

Добрый день, Артем!

 

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

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

Добрый день!

 

После обновления до 7.16.0 возникает ошибка "

 message: Uncaught Terrasoft.UnsupportedTypeException: Message NavigateTo is not defined in ConfigurationViewModul" (см. скриншот).

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



Как ее можно исправить? Эта ошибка связана с каким-то дополнительным модулем? Что-то еще?

 

Спасибо!

Нравится

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

У меня в 7.16 в ConfigurationViewModule есть это сообщение:

/**
 * @inheritdoc Terrasoft.BaseSchemaModule#getMessages
 * @protected
 * @overridden
 */
getMessages: function() {
	const messages = {
		"NavigateTo": {
			mode: Terrasoft.MessageMode.BROADCAST,
			direction: Terrasoft.MessageDirectionType.SUBSCRIBE
		}
	};
	const parentMessages = this.callParent(arguments);
	return Ext.apply(messages, parentMessages);
},
 
...
/**
 * @inheritDoc Terrasoft.configuration.BaseViewModule#subscribeMessages
 * @overridden
 */
subscribeMessages: function() {
	this.callParent(arguments);
	const sandbox = this.sandbox;
	sandbox.subscribe("SideBarModuleDefInfo", this.onSideBarModuleDefInfo, this);
	sandbox.subscribe("ShowHideRightSidePanel", this.onShowHideRightPanel, this);
	sandbox.subscribe("SideBarVisibilityChanged", this.onSideBarVisibilityChanged, this);
	const navigationHelper = this.Ext.create("Terrasoft.NavigationHelper", {
		Ext: this.Ext,
		sandbox: sandbox
	});
	sandbox.subscribe("NavigateTo", navigationHelper.navigateTo, navigationHelper);
},

И в 7.15.3 тоже, эта схема не менялась.

Нужно выяснить, откуда у Вас оно вызывается и есть ли отличия Вашей ConfigurationViewModule от стандартной системы. 

Здравствуйте, Мария!

Из-за приложения Smart Context for Creatio не работает вход в систему.

Для исправления нужно в BaseViewModule в пакете  smartLogin заменить инит на тот что ниже и добавить метод _initMessages и getMessages (тоже есть ниже): 

init: function(callback, scope) {
        this._initMessages();
        Terrasoft.chain(
          this.initSysSettings,
          this.initViewConfig,
          this.initHomePage,
          function() {
            this.subscribeMessages();
            callback.call(scope);
          },
          this
        );
      },
      _initMessages: function() {
        const messages = this.getMessages();
        if (!messages) {
          return;
        }
        this.sandbox.registerMessages(messages);
      },
      getMessages: Terrasoft.emptyFn,



 

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

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

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

Ошибку выдает: "Object reference not set to an instance of an object."

В тексте письма есть ссылки на сайт и элемент отписки.

В чем может быть ошибка?

Нравится

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

А есть полностью стек после «Object reference not set to an instance of an object»? Такое сообщение значит, что где-то в коде обращаются к переменной как к объекту, а там пусто. А в чём именно дело, можно понять, увидев, откуда именно вызов.

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

Всем привет!

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

Подскажите, как решить данный кейс? 

Нравится

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

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

 

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

 

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

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

 

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

 

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

С View есть одно ограничение - сложно использовать фильтры с ним

В 7.16 обещают гистограмму с накоплением.

Зверев Александр пишет:

В 7.16 обещают гистограмму с накоплением.

эт они только обещали :) понимание график с нарастающим итогом интерпретирован в креатио неверно. 

Olga Pogorilo,

Добрый день! Возможно, для реализации данного кейса, Вам поможет Дополнение "Calculated charts for Creatio"

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

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

Каким образом можно экспортировать созданный FastReport'ом отчет из .pdf, который идет по умолчанию в .xlsx или .doc?

Точнее, чтобы файл генерировался с нужным расширением

Нравится

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

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



К сожалению, на данный момент такой возможности нет.

Мы зафиксировали Ваши пожелания для реализации данной опции в будущих версиях.

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