Всем доброго времени суток. Версия 7.10.

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

В базовой схеме раздела BaseSectionV2 есть функция addRecord, где есть проверка типа:

if (this.hasAddMiniPage(typeColumnValue)) {
						this.openAddMiniPage({
							entitySchemaName: this.entitySchemaName,
							valuePairs: this.getAddMiniPageDefaultValues(typeColumnValue)
						});
					} else {
						this.openCardInChain({
							schemaName: schemaName,
							operation: ConfigurationEnums.CardStateV2.ADD,
							moduleId: this.getChainCardModuleSandboxId(typeColumnValue),
							instanceConfig: {
								useSeparatedPageHeader: this.get("UseSeparatedPageHeader")
							}
						});
					}

typeColumnValue - это guid типа контакта.

Вопрос - где искать функцию hasAddMiniPage, или быть может где-то нужно добавить тип контакта в некий список?

Попробовал в переопределении ContactSectionV2 сделать так:

hasAddMiniPage: function(typeColumnValue){
				if ( (typeColumnValue == "00783ef6-f36b-1410-a883-16d83cab0980") || (typeColumnValue == "60733efc-f36b-1410-a883-16d83cab0980") ){
					return true;
				} else {
					this.callParent(arguments);
				}
			}

На странице списка контактов, конечно, работает, но в других местах есть и отдельные детали, привязанные к объекту Contact, поэтому очевидно, что это решает проблему лишь частично.

Нравится

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

Денис, добрый день!

Информация касательно использования миникартчоки хранится в базе данных в таблице SysModuleEdit. Если для страницы редактирования используется миникарточка, то в поле MiniPageSchemaUId указывается UId схемы миникарточки.

Также, рекомендую ознакомиться со статьей: https://academy.terrasoft.ru/documents/technic-sdk/7-11/sozdanie-mini-k…

Новак Руслан,

Руслан, спасибо, но есть ещё пара вопросов:

Нашёл в базе две записи:

Id:"a4f8a54f-2794-4eae-9ce4-4f8d66061a60"
MiniPageSchemaUId:"2741dd1e-7c35-432c-915a-9aa228eb057b"
PageCaption:"Сотрудник"
 
Id:"7b055f93-bb7e-463a-a6ce-24c2730f0f8e"
MiniPageSchemaUId:""
PageCaption:"Клиент"

Судя по MiniPageSchemaUId - это они. Запросом через batch query добавил такой же id "2741dd1e-7c35-432c-915a-9aa228eb057b" и в запись для клиента. Но миникарточка всё равно не показывается.

Где-то ещё нужно поправить?

Смородинов Денис,

возможно, после добавления Uid миникарточки в запись в таблице SysModuleEdit, требуется почистить кэш, перелогиниться, и, возможно еще и redis

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

После создания и привязки детали к странице невозможно сделать привязку данных в объекте "Карточка раздела" в поле "Объект раздела" (в поле отображается <Нет доступа>). Есть ли какой-то способ разблокировать это поле и сделать доступным для привязки, либо всегда необходимо делать ручной скрипт обновления таблицы?

Нравится

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

Здравствуйте, Сергей!

При создании детали вручную необходимо привязывать страницу к объекту (добавить запись в объект SysModuleEdit) только скриптом. выполнение этих действий через интерфейс не предусмотрено. 

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

https://academy.terrasoft.ru/documents/technic-sdk/7-11/sozdanie-detali…

 

Новак Руслан,

сами записи в таблицах SysModuleEdit, SysModuleEntity уже существуют. Проблема в инструменте привязки данных,

где по каким-то причинам невозможно привязаить поле "Объект раздела", хотя данные для него уже есть в БД. В результате отображается надпись <Нет доступа>

 

 

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

Максим Цынгаев,

SysModuleEntity, соответсвующее объекту раздела, уже привязано

Букало Сергей Сергеевич,

А в чем собственно заключается основная проблема? Для чего Вам эта привязка? Сколько переносил детали через привязку в Data - никогда не было проблем, даже если там проставлено, что объект секции недоступен.

Максим Цынгаев,

Деталь переносится, но после переноса не отображается кнопка добавления новой записи. Эмпирическим способом выяснили, что это зависит от наличия значения поля "Объект раздела", поэтому хочется, чтобы это поле тоже переносилось. Если это не так, то буду благодарен за пояснения

Я привязываю к пакету SysDetail, SysModuleEdit и SysModuleEntity (т.е. ровно то, что прописано в инструкции по добавлению детали вручную) - кнопка добавления новой записи вполне удачно показывает (мы же говорим про плюсик у детали?). На сколько я помню, на наличие этого плюсика влияет наличие записи о странице редактирования для детали, но никак не объект раздела. Чтобы перенести настройки колонок детали, еще привязываю данные из SysProfileData.

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

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

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

На отдельной вкладке изменяю модуль-схему. Сохраняю. В эмуляторе жму синхронизация.Происходит синхронизация и перезапуск приложения-эмулятора. Проверяю изменения. И в это время вкладка с модулем-схемой сообщает о системной ошибке.

Сталкивались ли вы с таким поведением? Может это как то лечится?

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

Нравится

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

попробуйте очистить Redis и перезапустить application pool

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

Спасибо за предложения.

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

Добрый день!

