Добрый день,

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

Спасибо!

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 комментария

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



Передали Ваше пожелание аналитикам продукта для рассмотрения такой реализации. 

Спасибо за помощь в развитии функционала!

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

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

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

1. Можно ли использовать для детали filterMethod, как в основной версии, или каким-либо образом использовать произвольный фильтр, а не только по колонке родительской страницы?

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

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

Нравится

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

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

1. Для деталей можно указывать фильтры, используя метод configure() соотв. sdk-класса:

 

Terrasoft.sdk.Details.configure("Contact", "ActivityDetailV2StandartDetail", {
   filters: Ext.create("Terrasoft.Filter", {
      type: Terrasoft.FilterTypes.Group,
      subfilters: [
         Ext.create("Terrasoft.Filter", {
            compareType: Terrasoft.ComparisonTypes.NotEqual,
            property: "Type",
            value: Terrasoft.GUID.ActivityTypeEmail
         })
      ]
   })
});

2. В целом, изменение режима работы детали делается так:

Terrasoft.sdk.Details.setChangeModes("Contact", "ActivityDetailV2StandartDetail", [Terrasoft.ChangeModes.Read]);

Но если нужно менять режим работы от условия, то для этого в контроллерах страниц есть метод getChangeModes(). Т.е. в контроллерах соотв. страниц (грида, просмотра, редактирования) нужно расширить этот метод:

 

getChangeModeOperations: function() {
   var detailConfig = this.getDetailConfig();
   if (detailConfig) {
      var parentRecord = detailConfig.parentRecord;
      if (parentRecord.get("IsNonActualEmail") === false) {
         return {
            canCreate: false,
            canUpdate: false,
            canDelete: false
         };
      }
   }
   return this.callParent(arguments);
}
Показать все комментарии

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

1. В детали "Участники активности" не знаю что выбрать в колонке детали и колонке объекта. Пробовала разные варианты - не получается.

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

2. Во всех активностях есть вкладка "Файлы и примечания". Что выбрать в детали "Файлы и ссылки Активности"?

и как добавить пункт "Примечания"?

Заранее Спасибо!

Нравится

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

1) я обычно делаю таким образом:

2) Добавление детали . Примечание ,кажется это группа полей "Примечание"+ текстовое поле,у которого скрыт заголовок. Или же надо посмотреть, как кодом прописать добавление примечания на страницу.

Пример со страницы активности(ActivityPageV2, пакет UIv2).  Для текстового поля "Примечания". Обратите внимание  на controlConfig и images. 

{

                    "operation": "insert",

                    "parentName": "ActivityNotesControlGroup",

                    "propertyName": "items",

                    "name": "Notes",

                    "values": {

                        "contentType": Terrasoft.ContentType.RICH_TEXT,

                        "layout": {"column": 0, "row": 0, "colSpan": 24},

                        "labelConfig": {

                            "visible": false

                        },

                        "controlConfig": {

                            "imageLoaded": {

                                "bindTo": "insertImagesToNotes"

                            },

                            "images": {

                                "bindTo": "NotesImagesCollection"

                            }

                        }

                    }

                }

 

Матвеева Светлана,

Спасибо, попробую!

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

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

Нравится

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

Александр, добрый вечер!

Уточните, пожалуйста, какая у вас бизнес-задача? Какую валидацию вы хотите настроить?

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

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

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

https://academy.terrasoft.ru/documents/technic-sdk/7-8/biznes-pravila-i…

https://academy.terrasoft.ru/documents/technic-sdk/7-8/pravilo-bindpara…

http://www.community.terrasoft.ru/forum/topic/12990

Виталий Красный,

вы что плохо читаете? вам человек написал, что нужна валидация на ГРИД детали, а не на страницу редактирования. Он же пишет, что валидация для ПОЛЯ не подходит

Демьяник Алексей,

что непонятного, зачем вы переспрашиваете? там же написано на ГРИД детали, значит для детали с реестром. Это тот случай, когда в вашей документации ничего нет по этому поводу. Никакой информации как валидировать детали с реестром нет.

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

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

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

Нравится

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

Вопрос в том, как внести в изменения в меню, которое генерируется методом getEditPages.
Метода getEditPages мы не нашли - хотя по сути понятно, что он делает, это просто получение списка типов.

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

Проблема ещё в том, что getEditPages используется во многих методах, поэтому также интересует вопрос, как этот метод правильно переопределить, чтобы это не повлияло на другие процессы?

Сопутствующий вопрос, который может помочь решить данную задачу - как вообще удалить из списка типов лишний пункт?

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

Коллеги, доброго времени суток.

Задача состоит в следующем: есть страница Объекта недвижимости, на которой есть деталь "Строения" (со страницей добавления).

Есть ещё одна страница - Предложения, которая создаётся на основе страницы Объекта недвижимости, при создании копируется часть полей со страницы соответствующего Объекта. На той странице есть деталь строения (та же самая).

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

Как это возможно сделать? Я могу вытащить данные строений Объекта при помощи EntitySchemaQuery, но как правильно их подставить? InsrertQuery, насколько я понимаю, здесь не подходит - он сразу создаёт запись в базе, а существует вероятность, что пользователь не сохранит страницу Предложения после копирования.

Версия 7.8 sales.

Спасибо.

Нравится

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

На странице Предложения , после инициализации this.set ("Имя_поля_страницы")= значение;

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

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

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

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

Нравится

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

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

Описание создания детали с редактируемым реестром, Вы можете найти по этой ссылке. Код открытия страницы добавления продуктов описан в методе "loadProductSelectionModule" схемы "ProductDetailV2" из пакета "ProductCatalogue". Сама же логика карточки описана в схеме "OrderProductPageV2".

Добрый день, Илья!

Редактируемый реестр я уже сделал, я имел ввиду страницу добавления продуктов

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

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