Вопрос

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

подключаю в схеме детали serviceHelper

и пытаюсь обратится к сервису через функцию serviceHelper.callServicce("s1","f1",function(response){},serviceparam,this);

 

но получаю ошибку что нет функции callServicce 

и в отладчике вижу что действительно обьект serviceHelper есть а функции callServicce в нем нет 

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

вопрос. как корректно из детали обратится к сервису?

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

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

Возможно, у вас в функции callServicce лишняя буква c в конце

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

Приветы,

 

Все методы работали. 

Разработка велась в "своем" пакете, а создавалось изначально поле в кастоме.

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

 

Есть описание

{
                    "operation": "insert",
                    "name": "BpSpeekAddr",
                    "parentName": "GeneralInfoGridLayout",
                    "propertyName": "items",
                    "values": {
                        "dataValueType": this.Terrasoft.DataValueType.ENUM,
                        "caption": "Адрес собеседования",
                        "controlConfig": {
                            "list": {
                                "bindTo": "SpeakAddressItems"
                            },
                            "prepareList": { bindTo: "initSpeakAddressItems" },
                            "placeholder": {
                                "bindTo": "Адрес собеседования"
                            }
                        },
                        "layout": {
                "colSpan": 12,
                "rowSpan": 1,
                "column": 12,
                "row": 4,
                        }
                    }
                },

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

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

Воплотил инструкцию https://academy.terrasoft.ru/documents/technic-sdk/7-6-0/kak-sozdat-svo…

всё работает, но есть вопрос - как передать в функцию более 1 параметра? Например, сумму и валюту?

Там есть параметр arguments - им можно воспользоваться?

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

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

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

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

Это уж слишком костыльное решение :) Хочется нормальное.

Тут описывается пример макроса с аргументами и их использованием в Ворде.

Аргументы идут через символ «|» после названия макроса внутри его обрамления.

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

Спасибо! Однако, тут получается, что параметры константны.

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

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

В рамках исполнения бизнес-процесса необходимо несколько раз открывать страницу записи разным пользователям. На странице есть деталь с редактируемым реестром.

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

По идее можно добавить на основную запись скрытую колонку, и как-то загружать деталь в зависимости от условий.. есть, например, решение как скрыть лишние записи - https://community.terrasoft.ua/node/26289

Но вот можно ли вообще реализовать показ разных колонок?

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

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

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

Данила, спасибо, интересная идея.

А можно ли подставлять настройки реестра на лету?

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

Всем доброго времени суток!
Столкнулся с проблемой передачи параметров из клиентского кода в БП

Вот код вызывающий мой БП и туда передаю 2 параметра, названия совпадают:
 

runProcessFormingAudience: function () {
				debugger;
				var folderFilters = this.get("SectionFiltersValue").collection.get("FolderFilters");
				var customFilters = this.get("SectionFiltersValue").collection.get("CustomFilters");
				if(folderFilters || (customFilters && customFilters.null != undefined)){
					var filters = (folderFilters != undefined && folderFilters.length > 0) ? folderFilters[0].filter : customFilters.null.filter;
				}
				var args = {
					sysProcessName: "AbCreatingSmsAudienceProcess",
					parameters: {
						EntitySchemaName: this.entitySchemaName,
						Filters: filters
					}
				};
				ProcessModuleUtilities.executeProcess(args);
			}

Принимаемые параметры - http://prntscr.com/j8wmeg

Далее смотрю что передалось в эти параметры и логирую:
 

var userConnection = Get<UserConnection>("UserConnection");
var log = new LogService(userConnection);
var filters = Get<string>("Filters");
var entitySchemaName = Get<string>("EntitySchemaName");
var smsServiceId = Get<Guid>("SmsServiceId");
var smsName = Get<string>("SmsName");
 
log.RecInfo(string.Format("smsName = {0}", smsName));
log.RecInfo(string.Format("smsServiceId = {0}", smsServiceId));
log.RecInfo(string.Format("entitySchemaName = {0}", entitySchemaName));
log.RecInfo(string.Format("filters = {0}", filters));
 
return true;

И в итоге данные не занеслись - http://prntscr.com/j8wnau
Подскажите из-за чего может вести себя так система? Вроде делаю все правильно.

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

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

немного не понял смысла

customFilters.null

ну да и ладно...

Код актулен, если вы планируете поместить filters в string(по коду var filters = Get<string>("Filters"), я понимаю в этом план).

Варфоломеев Данила,

Благодарю, уже разобрался))

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

После очистки кэша рэдиса перестали вызываться события по таймеру.