Возможно, кто-то сталкивался.  Процесс идет по циклу. Для задач "Открыть страницу редактирования" я устанавливаю длительность таким образом

([#Длительность задачи(мин)#]==-1)?480:[#Длительность задачи(мин)#]

На первом круге все работает, но когда иду на второй круг, то выходит ошибка

Невозможно вычислить выражение "([#[IsOwnerSchema:false].[IsSchema:false].[Parameter:{d68182d4-d334-4166-a66e-c2f355d8db20}]#]==-1)?480:[#[IsOwnerSchema:false].[IsSchema:false].[Parameter:{d68182d4-d334-4166-a66e-c2f355d8db20}]#]", ошибка: Допущена ошибка в формуле: Expression expected (at index 1).

при этом в "вопрос пользователю я задаю это же выражение в качестве вопроса ([#Длительность задачи(мин)#]==-1)?480:[#Длительность задачи(мин)#] и там оно выводит все корректно, а именно длительность установить на втором круге не может и процесс валиться с ошибкой

 

 

 

Нравится

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

Добрый день!

 

Есть 75 Контрагентов, который нужно сменить Ответственного. Каким образом это можно сделать?

Нравится

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

Ну, как вариант, напишите бизнес-процесс, который изменит ответственного с учетом фильтра.

Добрый день. Самый оптимальный вариант - написать UpdateQuery. Вы можете задаться вопросом, почему бы не сделать это непосредственно в базе с помощью SQL скрипта? Дело в том, что данный вариант не затронет бизнес-логику приложения, как минимум - новому Ответственному не будут выданы полные права на запись, а также не будут запущены процессы, которые начинаются на изменение Ответственного. В то время как вариант с UpdateQuery идентичен изменению Ответственного в интерфейсе приложения.

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

Добрый день, интересует следующее:

Можно ли в мобильной версии, например по чекбоксу/кнопке получить "Текущее местоположение устройства"? (Координаты).

Нравится

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

Получил частично информацию по своему вопросу, для этого необходимо обновиться до версии 7.10.3. И вот дополнительная информация по работе с Чек-ином. 

https://academy.terrasoft.ru/documents/sales-enterprise/7-10/kak-kontro…

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

Представим, что есть некий ftp.

Так же в некой карточке есть Iframe в котором отображается данный ftp.

Так вот вопрос, есть предположения каким обраом осуществить загрузку файла на ftp по клику на кнопку?

P.s. кнопка уже готова и файл выбирается, но в силу своих знаний я не могу додумать оставшийся вопрос с отправкой их куда-то не в BPM)

Так что коллеги, прошу Вашей мудрой помощи и идей.

Нравится

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

"и файл выбирается" — это onFileUpload срабатывает или у вас есть стрим с файлом в своём сервисе? 

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

Срабатывает onFileSelect и конец. Набор свойств внутри этого метода довольно скудный. 

Тоже думал по такому принципу отправлять, но нет, стрима нет пока что.

Кисловский Михаил Андреевич,

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

Варфоломеев Данила пишет:

как найду - скину ссылку.

Буду признателен.

P.s. Не в первый раз) 

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

На странице редактирования записи раздела A есть деталь Samples.

Для работы с данными этой детали на странице редактирования разработана специальная функциональность.

Добавлено строковое виртуальное поле [Sample ID] (скрин во вложении). Пользователь бипирует образец с нужным штрихкодом, который вносится в это поле, потом нажимает кнопку [Find sample] и выполняется некоторая функциональность по обработке образца с таким номером, если он найден на данной детали.

Проблема заключается в том, что иногда на детали очень много образцов и нужная запись не всегда находится 'на глазах' у пользователя. Если пользователь будет вручную её искать, то на это будет уходить много времени.

Решением такой проблемы может быть, например, чтобы при нажатии на кнопку [Find sample] накладывался фильтр по полю Sample детали.

При этом важно, чтобы фильтр тоже отображался визуально, аналогично тому, если бы пользователь установил его вручную!

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

Также мне не очень нравится тот факт, что при нажатии на кнопку [Find sample] в базу будет идти +1 дополнительный запрос ко всем уже существующим.

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

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

Нравится

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

1) В tools детали кладёте textEdit и кнопку. По желанию можно залепить всё это стилями для красоты.

2) По нажатию на кнопку делается reloadGridData()

3) В initQueryFilters считываете значение из поля, если есть пользователь ввел хоть что-то, в esq добавляете свой фильтр (допустим как я делал: по названию, тип сравнения CONTAINS)

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

Добрый день!

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

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

Нравится

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

Добрый день! Группу получателей можно выбирать в продукте Marketing и интегрирован с системой рассылки. Данный функционал подразумевает единичную отправку

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

Добрый день!

Ранее в нашей системе записывались звонки , после какого то момента запись остановилась. С чем может быть связана данная проблема и как ее решить?

Заранее спасибо за ответ!

Нравится

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

Здравствуйте, Оксана!

Функционал записи звонков зависит от многих параметров, в частности от используемой АТС и настройки параметров интеграции (возможность прослушивание записей звонков можно ограничить через интерфейс системы). Без проведения анализа на проблемном стенде очень тяжело определить возможную проблему. В связи с этим рекомендую Вам обратится в службу технической поддержки для анализа ошибки.

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