В разделе "Переводы" получаем следующее уведомление\ошибку:



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

Актуализация переводов завершилась с ошибкой.
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at "BS_BCJ_L_M7134ENU.tspkg_Translation", line 16
ORA-06512: at "BS_BCJ_L_M7134ENU.tspkg_Translation", line 72
ORA-06512: at line 2

или такое:



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

Актуализация переводов завершилась с ошибкой.
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at "BS_BCJ_L_M7134ENU.tspkg_Translation", line 16
ORA-06512: at "BS_BCJ_L_M7134ENU.tspkg_Translation", line 72
ORA-06512: at line 2



Подскажите куда копать? Как исправить? 

Нравится

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

Добрый день,

 

Во время изменение структуры нужна эксклюзивная блокировка на таблицу (для сохранения целостности).

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

Обновление должно производиться не в операционное время (любые DDL операции и т.д), а во время тех.окна. Для этого необходимо исключить одновременный доступ к БД из разных источников (IDE, другие копии приложения и т.п.). Если по какой либо причине, такой возможности нет, то необходимо найти сеанс, который предотвращает исключительную блокировку и остановить его.

Так же, с версии Oracle 11g есть возможность  установить "ddl_lock_timeout", чтобы система ожидала эксклюзивной блокировки указанное Вами время.

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

Как полученное фото передать в запись детали без костилей? 



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



Мне это фото нужно загрузить в деталь обратно как он делал при выборе файла. 

Нравится

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

Здравствуйте Ислам!

После воспроизведения данного Вами кода, ошибка №1 не возникала (вероятно из-за разных версий продукта), но появлялась ошибка «Maximum call stack size exceeded error». Причина - обращение к AddRecordButton. Советую сделать замещение в diff на новую кнопку в FileDetailV2:

diff: /**SCHEMA_DIFF*/[
	{
		"operation": "insert",
		"name": "CustomButton",
		"parentName": "Detail",
		"propertyName": "tools",
		"values": {
			"caption": "Click me",
			"itemType": Terrasoft.ViewItemType.BUTTON,
			"click": {"bindTo": "getWebCamClick"},
			"visible": true
		}
	}
]/**SCHEMA_DIFF*/

Добавление фотографий в деталь не выполнялось. Я внесла несколько изменений в ваш код, теперь функционал работает. При открытии модального окна вы можете несколько раз нажать на кнопку «Сделать фото» и после каждого клика будет добавлено новое фото. Прикрепляю обновленные методы CameraPageMixin:

takePhoto: function() {
	var videoElement = document.querySelector("video");
	if (videoElement.srcObject) {
		var desiredWidth = 1000; 
		var desiredHeight = 1000;
		var canvas = document.createElement("canvas");
		canvas.width = desiredWidth;
		canvas.height = desiredHeight;
		var context = canvas.getContext("2d");
		context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
 
		var photoData = canvas.toDataURL("image/jpeg");
		var base64Part = photoData.split(",")[1];
		var buffer = this.base64ToArrayBuffer(base64Part);
		var mimeString = photoData.split(",")[0].split(":")[1].split(";")[0];
		var blob = new Blob([buffer], {type: mimeString});
		var files = new File([blob], "photo.jpeg", {type: "image/jpeg"});
		return files;
	}
	  return null;
},
 
base64ToArrayBuffer: function (base64) {
	var binaryString = atob(base64);
	var bytes = new Uint8Array(binaryString.length);
	for (var i = 0; i < binaryString.length; i++) {
		bytes[i] = binaryString.charCodeAt(i);
	}
	return bytes.buffer;
},

Ошибка №2 возникает из-за потери контекста. В FileDetailV2 метод onFileSelect вызывает getIsNewRecord, а getIsNewRecord отправляет сокетное сообщение GetCardState на DetailModuleV2, хотя должен его отправлять в BasePageV2. Воспроизводится, если хотя бы раз открыть контейнер до перезахода на страницу. Поймать точный момент возникновения проблемы у меня не получилось, к сожалению.

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

 

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

