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

Очевидно, что можно очистить кеш браузера, или отключить его вовсе. Но когда система уже эксплуатируется не комильфо каждого пользователя просить очистить кеш своего(их) браузера(ов).

Нравится

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

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

Очистку кеша необходимо осуществлять средствами браузера. Пример расширения, которое очищает кеш браузера:
https://chrome.google.com/webstore/detail/cache-killer/jpfbieopdmepaolg…

Если система уже эксплуатируется. Скажем, в ней работает 50 человек. Вносятся доработки.
И для того чтобы все пользователи смогли использовать новый функционал, необходимо либо заставить каждого пользователя очистить кеш своего браузера либо ожидать когда время кеша истечёт?

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

Здравствуйте. До обновления создавал формулы расчёта процентов, но после уже идёт затруднение. Быть может нужно по другому делать точно не знаю. Но при составлении выражения она отказывается сохранять, утверждая, что это "неверная операция". Помогите пожалуйста разобраться

Благодарю.

Нравится

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

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

Попробуйте так:

ОкруглитьВверх(Convert.ToSingle([#Читать данные продукта.Результат функции#])*0.96)

"Демьяник Алексей" написал:Convert.ToSingle(

Благодарю за помощь. Всё сохранилось и работает

Тут снова выдаются ошибки при попытке изменения и компиляции:

[url=http://radikal.ru/big/sh8c9s3amg5yu][img]http://s014.radikal.ru/i326/16…]

[url=http://radikal.ru/big/y0edjl9siokp8][img]http://s013.radikal.ru/i324/16…]

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

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

Нравится

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

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

Такое поведение наблюдается только в браузере Google Chrome. Обратитесь, пожалуйста, в службу поддержки для предоставления пакетов с исправлениями.

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

В продукте sales enterprice 7.8 в карточку раздела я добавила деталь "Запросы" с фильтром, отображающем на детали записи только с определенным типом.
Фильтр детали работает, но только после сброса кеша в браузере.
Без фильтра реестр записи обновлялся сразу после добавления записи на деталь. Как реализовать мгновенное обновление отфильтрованного реестра детали?

Нравится

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

Здравствуйте, Анастасия.

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

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

http://www.community.terrasoft.ru/forum/topic/15210

"Мотков Илья" написал:

Здравствуйте, Анастасия.

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

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

http://www.community.terrasoft.ru/forum/topic/15210

Вот код:

details{
"UsrSchema4Detail19b3960f": {
"schemaName": "UsrSchema4Detail",
"entitySchemaName": "UsrRequest",
"filter": {
"detailColumn": "UsrSale",
"masterColumn": "Id"
},
"filterMethod": "UsrRequestFilter1"
}
}

methods{
UsrRequestFilter1: function() {
var filterGroup = new this.Terrasoft.createFilterGroup();
filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
filterGroup.add(
"OpportunityFilter",
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrSale",
this.get("Id")
)
);
filterGroup.add(
"UsrRequestFilter",
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrTypeRequest",
"38cc7931-7db6-4e12-a343-1033f6316cf1"
)
);
return filterGroup;
}

}

В методе UsrRequestFilter1 после "return filterGroup;" теперь вызвали фунцию this.updateRequestDetails();

Сама функция:
updateRequestDetails: function(callback) {
this.updateDetail({detail: "UsrSchema4Detail19b3960f"});
callback.call(this);
}

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

Также пробовали код:

messages: {
"SetFilter": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
}
}
Деталь в массиве details:

"UsrSchema3Detailddb8302f": {
"schemaName": "UsrSchema3Detail",
"entitySchemaName": "UsrRequest",
"filter": {
"detailColumn": "UsrSale",
"masterColumn": "Id",
"UsrTypeRequest": "D0FBEB54-1381-4B01-A1F4-2BF074639122"
},
"filterMethod": "UsrRequestFilter1"
}

В массиве metthods разместили:
init: function() {
this.callParent(arguments);
console.log(this.sandbox.id);
this.sandbox.subscribe("SetFilter", function(arg) {
this.UsrRequestFilter1();
}, this, [this.getSenderSandboxId()]);
},
getSenderSandboxId: function() {
return this.sandbox.id + "_detail_UsrSchema3Detailddb8302fUsrRequest";
}

Но все равно фильтрация начинает работать только после сброса кеша.

Здравствуйте,
updateDetail точно не в фильтр метод нужно добавлять.
Проверьте для начала отладкой (точкой останова в фильтр методе), вызывается ли фильтр метод после добавления новой записи в деталь. Если не вызывается, то это будет один вопрос. Если вызывается но не фильтруются записи. Другой.
Так же вероятно в фильтр методе эта группа лишняя:
filterGroup.add(
"OpportunityFilter",
this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL,
"UsrSale",
this.get("Id")
)
);
Ведь по данной связи идет фильтрация и так благодаря:
"filter": {
"detailColumn": "UsrSale",
"masterColumn": "Id"
},
Проверьте вышесказанное и отпишитесь.

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

Добрый день! Задача добавить свою кнопку в раздел редактирования записи и привязать к ней метод печати. Прочитал этот пост https://community.terrasoft.ru/forum/topic/13265 узнал что при нажатии на кнопку вызывается метод CreateReport, вопрос может кто нибудь подсказать как вызвать этот метод в js в разделе где определяются методы methods {....} и получить и передать все необходимые параметры?

Нравится

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

Здравствуйте, Антон!

За функционал печатных форм отвечает миксин PrintReportUtilities. Генерация коллекции печатных форм происходит в методах initCardPrintForms и initSectionPrintForms. События клика на печатных формах в секции и карточке редактирования обрабатываются в методах generateCardPrintForm и generateSectionPrintForm. Для изменения логики стандартных печатных форм необходимо заместить данные методы с добавлением пользовательской логики.

Как альтернативное решение, Вы можете добавить пользовательскую кнопку печати и при клике обращаться к вэб сервису напрямую. Реализацию обращения к вэб сервису для печати "Печатных форм", Вы можете посмотреть в методе generatePrintForm схемы PrintReportUtilities (NUI).

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

При выборе печатной формы последовательно вызываются три JS метода:
generateCardPrintForm()
generatePrintForm()
downloadReport()

Эти методы наследуются со схемы PrintReportUtilities. При нажатии на Вашу кнопку Вам необходимо вызывать эти методы.

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

Добрый день, коллеги!
В продукте Bpm'online 7.8 sales enterprise возникла потребность добавить иконку для отправки Email-сообщений в карточку нового кастомного раздела.
Можете подсказать, как реализовать этот кейс?

Нравится

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

Здравствуйте, Анастасия!

Это функциональность ActionsDashboard, реализация находится в одноименном пакете. На примере реализации в системе, в разделе контакты, сначала инциализируется сам модуль в схеме страницы раздела(в данном случае ContactPageV2):

"ActionsDashboardModule": {
						"config": {
							"isSchemaConfigInitialized": true,
							"schemaName": "SectionActionsDashboard",
							"useHistoryState": false,
							"parameters": {
								"viewModelConfig": {
									"entitySchemaName": "Contact",
									"dashboardConfig": {
										"Activity": {
											"masterColumnName": "Id",
											"referenceColumnName": "Contact"
										}
									}
								}
							}
						}
					}
				},

Затем на страницу добавляется сам блок:

					{
						"operation": "insert",
						"name": "ActionsDashboardModule",
						"parentName": "ActionDashboardContainer",
						"propertyName": "items",
						"values": {
							"classes": {wrapClassName: ["actions-dashboard-module"]},
							"itemType": Terrasoft.ViewItemType.MODULE
						}
					},
Показать все комментарии

Добрый день

В карточке продукты отображается слишком много данных. Некоторые данные (название продукта, его характеристики) нам нужнее, нежели стоимость, скидки, налоги и т.д. (см. вложение).
Можно ли как-то скрыть некоторые группы данных на форме (см. вложение)?

Нравится

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

Если нужно скрыть какой-то элемент (в том числе и группу элементов) на карточке, можно открыть её в TSAdmin и выставить ему свойство IsVisible равным false.

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

Если нужно скрыть какой-то элемент (в том числе и группу элементов) на карточке, можно открыть её в TSAdmin и выставить ему свойство IsVisible равным false.


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

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

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

Добрый день! Собираюсь через пару недель пройти сертификацию по разработке на платформе bpm’online, хотел бы узнать, что входит в 60 минут практического задания по настройке системы и можно ли посмотреть примеры такого задания?!

Нравится

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

Добрый день, подскажите как добавить свое действие по аналогии с теми что уже есть в этом модуле
Qss

Нравится

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

Добрый день,
Информацию можно найти тут - https://academy.terrasoft.ua/news/176522
Две статьи - "Добавление инструментальной панели действий" и "Добавление нового канала в Actions Dashboard"

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

Здравствуйте!
В продукте sales enterprice 7.8 в справочнике "Типы с средств связи" добавляю новое средство связи "Ссылка на VK" и выбираю тип коммуникации "Соц. сеть", но после добавления на странице контакта и контрагента запись в поле "Ссылка на VK"отображается в виде текста, даже если вводить через http.
Нужно реализовать обработку поля "Ссылка на VK" как ссылку без изменения типа коммуникации на "Web" и без реализации синхронизации с аккаунтом Вконтакте.
При этом стандартные средства связи Facebook и Twiter оставить рабочими (с реализацией синхронизации).

Нравится

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

В базовой версии приложения функционал средств связей, например, с типом «E-mail» и «Web» реализован только для базовых значений (реализовано на уровне конкретных ID). Реализацию данного функционала можете посмотреть в схеме «BaseCommunicationViewModel».

Если Вы хотите, чтобы пользовательские поля с типом «Web» имел такую же логику как и базовая, то есть работал как ссылка, то попробуйте пожалуйста, следующее:

- заместить полностью «CommunicationUtils»;
- переопределить метод isWebType, возвращая там true для не только базовых записей по Id, но и для Вашей.

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

Илья, спасибо! Разобрались:smile:

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