Подскажите, люди добрые!

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

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

Нравится

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

Можно настроить свое представление и выводить его в итоги в виде гистограммы или списка с колонками фамилией сотрудника и днями месяца.

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

Создайте свой отчет или деталь или раздел. Все зависит от ваших потребностей.

Можно настроить свое представление и выводить его в итоги в виде гистограммы или списка с колонками фамилией сотрудника и днями месяца.

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

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

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

Друзья, я начинающий разработчик. Прошу помощи в написании кода для детали.

ТЗ: необходимо присваивать категорию клиенту в зависимости от его оборота.

Код работает, но не динамически. Когда добавляю деталь категория пустая. Вношу оборот, сохраняю, потом еще раз захожу в деталь и вот только тогда категория изменяется, после этого сохраняю. Если не сохраню, категория снова будет пустая.



Есть ли возможность сделать изменение категории в детали моментально? Как в любом разделе делается. 

Допускаю, что есть непонимание в коде. 

define("UsrUsrPribilPoKvortalam1Page", [], function() {
	return {
		entitySchemaName: "UsrPribilPoKvortalam",
		attributes: {
			"UsrOborotPoLK": {
				dataValueType: Terrasoft.DataValueType.FLOAT,
				dependencies: [
				{
						columns: ["UsrOborot1"],
						methodName: "calcUsrOborotPoLK"
					}
				]
			},
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.calcUsrOborotPoLK();
					},
					calcUsrOborotPoLK: function() {
					var slovo = this.get("UsrKategoriyaKlienta");
							if (this.get("UsrOborotPoLK") <= 30) {
								slovo = "до 30";
							}else if (this.get("UsrOborotPoLK") <= 50 && this.get("UsrOborotPoLK") > 30){
								slovo = "до 50";
							}else if (this.get("UsrOborotPoLK") <= 70 && this.get("UsrOborotPoLK") > 50){
								slovo = "до 70";
							}else if (this.get("UsrOborotPoLK") <= 100 && this.get("UsrOborotPoLK") > 70){
								slovo = "*";
							}else if (this.get("UsrOborotPoLK") <= 200 && this.get("UsrOborotPoLK") > 100){
								slovo = "**";	
							}else if (this.get("UsrOborotPoLK") <= 500 && this.get("UsrOborotPoLK") > 200){
								slovo = "***";
							}else if (this.get("UsrOborotPoLK") <= 1000 && this.get("UsrOborotPoLK") > 500){
								slovo = "****";
							}else if (this.get("UsrOborotPoLK") > 1000){
								slovo = "*****";
							}
					this.set("UsrKategoriyaKlienta", slovo);
					},
				},



 

Нравится

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

SavelyevOll,

Передавать нужно ссылку на функцию которая будет вызываться по изменению поля (в нашем случае this.calcUsrOborotPoLK),
те так: this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK, this); 

Те ф-ция init будет такой
init: function() {
this.callParent(arguments);
this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK, this);
},

Пример использования смотрите тут

Метод onEntityInitialized срабатывает только при загрузке детали, если я правильно понял, то вам нужно что бы по изменению оборота вычислялась категория. Тогда попробуйте использовать следующий код:

init: function() {
	this.callParent(arguments);
	this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK(), this);
}

 

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

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

 
init: function() {
this.callParent(arguments);
this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK(), this);
	},
	calcUsrOborotPoLK: function(){
	var slovo = this.get("UsrKategoriyaKlienta");
	if (this.get("UsrOborotPoLK") &lt;= 30) {
		slovo = "до 30";
	}else if (this.get("UsrOborotPoLK") &lt;= 50 &amp;&amp; this.get("UsrOborotPoLK") &gt; 30){
		slovo = "до 50";
	}else if (this.get("UsrOborotPoLK") &lt;= 70 &amp;&amp; this.get("UsrOborotPoLK") &gt; 50){
		slovo = "до 70";
	}else if (this.get("UsrOborotPoLK") &lt;= 100 &amp;&amp; this.get("UsrOborotPoLK") &gt; 70){
		slovo = "*";
	}else if (this.get("UsrOborotPoLK") &lt;= 200 &amp;&amp; this.get("UsrOborotPoLK") &gt; 100){
		slovo = "**";	
	}else if (this.get("UsrOborotPoLK") &lt;= 500 &amp;&amp; this.get("UsrOborotPoLK") &gt; 200){
		slovo = "***";
	}else if (this.get("UsrOborotPoLK") &lt;= 1000 &amp;&amp; this.get("UsrOborotPoLK") &gt; 500){
		slovo = "****";
	}else if (this.get("UsrOborotPoLK") &gt; 1000){
		slovo = "*****";
	}
	this.set("UsrKategoriyaKlienta", slovo);
		},
		},

 