https://academy.creatio.com/docs/developer/front_end_development/sandbox/overview

По нажатию на кнопку будет открываться модальное окно с необходимым функционалом. Пример загрузки модуля описан ниже: https://academy.creatio.com/docs/developer/front_end_development/sandbox/overview#case-2746

Так же хочу уточнить, что метод «CardStateV2.EDIT» актуален только до версии 7.7.0. Для всех следующих версий нужно будет делать его замену. Похожий пример реализации: https://community.creatio.com/articles/error-when-trying-add-new-activity-history-connecred-object?_gl=1*ol2aml*_gcl_au*MTYxNTAzNjkzMi4xNjkyOTU4NzI3

Полезная ссылка по решению загрузки пользовательского модуля с параметрами для конструктора объекта модуля:

https://community.terrasoft.ua/questions/loadmodule-s-parametrami-konstruktora-kak

В конце для загрузки фото с модуля нужно отладить загрузку файла во вложения и вызов ендпоинта /0/rest/FileApiService/UploadFile

 

С уважением,

Ангелина

Anhelina,

Благодарю за подробный ответ, мне не понятен последний момент. С отладкой загрузки файла. Мы можем реализовать этот кейс вызвав функцию upload(config), которая реализована в FileDetailV2?  Если да, то подскажите где посмотреть примеры?

Ислам,

Вы можете вызвать функцию, передав нужное значение в config, так: this.Terrasoft.ConfigurationFileApi.upload(config, callback);

Модуль ConfigurationFileApi нужно добавить в зависимости: define(" ", [… " ConfigurationFileApi "], …

Так же могут быть полезными статьи:

https://academy.terrasoft.ua/docs/developer/ehlementy_interfejsa/strani…

https://community.terrasoft.ua/questions/vstavit-element-photocontainer…

Anhelina,

Я реализовал вызов Upload и у меня добавляется при нажатии на фотографировать фото в детали, но деталь ломается. Сразу после этого она перестает обновляться, то есть если я перехожу по другим записям деталь зависает и выводит две ошибки:

1)  "Message DetailRendered is not defined in DetailModuleV2 (CardModuleV2_9d571769-06d3-44bf-a1bc-94c8fa686266_FinApplicationContactPage_detail_DocListInFinAppDetail_detail_nested_FilesDocListInFinAppFile) module"



2)



Я так понимаю ошибка происходит тут в файле FileDetailV2: 









Для ясности оставлю код и детали и миксина, которые снимает фото с веб камеры: 

ДЕТАЛЬ:

 

