Вопрос

Добрый день!

В чем может быть проблема?
Настройка системы думаю корректна. Иначе компиляция не проходила бы вообще в системе.

Порядок действий:
Система в режиме разработки в БД
Создаю WS в своем пакете - WS прекрасно работает.

Перевожу систему в режим разработки в файловой системе
Жму Компилировать Все.

Система ругается на WS:
При проверке схемы произошли ошибки: "System.IO.FileNotFoundException: Зависимость пакета не найдена. Путь поиска:

Удаляю WS. Компиляция проходит.
Дальше не получается ранее работающий WS вернуть в систему из-за однотипной стабильной ошибки, которую указал выше.
Это классический случай, который решается мелкой донастройкой или тут что-то более серьезное может быть?

У меня такой же вопрос

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

Попробуйте после перевода BPM в разработку в файловой системе сделать выгрузку в ФС, а затем скомпилируйте конфигурацию

Григорий Чех,

Помогло. Спасибо!

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

Всем доброго дня. Версия 7.12.

Существует ли способ отписки от сообщения? Обычно в init идёт подписка на sandbox примерно в таком виде:

init: function(callback, scope) {
	this.callParent(arguments);
 
	this.sandbox.subscribe("startMessageEvent", function(arg) {
		console.log(arg)
	}, this, ["messageId"]);
},

Можно ли отписаться от sandbox? Конкретная задача - изменить обработчик, т.е. то, что внутри функции function(arg){}. Предполагаю, что для этого нужно сначала отписаться от сообщения, после чего подписаться на него заново.

У меня такой же вопрос

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

Попробуйте полностью переопределить метод init.

Проще использовать базовый функционал а именно unsubscribePtp примерно так:

this.sandbox.unsubscribePtp("startMessageEvent");
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем доброго дня. Версия 7.12.

При открытии дизайнера страницы возникает ошибка.

Попытка генерации исходного кода и компиляции всей сборки не помогла. В чём может быть причина ошибки? 

У меня такой же вопрос

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

При открытии любой страницы или только страницы (страниц) какогото конкретного раздела? Если это какой то конкретный раздел какие изменения в него вносились?

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

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

Добрый день!

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

Как можно вынести свое поле в блок расширенные настройки?

вариант реализации через "добавить элемент" не хотелось бы рассматривать.

 

 

У меня такой же вопрос

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

