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

 

Заголовок для подписи "SymptomsFieldContainer1" не был найден.

Невозможно найти колонку по конфигурации: "{"layout":{"colSpan":24,"rowSpan":1,"column":0,"row":2},"name":"SymptomsFieldContainer1"}" .

 

SymptomsFieldContainer1 это поле типа контейнер для того, чтобы было реализовано новое поле по типу "Описание".

Оно было добавлено в замещающей странице CasePage

{
	"operation": "insert",
	"name": "SymptomsFieldContainer1",
	"values": {
		"layout": {
			"column": 0,
			"row": 2,
			"colSpan": 24,
			"rowSpan": 1,
			"layoutName":"Header"
		},
		"wrapClass": [
			"control-width-15 control-left solution-field-container"
		],
		"itemType": 7,
		"items": []
	},
	"parentName": "CaseInformation_gridLayout",
	"propertyName": "items",
},

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

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

При этом CasePage является родительской для всех Page в данном разделе.

Ошибка не возникает на других двух схемах, но при этом видимо конфликтует с старыми.

Нравится

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

Добрый день,

 

Попробовал добавить этот контейнер на демку - никаких ошибок нет. Кроме того, Вы уверены, что у страниц редактирования из Вашего скриншота родитель CasePage, а не BaseModulePageV2 (стандартная для типизированных страниц). Или была дополнительная кастомизация и родитель у страниц менялся? Если так, то можно получить полный код одной из страниц редактирования, открытие которой возвращает ошибку и еще как она влияет на работу сайта помимо того, что контейнер не отображается?

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

Oleg Drobina,

Спасибо за ваш ответ, визуально проблем выявлено не было, но само наличие ошибки смущает.

Родительская страница у всех CasePage, но при реализации кастомного пакета, этот CasePage был замещен и в нём реализован новый контейнер, прикрепляю код данной страницы

