Добрый день. Вопрос - можно ли добавить несколько фильтров                 accountEsq.Filters.LogicalOperation = LogicalOperationStrict.Or;

var accountIdNumberEsqFilter = accountEsq.CreateFilterWithParameters(FilterComparisonType.Equal, "PsIdNumber", request.IdNumber);

var accountIdFixEsqFilter = accountEsq.CreateFilterWithParameters(FilterComparisonType.Equal, "PsIdFix", request.IdNumber);

var accountServiceCrmIdEsqFilter = accountEsq.CreateFilterWithParameters(FilterComparisonType.Equal, "PsServiceCrmId", request.IdNumber);

accountEsq.Filters.Add(accountIdNumberEsqFilter);

accountEsq.Filters.Add(accountIdFixEsqFilter);

accountEsq.Filters.Add(accountServiceCrmIdEsqFilter);

в

CreateEntity(UserConnection)

так как в

UserConnection.EntitySchemaManager.GetInstanceByName,

или только использовать FetchFromDB ?

Нравится

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

Функция CreateEntity создаёт новую запись с пустыми полями, фильтры тут не имеют смысла:

var contactCareerSchema = UserConnection.EntitySchemaManager.GetInstanceByName("ContactCareer");	
var contactCareerEntity = contactCareerSchema.CreateEntity(UserConnection);
contactCareerEntity.SetDefColumnValues();
contactCareerEntity.SetColumnValue("Id", Guid.NewGuid());
contactCareerEntity.SetColumnValue("ContactId", NewMainContact);
contactCareerEntity.SetColumnValue("AccountId", EntityPrimaryColumnValue);
contactCareerEntity.SetColumnValue("Current", true);
contactCareerEntity.Save();

Другой её способ использования вместе с FetchFromDB, вытягивание записи по Id:

var schema = UserConnection.EntitySchemaManager.FindInstanceByName("SysAdminUnit");
var sysAdminUnit = schema.CreateEntity(UserConnection);
if (sysAdminUnit.FetchFromDB(recordId)) {
	var p = new Dictionary<string, string>();
	p.Add("LDAPEntryId", sysAdminUnit.GetTypedColumnValue<string>("LDAPEntryId"));
...

Наконец, вытягивать можно не только по Id, но и по другим условиям, как тут:

Dictionary<string, object> conditions = new Dictionary<string, object>();
var userId = (context.ThrowEventArgs as List<object>)[0].ToString();
var roleId = new Guid("A29A3BA5-4B0D-DE11-9A51-005056C00008");
conditions["SysUser"] = userId;
var sysUserInRoleSchema = Page.UserConnection.EntitySchemaManager.GetInstanceByName("SysUserInRole");
conditions["SysRole"] = roleId;
var sysUserInRole = sysUserInRoleSchema.CreateEntity(Page.UserConnection);
if (sysUserInRole.FetchFromDB(conditions)) {
	return true;
}

Возможно, Вам нужно сделать похожее на последний вариант. Но если из-за Or условие слишком сложное, проще будет использовать обычное получение коллекции после наложения фильтров:

var couponESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Coupon");
	couponESQ.AddColumn("BonusesPayedAmount");
	couponESQ.AddColumn("CouponCard");
couponESQ.Filters.Add(couponESQ.CreateFilterWithParameters(FilterComparisonType.Equal, "Purchase", purchaseId));
var cardFilters = new EntitySchemaQueryFilterCollection(couponESQ, LogicalOperationStrict.Or);
var permanentCardIdfilter = couponESQ.CreateFilterWithParameters(FilterComparisonType.Equal, "CouponCard.Type", Terrasoft.Configuration.CardConsts.PermanentTypeUId);
cardFilters.Add(permanentCardIdfilter);
var temporaryCardIdfilter = couponESQ.CreateFilterWithParameters(FilterComparisonType.Equal, "CouponCard.Type", Terrasoft.Configuration.CardConsts.TemporaryTypeUId);
cardFilters.Add(temporaryCardIdfilter);
var certificateCardIdfilter = couponESQ.CreateFilterWithParameters(FilterComparisonType.Equal, "CouponCard.Type", Terrasoft.Configuration.CardConsts.SertificateTypeUId);
cardFilters.Add(certificateCardIdfilter);
couponESQ.Filters.Add(cardFilters);
var couponEntities = couponESQ.GetEntityCollection(UserConnection);
if (couponEntities.Count > 0) {
	foreach (var coupon in couponEntities) {
		var bonusesPayedAmount = coupon.GetTypedColumnValue<decimal>("BonusesPayedAmount");
...

 

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

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

Вопрос - достаточно ли будет создать ОбъектFoder и ОбъектInFolder, чтобы всё заработало?

Нравится

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

По идее да - для групп этого должно быть достаточно, и таблицы для тегов ОбъектTag и ОбъектInTag, если Вам нужны теги в этом разделе.

Хотя может быть в Вашей версии тегов ещё не было frown

По идее да - для групп этого должно быть достаточно, и таблицы для тегов ОбъектTag и ОбъектInTag, если Вам нужны теги в этом разделе.

Хотя может быть в Вашей версии тегов ещё не было frown

Теги были ещё в 7.7, а скорее всего, и до того.

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

В общем, да, создал 2 объекта и всё получилось

Алексей-Карягин,

Важно в таких случаях именно правильно назвать эти таблицы, так как, если будут даже минимальные расхождения в первой части названия (я про Объект), то ничего не получится wink

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

Добрый день,



после обновление, исчез аналитика с графиками, осталась только тип "Показатель",

может есть какая та настройка или что-то другое, что может влиять на отображение?

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

Нравится

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

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

Или просто закешировалось что-то от старого механизма и поможет чистка кэша или перезапуск.

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

Добрый день,



у меня проблема с Visual Studio, все работал до обновлений (до 7.15), но потом, даже тот же кусочек из документации(https://academy.terrasoft.ru/documents/technic-sdk/7-15/razrabotka-konfiguracionnogo-servernogo-koda-v-polzovatelskom-proekte) дает ошибку. В чем может быть проблема?

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

Нравится

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

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

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

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

Добрый день ! 

Скажите, можно ли выгрузить все файлы из раздела Документы, которые соответствовали бы определённому формату (excel).  Желательно конечно, отфильтровать документы также по полю "Тип", но это второстепенный вопрос. 

Нравится

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

Добрый день.

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

Добрый день.

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

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

Добрый день, коммьюнити,



делаю публикацию сообщения (this.sandbox.publish без параметров, тег "test1") из схемы детали "Продукт в лиде" на странице "Лид". затем по нажатию пользователем кнопки открывается страница раздела "Продукт", на которой я это сообщение пытаюсь прочитать (this.sandbox.subscribe в функции вывод сообщения в консоль, тег "test1"), но ничего не происходит.

ошибок в консоли нет, но функция внутри subscribe не отрабатывает.



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

Нравится

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

Если открываете новый раздел в другом окне или вкладке браузера, то sandbox между ними не передаёт, нужно отправлять при помощи ClientMessageBridge. Если всё в одной вкладке и не работает, возможно, не тот sandbox.id (как его смотреть, см. тут). Также см. следующие статьи по обмену сообщениями, может что-то ещё не учли.

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

Спасибо за ответ!



Дополнение к ответу на собственный вопрос: кроме указанных Александром моментов есть еще один важный - сначала нужно подписаться на сообщение, а потом его отправлять (иначе сообщение некому получать)

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

Добрый день ! 

 

Стоит задача направить на почту контакту письмо с оповещением, что контакт был упомянут в Ленте (в любом объекте). Чаще всего это объект Документ.

Нашла на маркетплейс темплейт, который реализует данную задачу на конфигурации Service. https://marketplace.terrasoft.ru/template/uvedomlenie-ob-upominanii-v-l…; Дабы не изобретать велосипед, хотела переделать бизнес-процесс под нашу конфигурацию, но непонятны некоторые позиции в бизнес процессе. Также установила данный темплейт на триальную версию конфигурацию сервис, и протестила его, но уведомления на почту не падают.

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

 

Нравится

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

LilyG,

Если не работает отправка уведомлений по оригинальному бизнес-процессу без Ваших правок, то вполне нормально у разработчика процесса уточнить почему. Часто бывают специфические нюансы настроек работы функциональности.

Единственное, я бы проверила корректность настройки почтового ящика - уходят ли хоть какие-то уведомления.

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

P.S. Кстати, скриншоты своих изменений Вы так и не прикрепили.

Добрый день.

Все возникшие с настройкой вопросы Вы можете задать разработчику данного бизнес-процесса. Напишите письмо на bpmonlinelabs@bpmonline.com.

Алла Савельева пишет:

Добрый день.

Все возникшие с настройкой вопросы Вы можете задать разработчику данного бизнес-процесса. Напишите письмо на bpmonlinelabs@bpmonline.com.

Добрый день ! 

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

LilyG,

Если не работает отправка уведомлений по оригинальному бизнес-процессу без Ваших правок, то вполне нормально у разработчика процесса уточнить почему. Часто бывают специфические нюансы настроек работы функциональности.

Единственное, я бы проверила корректность настройки почтового ящика - уходят ли хоть какие-то уведомления.

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

P.S. Кстати, скриншоты своих изменений Вы так и не прикрепили.

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

мне не совсем понятно, для чего используется схема.id у объекта сообщение, можете сказать источники, где я смогу узнать об этом ? Что вообще представляет из себя эта схема ? Гугление ничего не дало по этому вопросу. 

LilyG, причём тут гугление, это же дополнение из маркета, Алла выше привела почту разработчиков.

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

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

LilyG, причём тут гугление, это же дополнение из маркета, Алла выше привела почту разработчиков.

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

Разработчики отправили меня переделывать процесс самостоятельно, я писала выше. А чтобы его переделать, нужно понимать что происходит при выполнении процесса. А чтобы это понимать, я должна знать ту часть формул,что не описаны в разделе "Формулы" на академии, например, упоминание схем. 

Спасибо. 

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

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



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

[#Читать пользователя контакта.Первый элемент результирующей коллекции.Тип подключения#]==0&&[#Message Schema ID#]==[#Cases Schema ID#]&&[#Читать системную настройку NoReplyNotificationMailboxSettings.Первый элемент результирующей коллекции.Значение уникального идентификатора#]!=Guid.Empty&&[#Читать контакта.Первый элемент результирующей коллекции.Email#]!=String.Empty

Тип  подключения пользователя: что это ? я нашла данную колонку в пользователях, вывела её и у всех стоит "0". Но что означает этот ноль непонятно .

Системная настройка не должна быть пустой (это выглядит логично, но я не нашла данную системную настройку "NoReplyNotificationMailboxSettings" в нашей конфигурации и в гугле).

Не пустой email тоже выглядит логично.

И главный вопрос, зачем приравнивать id Схем сообщения и кейса ? 

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

По типу пользователя, см. тему.

Системной настройки с таким кодом стандартно не вижу, возможно, она идёт в пакете с этим БП. Судя по названию, в ней может хранится Id записи о ящике «noreply@...».

Процесс предназначен для работы с напоминаниями раздела обращений, потому и сравнивается Id со схемой Case.

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

Доброго времени суток!Возникла необходимость учитывать регистр строки в фильтре при запросе esq С# . Никто не встречался с такой проблемой?Как это можно реализовать?

Нравится

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

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

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

Благодарю за ответ

Может кому пригодится. Решили эту проблему следующим образом - конвертировали строку в base64.

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

Добрый день! Прошу подсказать, как в печатных формах менять окончания, к примеру ОБЩАЯ СУММА: 46 232 778,78 "Рублей", Цена за ед. в "Рублях", когда Валюта = Рубль без привлечения разработчика 

 

 

 

Нравится

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

Можно с помощью простой функции "Заменить" (Ctrl+H)

Не знаю, какой именно Вы используете из механизмов отчётов, но подозреваю, что без разработки не получится. Если в движке отчётов есть возможность написать логику макроса для подстановки, можно функцией по числовому значению получать нужный текст. Вот пример функции на JS, под C# адаптировать будет несложно.

А если отчёт не позволяет вычислений, можно в объекте рядом с числовым полем добавить текстовое, которое заполнять аналогичным образом в бизнес-процессе на создании и изменении записи, а затем подставить его значение в отчёт.

Также см. статью о том, какие макросы для Word-отчётов в системе есть стандартно, а вот статья о создании своего макроса.

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

Коллеги, добрый день.

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

Задача: при добавлении нового участника в деталь "команда" в карточке продажи - уведомлять добавленного участника в коммуникационной панели.

Делал через бп (скриншот во вложении).



При смене NotificationType на Notification - во вкладке системных уведомлений все отображается корректно. Можно перейти в продажу по ссылке.

При значении Reminding - во вкладке напоминаний пустота (а напоминание нужно как раз именно там). При этом на счетчике самой вкладки видно, что напоминание есть.

Решаема ли задача через бп? Или все же нужно кодить? Сначала подумал что нужно создавать провайдер, но я так понял что после 7.12 схема поменялась? Вообщем буду рад подсказке как это корректнее всего сделать.

С Активностями-Участниками аналогичный бп работает нормально (уведомления в напоминаниях отображаются).

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

Нравится

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

Возможно, при создании записи в таблице Reminding не заполнены нужными значениями все поля. Сравните в базе значения у той записи, что отображается у пользователя в этом разделе верно и у Вашей, созданной при помощи БП.

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

Александр, спасибо за подсказку. В таблице Reminding поле SourceId получает null. Не совсем пока понятно что с этим сделать, но это уже хоть что-то) Буду разбираться.

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

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

Александр, так я тоже пробовал еще в самом начале. К сожалению никакого эффекта это не дает (но кстати SourceId в таблице заполняется, это да).

На данный момент оставил уведомления как NotificationType = Notification. Но хотелось бы конечно разобраться.

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

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