define("FileDetailV2", ["ModalBox", "CameraPageMixin","ConfigurationEnums","ConfigurationFileApi"],
function(ModalBox, ConfigurationEnums) {
	return {
		attributes: {},
		messages: {},
		mixins: {
			CameraPageMixin: "Terrasoft.CameraPageMixin"
		},
		methods: {
 
			getWebCamClick: function() {
				var webCamModuleContainer = this.Ext.create("Terrasoft.Container", {
					id: this.mixins.CameraPageMixin.containerId,
					classes: { 
						wrapClassName: ["webcam-module-container-class"] 
					}
				});
				var photoContainerId = this.Ext.create("Terrasoft.Container", {
					id: this.mixins.CameraPageMixin.photoContainerId,
					classes: { 
						wrapClassName: ["photo-container-class"] 
					}
				});
			    var captureButton = this.Ext.create("Terrasoft.Button", {
			       caption: "Сделать фото",
			        handler: function() {
				        this.onCapturePhotoClick();
				    }.bind(this) 
			    });
			    var closeButton = this.Ext.create("Terrasoft.Button", {
			    	caption: "Закрыть окно",
			        handler: function() {
				        this.closeModalBox();
				    }.bind(this)
			    });
				var parentRecordId = this.get("MasterRecordId");
				var modalBoxConfig = {
					minHeight : "1",
					minWidth : "1",
					maxHeight : "100",
					maxWidth : "100",
			        id: this.sandbox.id + "_CustomModalBox",
			        handler: this,
			        selector: "#CustomModalBox",
			        renderTo: Ext.getBody(),
			        instanceConfig: {
			            parentRecordId: parentRecordId
			        }
			    };
			    var modalBoxContainer = ModalBox.show(modalBoxConfig,  this.destroy.bind(this));
			    ModalBox.setSize(510, 440);
			    modalBoxContainer.setStyle("background-color", "#FFFFFF");
 
 
				webCamModuleContainer.render(modalBoxContainer);
				photoContainerId.render(modalBoxContainer);
				captureButton.render(modalBoxContainer);
				closeButton.render(modalBoxContainer);
 
			    this.mixins.CameraPageMixin.openWebCamClick.apply(this, arguments);
			},
			onCapturePhotoClick: function(callback) {
 
			   var files = this.mixins.CameraPageMixin.takePhoto.apply(this, arguments);
				var config = this.onFileSelect(files);
				if (config) {
					this.Terrasoft.ConfigurationFileApi.upload(config, callback);
				}
			},
			closeModalBox: function() {
				this.mixins.CameraPageMixin.closeWebCamAndRemoveContainer.apply(this, arguments);
			    ModalBox.close();
			}
 
		},
		diff: /**SCHEMA_DIFF*/[
			{
			    "operation": "merge",
			    "name": "AddRecordButton",
			    "parentName": "Detail",
			    "propertyName": "tools",
			    "values": {
			        "itemType": Terrasoft.ViewItemType.BUTTON,
			        "tag": "addFileButton",
			        "fileUpload": false,
			        // "filesSelected": {"bindTo": "onFileSelectOveridden"},
			        "click": {"bindTo": "getWebCamClick"},
			        // "visible": {"bindTo": "getAddRecordButtonVisible"},
			        "imageConfig": {"bindTo": "Resources.Images.AddButtonImage"}
			    }
			}
			]/**SCHEMA_DIFF*/
	};
});

 Миксин: 

define("CameraPageMixin", [], function() { 
    Ext.define("Terrasoft.configuration.mixins.CameraPageMixin", {
        alternateClassName: "Terrasoft.CameraPageMixin",
 
		afterRender: function() {
            this.callParent(arguments);
            this.webcamStarted = false;
        },
	    videoWidth: 500,
	    videoHeight: 380,
	    videoStream: null,
	    containerId: "WebCamModuleContainer",
	    photoContainerId: "PhotoModuleContainer",
 
        onGetApplicationId: function(applicationId) {
           this.alert(applicationId);
        },
	    openWebCamClick: function() {
	           try {
	               var videoElement = document.createElement("video");
	               videoElement.setAttribute("autoplay", "true");
	               videoElement.width = this.videoWidth;
	               videoElement.height = this.videoHeight;
 
	               navigator.mediaDevices.getUserMedia({ video: true })
	                   .then(function(stream) {
	                       videoElement.srcObject = stream;
	                       this.videoStream = stream;
 
	                     var container = this.Ext.get(this.containerId);
	                     if (container) {
	                          container.dom.appendChild(videoElement);
	                          this.webcamStarted = true;
	                      } else {
	                          window.console.error("Ошибка: элемент с идентификатором " 
	                          + this.containerId + " не найден в DOM.");
	                	  }
	                   }.bind(this))
	                   .catch(function(error) {
	                       window.console.error("Ошибка при получении доступа к веб-камере:", error);
	                   }); 
	           } catch (e) {
	                 window.console.error("Произошла ошибка при инициализации веб-камеры:", e);
	           }
	    },
 
	    takePhoto: function() {
	        var videoElement = document.querySelector("video");
	        if (videoElement.srcObject) {
				var desiredWidth = 1000; 
		        var desiredHeight = 1000;
	            var canvas = document.createElement("canvas");
				canvas.width = desiredWidth;
		        canvas.height = desiredHeight;
	            var context = canvas.getContext("2d");
	            context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
 
	           var photoData = canvas.toDataURL("image/jpeg");
			   var byteString = atob(photoData.split(",")[1]);
		       var mimeString = photoData.split(",")[0].split(":")[1].split(";")[0];
		       var ab = new ArrayBuffer(byteString.length);
		       var ia = new Uint8Array(ab);
		       for (var i = 0; i < byteString.length; i++) {
		           ia[i] = byteString.charCodeAt(i);
		       }
		       var blob = new Blob([ab], {type: mimeString});
		       var files = new File([blob], "photo.jpeg", {type: "image/jpeg"});
		        return files;
	        }
			  return null;
	    },
 
	    closeWebCamAndRemoveContainer: function() {
	        if (this.videoStream) {
	            this.videoStream.getTracks().forEach(function(track) {
	                track.stop();
	            });
	        }
	        var container = this.Ext.get(this.containerId);
	         if (container) {
	             container.dom.remove();
	         }
 
	    }
	 });
    return Ext.create(Terrasoft.CameraPageMixin);
});



 