define("CasePage", [], function() {
	return {
		entitySchemaName: "Case",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{
			"FileDetailV2fe3b2d92": {
				"schemaName": "FileDetailV2",
				"entitySchemaName": "CaseFile",
				"filter": {
					"detailColumn": "Case",
					"masterColumn": "Id"
				}
			},
			"KnowledgeBaseInCaseDetailfca68878": {
				"schemaName": "KnowledgeBaseInCaseDetail",
				"entitySchemaName": "KnowledgeBaseInCase",
				"filter": {
					"detailColumn": "Case",
					"masterColumn": "Id"
				}
			},
			"VisaDetailV218d4bda2": {
				"schemaName": "VisaDetailV2",
				"entitySchemaName": "ITdsCaseVisa",
				"filter": {
					"masterColumn": "Id",
					"detailColumn": "ITdsCase"
				}
			}
		}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "ReclassificationButton",
				"values": {
					"itemType": 5,
					"caption": {
						"bindTo": "Resources.Strings.ReclassificationButtonCaption"
					},
					"click": {
						"bindTo": "onReclassificationButtonClick"
					},
					"enabled": true,
					"visible": true,
					"style": "red",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 10
			},
			{
				"operation": "insert",
				"name": "TestButton1",
				"values": {
					"itemType": 5,
					"caption": "Test",
					"click": {
						"bindTo": "onTestButtonClick1"
					},
					"enabled": true,
					"visible": false,
					"style": "yellow",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 11
			},
			{
				"operation": "insert",
				"name": "NegotiationButton1",
				"values": {
					"itemType": 5,
					"caption": {
						"bindTo": "Resources.Strings.NegotiateButtonCaption1"
					},
					"click": {
						"bindTo": "onNegotiationButtonClick1"
					},
					"enabled": {
						"bindTo": "isNegotiatorSet1"
					},
					"visible": {
						"bindTo": "isNegotiatorSet1"
					},
					"style": "green",
					"layout": {
						"column": 1,
						"row": 6,
						"colSpan": 1
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 12
			},
			{
				"operation": "remove",
				"name": "Symptoms"
			},
			{
				"operation": "insert",
				"name": "SymptomsFieldContainer",
				"values": {
					"layout": {
						"column": 0,
						"row": 1,
						"colSpan": 24,
						"rowSpan": 1
					},
					"wrapClass": [
						"control-width-15 control-left solution-field-container"
					],
					"itemType": 7,
					"items": []
				},
				"parentName": "CaseInformation_gridLayout",
				"propertyName": "items",
			},
			{
				"operation": "insert",
				"name": "Symptoms",
				"values": {
					"itemType": 3,
					"dataValueType": 1,
					"contentType": 4,
					"value": {
						"bindTo": "Symptoms"
					},
					"markerValue": "Symptoms",
					"labelConfig": {
						"visible": false
					},
					"controlConfig": {
						"imageLoaded": {
							"bindTo": "onImageLoaded"
						},
						"imagePasted": {
							"bindTo": "onImagePasted"
						},
						"plainTextValue": {
							"bindTo": "NotHtmlNote"
						},
						"images": {
							"bindTo": "Images"
						},
						"plainTextMode": {
							"bindTo": "plainTextMode"
						}
					}
				},
				"parentName": "SymptomsFieldContainer",
				"propertyName": "items"
			},
			{
				"operation": "move",
				"name": "ESNTab",
				"parentName": "Tabs",
				"propertyName": "tabs"
			},
			{
				"operation": "move",
				"name": "TimelineTab",
				"parentName": "Tabs",
				"propertyName": "tabs",
				"index": 3
			},
			{
				"operation": "insert",
				"propertyName": "tabs",
				"parentName": "Tabs",
				"name": "Tabf1d4d2a9TabLabel",
				"values": {
					"caption": {
						"bindTo": "Resources.Strings.TabVisaCaption"
					},
					"items": []
				}
			},
			{
				"operation": "insert",
				"propertyName": "items",
				"parentName": "Tabf1d4d2a9TabLabel",
				"name": "VisaDetailV218d4bda2",
				"values": {
					"itemType": 2,
					"markerValue": "added-detail"
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

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

Добрый день!

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

Либо добавьте эту возможность, либо добавьте автоматическое упорядочивание. Например, сверху справочные колонки, ниже текст, ниже целочисленные и т.д.

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

Ещё бы и группировать логически. Особенно для объектов типа Договор, Контрагент и т.п., где много колонок - общие, финансовые условия, сроки, средства связи и адреса...

Добрый день!



В данный момент в новом интерфейсе конфигурации нет данной  возможности

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

Я прикрепила Ваше обращение к существующему пожеланию, с целью повысить его приоритет.

 

С уважением Виталина,

Оператор

Группа компаний Terrasoft

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

Добрый день!

У вас куча места справа от строки поиска теперь, добавьте рядом с шестеренкой отображение текущего типа поиска (начинается, содержит, равно).

Ну и заодно, когда будете там, увеличьте ширину самой строки поиска, или сделайте ее резиновой. Опять же - места куча справа

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

Добрый день!



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

Я прикрепила Ваше обращение к существующему пожеланию, с целью повысить его приоритет.

 

С уважением Виталина,

Оператор

Группа компаний Terrasoft

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

Добрый день, занимаюсь обновлением creatio sales c 7.16 на 7.18,

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

Файл downloader.json настроил следующим образом:

{

    "WebRootDirectory": "C:\inetpub\wwwroot\Sales",

    "WorkDirectory": "C:\copy",

    "Site": "название из IIS",

    "Product": "SalesEnterprise",

    "DbEngineType": "PostgreSQL",

    "VersionBuild": "7.16.1.2135",

    "SkipBinary": "true",

    "ConnectionString": "Server=1.2.3.4;Port=5432;Database=crm;User ID=postgres;password=12345;Timeout=500;CommandTimeout=400;MaxPoolSize=1024;",

    "CurrentSchemaName": "public"

}

Часть данных в конфиге и логах обезличил.

Папка с UpdateService находится в корне диска с дистрибутивом на сервере.

Вот лог ошибок:

ConvertFrom-Json : Нераспознанная escape-последовательность. (29): {

        "WebRootDirectory": "C:\inetpub\wwwroot\Sales",

        "WorkDirectory": "C:\copy",

        "Site": "название из IIS",

        "Product": "SalesEnterprise",

        "DbEngineType": "PostgreSQL",

        "VersionBuild": "7.16.1.2135",

        "SkipBinary": "true",

        "ConnectionString": "Server=1.2.3.4;Port=5432;Database=crm;User ID=postgres;password=12345;Timeout=50

0;Comm

andTimeout=400;MaxPoolSize=1024;",

        "CurrentSchemaName": "public"

}

C:\UpdaterService\Downloader.ps1:407 знак:23

+     $config = $content | ConvertFrom-Json

+                          ~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException

    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.

C:\UpdaterService\Downloader.ps1:463 знак:18

+         $environment | Add-Member "Locale" "ENU" -Force

+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidData: (:) [Add-Member], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCo

   mmand

Add-Member : Не удается привязать аргумент к параметру "InputObject", так как он имеет значение NULL.

C:\UpdaterService\Downloader.ps1:466 знак:18

+         $environment | Add-Member "SkipVersions" @() -Force

+                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : InvalidData: (:) [Add-Member], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.AddMemberCo

   mmand

Нравится

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

Добрый день.

 

Попробуйте указать информацию по путям к директориям через 2 слеша - у Вас через 1.

 

Также рекомендую прочитать ещё раз внимательно иструкцию по обновлению на Академии.

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

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

{
"WebRootDirectory": "c:\\inetpub\\wwwroot\\delivery",
"WorkDirectory": "c:\\temp\\delivery",
"Site": "имя вашего сайта в IIS",
"Product": "Studio",
"VersionBuild": "7.14.1.935"
}

Так как такой вид содержит меньше параметров, вероятность допустить ошибку при указании параметров меньше.

 

Добрый день.

 

Попробуйте указать информацию по путям к директориям через 2 слеша - у Вас через 1.

 

Также рекомендую прочитать ещё раз внимательно иструкцию по обновлению на Академии.

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

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

{
"WebRootDirectory": "c:\\inetpub\\wwwroot\\delivery",
"WorkDirectory": "c:\\temp\\delivery",
"Site": "имя вашего сайта в IIS",
"Product": "Studio",
"VersionBuild": "7.14.1.935"
}

Так как такой вид содержит меньше параметров, вероятность допустить ошибку при указании параметров меньше.

 

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

Всем доброго дня.

Подскажите пожалуйста, как проще всего добавить номер по порядку при создании новой записи в детали через "+"? 

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

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

Нравится

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

Я делал автонумерацию через процесс на объекте. Триггер на срабатываение кода - после добавления записи или после удаления.

 

Код следующий, на сколько тут все хорошо не знаю, но вроде работает. Ручное переименование можно запретить, либо добавить "стрелочки" с перетаскиванием позиции вверх-вниз на клиенте.

 

using System.Linq;
 
public virtual void RunNumeration()
        {
            string parentEnityName = "UsrParent"; //Колонка с родителем, например Invoice для объекта InvoiceProduct
            var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, Entity.Schema.Name);
            var positionNumberColumn = esq.AddColumn("UsrPositionNumber").Name; //колонка с номером по порядку
            esq.AddAllSchemaColumns();
            if (parentEnityName.IsNotNullOrEmpty())
            {
                Guid parentEnityId = Entity.GetTypedColumnValue<Guid>(parentEnityName+"Id");
                if (parentEnityId != Guid.Empty)
                {
                    esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, parentEnityName, parentEnityId));
                    var entityProductsCollection = esq.GetEntityCollection(UserConnection)
		            .OrderBy(x => x.GetTypedColumnValue<int>(positionNumberColumn) == 0)
		            .ThenBy(x => x.GetTypedColumnValue<int>(positionNumberColumn));
		            int newNumber = 0;
		            foreach (var item in entityProductsCollection)
		            {
		                int number = item.GetTypedColumnValue<int>(positionNumberColumn);
		                newNumber++;
		                if (number != newNumber)
		                {
		                    item.SetColumnValue("UsrPositionNumber", newNumber);
		                    item.Save();
		                }
		            }
                }
            }
        }

 

Я делал автонумерацию через процесс на объекте. Триггер на срабатываение кода - после добавления записи или после удаления.

 

Код следующий, на сколько тут все хорошо не знаю, но вроде работает. Ручное переименование можно запретить, либо добавить "стрелочки" с перетаскиванием позиции вверх-вниз на клиенте.

 

using System.Linq;
 
public virtual void RunNumeration()
        {
            string parentEnityName = "UsrParent"; //Колонка с родителем, например Invoice для объекта InvoiceProduct
            var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, Entity.Schema.Name);
            var positionNumberColumn = esq.AddColumn("UsrPositionNumber").Name; //колонка с номером по порядку
            esq.AddAllSchemaColumns();
            if (parentEnityName.IsNotNullOrEmpty())
            {
                Guid parentEnityId = Entity.GetTypedColumnValue<Guid>(parentEnityName+"Id");
                if (parentEnityId != Guid.Empty)
                {
                    esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, parentEnityName, parentEnityId));
                    var entityProductsCollection = esq.GetEntityCollection(UserConnection)
		            .OrderBy(x => x.GetTypedColumnValue<int>(positionNumberColumn) == 0)
		            .ThenBy(x => x.GetTypedColumnValue<int>(positionNumberColumn));
		            int newNumber = 0;
		            foreach (var item in entityProductsCollection)
		            {
		                int number = item.GetTypedColumnValue<int>(positionNumberColumn);
		                newNumber++;
		                if (number != newNumber)
		                {
		                    item.SetColumnValue("UsrPositionNumber", newNumber);
		                    item.Save();
		                }
		            }
                }
            }
        }

 

Трефилов Павел Сергеевич, 

 

спасибо, отлично работает с вашим кодом)

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

Всем доброго дня! 

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

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

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

Нравится

6 комментариев
              var activeViewName = this.getActiveViewName();
              if (activeViewName === this.get("AnalyticsDataViewName")) {
                this.sandbox.publish("SectionUpdateFilter",
                                     null, [this.getQuickFilterModuleId()]);
              }

Пробуйте запустить такой код после применения ваших фильтров

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

Можете отправить полный код, где делаете фильтр?

Трефилов Павел Сергеевич,

define("OrderSectionV2", ["ProcessModuleUtilities","BaseFiltersGenerateModule","css!UsrStylesOrderSectionV2"], function(ProcessModuleUtilities,BaseFiltersGenerateModule) {
	return {
		entitySchemaName: "Order",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		attributes: {
            "UsrPPNumberFilter": {
                "dataValueType": Terrasoft.DataValueType.TEXT
            },
            "UsrPPNumbers": {
                "dataValueType": Terrasoft.DataValueType.TEXT,
                "values": ""
            },
			"UsrMyNumberFilter": {
                "dataValueType": Terrasoft.DataValueType.TEXT
            },
            "UsrMyNumbers": {
                "dataValueType": Terrasoft.DataValueType.TEXT,
                "values": ""
            },
			"UsrContrFilter": {
                "dataValueType": Terrasoft.DataValueType.TEXT
            },
            "UsrContr": {
                "dataValueType": Terrasoft.DataValueType.TEXT,
                "values": ""
            },
			"UsrNameFilter": {
                "dataValueType": Terrasoft.DataValueType.TEXT
            },
            "UsrMyName": {
                "dataValueType": Terrasoft.DataValueType.TEXT,
                "values": ""
            },
			"UsrQua": {
                "dataValueType": Terrasoft.DataValueType.INTEGER,
                "values": ""
            },
        },
		diff: /**SCHEMA_DIFF*/[	
			{
                "operation": "insert",
                "name": "MyFilterContainer",
                "parentName": "LeftGridUtilsContainer",
                "propertyName": "items",
                "index": 3,
                "values": {
                    "id": "MyFilterContainer",
                    "itemType": this.Terrasoft.ViewItemType.CONTAINER,
                    "items": [],
 
                }
            },
 
 
			{
                "operation": "insert",
                "parentName": "MyFilterContainer",
                "propertyName": "items",
                "name": "PP_Number",
				"index": 1,
                "values": {
                    "bindTo": "UsrPPNumberFilter",
                    "caption": {"bindTo": "Resources.Strings.UsrPPNumberCaption"},
 
					"controlConfig": {
                        "change": {
                            "bindTo": "ppNumChanged"
                        }
                    }
 
                }
            },
 
			{
					"operation": "insert",
					"parentName": "MyFilterContainer",
					"propertyName": "items",
					"name": "DeleteButton1",
					"index": 2,
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": "",
						"imageConfig": {"bindTo": "Resources.Images.del_but"},
						"controlConfig": {
						},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 1
						},
						"click": { "bindTo": "onDel" },
					}
			},
			{
                "operation": "insert",
                "parentName": "MyFilterContainer",
                "propertyName": "items",
                "name": "my_Number",
				"index": 3,
                "values": {
                    "bindTo": "UsrMyNumberFilter",
                    "caption": {"bindTo": "Resources.Strings.myNumber"},
 
					"controlConfig": {
                        "change": {
                            "bindTo": "myNumberChanged"
                        }
                    }
 
                }
            },
			{
					"operation": "insert",
					"parentName": "MyFilterContainer",
					"propertyName": "items",
					"name": "DeleteButton2",
					"index": 4,
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": "",
						"imageConfig": {"bindTo": "Resources.Images.del_but"},
						"controlConfig": {
						},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 1
						},
						"click": { "bindTo": "onDel2" },
					}
			},
			{
                "operation": "insert",
                "parentName": "MyFilterContainer",
                "propertyName": "items",
                "name": "my_Contr",
				"index": 5,
                "values": {
                    "bindTo": "UsrContrFilter",
                    "caption": {"bindTo": "Resources.Strings.myContr"},
 
					"controlConfig": {
                        "change": {
                            "bindTo": "myContrChanged"
                        }
                    }
 
                }
            },
			{
					"operation": "insert",
					"parentName": "MyFilterContainer",
					"propertyName": "items",
					"name": "DeleteButton3",
					"index": 6,
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": "",
						"imageConfig": {"bindTo": "Resources.Images.del_but"},
						"controlConfig": {
						},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 1
						},
						"click": { "bindTo": "onDel3" },
					}
			},
			{
					"operation": "insert",
					"parentName": "MyFilterContainer",
					"propertyName": "items",
					"name": "PeriodSelectButton",
					"index": 7,
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": "",
						"imageConfig": {"bindTo": "Resources.Images.LookupIcon"},
						"controlConfig": {
						},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 1
						},
						"click": { "bindTo": "openMyLook" },
					}
			},
			{
                "operation": "insert",
                "parentName": "MyFilterContainer",
                "propertyName": "items",
                "name": "my_Name",
				"index": 8,
                "values": {
                    "bindTo": "UsrNameFilter",
                    "caption": {"bindTo": "Resources.Strings.myName"},
 
					"controlConfig": {
                        "change": {
                            "bindTo": "myNameChanged"
                        }
                    }
 
                }
            },
			{
					"operation": "insert",
					"parentName": "MyFilterContainer",
					"propertyName": "items",
					"name": "DeleteButton4",
					"index": 9,
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": "",
						"imageConfig": {"bindTo": "Resources.Images.del_but"},
						"controlConfig": {
						},
						"layout": {
							"column": 0,
							"row": 2,
							"colSpan": 1
						},
						"click": { "bindTo": "onDel4" },
					}
			},
 
        ]/**SCHEMA_DIFF*/,
 
		methods: {
 
		clearFilter: function() {
			this.set("UsrPPNumberFilter", "");
			this.onUsrFilterChanged();
		},
 
		onUsrFilterChanged: function() {
			this.reloadGridData();
		},
 
		initQueryFilters: function(esq) {
			this.callParent(arguments);
			//номер в пп
			var usrEmailFilter = this.get("UsrPPNumbers");
			if (usrEmailFilter) {
				esq.filters.add("UsrPPNumberFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.CONTAIN, "UsrNumberInPP".substring(), usrEmailFilter));
			} else {
				esq.filters.removeByKey("UsrPPNumberFilter");
			}		
 
			//Номер
			var usrMyFilter = this.get("UsrMyNumbers");
			if (usrMyFilter) {
				esq.filters.add("UsrMyNumberFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.CONTAIN, "Number".substring(), usrMyFilter));
			} else {
				esq.filters.removeByKey("UsrMyNumberFilter");
			}
			//Контрагент
			var usrContrFilter = this.get("UsrContr");
			if (usrContrFilter) {
				esq.filters.add("UsrContrFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.CONTAIN, "Account.Name".substring(), usrContrFilter));
			} else {
				esq.filters.removeByKey("UsrContrFilter");
			}
			//Название
			var usrNameFilter = this.get("UsrMyName");
			if (usrNameFilter) {
				esq.filters.add("UsrNameFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.CONTAIN, "UsrName".substring(), usrNameFilter));
			} else {
				esq.filters.removeByKey("UsrNameFilter");
			}
 
 
		},
 
		ppNumChanged: function(a, b, c) {
			this.set("UsrPPNumbers", a);
			this.onUsrFilterChanged();
 
		},
 
		myNumberChanged: function(a, b, c) {
			this.set("UsrMyNumbers", a);
			this.onUsrFilterChanged();
		},
 
		myContrChanged: function(a, b, c) {
			this.set("UsrContr", a);
			this.onUsrFilterChanged();
		},
 
		myNameChanged: function(a, b, c) {
			this.set("UsrMyName", a);
			this.onUsrFilterChanged();	
		},
 
		addCallBack: function(args) {
		  this.selectedRows = args.selectedRows.getItems();
 
			var ids = [];
			var names = [];
			this.selectedRows.forEach(function(item) {
				ids.push(item.Id);
				names.push(item.Name);
		   });
			this.set("UsrContr",names);
			document.getElementById('OrderSectionV2my_ContrTextEdit-el').value = names;
			document.getElementById('OrderSectionV2my_ContrTextEdit-el').focus();
			document.getElementById('OrderSectionV2my_ContrTextEdit-el').blur();
		},
 
 		openMyLook: function(){
			var config = {
				entitySchemaName: "Account",
				columns: ["Name"]
			};
			this.openLookup(config, this.addCallBack, this);
		},
		onDel: function(){
			document.getElementById('OrderSectionV2PP_NumberTextEdit-el').value = null;
			this.set("UsrPPNumberFilter", "");
			this.onUsrFilterChanged();
		},
		onDel2: function(){
			document.getElementById('OrderSectionV2my_NumberTextEdit-el').value = null;
			this.set("UsrMyNumberFilter", "");
			this.onUsrFilterChanged();
		},
		onDel3: function(){
			document.getElementById('OrderSectionV2my_ContrTextEdit-el').value = null;
			this.set("UsrContrFilter", "");
			this.onUsrFilterChanged();
		},
		onDel4: function(){
			document.getElementById('OrderSectionV2my_NameTextEdit-el').value = null;
			this.set("UsrNameFilter", "");
			this.onUsrFilterChanged();
		},
 
		}
	};
});

 

Анастасия Шумейко,

Добрый день.

 

Вам нужно проверить уходит ли запрос на получение количества записей.

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

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

Анастасія Шумейко,

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

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

Всем доброго дня! Подскажите можно ли как-то отфитровать список  в "Фильтры/группы" - "Добавить условие" ? Изменение поведения в Объекте на режим "Никогда" не подходит(нужно видеть фильтры в расширенном режиме). 

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

Нравится

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

Анастасия, в каждом разделе системы отображение первого поля при быстром поиске заложено в параметре PRIMARY_DISPLAY_COLUMN (Отображаемое значение). Например, для раздела Контакты это поле [ФИО].

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

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

Однако данный вариант также предполагает использование средств разработки. Более детальнее описано в статье по ссылке: https://academy.terrasoft.ua/docs/developer/elements_and_components/bas…

Алёна Доля,

Хотелось бы отредактировать значения именно в базовом списке, 

в "Фильтры/группы" - "Добавить условие" и повыкидывать оттуда не нужные поля. 

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

Здравствуйте, подскажите пожалуйста, осталась ли возможность вернуть старый конфигуратор в версии 7.17.1.1363 ? 

В новом конфигураторе напрочь отсутствует локализация :(

Нравится

20 комментариев
Лучший ответ
DECLARE @sysSettingsCode varchar(max) = 'OldUI';
DECLARE @sysSettingsBooleanValue bit = 1;
DECLARE @sysSettingsId uniqueidentifier;
 
IF NOT EXISTS (SELECT Id FROM SysSettings WITH (NOLOCK) WHERE Code = @sysSettingsCode)
BEGIN
  INSERT INTO SysSettings (Name, Code, ValueTypeName, IsCacheable) VALUES (@sysSettingsCode, @sysSettingsCode, 'Boolean', 1);
END
 
SET @sysSettingsId = (SELECT Id FROM SysSettings WITH (NOLOCK) WHERE Code = @sysSettingsCode);
 
IF NOT EXISTS (SELECT Id FROM SysSettingsValue WITH (NOLOCK) WHERE SysSettingsId = @sysSettingsId)
BEGIN
  INSERT INTO SysSettingsValue (SysSettingsId, SysAdminUnitId, BooleanValue, Position) VALUES (@sysSettingsId, 'A29A3BA5-4B0D-DE11-9A51-005056C00008', 1, 2147483647);
END
ELSE
BEGIN
  UPDATE SysSettingsValue SET BooleanValue = @sysSettingsBooleanValue WHERE SysSettingsId = @sysSettingsId
END

 

скопировать бинари Terrasoft.UI.WebControls и Terrasoft.UI.OldConfiguration из WebApp/Compatibility/OldUI в bin и WebApp/bin

включить сист. настройку OldUI - скрипт выше

скомпилировать конфигурацию

а по пути /0/WorkspaceExplorerModule.aspx перекидывает на новый "дизайн" ?



P.S  7.17.1 еще не пробовал.

Адаменко Александр,по такому пути выдает 500ю ошибку сервера

Добрый день! Попробуйте дописать "/dev_old", чтобы вышло таким образом: yoursite/0/dev_old

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

javascript:window.open("../ViewPage.aspx?Id=5e5f9a9e-aa7d-407d-9e1e-1c24c3f9b59a&ActiveTabId=PageContainer_c02e0ec6f36b14108882485b39c5f8dd_045063c98180e011afbc00155d04320c_7c0581929880e011afbc00155d04320c");

нажимать на кнопку, когда активная любая страница Creatio

Дарья Сошина, 500я ошибка сервера, все так же как и с WorkspaceExplorer.aspx

yura.makarchuk, 500я ошибка... :(

Стратонов Олександр, на 7.17.0 точно работает (

Эх. Даа... Новый конфигуратор наводит только тоску. Один только поиск по схеме чего стоит)))))

