Добрый день всем.
Есть необходимость отобразить пользователю окна с вариантами действий. За основу взял оно добавления тэга. Создал модуль. Страницу. Но при открытии окна получаю ошибку TypeError: Cannot read property 'extendParent' of undefined.
Начал разбирать логику на примере того же тега, в процессе генерации окна последовательно вызываются методы this.requireSchema,
this.initSchemaCustomAttributes,
this.initSchemaResources,
this.initSchemaEntitySchema,
this.initSchemaProfile,
this.initSchemaStructure,
this.extendSchemaWithStructure,
this.addSchemaToHierarchy,
.....

метод initSchemaStructure возвращает структуру TagModuleSchemaStructure. Вопрос где она описывается?
Для моей схемы initSchemaStructure никакой структуры не возвращает и при дальнейшей работе возникает ошибка.

Нравится

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

Здравствуйте, Евгений.

В примере из вложения: страница модального окна это «Схема модели представления карточки», без указания родительской схемы.
Модуль модального окна это «Модуль», с одной единственной зависимостью на вышесозданную страницу. Все из этого ни от кого не наследуется.

Большое спасибо за пример.
Проблема была в типе страницы.

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

Коллеги, добрый день.
Подскажите каким образом можно привязать данные к гриду? Допустим есть ESQ, которая возвращает коллекцию. Что необходимо сделать, чтобы коллекция, возвращаемая запросом, отобразилась в гриде?

Нравится

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

Заполните результатом коллекции атрибут на который смотрит грид:

Подробнее реализацию можете посмотреть в схеме BaseGridDetailV2 на которую сделан скриншот выше.

Предположу что Вам необходимо результат ESQ а именно его result.collection
сохранить в атрибут соответствующего типа

...
"dataValueType": this.Terrasoft.DataValueType.COLLECTION,
"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
"isCollection": true
...

И уже собственно его "скармливать" в биндинг. (см.скриншот)

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

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

Нравится

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

Можете попробовать подменять профиль на нужный (см. метод getProfileColumns в GridUtilitiesV2) после чего делать reloadGridData()

Это означает, что у одного из пользователей должны быть обязательно добавлены нужные колонки? Звучит не очень надежно) Нельзя ли добавить колонки в Грид в момент выполнения действия?

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

"Максим Шевченко" написал:

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


Здравствуйте!
Делаю, как Вы сказали - в методе getProfileColumns добавляю в this.get("Profile").DataGrid.listedConfig конфигурацию новой колонки в json, перезагружаю данные в гриде, но конфигурация столбцов не меняется. Вы писали про сохранение в БД - каким образом это можно сделать?

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

Столкнулся со странной ошибкой во время выполнения UpdateQuery:

{
    "success":false,
    "responseStatus": {
        "ErrorCode":"FormatException",
        "Message": "Expected hex 0x in '{0}'.",
        "Errors":[]
    },
    "rowsAffected":-1,
    "nextPrcElReady":false
}

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

Нравится

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

"Франчук Виталий" написал:Кто-нибудь знает, в чем может быть причина?

В типе колонки. Дебаггером пройдите по update.setParameterValue(поле, значение, тип) и посмотрите соответствие между указаным типом и тем, какое значение задаётся.

"Варфоломеев Данила" написал:
Франчук Виталий пишет:

Кто-нибудь знает, в чем может быть причина?

В типе колонки. Дебаггером пройдите по update.setParameterValue(поле, значение, тип) и посмотрите соответствие между указаным типом и тем, какое значение задаётся.


Вот функция, которая вызывает UpdateQuery:

updateGame: function(id, newTitle) {
    if (id && newTitle) {
  	window.console.log("New title:", newTitle);
	var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
		rootSchemaName: "clrsGamesAvailable"
	});
	updateQuery.filters.addItem(this.createIdColumnFilter(id));
	updateQuery.setParameterValue("clrsGameTitle", newTitle, Terrasoft.DataValueType.TEXT);
 
	updateQuery.execute(function() {
		window.console.log("Game", id, "was updated.");
	});
    }
}

