Добрый день.

 

Ситуация следующая. Пользователь пишет письмо на почтовый ящик. 

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

Но, если так же ответ писать через систему, 

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

Соответственно, на почте отображается нормально. 

 

В первом случае, запрос зарегистрирован 9 июня, а во втором, 6 сентября.

 

В шаблоне автоответа в строке "Дата регистрации" есть параметр:

 

Ваше обращение зарегистрировано под No.[#Number#]

"[#Subject#]"

Дата регистрации: [#RegisteredOn#].

 

Вопрос, где искать, что ЦРМ отправляет? Возможно это прописано в каком то справочнике, но в каком?

Проверил, что на сервере с датами всё ок.

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

Нравится

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

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

В первом случае не 9 июня, а 6 сентября - дата добавляется в американском формате.

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

Алла Савельева, Добрый день. Подскажите где это искать?

Георгий,

Не имея доступа к срм, не могу сказать(

Георгий,

 

Добрый день!

Формат даты и времени напрямую берётся из профиля пользователя - поле "Формат даты и времени". 

В случае, если данное поле не заполнено, формат даты и времени берётся из формата даты и времени на сервере.

 

Также за конвертацию дат в макросах отвечает системная настройка "Конвертировать даты в макросах с учетом часового пояса"



Проверьте, пожалуйста, соответствующие настройки.

Роман Казекин,

 

Добрый день. Если имелось ввиду изменение как в данной теме (https://community.terrasoft.ru/questions/format-daty-i-vremeni)

То это я сделал. 

Ранее там вместо timezone стоял вопрос, но зайдя в настройки пользователя (от которого осуществляется отправка автоответов), там было проставлено Москва ... (+3:00).

 

Отправив тестовое письмо, Дата по прежнему пишется в Американском формате.

 

Так же вопрос, как попасть в необходимый макросы?

Спасибо.

Георгий,  здравствуйте!

Ошибка исправляется путем отключения системной настройки с кодом UseMacrosTimeZoneConversion. 

Показать все комментарии
Разработка
Studio_Creatio
7.16

почему при добавлении фильтра нельзя использовать значение поля NrbCity.Name?

                                    esqResult.AddAllSchemaColumns();

                                    esqResult.AddColumn("NrbCity.Name");           

                        var entity = esqResult.GetEntity(UserConnection, purchaseId);

этот код выполняется без ошибок.

а вот дальше:

esqMatching.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrCity", entity.GetColumnValue("NrbCity.Name").ToString());

ругается что 

Terrasoft.Common.ItemNotFoundException: 'Значение с именем "NrbCity.Name" не найдено'

что не так-то? как использовать значение этого поля дальше в другом фильтре?

Нравится

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

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

 

Для работы с такой колонкой можно сохранить её название в переменную и потом обращаться по нему:

string cityColumnName = esqResult.AddColumn("NrbCity.Name").Name;
...
entity.GetColumnValue(cityColumnName).ToString();

Система формирует названия таких колонок по-другому, по-моему, через подчеркивание. Вот таким образом: 'NrbCity_Name'.

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

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

 

Для работы с такой колонкой можно сохранить её название в переменную и потом обращаться по нему:

string cityColumnName = esqResult.AddColumn("NrbCity.Name").Name;
...
entity.GetColumnValue(cityColumnName).ToString();

Система формирует названия таких колонок по-другому, по-моему, через подчеркивание. Вот таким образом: 'NrbCity_Name'.

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

entity.GetColumnValue<string>("NrbCity.Name").Name

 

Dima Avdoshin,

это ничем не отличается от моего варианта

entity.GetColumnValue<string>("NrbCity.Name") - не будет найден

 

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

да, спасибо! именно так все и оказалось.

Gladushkin Peter,

("NrbCity.Name").Name у вас приведение к стрингу, а у меня взято свойство Name , как Аллы показано при добавлении колонки
Показать все комментарии
Разработка
Studio_Creatio
7.16

в проекте Terrasoft.Configuration.sln

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

public EntitySchemaQueryColumn AddColumn(EntitySchemaQueryFunction function);

        //

        // Summary:

        //     ####### # ######### ####### # ####### ###### # ##### ####### ## ######### ####

        //     # ####### ############ ######## #####.

        //

        // Parameters:

        //   columnPath:

        //     #### # ####### ##### ############ ######## #####.

        //

        // Returns:

        //     ######### ######### #######.

        //

        // Exceptions:

        //   T:Terrasoft.Common.ArgumentNullOrEmptyException:

        //     #### # ######## ######### columnPath ######## ###### ######## ### null.

почему так и как исправить на читаемое?

Нравится

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

Добрый день.



В ядре Creatio некоторые классы и методы описаны комментариями на русском языке и итоге затираются. Это уже обсуждалось тут.

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

я новичок , прошу помочь с основами.

Вот я включил разработку в ФС, открываю в студии Terrasoft.Configuration.sln

меняю в нем код, а команды из external tools (Buld Workspace и Rebuld workspace)

сбрасывают мои изменения.

что нужно сделать что бы мои изменения применились и можно было подключиться к ним отладкой из VS?

Нравится

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

Добрый день!

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

https://academy.terrasoft.ua/docs/developer/development_tools/developme…



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

https://academy.terrasoft.ua/docs/developer/development_tools/developme…

 

Также можно ознакомится с этим обсуждением ранее.

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

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

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

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

Спасибо.

Нравится

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

Булат Хабирзянов,

Проверка доступа на операцию у конкретного пользователя не подойдут?

Код ниже

я вставил отрывками, но надеюсь все понятно

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

define("qrtTest1Page", ["RightUtilities"],
function( RightUtilities) 
init: function() {
                this.callParent(arguments);
                this.checkCanManageLicUsers();
            },
	checkCanManageLicUsers: function(callback, scope) {
				RightUtilities.checkCanExecuteOperation({
				  operation: "qrtTestOperation"
				}, function(result) {
					this.console.log("RESULT" + result)
					this.set("qrtIsRuleTest", result);
				}, this);
},

 

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

Булат Хабирзянов,

Проверка доступа на операцию у конкретного пользователя не подойдут?

Код ниже

я вставил отрывками, но надеюсь все понятно

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

define("qrtTest1Page", ["RightUtilities"],
function( RightUtilities) 
init: function() {
                this.callParent(arguments);
                this.checkCanManageLicUsers();
            },
	checkCanManageLicUsers: function(callback, scope) {
				RightUtilities.checkCanExecuteOperation({
				  operation: "qrtTestOperation"
				}, function(result) {
					this.console.log("RESULT" + result)
					this.set("qrtIsRuleTest", result);
				}, this);
},

 

Dima Avdoshin,

Разобрался, спасибо большое)

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

Здравствуйте, по инструкции настраивал лендинг для оф сайта компании. И после внедрения на сайт в консоли вылетела ошибка связанная с политикой CORS

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

Не понимаю из-за чего возникает эта ошибка. С чем связано?

Нравится

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

Добрый день!



Ошибка в консоли - напоминание браузера о том, что там где хостится сайт, отсутствует "Access-Control-Allow-Origin" хедер.

 

По ссылке можно прочитать больше про это сообщение.

 

На работоспособность системы данная ошибка не влияет, вы можете игнорировать данное сообщение в процессе отладки.

Добрый день!



Ошибка в консоли - напоминание браузера о том, что там где хостится сайт, отсутствует "Access-Control-Allow-Origin" хедер.

 

По ссылке можно прочитать больше про это сообщение.

 

На работоспособность системы данная ошибка не влияет, вы можете игнорировать данное сообщение в процессе отладки.

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

Добрый день!

На чистую коробочную версию Creatio 7.16.1.2135 SalesEnterprise_Marketing_Services было установлено приложение из маркетплейс - RabbitMQ connector for Creatio - https://marketplace.terrasoft.ru/app/rabbitmq-connector-creatio. Установка прошла без ошибок. Никаких доработок в конфигурации не выполнялось. При открытии страницы настроек коннектора следующие ошибки в консоли:

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



Разработчик на письма не отвечает. Есть какие-то идеи как исправить ошибку и заставить приложение работать?

Нравится

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

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

На скрине видно, что у Вас не заполнены параметры подключения к Rabbit. Хост, Пользователь, пароль. Эти доступы должны быть к серверу Rabbit - https://prnt.sc/1qm5ndf

Спасибо, Алексей, что откликнулись.

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

    response status: 400 (Bad Request)

    request url: http://localhost:160/0/rest/AnvRabbitConnectionService/Load

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







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





 

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

Добрый день!

Возможно ли тело активности передавать в тело задачи в Outlook?

Нравится

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

Анастасия, добрый день!



В базовой функциональности синхронизации с календарями MS Exchange или Microsoft 365 в задачу переноситься поле Примечание с Creatio.

Для решения задачи в необходимых активностей вы можете данные с тела письма перенести в поле "Примечание" (Note) вручную или с помощью бизнес-процесса.  Детальнее по настройке синхронизации с календарями описано в статье: https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/nastrojka_bazovyh_intgracij/pochta_kontakty_raspisanie_microsoft/sinkhronizirovat_raspisanie_creatio_s_kalendaryami_ms_exchange_i_microsoft_365 

Нина Скворцова, 

Прошу прощения, направляю актуальную ссылку:https://academy.terrasoft.ru/docs/node/2482

Нина Скворцова,

Да, при синхронизации встреч также данные с поля "Примечание" переносятся.

Показать все комментарии
nlog
logger
Sales_Creatio_enterprise_edition
7.16

Работаю со схемами исходного кода через веб, сборку конфигурации делаю через браузер. Возможности просмотра классов библиотек через ide нет.  

По статье документации выполнена настройка nLog. После чего я создал объект логгера в схеме Исходный код как описано в туториал NLog . Объект Logger - из примера:

private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();

Получается ошибка - класса или пространства имен NLog нет , нет и пространства имен Common.Logging.NLog45. 

 

Террасофт, как у вас предполагается работать с Nlog в кодовых схемах, например в пользовательском сервисе я хотел бы писать в лог ошибку десереализации json. Примеров на схемах "исходный код" по работе с nLog в публикациях Сообщества не нашел.

Нравится

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

Для использования базового логгирования нужно подключить пространство имён global::Common.Logging, а экземпляр логгера можно получить через статический класс LogManager.

Пример кода:

namespace Terrasoft.Configuration {
	using global::Common.Logging;
 
	public class LogTest {
 
		private ILog log;
 
		public LogTest() {
			log = LogManager.GetLogger("LoggerName");
		}
 
		public void WriteError() {
			log.Error("ErrorMessage");
		}
 
	}
}

 

Показать все комментарии
Деталь Средства связи
prepareList
ComboBoxEdit
Lookup
Marketing_Creatio
7.16

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

При обеих случаях заходит в метод указанный в prepareList, так же правильно берет данные, но если запись только добавлена в деталь(пока нету в БД) при set'е поля которое указанно в list, ничего не происходит.

 

Код генерации конфига ComboBoxEdit'а:

 

var result =
{
	className: "Terrasoft.ComboBoxEdit",
	value: {bindTo: "CountryOfNumber"},
	list: {bindTo: "CountryOfNumberList"},
	prepareList: {bindTo: "isSkypeAddress"}
};
return result;

Код метода подготовки листа(prepareList):

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "Country"
});
 
var test = this;
 
esq.addColumn("Id");
esq.addColumn("Id");
var nameColumn = esq.addColumn("Name");
 
nameColumn.orderDirection = Terrasoft.OrderDirection.ASC;
 
esq.getEntityCollection(function(result) {
	var collection = Ext.create("Terrasoft.Collection");
	if (result.success) {
		var selectedTags = result.collection;
		selectedTags.each(function(item) {
			var countryId = item.get("Id");
			var countryName = item.get("Name");
			var menuItemConfig = {
				value: countryId,
				displayValue: countryName
			};
			collection.add(countryId, menuItemConfig);
		}, this);
	}
	this.set("CountryOfNumberList", collection);
	var test = this.get("CountryOfNumberList");
}, this);
var collection = Ext.create("Terrasoft.Collection");
return collection;

PS. (https://community.terrasoft.ru/questions/lookup-pole-v-detali-sredstva-…)Данную статью видел, ничего полезного там нету 

Нравится

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

Добрый день, Василий.

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

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