Может кто-нибудь ещё знает, как можно попробовать достучаться?)

на 7.17.1 полностью отключили поддержку старого интерфейса конфигуратора. Но у нас пошли проблемы при работе нового конфигуратора и SVN. Конфигуратор не проверял перед коммитом последняя ли версия пакета и стирал чужие коммиты. Поэтому техподдержка для активации старого интерфейса дала мне скрипт по активации фичи OldUI. Так же надо скопировать dll из WebApp/Compatibility/OldUI в bin и WebApp/bin. после перекомпиляции по пути yoursite/0/dev_old будет старый конфигуратор.

уже все вычитанные способы перепробовал, не получается

в новом конфигураторе все еще сырое, особенно редактор кода с его поиском, да и поиск по схеме не сладкий...

 

Алексей Следь,

Поделитесь скриптом и инструкцией. У нас та же проблема на 7.17.1.

Алексей Следь, поделитесь, пожалуйста

 

DECLARE @sysSettingsCode varchar(max) = 'OldUI';
DECLARE @sysSettingsBooleanValue bit = 1;
DECLARE @sysSettingsId uniqueidentifier;
 
IF NOT EXISTS (SELECT Id FROM SysSettings WITH (NOLOCK) WHERE Code = @sysSettingsCode)
BEGIN
  INSERT INTO SysSettings (Name, Code, ValueTypeName, IsCacheable) VALUES (@sysSettingsCode, @sysSettingsCode, 'Boolean', 1);
