Есть деталь "Регион проведения мероприятия" с полями "Страна" и "Регион". На странице детали так же есть еще одна деталь "Города". Стоит задача выводит в реестр детали страну, регион и список городов. Подскажите, как лучше реализовать данный функционал?

Нравится

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

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

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

На самом деле особой надобности выводить список городов нет. Только в целях удобства. Можно поподробнее про вывод агрегируемой ф-ей? Или может эта тема есть в SDK? А там уже видно будет - стоит задачу решать, или оставить стандартный функционал.

Олег,
Агрегирующие функции производят вычисление одного «собирающего» значения (суммы, среднего, максимального, минимального значения и т. п.) для заданных групп строк таблицы.
То есть, вывести значения по городам невозможно, возможно лишь посчитать кол-во городов.

http://academy.terrasoft.ru/documents/docs/product/bpm'online%20real%20estate/real%20estate/7.6.0/BPMonlineHelp/chapter_list_setting/chapter_list_setting_columns.htm

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

Здравствуйте.
Подскажите пожалуйста каким образом можно удалить созданные детали, которые уже не используются или же были созданы ошибочно? В Конфигурации удалил из папки всё. Однако, при добавлении ново созданных деталей в списке остаются и старые, которые были удалены.
Благодарю.

Нравится

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

Дмитрий, думаю, что данная статья поможет
http://www.community.terrasoft.ru/forum/topic/13214

"Демьяник Алексей Олегович" написал:Здравствуйте!

Сами разделы/детали (их страницы редактирования, а также объекты, на которые они ссылаются) Вы можете удалить из конфигурации.
При этом в базе данных останутся записи. Необходимо удалить записи с таблиц:
SysModule
SysModuleEdit
SysModuleEditLcz

Также обратите внимание на таблицу SysDetails.

Добрый день Дмитрий!!!

на будущее совет прежде чем удалять Деталь, Страницу редактирования, или раздел из конфигурации, скопируйте все Uid каждой схемы.
постройте запросы к таблицам
- SysSchema
- SysModuleEntity
- SysModuleEdit
- SysModuleEditLcz
- SysDetails
- SysModule
- SysModuleLcz
Найдите все хвосты, где хранятся ссылки на удаляемые схемы, вычистите таблицы, а уже после удаляйте схемы через конфигурацию. Так будет надежнее. И не забывайте о "Данных", именно с помощью данных мы фиксируем и переносим наши созданные новые страницы. Там тоже нужно не забывать вычищать все.

Здравствуйте.
Спасибо за помощь. Покопаюсь в таблицах.

Добрый день Дмитрий!!!

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

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

Добрый день!
В разделе контрагентов имеются определенные динамические фильтры и группы. Пользователи будут соответственно удобным для себя образом структурировать объекты данного раздела. В дальнейшем необходимо использовать это в другом разделе (аналогично с планированием визитов), где контрагенты будут представлены деталью в разделе (см. скриншоты в аттаче).
Как можно реализовать подобный функционал?

Нравится

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

Добрый день, Никита!

Если я правильно Вас понял, Вам необходимо, чтобы в разделе [Активности],[Планирование визитов] в списке контрагентов, слева, была возможность настройки динамических групп.
К сожалению, данный функционал в базовой версии не предусмотрен.

"Липатов Юрий Сергеевич" написал:

Добрый день, Никита!

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

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


Юрий,доброго времени суток!
Это я прекрасно понимаю. Хотелось бы услышать от вас как это можно решить с точки зрения программирования на js

Добрый день.

Можно попробовать сделать следующее: необходимо добавить в функциональную кнопку детали Контрагентов(PlanningAccountDetailV2) пункт меню с вызовом метода ShowFolderTree из BaseSectionV2, но отрендерить в контейнер PlaningCardContainer. Так же нужно будет добавить пункт меню с возвратом к детали Контрагентов.

Представление «Планировение» сильно переделывалось и такое решение может не помочь.

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

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

Здравствуйте, коллеги, подскажите решение такой проблемы!

Система BPMonline Bank Sales 7.5

Задача: есть деталь "Удостоверение личности" в разделе Физ. лица. Необходимо при открытии карточки реактирования детали скрывать часть полей этой карточки в зависимости от значения чекбокса "Резидент/Нерезидент" карточки раздела этого Физ. лица.

Как решить задачу понятно. Вопрос в том, на какое событие при открытии карточки детали читать значение связанного поля "Contact" для дальнейшего построения EQS запроса и определения значения чекбокса "Нерезидент" объекта Contact?

На события init, initEntity, onRender запрос this.get("Contact") выдает ошибку "undefined"

Заранее благодарен за помошь!

Нравится

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

"Геращенко Александр Михайлович" написал:запрос this.get("Contact")

на самой детали срабатывает this.get("MasterRecordId");

К сожалению this.get("MasterRecordId"); тоже не работает - "undefined"

Александр, попробуйте в методе onEntityInitialized после вызова родительского метода (this.callParent(arguments);). В это время уже должны быть доступны значения инициализированных полей карточки.