Что нужно сделать, чтобы они все заработали?

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

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

Добрый день!

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

 

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

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

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

Ещё графики переделали в 7.12, например, появилась кнопка разворачивания каждого на весь экран.

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

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

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

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

Добрый день коллеги!

Подскажите, пожалуйста, хотим изменить на странице CaseRatingFeedbackPage (Service Entrprise) background. Исходя из кода необходимо в ресурс background (images) засунуть свою картинку. Это получилось, но не понятно, что необходимо написать в качестве исходного кода в замещаемой странице. Если использовать весь код CaseRatingFeedbackPage  , то ни один контейнер не отображается, отображается только картинка в качестве background.

Исходный код страницы CaseRatingFeedbackPage :

define("CaseRatingFeedbackPage", ["ImageView", "ESNHtmlEditModule",
		"CaseRatingFeedbackPageResources", "css!CaseRatingFeedbackPage"],
	function() {
		return {
			attributes: {
				"Comment": {
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
				},
				"Token": {
					"dataValueType": this.Terrasoft.DataValueType.GUID,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
				},
				"EnableQuestionToRequestor": {
					"dataValueType": this.Terrasoft.DataValueType.BOOLEAN,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
				}
			},
			diff:/**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "MainContainer",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.CONTAINER,
						"classes": {
							"wrapClassName": ["main-container"]
						},
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "LogoContainer",
					"parentName": "MainContainer",
					"propertyName": "items",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.CONTAINER,
						"classes": {
							"wrapClassName": ["logo-container container"]
						},
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "ContentContainer",
					"parentName": "MainContainer",
					"propertyName": "items",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.CONTAINER,
						"classes": {
							"wrapClassName": ["content-container"]
						},
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "ThanksMessageContainer",
					"parentName": "ContentContainer",
					"propertyName": "items",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.CONTAINER,
						"classes": {
							"wrapClassName": ["thanks-message-container container"]
						},
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "FeedbackContainer",
					"parentName": "ContentContainer",
					"propertyName": "items",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.CONTAINER,
						"classes": {
							"wrapClassName": ["feedback-container container"]
						},
						"visible": {
							"bindTo": "EnableQuestionToRequestor"
						},
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "Logo",
					"parentName": "LogoContainer",
					"propertyName": "items",
					"values": {
						"id": "logoImage",
						"itemType": this.Terrasoft.ViewItemType.COMPONENT,
						"className": "Terrasoft.ImageView",
						"imageSrc": {
							"bindTo": "getLogoUrl"
						},
						"classes": {
							"wrapClass": ["logo"]
						}
					}
				},
				{
					"operation": "insert",
					"parentName": "ThanksMessageContainer",
					"propertyName": "items",
					"name": "ThanksLabel",
					"values": {
						"itemType": this.Terrasoft.ViewItemType.LABEL,
						"caption": {
							"bindTo": "Resources.Strings.ThanksMessage"
						},
						"labelConfig": {
							"classes": ["thanks"]
						}
					}
				},
				{
					"operation": "insert",
					"name": "CommentTextEdit",
					"parentName": "FeedbackContainer",
					"propertyName": "items",
					"values": {
						"className": "Terrasoft.MemoEdit",
						"itemType": this.Terrasoft.ViewItemType.MODEL_ITEM,
						"dataValueType": this.Terrasoft.DataValueType.TEXT,
						"contentType": this.Terrasoft.ContentType.LONG_TEXT,
						"labelConfig": {
							"visible": false
						},
						"value": {
							"bindTo": "Comment"
						},
						"placeholder": {
							"bindTo": "Resources.Strings.AddCommentHint"
						},
						"markerValue": "comment-text-edit",
						"height": "102px",
						"autoGrow": false
					}
				},
				{
					"operation": "insert",
					"parentName": "FeedbackContainer",
					"propertyName": "items",
					"name": "PostButton",
					"values": {
						"click": {
							"bindTo": "postComment"
						},
						"itemType": this.Terrasoft.ViewItemType.BUTTON,
						"style": this.Terrasoft.controls.ButtonEnums.style.DEFAULT,
						"classes": {
							"textClass": "post-button"
						},
						"caption": {
							"bindTo": "Resources.Strings.PostButtonCaption"
						}
					}
				},
				{
					"operation": "insert",
					"name": "Background",
					"parentName": "MainGridLayout",
					"propertyName": "items",
					"values": {
						"id": "background",
						"itemType": this.Terrasoft.ViewItemType.COMPONENT,
						"className": "Terrasoft.ImageView",
						"imageSrc": {
							"bindTo": "getBackgroundUrl"
						},
						"classes": {
							"wrapClass": ["background"]
						}
					}
				}
			]/**SCHEMA_DIFF*/,
			methods: {
 
				/**
				 * @inheritDoc BaseSchemaViewModel#init
				 * @overridden
				 */
				init: function() {
					this.callParent(arguments);
					var feedbackConfig = this.Terrasoft.feedbackConfig;
					if (feedbackConfig) {
						this.set("Token", feedbackConfig.token);
						this.Terrasoft.feedbackConfig = null;
					}
					this.Terrasoft.chain(this.setInitialvalues, this);
				},
 
				/**
				 * Sets initial values.
				 * @protected
				 * @virtual
				 */
				setInitialvalues: function() {
					this.Terrasoft.SysSettings.querySysSettingsItem("EnableQuestionToRequestor",
						function(value) {
							this.set("EnableQuestionToRequestor", value);
						}, this);
				},
 
				/**
				 * Returns logo image URL.
				 * @private
				 * @return {String} Logo URL.
				 */
				getLogoUrl: function() {
					var config = {
						source: this.Terrasoft.ImageSources.SYS_SETTING,
						params: {
							r: "LogoImage"
						}
					};
					var url = this.Terrasoft.ImageUrlBuilder.getUrl(config);
					return url;
				},
 
				/**
				 * Removes feedback container from DOM.
				 * @private
				 */
				removeFeedback: function() {
					this.Ext.getCmp("CaseRatingFeedbackPageFeedbackContainerContainer").destroy();
				},
 
				/**
				 * Returns background image URL from resources.
				 * @protected
				 * @return {String} Background image URL.
				 */
				getBackgroundUrl: function() {
					var imageResource = this.get("Resources.Images.Background");
					var url = this.Terrasoft.ImageUrlBuilder.getUrl(imageResource);
					return url;
				},
 
				/**
				 * Prepares config for service call.
				 * @protected
				 * @param {String} comment Comment text.
				 * @return {Object} Service call config.
				 */
				getServiceConfig: function(comment) {
					var sendData = {
						token: this.get("Token"),
						comment: comment
					};
					var config = {
						serviceName: "CaseRatingManagementService",
						methodName: "AddComment",
						data: sendData
					};
					return config;
				},
 
				/**
				 * Logs out.
				 * @protected
				 */
				logout: function() {
					var config = {
						serviceName: "UserManagementService",
						methodName: "Logout"
					};
					this.callService(config, function() {
						window.logout = true;
					}, this);
				},
 
				/**
				 * Post a comment via service.
				 * @protected
				 */
				postComment: function() {
					var comment = this.get("Comment");
					if (!comment || !comment.length) {
						var message = this.get("Resources.Strings.CommentIsEmpty");
						this.showConfirmationDialog(message, this.Terrasoft.emptyFn,
							[this.Terrasoft.MessageBoxButtons.OK]);
						return;
					}
					this.showBodyMask();
					var config = this.getServiceConfig(comment);
					this.callService(config, this.onCommentPost);
				},
 
				/**
				 * Post a comment callback function.
				 * Hides body mask and shows fail message upon it happens.
				 * @protected
				 * @virtual
				 * @param {Object} response Service response object.
				 */
				onCommentPost: function(response) {
					this.hideBodyMask();
					var result = response.AddCommentResult;
					if (result.success) {
						this.removeFeedback();
						this.logout();
					} else {
						var message = this.get("Resources.Strings.PostCommentFailed");
						this.showInformationDialog(message, this.Terrasoft.emptyFn);
					}
				}
			}
		};
	});

 

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

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

Если вам нужно только изменить background попробуйте изменить ситсемную натсройку с кодом (Code) "ImageThanksForRaiting". Никаких страниц тогда менять не надо.

Золотарев Артем Андреевич,

Спасибо за предложение.  Но не помогает ...redis чистили )

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

Могу ли я запретить создавать новые записи в реестре, имея только "Администрирование по записям"?

Если я в "Доступ к записям по умолчанию: Изменение" сделаю "кто создает: группа документооборот" и не будет "все сотрудники компании" это поможет сделать так, чтобы создавать могли только люди из группы документооборота?

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

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

Это задаётся не в администрировании по записям, а по объекту.

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

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

Настроили и отладили печатные формы на сервере разработки.

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

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

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

Алексей, здравствуйте!

Ответ на Ваш вопрос есть в топике - https://community.terrasoft.ru/questions/perenos-otcetov-bpm-online-mez…

и

https://community.terrasoft.ru/questions/kak-privazat-razrabotannye-pec…

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