END
 
SET @sysSettingsId = (SELECT Id FROM SysSettings WITH (NOLOCK) WHERE Code = @sysSettingsCode);
 
IF NOT EXISTS (SELECT Id FROM SysSettingsValue WITH (NOLOCK) WHERE SysSettingsId = @sysSettingsId)
BEGIN
  INSERT INTO SysSettingsValue (SysSettingsId, SysAdminUnitId, BooleanValue, Position) VALUES (@sysSettingsId, 'A29A3BA5-4B0D-DE11-9A51-005056C00008', 1, 2147483647);
END
ELSE
BEGIN
  UPDATE SysSettingsValue SET BooleanValue = @sysSettingsBooleanValue WHERE SysSettingsId = @sysSettingsId
END

 

скопировать бинари Terrasoft.UI.WebControls и Terrasoft.UI.OldConfiguration из WebApp/Compatibility/OldUI в bin и WebApp/bin

включить сист. настройку OldUI - скрипт выше

скомпилировать конфигурацию

Алексей Следь, спасибо большое

У всех норм работает? У меня ошибка появилась.

Дамиан Викторович, да, работает

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

Хотел бы, да не могу зайти в конфигуратор.

Дамиан Викторович,

А вы системную настройку добавили? у меня ошибку сервер выдавал после копирования бинарников и до добавления настройки.