Олег, спасибо, все получилось!

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

При добавлении, удалении или изменении записи детали "Бонусы", поле "Бонус по плану" каждой записи пересчитывается относительно суммы полей "Доля" всех записей. Пересчет реализован на сервере при событиях onSaved и onDeleted. Обновление грида детали происходит при помощи subscriber:

"SxProjectTeamBonus": {
"schemaName": "SxProjectTeamBonusDetailV2",
"entitySchemaName": "SxProjectTeamBonus",
"filter": {
"detailColumn": "SxProject",
"masterColumn": "Id"
},
subscriber:function(){
this.updateDetail(
{
detail: "SxProjectTeamBonus",
reloadAll: true
}
);
}
}
При удалении или изменении записи, в гриде детали на странице проекта отображаются верные значения. Но при добавлении правильные значения только у добавленной записи. Остальные же не обновляются. В базу заносятся правильные значения, но деталь просто отказывается обновляться.
Пробовал и this.updateDetail({detail: "SxProjectTeamBonus"}) и this.updateDetails() и при помощи SUBSCRIBE/PUBLISH.
Как заставить грид детали обновиться при добавлении новой записи?

Нравится

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

Решил проблему с помощью reloadEntity()
Но, может быть, все-таки есть способ обновить грид детали не обновляя страницу проекта?
Интересный факт - при нажатии на колонку грида, чтобы отсортировать по ней записи - данные обновляются.

Олег, добрый день!

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

Версия BPMOnline 7.5

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

Рекомендую посмотреть процессы, реализованные в объекте "Продукт в заказе" - при добавлении или удалении записи запускается процесс, которые пересчитывает поле "Итого".
Аналогичным образом может быть реализована Ваша задача.

Важно! При добавлении/удалении записи, Вам необходимо (на сколько я понял), пересчитывать не только значение поля в самом разделе, но еще и все записи в объекте детали, у которых поле для связи с объектом содержит то же значение, что и у добавляемой/удаляемой записи.

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

Есть деталь на странице проекта. В lookupListConfig справочного поля Проект указаны два поля, которые доступны при добавлении или изменении записи детали, но не доступны при копировании. Можно скопировать запись, сохранить ее, а потом изменить - поля становятся доступными. Поля детали расчитываются на основе полей на странице проекта. Возможно каким-то образом сделать их доступными, чтобы не брать значения с помощью EntitySchemaQuery?

Нравится

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

Добрый день, Олег.

Если Вам не трудно, прошу Вас уточнить Ваш вопрос скриншотами.

Если я правильно понял, то Вас интересует как передать значение со страницы проекта в страницу детали, чтобы рассчитать значение полей. Это можно сделать с помощью messages.
1. В объект messages проекта добавить SUBSCRIBE. В объект messages детали добавить PUBLISH.
2. На init проекта подписаться на сообщение
this.sandbox.subscribe("GetSomeInfoFromDetail", function(argument) {
return this.someFunctionUsingArgument();
}, this, ["key"]);
3. На детали, когда Вам нужно получить значение с проекта сделать sandbox.publish
var result = this.sandbox.publish("GetSomeInfoFromDetail", valueToSend, ["key"]);

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

Спасибо, Вы очень помогли :smile:

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

Добрый день.
Возникла необходимость добавить в деталь блок быстрой фильтрации, как в модуле активности (даты, ответственный). Если с добавлением такого блока в другой раздел проблем нет, то с деталью все сложнее. Буду признателен за помощь в решении этой задачи.
BPM 7.5

Нравится

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

В 7.6 сделали функциональность такую, но крайне урезанную

Иван, добрый день!

Данный функционал был реализован в 7.6.
В 7.5. добавление фильтрации в детали трудозатратно, так как для данной реализации необходимо полностью переделывать модуль фильтрации, добавлять связи, добавлять колонки/поля и т.д.

Как вариант можете обновить приложение до версии 7.6.

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

Как программно управлять сворачиванием и разворачиванием групп полей и деталей? Например, при открытии карточки одну деталь всегда показывать развёрнутой, а другую свёрнутой? (Сейчас система запоминает последнее состояние и использует его для следующего показа)

Нравится

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

Владимир, здравствуйте!

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

/**
				 * Обрабатывает сворачивание или разворачивание детали.
				 * @protected
				 * @virtual
				 * @param {Boolean} isCollapsed Признак свернутости/развернутости детали.
				 */
				onDetailCollapsedChanged: function(isCollapsed) {
					var profile = this.getProfile();
					var key = this.getProfileKey();
					if (profile && key) {
						profile.isCollapsed = isCollapsed;
						this.Terrasoft.utils.saveUserProfile(key, profile, false);
					}
					this.set("IsDetailCollapsed", isCollapsed);
				},
Показать все комментарии

Сейчас, чтобы изменить запись в детали (например, Адреса в Контрагентах), необходимо выполнить аж 3 нажатия - выбрать запись, нажать на три точки, выбрать в меню "Изменить".Так как это нужно довольно часто использовать, то было бы хорошо сократить всё до одного нажатия. Например, на кнопку, которая могла бы располагаться слева от записи (там, где появляется check-box при множественном выборе)

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

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