Здравствуйте Ислам!

После воспроизведения данного Вами кода, ошибка №1 не возникала (вероятно из-за разных версий продукта), но появлялась ошибка «Maximum call stack size exceeded error». Причина - обращение к AddRecordButton. Советую сделать замещение в diff на новую кнопку в FileDetailV2:

diff: /**SCHEMA_DIFF*/[
	{
		"operation": "insert",
		"name": "CustomButton",
		"parentName": "Detail",
		"propertyName": "tools",
		"values": {
			"caption": "Click me",
			"itemType": Terrasoft.ViewItemType.BUTTON,
			"click": {"bindTo": "getWebCamClick"},
			"visible": true
		}
	}
]/**SCHEMA_DIFF*/

Добавление фотографий в деталь не выполнялось. Я внесла несколько изменений в ваш код, теперь функционал работает. При открытии модального окна вы можете несколько раз нажать на кнопку «Сделать фото» и после каждого клика будет добавлено новое фото. Прикрепляю обновленные методы CameraPageMixin:

takePhoto: function() {
	var videoElement = document.querySelector("video");
	if (videoElement.srcObject) {
		var desiredWidth = 1000; 
		var desiredHeight = 1000;
		var canvas = document.createElement("canvas");
		canvas.width = desiredWidth;
		canvas.height = desiredHeight;
		var context = canvas.getContext("2d");
		context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
 
		var photoData = canvas.toDataURL("image/jpeg");
		var base64Part = photoData.split(",")[1];
		var buffer = this.base64ToArrayBuffer(base64Part);
		var mimeString = photoData.split(",")[0].split(":")[1].split(";")[0];
		var blob = new Blob([buffer], {type: mimeString});
		var files = new File([blob], "photo.jpeg", {type: "image/jpeg"});
		return files;
	}
	  return null;
},
 
base64ToArrayBuffer: function (base64) {
	var binaryString = atob(base64);
	var bytes = new Uint8Array(binaryString.length);
	for (var i = 0; i < binaryString.length; i++) {
		bytes[i] = binaryString.charCodeAt(i);
	}
	return bytes.buffer;
},

Ошибка №2 возникает из-за потери контекста. В FileDetailV2 метод onFileSelect вызывает getIsNewRecord, а getIsNewRecord отправляет сокетное сообщение GetCardState на DetailModuleV2, хотя должен его отправлять в BasePageV2. Воспроизводится, если хотя бы раз открыть контейнер до перезахода на страницу. Поймать точный момент возникновения проблемы у меня не получилось, к сожалению.

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

Как реализовать этот пример как модуль?

 

Сейчас написал следующий модуль: 