Переписал SQL-script с удалением и созданием настройки. Не помогло.

-- ------------------------------------------------------------------------------------------------------------------------
-- Включить конфигуратор версии 7.16.
-- 1. Скопировать файлы из ..\Terrasoft.WebApp\Compatibility\OldUI\ в ..\Terrasoft.WebApp\bin\
-- Terrasoft.UI.OldConfiguration.dll, Terrasoft.UI.OldConfiguration.xml, Terrasoft.UI.WebControls.dll, Terrasoft.UI.WebControls.xml
-- 2. ВыполнитьSQL-script (включить системную настройку OldUI)
-- 3. Скомпилировать конфигурацию
-- ------------------------------------------------------------------------------------------------------------------------
declare @deleteSetting bit = 1  -- Удалить настройку
-- ------------------------------------------------------------------------------------------------------------------------
set nocount on
-- Удалить настройку.
if (@deleteSetting = 1) begin
	declare @idSearch uniqueidentifier = (select [SysSettingsValue].[Id] 
	from [SysSettings] 
	inner join [SysSettingsValue] on [SysSettings].[Id]=[SysSettingsValue].[SysSettingsId]
	where [SysSettings].[Code] = 'OldUI')
	delete from [SysSettingsValue] where [Id] = @idSearch
	delete from [SysSettings] where [Name] = 'OldUI'
	print N'[-] Выполнено удаление настройки "OldUI"'