Ещё удобнее было бы это сделать по двойному клику на строке детали.

"Пащенко Александр Сергеевич" написал:Ещё удобнее было бы это сделать по двойному клику на строке детали.

Двойной клик на планшете или телефоне - это немного не то :)

В версии 7.6 уже есть возможность сделать реестр детали редактируемым (как в продуктах заказа, например). Мы планируем в будущем сделать возможность включения такого режима пользовательской. Это должно решить вопрос.

"Старун Юлия" написал:Это должно решить вопрос

Только если деталь очень простая (количество полей для редактирования небольшое).

Согласна. На самом деле кое-где функционал двойного щелчка работает и дублирует кнопку (настройка итогов, деталь "Пользователи" в администрировании). А технически можно отображать кнопку у выделенной записи, еще можно отдельно напротив каждой записи отображать значок открытия, по размеру достаточный для попадания на планшете. В общем UX решения задачи нужно будет тестировать, но идея однозначно полезная. Беклоги на ближайшую версию уже сформированы, но обязательно учтем запрос при планировании следующих релизов. Так что голосуйте! Мы выбираем наиболее востребованный функционал.

"Старун Юлия" написал:есть возможность сделать реестр детали редактируемым

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

"Александр Кудряшов" написал: редактируемый реестр неудачный сейчас

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

"Идти и искать" вообще можно в лозунг интерфейса вынести. Я сегодня наслушался от клиентов, так что непозитивен.
Сижу вот сейчас регистрирую справочник в разделе справочники - встаем на группу Контакты в дереве, делаем добавить справочник, сохраняем - справочник логично попадает не в группу, а в общую кучу. Идем, ищем, выбираем - идем, ищем, нажимаем добавить в группу - готово. И вот тут по мелочи, там по мелочи...

"Александр Кудряшов" написал:

"Идти и искать" вообще можно в лозунг интерфейса вынести. Я сегодня наслушался от клиентов, так что непозитивен.

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

И главное, что "Идеи" остаются без внимания :(

Интересно, а когда реализована будет? :)

Здравствуйте, Владимир!

Сейчас разрабатывается концепция данной функциональности. Ее рализация запланирована в последующих релизах.
На текущий момент, обходным решением является использование детали с редактируемым реестром или создание детали, по примеру детали "Пользователи", в разделе "Организационная структура", в которой открытие записи происходит по двойному клику.

Хочу уточнить, ожидаются ли изменения? :)

Добрый день, Владимир. Задача по улучшению UX работы с данными в деталях уже есть в наших планах. Дополнительно сообщим конкретный релиз, в который вошла данная функциональность.

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

Хочу змінити колір записів в журналі змін на деталі "Звернення".

Забезпечив зміну кольорів в загальному журналі змін.
А от як забезпечити таку ж зміну кольорів на деталі журналу в реєстрі звернень ніяк не можу розібратися.

var config = base.GetModuleRowConfig(module);
Guid changeType = module.GetTypedColumnValueGuid>("ChangeTypeId");
string backgroundColor;
if (changeType == new Guid("A852C33F-0BDD-E011-92C3-00155D04C01D")) {
        backgroundColor = "Green";
} else if (changeType == new Guid("AA52C33F-0BDD-E011-92C3-00155D04C01D")) {
        backgroundColor = "Red";
} else if (changeType == new Guid("38DF8CD6-13FE-E411-97E7-005056981054")) {
        backgroundColor = "Grey";
} else {
        backgroundColor = "Blue";
}
config.AddConfig(new DataSourceRowColorConfigValue(backgroundColor));
return config;


Ніяк не знайду модуль, в якому треба зробити таке налаштування.

 

Нравится

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

Мне кажется, такое можно сделать и на уровне страницы реестра детали.
Вбил в поиск по исходникам кофигурации слово «DataSourceRowColorConfigValue», нашло такое.
На ините GridPage:

Page.TreeGrid.GetRowConfigHandler += delegate(Entity row) {	
	var delegation = row as ApprovalDelegation;
	var config = new DataSourceRowConfig(delegation.Id.ToString());
	var currentDate = UserConnection.CurrentUser.GetCurrentDateTime();
 
	if(delegation.EndDate.Date < currentDate.Date)
	{
        config.AddConfig(new DataSourceRowColorConfigValue("Grey"));
	}
	return config;
};

Похоже, оно тоже раскрашивает в зависимости от значения поля. Тут «ApprovalDelegation» — просто объект, используемый в DataSource детали.

Для детали журнала используется страница «Страница реестра истории изменений объектов».
Будьте осторожны, она может использоваться в разных разделах. Если хотите раскрасить только для обращений, надо будет добавить проверку.

Вдалося ідентифікувати модуль: "RecordAllChangesGridPage".

Доброго дня, 

 

На жаль, базовими засобами додатку це реалізувати неможливо, але ми вже передали це побажання відповідальній R&D команді, для реалізації такої можливості в майбутнії версіях додатку.  

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