SavelyevOll,

Передавать нужно ссылку на функцию которая будет вызываться по изменению поля (в нашем случае this.calcUsrOborotPoLK),
те так: this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK, this); 

Те ф-ция init будет такой
init: function() {
this.callParent(arguments);
this.on("change:UsrOborotPoLK", this.calcUsrOborotPoLK, this);
},

Пример использования смотрите тут

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

Спасибо большое! Все работает)

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

Всем добрый день! Столкнулся с проблемой, в замещенной схеме CtiPanel не работает UpdateQuery.

define("CtiPanel", [],
	function() {
		return {
			entitySchemaName: "Call",
			messages: {
				"WaSendCallDataToContact":{
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.PUBLISH
				},
				"WaSetDataToCall": {
					mode: Terrasoft.MessageMode.PTP,
					direction: Terrasoft.MessageDirectionType.SUBSCRIBE
				}
			},
			mixins: {},
			attributes: {
				WaRelationEntities: { dataValueType: Terrasoft.DataValueType.CUSTOM_OBJECT }
			},
			methods: {
				init: function() {
					this.callParent(arguments);
					this.processMessage();
				},
				onCallSavedEvent: function(call) {
					this.callParent(arguments);
					var relations = this.get("WaRelationEntities");
					if(relations && relations.length > 0) {
						var callId = call.databaseUId;
						this.getUpdateQueryCall(callId, relations);
						this.set("WaRelationEntities", null);
					}
					this.sandbox.publish("WaSendCallDataToContact", call, ["_WaSendCallDataToContact"]);
				},
 
				processMessage: function(){
					this.sandbox.subscribe("WaSetDataToCall", this.onMessageSubscribe.bind(this), this);
				},
 
				onMessageSubscribe: function(args) {
					this.set("WaRelationEntities", args);
					window.console.log("onMessageSubscribe(args): ", args);
				},
 
				getUpdateQueryCall: function (id, relations){
					debugger;
					var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
						rootSchemaName: this.entitySchemaName
					});
					var filters = updateQuery.filters;
					filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Id", id));
					for(var i = 0; i < relations.length; i++) {
						updateQuery.setParameterValue(relations[i].entitySchemaName, relations[i].value, relations[i].type);
					}
					updateQuery.exequte(this.updateQueryCallBack, this);
				},
				updateQueryCallBack: function(result) {
					if(!result.success) {
						window.console.error(result);
						return;
					}
				}
			},
			diff: []
		};
	}
);

ошибки следующие - http://prntscr.com/nh5uws

В чем может быть проблема?

Нравится

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

Алексей,

у Вас же в консоли все написано: 

updateQuery.exequte is not a function

Нужно написать updateQuery.exeсute

 

Алексей,

у Вас же в консоли все написано: 

updateQuery.exequte is not a function

Нужно написать updateQuery.exeсute

 

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

)) Благодарю, переработал наверное, нужен отдых

странно все равно не сработало даже после изменения, http://prntscr.com/nh7lpa

http://prntscr.com/nh7opx

 

Подключены ли следующие модули "ext-base", "terrasoft", "sandbox" как Ext, Terrasoft, sandbox ?

//те в самом верху должно быть