Там в значении параметра - строка (проверил). Есть аналогичная функция, которая создает объекты с еще двумя параметрами. Конкретно этот параметр задан также. Но с InsertQuery все работает, а с UpdateQuery - нет(

"Франчук Виталий" написал:Но с InsertQuery все работает, а с UpdateQuery - нет(

значит проверить фильтр. что this.createIdColumnFilter(id) формирует (надеюсь id - это guid).
плюс скорее всего после execute будет ошибка. id в коллбеке пропадёт

"Варфоломеев Данила" написал:
Франчук Виталий пишет:

Но с InsertQuery все работает, а с UpdateQuery - нет(

значит проверить фильтр. что this.createIdColumnFilter(id) формирует (надеюсь id - это guid).

плюс скорее всего после execute будет ошибка. id в коллбеке пропадёт

createIdColumnFilter: function(id) {
	return Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", id);
}

Фильтр вроде как надо создаеться. Смотрел в теле запроса, который получился - там guid

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

Странно как то делаю по инструкции которая описана тут для 7,10
Создание детали с редактируемым реестром
и не работает деталь, не отображается и в консоли нет ошибок.

В 7,9 делал аналогично и работало....на что обратить внимание?

Нравится

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

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

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

В случае, если данная рекомендация не решит Вашей проблемы, пожалуйста, напишите письмо с детальным описанние проблемы в службу поддержки - support@terrasoft.ru

Андрей. в моем случае.
1. Создаю объект
2. Создаю деталь
3. Добавляю деталь через мастер раздела
4. Проверяю, появление детали, настраиваю колонки
5. Меняю код в детали который указан в инструкции
6. Детали нет в отображении раздела, а через мастер раздела она показывается и настроить можно.

в тех.поддержке мой тикет забрили т.к. я не разработчик

"Юсупов Марат" написал: Детали нет в отображении раздела

Деталь должна быть в карточке. В консоли тоже нет ошибок?

В консоли пусто по ошибкам.

Должно работать, попробуйте все еще раз почистить, перезапустить, итд. Редис, Кеш. Посмотрите в крайнем случае как сделаны базовые детали с ред. реесстром, может где-то опечатались. Если не поможет, попробуйте еще раз. Сделайте в соседнем разделе, тестовую деталь с ред. реестром. Без ошибок, без доступа к сайту, сложно что либо подсказать.

Коллеги, добрый день!
Та же проблема в 7.10
Пытаюсь создать деталь с редактируемым реестром на карточке ConfItem, по аналогии с деталью ServiceEngineer на ServiceItem.
Деталь видна только в мастере раздела ConfItem, а в отображении пусто.

Схема детали:

define("UsrServiceEngineerCiDetail", ["terrasoft", "ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"],
	function(Terrasoft) {
		return {
			entitySchemaName: "UsrServiceEngineerCI",
			attributes: {
				"IsEditable": {
					"dataValueType": Terrasoft.DataValueType.BOOLEAN,
					"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"value": true
				}
			},
			mixins: {
				ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities",
				OrderUtilities: "Terrasoft.OrderUtilities"
			},
			messages: {},
			methods: {},
			diff: [
				{
					"operation": "merge",
					"name": "DataGrid",
					"values": {
						"className": "Terrasoft.ConfigurationGrid",
						"generator": "ConfigurationGridGenerator.generatePartial",
						"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
						"changeRow": {"bindTo": "changeRow"},
						"unSelectRow": {"bindTo": "unSelectRow"},
						"onGridClick": {"bindTo": "onGridClick"},
						"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
						"activeRowActions": [
							{
								"className": "Terrasoft.Button",
								"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
								"tag": "save",
								"markerValue": "save",
								"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
							},
							{
								"className": "Terrasoft.Button",
								"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
								"tag": "cancel",
								"markerValue": "cancel",
								"imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
							},
							{
								"className": "Terrasoft.Button",
								"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
								"tag": "remove",
								"markerValue": "remove",
								"imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
							}
						],
						"listedZebra": true,
						"activeRowAction": {"bindTo": "onActiveRowAction"},
						"multiSelect": false
					}
				}
			]
		};
	});

Схема ConfItemPage:

define("ConfItemPage", [], function() {
	return {
		entitySchemaName: "ConfItem",
		details: /**SCHEMA_DETAILS*/{
			"UsrServiceEngineerCiDetail": {
					"schemaName": "UsrServiceEngineerCiDetail",
					"entitySchemaName": "UsrServiceEngineerCI",
					"filter": {
						"detailColumn": "UsrConfItem",
						"masterColumn": "Id"
					}
				}
		}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
	{
					"operation": "insert",
					"name": "UsrServiceEngineerCiDetail",
					"values": {
						//"itemType": this.Terrasoft.ViewItemType.DETAIL
						"itemType": 2,
						"markerValue": "added-detail"
					},
					"parentName": "GeneralInfoTab",
					"propertyName": "items",
					"index": 4
				}
]/**SCHEMA_DIFF*/,
		methods: {},
		rules: {},
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/
	};
});

Бакалов Павел очистите кэш. Иногда бывает что не отображается изза старых данных.
И еще момент смотрите в консоли ошибки.

Кэш и редис чистил - не помогает.

Напишите письмо с детальным описанние проблемы в службу поддержки - support@terrasoft.ru и предоставлением доступа к сайту. Пускай посмотрят на деталь по факту, дальше гадать что могло пойти не так на форуме сложно.

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

Добрый день!

Подскажите, как реализован функционал в детали конкуренты в продаже. При открытии детали конкуренты, колонка продажа автоматически заполнено и закрыто для редактирования.

Подскажите, пожалуйста, как передать значение продажи в деталь конкуренты.

Нравится

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

Добрый день!
При объявлении детали в фильтре указывается связь между с продажей, поэтому Продажа заполняется автоматически.
OpportunityCompetitor: {
schemaName: "OpportunityCompetitorDetailV2",
filter: {
masterColumn: "Id",
detailColumn: "Opportunity"
}
}

Так же можно использовать defaultValues в объявлении детали для заполнения полей в детали по умолчанию.
Например в детали Документы есть поля Контакт и Контрагент, которые тянутся из продажи, а какими значениями должны заполнятся указано в блоке defaultValues:
Document: {
schemaName: "DocumentDetailV2",
entitySchemaName: "Document",
filter: {
masterColumn: "Id",
detailColumn: "Opportunity"
},
defaultValues: {
Account: { masterColumn: "Account" },
Contact: { masterColumn: "Contact" }
}
}

Спасибо за помощь!

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

Коллеги, добрый день.

Подскажите, пожалуйста, никто не встречался с ошибкой при попытке заблокировать пакет в конфигураторе:
Ошибка
При работе с хранилищем произошла ошибка
sqlite[S14]: unable to open database file
SvnErrorCode: SVN_ERR_SQLITE_ERROR

Перед этим база восстанавливалась из бэкапа, все файлы из временных папок svn и TerrasoftPackages удалял.

Нравится

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

Александр, исходя из аналогичных кейсов - проблема на стороне SVN сервера, возможная причина - нет прав доступа на папку, в которой хранится база данных SVN сервера. Помогает обычно раздача прав на эту папку (http://fredericiana.com/2014/11/29/sqlite-error-open-database-file/ ) или переустановка SVN.

вероятнее всего NTFS права, на восстановленные файлы или каталог по отношению к пользователю из под которого работает служба SVN.
Попробуйте сделать Checkout из репозитория в ФС например при помощи стороннего клиента (н/п Tortoise SVN) Там возможно будут более информативные ошибки.

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

Коллеги, спасибо за информацию.

Похоже, что проблема была из-за обновления пакетов с предыдущим удалением.
Я очистил временные папки с хранилищами svn (Svn и TerrasoftPackages) и авторизационными данными, после чего обновил все пакеты, ошибка ушла.

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

Коллеги, добрый день.
При переносе схемы(раздел Активности) с демоверсии на бой возникает ошибка сохранения:
String reference not set to an instance of a String. Parameter name: s.

что делать дальше?
Спасибо.

Нравится

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

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

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

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

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

Всем привет!

Задался вопросом переноса настроенных групп фильтров через SVN на другие среды.
Заметил, что при добавлении фильтра в таблице Sysprofiledata создается или модифицируется строка с ключом ContractSectionV2GridDataViewFilters с настройками. Ситуация вроде бы, похожа на ситуацию
с настройками колонок, но при переносе SQL скриптом, фильтр на другой среде не появляется.
Может кто-то подскажет, какие еще данные нужно переносить, чтобы обеспечить гарантированный перенос настроенных групп фильтров на рабочую среду через svn?

Заранее спасибо.

Нравится

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

Дмитрий, ContractSectionV2GridDataViewFilters - фильтры, примененные пользователем в разделе, которые отображаются при загрузке раздела. Они сохраняются в SysProfileData (и частично в кеше браузера пользователя).

Вам необходимо переносить данные таблицы [Object]Folder, где [Object] - название объекта раздела. Например, группы раздела "Контакты" хранятся в таблице ContactFolder.

Также необходимо перенести данные таблиц SysContactFolderRight (права доступа на группы), FolderFavorite (избранные группы).

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

Доброго времени суток!
Случайно убрали поле "Требуется обновление БД" в конфигурации, штатной настройкой полей не получается вернуть, подскажите как снова добавить поле. Заранее спасибо:smile:

Нравится

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

Здравствуйте, Олег.

Уточните пожалуйста как именно вы выполнили удаление данного поля? Прикрепите пожалуйста скриншот с текущим интерфейсом конфигурации.

Через настройку колонок попробуйте.

"Мария Ватулина" написал:

Здравствуйте, Олег.

Уточните пожалуйста как именно вы выполнили удаление данного поля? Прикрепите пожалуйста скриншот с текущим интерфейсом конфигурации.


скриншот в приложении

"Кисловский Михаил Андреевич" написал:

Через настройку колонок попробуйте.


"Шамшин Олег" написал: штатной настройкой полей не получается вернуть

Добрый день, Олег.

Для восстановления колонки можем вам рекомендовать восстановить настройки профиля пользователя по умолчанию (прилагаю скрин). После восстановления перелогиниться.

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

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