Ext.define("USACapturizePhotoModule", [], function() {
    Ext.define("Terrasoft.configuration.USACapturizePhotoModule", {
        extend: "Terrasoft.BaseModule",
        alternateClassName: "Terrasoft.USACapturizePhotoModule",
 
        init: function() {
            this.callParent(arguments);
        },
 
        render: function(renderTo) {
            this.callParent(arguments);
            var config = this.generateConfig();
            Ext.create(config, renderTo);
        },
 
        generateConfig: function() {
            var width = 750;
            var height = 500;
            var video;
 
            return {
                xtype: "panel",
                title: "Сделать фото клиента",
                height: height,
                width: width,
                draggable: true,
                closable: true,
                floating: true,
                layout: {
                    type: "vbox",
                    pack: "center",
                    align: "stretch"
                },
                items: [{
                    html: "<video id='video'></video>",
                    flex: 1,
                    listeners: {
                        afterrender: function() {
                            video = document.getElementById("video");
                        }
                    }
                }],
                bbar: [{
                    xtype: "button",
                    text: "Запустить камеру",
                    itemId: "startbutton",
                    enableToggle: true,
                    toggleHandler: function(btn, state) {
                        var streaming = false;
                        var stream;
                        if (state) {
                            navigator.mediaDevices.getUserMedia({ video: true, audio: false })
                                .then(function(stream) {
                                    stream = stream;
                                    video.srcObject = stream;
                                    video.play();
                                })
                                .catch(function(err) {
                                    window.console.error("An error occurred: " + err);
                                });
                            video.addEventListener("canplay", function(ev) {
                                if (!streaming) {
                                    height = video.videoHeight / (video.videoWidth / width);
                                    if (isNaN(height)) {
                                        height = width / (4 / 3);
                                    }
                                    video.setAttribute("width", width);
                                    video.setAttribute("height", height);
                                    streaming = true;
                                }
                            }, false);
                        } else {
                            video.pause();
                            video.src = "";
                            if (stream) {
                                stream.getTracks().forEach(function(track) {
                                    track.stop();
                                });
                            }
                            video.srcObject = null;
                        }
                        this.ownerCt.down("#takePhoto").setDisabled(!state);
                    }
                }, {
                    xtype: "button",
                    text: "Сделать снимок",
                    disabled: true,
                    itemId: "takePhoto",
                    handler: function() {
                        var canvas = document.createElement("canvas");
                        canvas.width = width;
                        canvas.height = height;
                        var context = canvas.getContext("2d");
                        context.drawImage(video, 0, 0, width, height);
 
                        var imageSrc = canvas.toDataURL("image/png");
                        Terrasoft.utils.log(imageSrc);
                        canvas = null;
                    }
                }]
            };
        }
    });
 
    return Terrasoft.USACapturizePhotoModule;
});

 

Нравится

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

Сделал в виде миксина: 

