Добрый день.

 

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

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

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

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

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

 

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

 

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

 

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

"[#Subject#]"

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

 

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

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

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

Нравится

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

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

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

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

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

Георгий,

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

Георгий,

 

Добрый день!

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

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

 

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



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

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

 

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

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

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

 

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

 

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

Спасибо.

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

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

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

почему при добавлении фильтра нельзя использовать значение поля 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 , как Аллы показано при добавлении колонки
Показать все комментарии

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

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

public EntitySchemaQueryColumn AddColumn(EntitySchemaQueryFunction function);

        //

        // Summary:

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

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

        //

        // Parameters:

        //   columnPath:

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

        //

        // Returns:

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

        //

        // Exceptions:

        //   T:Terrasoft.Common.ArgumentNullOrEmptyException:

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

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

Нравится

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

Добрый день.



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

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

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

Вот я включил разработку в ФС, открываю в студии 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,

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

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

Здравствуйте, по инструкции настраивал лендинг для оф сайта компании. И после внедрения на сайт в консоли вылетела ошибка связанная с политикой 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 в браузере открывается и нормально в авторизуется с тем же логином и паролем:





 

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

Добрый день!

Возможно ли тело активности передавать в тело задачи в 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

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

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

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

Работаю со схемами исходного кода через веб, сборку конфигурации делаю через браузер. Возможности просмотра классов библиотек через 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, так же правильно берет данные, но если запись только добавлена в деталь(пока нету в БД) при 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 комментарий

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

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

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