define("CtiPanel", ["ext-base", "terrasoft", "sandbox"], function(Ext, Terrasoft, sandbox)

 

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

Требуется перенести базу с прода на дев с целью тестирования.

Но возникает вопрос - когда я восстановлю бэкап и запущу IIS, у меня запустятся все БП по расписанию, чего очень нужно избежать. 

Каким образом отключить эти БП sql-скриптом до старта IIS (все имена известны), чтобы результат был аналогичен действию из библиотеки процессов? И они не стартовали?

Нравится

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

Внесите ваши процессы (их SysSchemaId) в таблицу SysProcessDisabled (список отключенных БП)

Выбрать SysSchema.Id можно по их имени запросом:

SELECT id FROM SysSchema ss WHERE ManagerName='ProcessSchemaManager' AND name IN ('MIRegCRF0', 'MICRFdatecontrolM',

'SendResolution',

'IncidentRegistrationFromEmailProcess',

'SetOrderInWorkFromOperatorSingleWindowProcess')

 

Внесите ваши процессы (их SysSchemaId) в таблицу SysProcessDisabled (список отключенных БП)

Выбрать SysSchema.Id можно по их имени запросом:

SELECT id FROM SysSchema ss WHERE ManagerName='ProcessSchemaManager' AND name IN ('MIRegCRF0', 'MICRFdatecontrolM',

'SendResolution',

'IncidentRegistrationFromEmailProcess',

'SetOrderInWorkFromOperatorSingleWindowProcess')

 

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

Всем добрый день! 

Реализовал в заказе/лиде кнопку звонка - http://prntscr.com/ngpc8u

звонок вызываю через публикацию CallCustomer:

 

this.sandbox.publish("CallCustomer", {
					number: mobilePhone, 
					customerId: Terrasoft.SysValue.CURRENT_USER.value, 
					entitySchemaName: "Lead",
					callRelationFields: undefined
				});

 Какие параметры необходимо добавить что бы в звонке сохранился либо Лид/Заказ  + Контакт заказа если звоним из Заказа - http://prntscr.com/ngpenx ?

Или необходимо использовать другой метод?

Заранее благодарен.

Нравится

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

Перед отправкой сообщения сохраните ваш конфиг в "AdvisedIdentifiedSubscriberInfo", те

 

this.set("AdvisedIdentifiedSubscriberInfo", {

number: _nomer, 
                    customerId: this.get("Id"), 
                    entitySchemaName: "Lead",
                    callRelationFields: ...

});

 

Если не поможет (Насколько понимаю каждая интеграция с телефонией реализована по своему, возможно что запись в базу информации о звонке реализована напрямую из dll инсертами) то посмотрите что поступает в БД через sql профайлер и что за запросу идут через сервисы во вкладке Netwoork браузера. Возможно вам придется  найти Id звонка и обновить нужные вам поля в объекте.

Добрый день!

Попробуйте передать данные поля в callRelationFields. Это массив из объектов, типа:

{
	name: columnName,
	value: columnValue,
	type: this.Terrasoft.DataValueType.GUID
}

 

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

this.sandbox.publish("CallCustomer", {
					number: mobilePhone, 
					customerId: Terrasoft.SysValue.CURRENT_USER.value, 
					entitySchemaName: "Lead",
					callRelationFields: [{
						name: "Lead",
						value: leadId,
						type: this.Terrasoft.DataValueType.GUID
					}]
				});

Подставил параметры, не помогло, что не так?

Нигрескул Алексей,

Посмотрите, какие поля приходят в метод updateCallByIdentificationData схемы CtiPanelIdentificationUtilities. Может быть там возникают ошибки

Насколько я понимаю в customerId должна быть Id вашего Lead  с которого совершается звонок те набор полей customerId и EntitySchemaName вы определяете схему и идентификатор записи к которой будут добавлен набор полей из callRelationFields

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

Передавал  customerId: leadId, entitySchemaName: "Lead" не помогло

Добавить комментарий

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

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

Перед отправкой сообщения сохраните ваш конфиг в "AdvisedIdentifiedSubscriberInfo", те

 

this.set("AdvisedIdentifiedSubscriberInfo", {

number: _nomer, 
                    customerId: this.get("Id"), 
                    entitySchemaName: "Lead",
                    callRelationFields: ...

});

 

Если не поможет (Насколько понимаю каждая интеграция с телефонией реализована по своему, возможно что запись в базу информации о звонке реализована напрямую из dll инсертами) то посмотрите что поступает в БД через sql профайлер и что за запросу идут через сервисы во вкладке Netwoork браузера. Возможно вам придется  найти Id звонка и обновить нужные вам поля в объекте.

Благодарю, попробую. Id звонка не проблема получить, переопределил схему CtiPanel, переопределил метод onCallSavedEvent и в нем по сути получаю звонок, и тут можно пушить в sandbox и подписываться там где нужно, ну это теоретически, Нужно только подумать как отловить нужную публикацию. Телефония Webitel. Может есть идеи по данному поводу, как отлавливать звонок, вот получаю лог звонка из переопределенного метода onCallSavedEvent - http://prntscr.com/ngvqpx. Просмотрел объект зацепится не за что, у кого какие идеи,заранее благодарен!

Вы пробовали сохранить в this.get("AdvisedIdentifiedSubscriberInfo") конфиг звонка включая поля которые вам нужно сохранить в карточке звонка?

Посмотрите при  сохранении что попадает в identificationFieldsData

 

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

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

После обновлении( https://academy.terrasoft.ru/documents/instrukciya-po-obnovleniyu-bpmonline-7-12-4?document=enterprise#HT_user_upgrade_instruction_backup) новой версий приложения, вошёл в систему все нормально, но когда я нажал компилировать все, до конца не дошёл, появляется несколько ошибок.

Это системные файлы, изменить нельзя.

Можете подсказать решение для такой ситуаций??

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

Нравится

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

Добрый день. Вы уверены что при обновлении использовали бинарники для того же продукта что и у вас? (т.е. если у вас SalesEnterprice, бинарники от SalesCommerce не подойдут). Также обновляться можно только на одну версию (на версию 7.12.4 можно обновляться только с 7.12.3).

Добрый день. Вы уверены что при обновлении использовали бинарники для того же продукта что и у вас? (т.е. если у вас SalesEnterprice, бинарники от SalesCommerce не подойдут). Также обновляться можно только на одну версию (на версию 7.12.4 можно обновляться только с 7.12.3).

Дмитрий А.,

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

Вот здесь название бинарных файлов, версия 7.12.3.980_SalesEnterprise_Marketing_ServiceEnterprise_Demo_MSSQL_ENU и 7.12.4.924_SalesEnterprise_Marketing_ServiceEnterprise_Softkey_MSSQL_ENU, из название видно что старое версия идет с демо-наполнением, а новая Softkey, может быть в этом причина ??

Не могу ответить,наверно лучше обратиться в саппорт.

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

Добрый день,

у меня версия 7.12.3, и хочу обновить до версии 7.12.4, и согласно инструкциям(https://academy.terrasoft.ru/documents/instrukciya-po-obnovleniyu-bpmonline?utm_source=newsletter&utm_medium=email&utm_campaign=regular_updates_v7133_partners_ru&bulk_email_rid=8931&bpmtrackid=4&bpmreplica=0&contactId=3ab32569-7f5a-4cc8-a6f6-fd19fcac2ec5&bulkEmailRecipientId=99611cd5-0227-450f-a60d-9ba30890d353), сначала надо выполнить действия Сгенерировать исходный код для всех элементов, и когда я это делаю, появляться ошибка.  В логах  такая ошибка: 

Ошибка генерации исходного кода схемы "PredictCaseFieldValuesProcess" из пакета "MLCaseClassification". UId ce078417-ab31-44be-9c43-9199d72e8a92: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.

2019-04-22 16:27:18,176 System.InvalidCastException: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AddParameterMapInfo(Dictionary`2 processParameters, String match)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AnalyzeParameterScriptCode(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterInfo(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter, String keyPrefix)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterMappings(Dictionary`2 parametersMapInfo, IEnumerable`1 schemaParameters, Guid schemaElementUId)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.GenerateProcessParameterMappings()

   at Terrasoft.Core.Process.FlowSchemaGenerator.Generate()

   at Terrasoft.Core.Process.BaseProcessSchema.GenerateFlowSchema(IProcessComponentSetStateService stateService)

   at Terrasoft.Core.Process.ProcessSchemaManager.SaveFlowSchema(ProcessSchema schema, UserConnection connection)

   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.ActualizeSchemaInfo(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)

   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.GetSchemaSources(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)

   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(TSchemaManagerSchema schema, Guid schemaId, UserConnection userConnection)

   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(Guid sysSchemaId, ISchemaManagerItem schemaManagerItem, UserConnection userConnection)

   at Terrasoft.Core.Packages.PackageInstallUtilities.InternalInstallSchemasAssociatedData(Guid schemaId, SchemaDescriptor schemaDescriptor, Boolean continueIfError)

2019-04-22 16:27:18,184 Ошибка выполнения операции на элементе "PredictCaseFieldValuesProcess", UId = ce078417-ab31-44be-9c43-9199d72e8a92.

2019-04-22 16:27:18,184 System.InvalidCastException: Unable to cast object of type 'Terrasoft.Core.Process.ProcessSchemaStartSignalEvent' to type 'Terrasoft.Core.Process.ProcessSchemaActivity'.

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AddParameterMapInfo(Dictionary`2 processParameters, String match)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.AnalyzeParameterScriptCode(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterInfo(Dictionary`2 processParameters, ProcessSchemaParameter schemaParameter, String keyPrefix)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.FillProcessParameterMappings(Dictionary`2 parametersMapInfo, IEnumerable`1 schemaParameters, Guid schemaElementUId)

   at Terrasoft.Core.Process.BaseFlowSchemaGenerator`1.GenerateProcessParameterMappings()

   at Terrasoft.Core.Process.FlowSchemaGenerator.Generate()

   at Terrasoft.Core.Process.BaseProcessSchema.GenerateFlowSchema(IProcessComponentSetStateService stateService)

   at Terrasoft.Core.Process.ProcessSchemaManager.SaveFlowSchema(ProcessSchema schema, UserConnection connection)

   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.ActualizeSchemaInfo(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)

   at Terrasoft.Core.Process.BaseProcessSchemaManager`1.GetSchemaSources(TBaseProcessSchema schema, Guid schemaId, UserConnection connection)

   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(TSchemaManagerSchema schema, Guid schemaId, UserConnection userConnection)

   at Terrasoft.Core.SchemaManager`1.GenerateSchemaSources(Guid sysSchemaId, ISchemaManagerItem schemaManagerItem, UserConnection userConnection)

   at Terrasoft.Core.Packages.PackageInstallUtilities.InternalInstallSchemasAssociatedData(Guid schemaId, SchemaDescriptor schemaDescriptor, Boolean continueIfError)

Подскажите что нужно сделать что бы ее исправить?

Конфигурация успешно компилируется. Сайт работает.

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

Нравится

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

Для решения необходимо добавить запись <add key="Feature-UseCodeAnalyzer" value="false" /> (или если она есть модифицировать значением false), в конфиге приложения  и WorkspaceConsole (Terrasoft.WebApp\Web.config и Terrasoft.Tools.WorkspaceConsole.exe.config). Затем выполнить команду "Сгенерировать для требующих генерации" и команду "Компилировать все".

Мотков Илья,

Спасибо, внес изменения в Web.config и Terrasoft.Tools.WorkspaceConsole.exe.config и заработало.

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

Всем доброго времени суток!

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

Если стандартными средствами невозможно реализовать данный функционал, что посоветуете, в какую сторону смотреть?

 

Заранее благодарен!

Нравится

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

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

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

Механизм открытия карточки из очереди реализуется в БП «Обработка обращений из очереди в Едином окне», недавно обсуждавшемся.

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

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

Здравствуй, уважаемое сообщество!

Долгое время назад был написан бизнес-процесс, который до некоторого времени стабильно выполнял свои функции, и в конце отправлял email пользователю... но последние несколько дней перестал это делать.

Решил проверить БП и при нажатии на элемент "Отправить email" появляются ошибки в консоли "Cannot read property 'setValue' of undefined", и параметры элемента не отображаются - вечная "Загрузка".

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

 

Подскажите, пожалуйста, куда копать и что можно глянуть?

Нравится

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

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

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

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

У меня имеется пакет установлен как и другие через репозиторий и он заблокировался каким-то образом. При попытке добавить файл выдает ошибку "Невозможно сохранить изменения элемента, так как пакет, в который он сохраняется, заблокирован другим пользователем". Попробовал поменять значения IsLocked и IsChanged в SysPackage, SysSchema. Привязанных данных нет. Почистил Redis, перезапускал Redis. Менял обратно значения. Ничего не помогает. Зафиксировать тоже не дает. Как такое лечить? Maintainer установлен также как в системных настройках. Другие пакеты в порядке

Нравится

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

Решил вопрос. Зашел через тортилку в repo-browser и снял блокировку с каждого файла в пакете. Сделал коммит в файловой системе, восстановил в БД из репозитория и там у пакета оказался maintainer прежним, до моего изменения. Не знаю почему так вышло, поменял maintainer как надо. всё работает

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