define("CameraPageMixin", [], function() { 
    Ext.define("Terrasoft.configuration.mixins.CameraPageMixin", {
        alternateClassName: "Terrasoft.CameraPageMixin",
 
		afterRender: function() {
            this.callParent(arguments);
            this.webcamStarted = false;
        },
 
	    videoWidth: 500,
	    videoHeight: 380,
	    videoStream: null,
	    containerId: "WebCamModuleContainer",
	    photoContainerId: "PhotoModuleContainer",
 
	    openWebCamClick: function() {
	           try {
	               var videoElement = document.createElement("video");
	               videoElement.setAttribute("autoplay", "true");
	               videoElement.width = this.videoWidth;
	               videoElement.height = this.videoHeight;
 
	               navigator.mediaDevices.getUserMedia({ video: true })
	                   .then(function(stream) {
	                       videoElement.srcObject = stream;
	                       this.videoStream = stream;
 
	                     var container = this.Ext.get(this.containerId);
	                     if (container) {
	                          container.dom.appendChild(videoElement);
	                          this.webcamStarted = true;
	                      } else {
	                          window.console.error("Ошибка: элемент с идентификатором " 
	                          + this.containerId + " не найден в DOM.");
	                }
	                   }.bind(this))
	                   .catch(function(error) {
	                       window.console.error("Ошибка при получении доступа к веб-камере:", error);
	                   }); 
	           } catch (e) {
	                 window.console.error("Произошла ошибка при инициализации веб-камеры:", e);
	           }
	    },
 
	    takePhoto: function() {
	        var videoElement = document.querySelector("video");
	        if (videoElement.srcObject) {
	            var canvas = document.createElement("canvas");
	            canvas.width = this.videoWidth;
	            canvas.height = this.videoHeight;
	            var context = canvas.getContext("2d");
	            context.drawImage(videoElement, 0, 0, canvas.width, canvas.height);
 
	            var photoData = canvas.toDataURL("image/png");
 
	            this.closeWebCamAndRemoveContainer();
	            this.showModalWindow();
 
	        }
	    },
	    closeWebCamAndRemoveContainer: function() {
	        if (this.videoStream) {
	            this.videoStream.getTracks().forEach(function(track) {
	                track.stop();
	            });
	        }
	        var container = this.Ext.get(this.containerId);
	         if (container) {
	             container.dom.remove();
	         }
 
	    },
	    showModalWindow: function() {
	        this.showConfirmationDialog("Не пройдена по техническим причинам?", 
	            this.showModalCallback, 
	            [this.Terrasoft.MessageBoxButtons.NO.returnCode, this.Terrasoft.MessageBoxButtons.YES.returnCode], 
	            null);
	    },
 
	    showModalCallback: function(returnCode) {
	        if (returnCode === this.Terrasoft.MessageBoxButtons.YES.returnCode) {
	            Terrasoft.showInformation("Нажата кнопка ДА");
	        } else if (returnCode === this.Terrasoft.MessageBoxButtons.NO.returnCode) {
	            Terrasoft.showInformation("Нажата кнопка НЕТ");
	        }
	    }
	 });
    return Ext.create(Terrasoft.CameraPageMixin);
});

 

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

Добавил плитку смс сообщения фильтр по этой статье, сама надпись фильтра появляется,

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

но

1. Не могу изменить иконку.

2. Не работает фильтр при нажатии, получаю ошибку(рис1)Изображение удалено.

define("SmsMessageTimelineItemView", ["BaseTimelineItemView"], function() {
 
	Ext.define("Terrasoft.configuration.SmsMessageTimelineItemView", {
		extend: "Terrasoft.BaseTimelineItemView",
		alternateClassName: "Terrasoft.SmsMessageTimelineItemView",
 
		getResultMessageViewConfig: function() {
			return {
				"name": "Message",
				"itemType": Terrasoft.ViewItemType.LABEL,
				"caption": "Message",
				"visible": {
					"bindTo": "Message",
					"bindConfig": {
						"converter": "isNotEmptyValue"
					}
				},
				"classes": {
					"labelClass": ["timeline-text-normal"]
				}
			};
		},
        getMessageViewConfig: function() {
            var config = this.callParent(arguments);
            config.visible = {
                "bindTo": "IsExpanded"
            };
            return config;
        },
		getBodyViewConfig: function() {
			var bodyConfig = this.callParent(arguments);
			bodyConfig.items.unshift(this.getResultMessageViewConfig());
			return bodyConfig;
		}
 
		// endregion
 
	});
});

А вот модель 

define("SmsMessageTimelineItemViewModel", 
["SmsMessageTimelineItemViewModelResources", "BaseTimelineItemViewModel"],
    function() {
        Ext.define("Terrasoft.configuration.SmsMessageTimelineItemViewModel", {
            alternateClassName: "Terrasoft.SmsMessageTimelineItemViewModel",
            extend: "Terrasoft.BaseTimelineItemViewModel"
        });
    });

Вот Json для TimelineTileSetting:

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

А для TimelinePageSetting

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

Нравится

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

Добрый день, Ислам,

 

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

 

С уважением,

Ангелина

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

Всем привет! При обновлении системы возникает ошибка в пакете Exchange (ошибка на версии 7.18.2):

