Возникла такая необходимость.

Как сделать возможным редактирование детали в плиточном представлении?

Есть ли решение? Подскажите.

Нравится

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

Сергей, нет, к сожалению, так нельзя, редактируемый и плиточный реестры не совмещаются. На текущий момент поддерживаетcя редактируемый реестр только в списочном представлении. 

Идея по этому поводу зафиксирована, но планов на ближайшие версии пока нет.

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

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

 

Столкнулся с проблемой вызова sandbox из детали т.е. заходя из раздела на страницу подписка срабатывает, но если на страницу зайти из детали то нет.

Нравится

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

Поясните пожалуйста где находятся подписки?

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

вызывают из схемы детали "Schema5Detail", передают в схему открываемой страницы "...1Page"

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

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

Добрый день!

Подскажите, как на странице детали отобразить данные из другой таблицы? На станице детали в виде списка отображаются данные из Table1, необходимо отобразить данные из Table2. Таблицы связаны между собой полем идентификатора Table1.idTable2 = Table2.id. Как это сделать без создания VIEW в базе данных?

Нравится

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

Добрый день.

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

В Вашей версии такую настройку можно выполнить для детали с нередактируемым реестром. Для детали с редактируемым реестром такую настройку можно выполнить с версии 7.14.2. Поэтому задумайтесь над обновлением)

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

Добрый день.

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

В Вашей версии такую настройку можно выполнить для детали с нередактируемым реестром. Для детали с редактируемым реестром такую настройку можно выполнить с версии 7.14.2. Поэтому задумайтесь над обновлением)

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

Попробуйте добавить в Table1 поле Table2  в котором будет idTable2  и укахать в настройке колонок  Table2.Namr и тд

 

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

Добрый день, Алла!

Интерфейс настройки колонок, описанный по указанной Вами ссылке, отображается только для раздела. В моем случае, при настройке связанных полей детали отображаются только идентификаторы, которые отмечены как справочники. Попытка сделать поле Table1.idTable2 справочником не подошла, т.к. Table2 является View и при публикации Table1 с таким полем выдается ошибка "Foreign key references object which is not a user table".

 

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

"Table2.Name" указать в настройке колонок списка? Ввести колонку с таким именем система не дает.

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

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

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

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

Коллеги, приветствую!

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

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

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

Нравится

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

Александр Горчаков,

Если в демке тоже есть проблема, то это может быть ошибка базовой версии.

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

Проверьте в схеме детали Caption, чтобы не был пуст

Литвинко Павел,

Caption на месте. Я так понял что будь там что-то не так - в вэб-версии тоже ничего бы не отображалось.

Посмотрел в облачной-демке - проблема аналогичная.

Еще заметил что если в мобильной версии зайти в изменение записи - заголовок детали есть.
Сделал временно по другому (через настройку деталей в мастере мобильного приложения), но вопрос все еще актуален.

Александр Горчаков,

Если в демке тоже есть проблема, то это может быть ошибка базовой версии.

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

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

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

Нравится

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

Эта логика реализована во встроенном БП объекта «Продукт в продаже» (OpportunityProductInterest). Там в обработчике событий сохранения и удаления записей в объекте детали запускается функция CalckOpportunityAmount с кодом:

var oppotrunityAmountSelect = new Select(UserConnection)
	.Column("Amount")
	.From("OpportunityProductInterest")
	.Where("OpportunityId").IsEqual(Column.Parameter(opportunityId)) as Select;
double opportunityAmount = 0.0;
using (var dbExecutor = UserConnection.EnsureDBConnection()) {
	using (IDataReader dr = oppotrunityAmountSelect.ExecuteReader(dbExecutor)) {
		while (dr.Read()) {
			if(!dr.IsDBNull(0)){
				opportunityAmount += (double)UserConnection.DBTypeConverter.DBValueToDecimal(dr[0]);
			}
		}
	}
}
var update = new Update(UserConnection, "Opportunity")
		.Set("Amount", Column.Parameter(opportunityAmount))
		.Where("Id").IsEqual(Column.Parameter(opportunityId));
	update.Execute();

 

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

Спасибо. Нашел - получилось что бы в поле записывалась сумма, но я так понимаю должно быть еще сообщение которое заставляет страницу обновляться (или точнее поле на фронте). Не нахожу таких сообщений в OpportunityPageV2 и наверно с БП объекта тот что отправляет

У страницы OpportunityPageV2 есть много версий в разных пакетах.

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

Я смотрел сразу через дебагер в chrome, что бы видеть все версии сразу

Не оно ли:

details: /**SCHEMA_DETAILS*/{
...
OpportunityProduct: {
	schemaName: "OpportunityProductDetailV2",
	filter: {
		masterColumn: "Id",
		detailColumn: "Opportunity"
	},
	subscriber: {methodName: "onOpportunityProductChanged"}
},
...
methods: {
 
/**
 * Reloads current record.
 * @private
 */
onOpportunityProductChanged: function() {
	this.loadEntity(this.get("Id"));
	this.sendSaveCardModuleResponse(this);
},

 

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

Добрый день!

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

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

Нравится

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

Установите значение class для вашей детали в значение class="ts-controlgroup detail grid-detail ts-controlgroup-collapsed", можно сделать через DOM

Установите значение class для вашей детали в значение class="ts-controlgroup detail grid-detail ts-controlgroup-collapsed", можно сделать через DOM

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

Добрый день,

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

Спасибо!

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

Антон, здравствуйте!

Ваше пожелание зафиксировали.

Можете попробовать сделать кодом. Ниже приблизительный алгоритм:

Для решения вашей задачи вам необходимо:

1) В таб добавить контейнер, в котором разместить грид.
2) В гриде (пункт 1) расположить 2 контейнера.
3) В контейнеры из пункта 2 разместить детали.

Пример кода:

                     {
                        "operation": "insert",
                        "parentName": "ActivityParticipantTab",
                        "name": "DetailsContainer",
                        "propertyName": "items",
                        "values": {
                            "itemType": Terrasoft.ViewItemType.CONTAINER,
                            "items": [],
                            "id": "DetailsContainer",
                            "selectors": {"wrapEl": "#DetailsContainer"}
                    }
                },
                {    
                    "operation": "insert",
                    "name": "DetailsGridContainer",
                    "parentName": "DetailsContainer",
                    "propertyName": "items",
                    "values": {
                        "id": "DetailsGridContainer",
                        "selectors": {"wrapEl": "#DetailsGridContainer"},
                        "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
                        "classes": {
                            "wrapClassName": ["DetailsGridContainer"]
                        },
                        "items": [],
                        "markerValue": "DetailsGridContainer",
                        "collapseEmptyRow": false
                    }
                },
                {
                        "operation": "insert",
                        "parentName": "DetailsGridContainer",
                        "propertyName": "items",
                        "name": "DetailsContainer1",
                        "values": {
                            "itemType": Terrasoft.ViewItemType.CONTAINER,
                            "items": [],
                            "id": "DetailsContainer1",
                            "selectors": {"wrapEl": "#DetailsContainer1"},
                            "layout": { "column": 0, "row": 0, "colSpan": 12 },

                        }
                },
                {
                    "operation": "insert",
                    "parentName": "DetailsGridContainer",
                    "propertyName": "items",
                    "name": "DetailsContainer2",
                     "values": {
                        "itemType": Terrasoft.ViewItemType.CONTAINER,
                        "items": [],
                        "id": "DetailsContainer2",
                        "selectors": {"wrapEl": "#DetailsContainer2"},
                        "layout": { "column": 12, "row": 0, "colSpan": 12 },
                    }
                },

                {
                    "operation": "insert",
                    "parentName": "DetailsContainer2",
                    "propertyName": "items",
                    "name": "ActivityParticipant",
                    "values": {
                        "itemType": Terrasoft.ViewItemType.DETAIL
                    }
                },

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

Пытался создать деталь через мастер и его глюкануло. В итоге деталь создалась, а страница редактирования - нет.

Саму страницу я, понятно, могу создать руками. 

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

Если подробно - я расширил AccountFile своими полями и решил сделать свою деталь с дополнительными пунктами меню. С деталью всё ок, но она не открывает страницу, точнее страница не создалась. Я создал ее руками и попытался сделать 

UPDATE SysModuleEdit
SET CardSchemaUId = 'D0CF937D-7640-4FF0-B237-DB679B4EADDB',
	ActionKindCaption = N'Добавить',
	ActionKindName = 'AccountFilePage',
	PageCaption = N'Страница файла и ссылки контрагента',
	UseModuleDetails = 1
WHERE 'E6C25453-049E-429B-84CD-DA894DA7E826' = [SysModuleEntityId]

но без толку.

'D0CF937D-7640-4FF0-B237-DB679B4EADDB' - моя страница.

Нравится

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

Всегда помогал скрипт отсюда. П5.

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

к сожалению, не помогает. У меня по сути так и было в таблицах уже.

Проблему решил, напишу, может кому-то еще поможет. 

1. Да, инструкцию Данилы надо выполнить

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

getEditRecordButtonEnabled: function() {
	return this.isSingleSelected();
},
 
getOpenCardConfig: function() {
	var config = this.callParent(arguments);
	config.schemaName = "AccountFilePage";
	return config;
},

После чего нужная страница открывается!

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

Как в карточку контакта добавить Продукт. Цель - при открытии Истории контакта, чтобы было видно, какие продукты им покупались. (при добавлении детали - в итоге она не отображается.... возможно, неверные привязки "Колонка детали" и "Колонка объекта"?...

Нравится

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

Здравствуйте, Алеся!

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

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

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

Аналогия - xml data source в Report Server'e, под которым может лежать всё что угодно. Я, например, вызывал 1С и мержил данные с SQL'ем.

Круто же?

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

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

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

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

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