end
-- ------------------------------------------------------------------------------------------------------------------------
-- Создать настройку.
declare @code varchar(max) = 'OldUI'
declare @value bit = 1
declare @id uniqueidentifier
 if not exists (select [Id] from [SysSettings] where [Code] = @code)
begin
	insert into [SysSettings] ([Name], [Code], [ValueTypeName], [IsCacheable]) values (@code, @code, 'boolean', 1)
end
set @id = (select [Id] from [SysSettings] where [Code] = @code)
if not exists (select [Id] from [SysSettingsValue] where [SysSettingsId] = @id)
begin
	insert into [SysSettingsValue] ([SysSettingsId], [SysAdminUnitId], [BooleanValue], [Position]) 
	values (@id, 'a29a3ba5-4b0d-de11-9a51-005056c00008', 1, 2147483647)
	print N'[+] Выполнено создание настройки "OldUI"'
end
else
begin
	update [SysSettingsValue] set [BooleanValue] = @value where [SysSettingsId] = @id
	print N'[*] Выполнено обновление настройки "OldUI"'
end
-- ------------------------------------------------------------------------------------------------------------------------
-- Показать настройку.
select 
	 [SysSettings].[Name] [SysSettings_Name]
	,[SysSettings].[Code] [SysSettings_Code]
	,[SysSettings].[ValueTypeName] [SysSettings_ValueTypeName]
	,[SysSettings].[IsCacheable] [SysSettings_IsCacheable]
	,[SysAdminUnit].[Name] [SysAdminUnit_Name]
	,[SysSettingsValue].[Id] [SysSettingsValue_Id]
	,[SysSettingsValue].[BooleanValue] [SysSettingsValue_BooleanValue]
	,[SysSettingsValue].[Position] [SysSettingsValue_Position]