Добрый день!
При открытии страницы на добавление новой записи любые поля можно предзаполнять (https://monosnap.com/file/tPSQ0trcaysvRU4HTCUngC2G16hyXF). При открытии страницы на редактирование такое сделать нельзя, да и не нужно это делать (перезатирать существующие значения).

Сидоров Александр В.,

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

Опочина Любовь,

"При этом создается активность" - тогда предлагаю во внутреннем бизнес процессе Активности добавить логику по заполнению полей при создании активности

Сидоров Александр В.,

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

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

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

Всем добрый день. Версия 7.12.

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

 

У меня такой же вопрос

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

Фильтры групп хранятся в поле SearchData таблиц XXXFolder.

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

Добрый день!

Имеется view. Хочу вывести показатель "сумма" строк с учетом фильтра. Выбираю объект, устанавливаю фильтр и получаю ошибку:

{errorCode: "ArgumentNullOrEmptyException", message: "Значение аргумента "queryExpressions" не может быть пустым", stackTrace: undefined, errors: Array(0)}

Может быть надо как-то "правильно" указывать значения view или еще чего-то надо?

У меня такой же вопрос

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

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

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

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

Запрос даже до профайлера не дошел (по крайне мере не видел его там). Вьюха просто состоит из колонок текстовых и ID. Я могу работать с ней (есть справочник + используется в БП), но ни график ни показатель сделать не могу. Показатель простой - количество без фильтра (в таблице 5 строк). Запрос у вьюхи тоже элементарный (прямая копия таблицы с другой базы).

Быстров Сергей,

Такая ошибка возникает для пустых и null объектов типа System.String, то есть, вероятнее всего, причина в данных используемого представления.

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

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

Реализовал разделение календаря по сотрудникам в фильтре через кучу diff. Встал вопрос - как наполнить каждый разными данными?
По умолчанию activityCollection планировщика указан как ScheduleGridData. Соответственно, на каждый календарь на странице создаю ScheduleGridData0, ScheduleGridData1, ScheduleGridData2 и так далее и подставляю эти значения в каждый activityCollection, но календари становятся вообще пустыми. Я так понимаю, вопрос в методах отрисовки, но тогда придется переписывать половину CRM.
Подскажите, как каждый календарик наполнить своим содержимым или что нужно изменить?

Вот пример одного из календарей

{
            "operation": "insert",
            "name": "Schedule0",
            "parentName": "DataViewsContainer",
            "propertyName": "items",
            "values": {
                 "id": "ActivitySectionV2Scheduler0",
                 "selectors": {"wrapEl": "#ActivitySectionV2Scheduler0"},
                 "itemType": Terrasoft.ViewItemType.SCHEDULE_EDIT,
                 "visible": {"bindTo": "isSchedulerVisible0"},
                 "startHour": Terrasoft.SysSettings.cachedSettings.SchedulerTimingStart,
                 "displayStartHour": Terrasoft.SysSettings.cachedSettings.SchedulerDisplayTimingStart + "-00",
                 "dueHour": Terrasoft.SysSettings.cachedSettings.SchedulerTimingEnd,
                 "timeScale": {"bindTo": "getTimeScale"},
                 "period": {"bindTo": "getSchedulerPeriod"},
                 "timezone": [{}],
                 "startDate": null,
                 "dueDate": null,
	         "activityCollection": {"bindTo": "ScheduleGridData0"},
                 "selectedItems": {"bindTo": "SelectedRows"},
                 "changeSelectedItems": {"bindTo": "onChangeSelectedItems"},
                 "scheduleItemDoubleClick": {"bindTo": "onScheduleItemDoubleClick"},
                 "scheduleItemTitleMouseOver": {"bindTo": "scheduleItemTitleMouseOver"},
                 "scheduleItemTitleClick": {"bindTo": "scheduleItemTitleClick"},
                 "change": {"bindTo": "changeScheduleItem"},
                 "selection": {"bindTo": "SchedulerSelection"},
                 "floatingItemsCollection": {"bindTo": "SchedulerFloatItemsCollection"},
                 "selectionKeyPress": {bindTo: "onSelectionKeyPress"},
                 "floatingItemReady": {"bindTo": "onFloatingItemReady"},
                 "selectionKeyPressSymbols": {"bindTo": "SchedulerSelectionPressedKeys"},
                 "itemBindingConfig": {
                     "itemId": {"bindTo": "Id"},
                     "title": {"bindTo": "getScheduleItemTitle"},
                     "changeTitle": {"bindTo": "onTitleChanged"},
                     "startDate": {"bindTo": "StartDate"},
                     "changeStartDate": {"bindTo": "onStartDateChanged"},
                     "dueDate": {"bindTo": "DueDate"},
                     "changeDueDate": {"bindTo": "onDueDateChanged"},
                     "status": {"bindTo": "getScheduleItemStatus"},
                     "changeStatus": {"bindTo": "onStatusChanged"},
                     "background": {"bindTo": "Background"},
                     "fontColor": {"bindTo": "FontColor"},
                     "isBold": {"bindTo": "IsBold"},
                     "isItalic": {"bindTo": "IsItalic"},
                     "isUnderline": {"bindTo": "IsUnderline"},
                     "markerValue": {"bindTo": "getScheduleItemHint"}
                   },
                   "floatingItemBindingConfig": {
                        "caption": {"bindTo": "getSimpleModuleCaption"},
                        "width": {"bindTo": "getSimpleModuleWidth"}
                   }
}

 

У меня такой же вопрос

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

Смотрите, как реализовано расписание для нескольких пользователей в дополнении «Advanced schedule for bpm'online». 

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

Добрый вечер, сейчас встала необходимость размножить  календарь на странице активностей, чтобы в каждом отображался только один сотрудник (то есть, допустим, в фильтрах 3 сотрудника - значит, выводится 3 разных календаря) С системой работал, но сейчас встал на общем понимании того, как это сделать - изучение кода родителей не помогло.
Подскажите, пожалуйста, хотя бы в 2-3 строчках, общую идею куда копать чтобы это реализовать, заранее огромное спасибо!

У меня такой же вопрос

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

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

 

 

Возможно вам будут полезны эти приложения 1 2 3 доступные на меркетплэйсе

 

В первом, Advanced schedule for bpm'online, как раз есть то, что Вы хотите:

Дополнение платное, но есть «тест-драйв», можно установить и посмотреть, как оно сделано.

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

Добрый день. Версия 7.12.

Возникла проблема с отправкой сообщения из БП на клиентскую часть. Используем стандартный механизм:

Terrasoft.Configuration.MsgChannelUtilities.PostMessage(userConnection, MessageName ,MessageText );

Выяснилось, что если в системе залогинены одновременно два пользователя под одним аккаунтом (с разных компьютеров), то сообщение приходит только одному из них, причём не всегда тому, кто непосредственно запускал бизнес-процесс.

Я вообще правильно ли понимаю, что сообщения по MsgChannelUtilities должны получать все, кто сейчас находится в системе? И как тогда отправить сообщение непосредственному пользователю, запустившему БП?

У меня такой же вопрос

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

Добрый день
Работа 2-х пользователей в системе под одним аккаунтом - не совсем корректная работа с системой.
Скорее всего будет приходить сообщение только одному пользователю.

Чтобы отослать сообщение всем, используйте метод MsgChannelUtilities.PostMessageToAll с передачей Id пользователя, запустившего БП, а на клиенте уже разбирайте ответ

ясно, спасибо, попробую с PostMessageToAll 

Логично, когда под одной учёткой работает один реальный пользователь. В противном случае теряется смысл в разграничении прав, журнале изменений и лицензировании. Приход сообщения в один браузер — нормальная работа системы, в более старых версиях приходило во все, потом исправили.

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

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

В модуле HtmlEditModule многие обработчики кнопок wysiwyg-редактора завершаются примерно следующим образом:

var container = this.ownerCt;
var editor = container.editor;
if (editor) {
	editor.execCommand("bold");
}

Вопрос такой - а где обрабатывается отправляемая команда? Необходимо расширить редактор для определённых задач.

У меня такой же вопрос

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

Обработка происходит в 2х редакторах AceEdit.js (SourceCodeEdit) и ckeditor.js (HtmlEditModule) расположеных соответственно в \Terrasoft.WebApp\conf\content  и \Terrasoft.WebApp\Resources\ui\CKEditor

 

Скорее всего вам нужен CKEditor, так как первый используется для редактирования исходного кода (js и cs)

Обработка происходит в 2х редакторах AceEdit.js (SourceCodeEdit) и ckeditor.js (HtmlEditModule) расположеных соответственно в \Terrasoft.WebApp\conf\content  и \Terrasoft.WebApp\Resources\ui\CKEditor

 

Скорее всего вам нужен CKEditor, так как первый используется для редактирования исходного кода (js и cs)

Григорий Чех,

в ckeditor нашёл только вот это

define("ckeditor", ["ckeditor-base"], function() {
	var warningMessage = Ext.String.format(Terrasoft.Resources.ObsoleteMessages.ObsoleteModule,
		"ckeditor", "ckeditor-base");
	window.console.log(warningMessage);
});

 

Как я выше уже написал смотрите в папке Resources\ui\CKEditor\ вашего сервера

Это всё, что нашлось.

Я выше уже 2 раза написал где смотреть а вы почему то ищете в конфигурации

Так же обратите внимание на статью 

У CKEditor есть свой сайт, где могут быть плагины, которые реализуют то, что хотите доработать. Вопросы возможности установки плагинов обсуждались здесь.

Войдите или зарегистрируйтесь, чтобы комментировать