Продукт: BankSales_BankCustomerJourney_Lending_Marketing

Версия: 7.16.2.1600 -> 7.18.5

Dbo: MSSQL

Ошибка:

[19:19:13] 1) D:\Work\Apps\MMB_7.18.5\Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src\ExchangeSyncService.Exchange.cs(125,39) error CS0029: Cannot implicitly convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List' 

[19:19:13] 2) D:\Work\Apps\MMB_7.18.5\Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src\ExchangeUtility.Exchange.cs(248,11) error CS0029: Cannot implicitly convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List' 

[19:19:13] Utility finished working. 

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

Нравится

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

Добрый день.

 

Рекомендуем вам обратится в техническую поддержку Creatio.

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

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

Нравится

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

Добрый день!

Проблема в контексте отрисовки вашей таблицы, который не видит функций родительской схемы.

В вашем случае событие onclick нужно привязать к методу, который потом объявить в

clientsInfo += '<script>---

Дима Вовченко,

Спасибо Дима , помогло

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

Как отвязать модуль !css - этот css модуль был удалён из проекта, но при замещение страница пытается его вытянуть и получаю ошибку: fused to apply style from 'http://locahost:89/0/ConnectedDetailCSS.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled. Изображение удалено.

Я заместил страницу, но не могу найти отвязки модуля css!ConnectedDeatailCSS

Нравится

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

Добрый день!

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

1) Убрать зависимость в схеме, где она была объявлена

2) Создать пустой модуль ConnectedDetailCSS

Добрый день!

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

1) Убрать зависимость в схеме, где она была объявлена

2) Создать пустой модуль ConnectedDetailCSS

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

Доброго времени суток, я не могу настроить elasticsearch по этим настройкам я не могу найти  Morphological Analysis Plugin for ElasticSearch как я понял bintray закрыли и по ссылке тоже не получилось собрать russianmorphology. 



Подскажите как мне теперь установить этот плагин для ElasticSearch?

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

Нравится

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

Добрый день!

 

Рекомендуем подключить новую версию глобального поиска доступную по ссылке 

https://academy.creatio.com/docs/user/on_site_deployment/containerized_components/global_search_shortcut/global_search

она обратно поддерживается для вашей версии.

Указанная вами версия не поддерживается.

 

С уважением, 

Антон

Добрый день!

 

Рекомендуем подключить новую версию глобального поиска доступную по ссылке 

https://academy.creatio.com/docs/user/on_site_deployment/containerized_components/global_search_shortcut/global_search

она обратно поддерживается для вашей версии.

Указанная вами версия не поддерживается.

 

С уважением, 

Антон

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

Добрый день.

Столкнулся с проблемой обновления на 7.18.1.

Проблема заключается в том, что при отключении ODataEntities с помощью скрипта Set-AppSettingInWebConfig обрезается "\" ,если указан путь на удаленную машину.

После чего падает ошибка как указана в статье ниже.

https://community.creatio.com/questions/error-while-updating-7180-7181

 

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

 

Спасибо!

 

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

Нравится

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

Добрый день, Сергей!

 

Обновление необходимо запускать на сервере, на котором размещено приложение.  

 

Также, вижу, что в статье предоставлены некоторые рекомендации как бороться с данной ошибкой. Уточните, пожалуйста, пробовали ли вы им следовать? Есть ли какой-то результат?

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

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

В процессе устанавливаю шлюз «Логическое И» и по одному из потоков управления идёт обработка таймера. Проблема в том, что процесс будто не видит этот таймер и сразу выполняет элементы после этого таймера. Хотя процесс должен ждать определённое количество минут, пока таймер не закончится. Что делать в таком случае?

Нравится

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

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

 

С этим вопросом рекомендуем обратиться напямую в поддержку Creatio зарегистрировав обращение, так как тут надо будет проверять работу процесса на самом сайте и искать причину такого поведения.

 

С уважением,

Мирослава

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

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