from [SysSettings]
inner join [SysSettingsValue] on [SysSettings].[Id]=[SysSettingsValue].[SysSettingsId]
inner join [SysAdminUnit] on [SysSettingsValue].[SysAdminUnitId]=[SysAdminUnit].[Id]
where [SysSettings].[Name] = 'OldUI'
print N'[*] Выполнено показ настройки "OldUI"'
-- ------------------------------------------------------------------------------------------------------------------------
set nocount off

 

Здравствуйте, подскажите пожалуйста, осталась ли возможность вернуть старый конфигуратор в версии 7.17.1.1363 ? 

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

В новом конфигураторе напрочь отсутствует локализация :( 

А что именно не так в новом?

Локализация, например, названий полей задаётся тут:

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

Добрый день.

Пользоваться поиском в 7.17 крайне неудобно.

Невозможно по частичному вхождению искать.

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

Данные моменты хотелось бы улучшить.

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

Александр, спасибо за обратную связь, уже зарегистрирована сложность в использовании функциональности «При поиске кода с помощью Ctrl+F неудобно переходить на следующий элемент, так как Enter не работает».

 

Переключаться на следующий элемент сейчас можно с помощью Ctrl+G, особенность связана с редактором кода.

 

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

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

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

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

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

Это не интерфейс, а издевательство над разработчиками.

А еще открывать пакет по двойному клику на него было бы здорово

Алексей, зафиксировал идеи фильтрации/поиска и открытия по клику.

Евгений, в версии 7.17 обещают полностью новый раздел конфигурации, окончательно уходящий от интерфейса 5.Х.

Вероятно, и вид графа пакетов будет меняться, если, конечно, он там будет.

В итоге в 7.17.0 этот граф вообще убрали. В 7.17.1 планируют новую реализацию.

В итоге в 7.17.1 вернули ровно в том виде, как было.sad

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