Здравствуйте! У меня проблема в загрузке изображений после добавления стандартного функционала Примечаний.
Примечания добавлены в деталь. Для детали создан собственный объект. Примечания добавляется в схему карточки детали следующим образом... текст сохраняется, изоражения даже не загружаются. ставил точку останова на методе insertImagesToNotes. он не выполняется. хотя должен, как он делает на стандартных страницах. почему?
"operation": "insert",
"name": "UsrNotes",
"values": {
"contentType": 4,
"layout": {
"column": 0,
"row": 0,
"colSpan": 24
},
"labelConfig": {
"visible": false
},
"controlConfig": {
"imageLoaded": {
"bindTo": "insertImagesToNotes"
},
"images": {
"bindTo": "NotesImagesCollection"
}
}
},
"parentName": "NotesControlGroup",
"propertyName": "items",
"index": 0
}
Нравится
Посмотрите в соседнюю тему:
http://www.community.terrasoft.ru/forum/topic/11374
Примечания, это по сути, строка неограниченной длины с доп. атрибутом
contentType: Terrasoft.ContentType.RICH_TEXT,
Каким образом вы могли пытаться подгружать картинку в строку неограниченной длины, если панель со специальными для этого кнопками, появляется только для элементов RICH_TEXT
![]()
У меня такая панель появляется. Прописал
contentType: Terrasoft.ContentType.RICH_TEXT
ничего не изменилось.
Может какие-то зависимости нужно указать для модуля или еще что-то?
Зависимость на странице редактирования раздела, только на сам объект в котором хранятся данные раздела.
Ведь данные детали примечания, не хранятся в каком-то отдельном объекте. Они хранятся в отдельной колонке объекта раздела.
Вот смотрите, пошагово, я создал новый раздел мастером разделов, называется он UsrTestSection, в объекте я добавляю новую колонку "UsrNotes"
![]()
Создал новую вкладку для моей детали, все так же, в мастере, в схеме появился контейнер для нее "UsrTestSectionPage3Tab"
строчкой ниже, я добавляю в него поле с типом RICH_TEXT и ссылкой на колонку объекта раздела (!).
Вот итоговый код всей замещающей схемы страницы редактирования раздела.
[javascript]
define('UsrTestSectionPage', ['UsrTestSectionPageResources', 'GeneralDetails'],
function(resources, GeneralDetails) {
return {
entitySchemaName: 'UsrTestSection',
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"name": "UsrName",
"values": {
"layout": {
"column": 0,
"row": 0,
"colSpan": 24
}
},
"parentName": "Header",
"propertyName": "items",
"index": 0
},
{
"operation": "insert",
"name": "GeneralInfoTab",
"values": {
"caption": {
"bindTo": "Resources.Strings.GeneralInfoTabCaption"
},
"items": []
},
"parentName": "Tabs",
"propertyName": "tabs",
"index": 0
},
{
"operation": "insert",
"name": "UsrTestSectionPage3Tab",
"values": {
"items": [],
"caption": {
"bindTo": "Resources.Strings.UsrTestSectionPage3TabCaption"
}
},
"parentName": "Tabs",
"propertyName": "tabs",
"index": 2
},
{
"operation": "insert",
"parentName": "UsrTestSectionPage3Tab",
"propertyName": "items",
"name": "UsrNotes",
"values": {
contentType: Terrasoft.ContentType.RICH_TEXT,
"layout": {column: 0, row: 0, colSpan: 24},
"labelConfig": {
"visible": false
},
"controlConfig": {
"imageLoaded": {
"bindTo": "insertImagesToNotes"
},
"images": {
"bindTo": "NotesImagesCollection"
}
}
}
}
]/**SCHEMA_DIFF*/,
attributes: {},
methods: {},
rules: {},
userCode: {}
};
});
[/javascript]
Все. В итоге у меня полностью рабочее поле примечаний для записей моего нового раздела.
![]()
Сравните все что делали вы, с тем что описано выше, попробуйте сделать все с нуля, так же как это делал я, и когда у вас это получится, вы найдете ту возможную мелочь что упустили ;)
Из вашего вступления больше всего смущает фраза "Для детали создан собственный объект."
Этого делать не нужно, данная деталь добавляется кодом в схеме редактирования карточки раздела. А данные хранятся в объекте раздела. (см. комментарий выше)
Да сделал как Вы написали. и так даже работает. но отличие в том что, мои примечания находятся не в разделе..а в детале. Еще раз опишу ситуацию..
Есть раздел контакты
![]()
В нем есть "деталь расчет зп водителя". именно под эту деталь создал объект

И когда для этой детали я жму кнопки (добавить/изменить) открывается такая страница
![]()
именно здесь находится вкладка Примечания. и здесь вставка картинки по прежнему не работает
В таком случае все верно. У базовой детали от которой наследуются все остальные, просто нет необходимых атрибутов, методов и миксинов. В отличие от страниц которые наследуются от BaseModulePageV2. Но это можно исправить, посмотрев что реализовано в BaseModulePageV2 и воссоздать это у себя в схеме детали. Далее я покажу основные аспекты, и приведу полный код своего примера. В основе всего я создал объект для детали, на основании Base object with notes (Base), но можно наверно и от обычного базового объекта, а потом добавлять строку неограниченной(!) длины (у вас на скриншоте она ограничена). После я создал деталь мастером деталей, и в автоматически созданной схеме "UsrUsrMyDetail1Page", в конфигураторе, добавляю:
1. зависимость на "NotesUtilities" для requirejs;
2. атрибут:
attributes: {
"NotesImagesCollection": {dataValueType: Terrasoft.DataValueType.COLLECTION}
},3. миксин:
mixins: {
NotesUtilities: "Terrasoft.NotesUtilities"
},4. методы:
methods: {
onNotesImagesUploadComplete: function() {
this.hideBodyMask();
this.updateFileDetail();
},
onNotesImagesUpload: function() {
this.showBodyMask();
},
init: function(callback, scope) {
this.callParent(arguments);
this.mixins.NotesUtilities.initNotesImagesCollection.call(this);
}
}, 5. Ну и само поле для наших заметок:
{
"operation": "insert",
"parentName": "Header",
"propertyName": "items",
"name": "Notes",
"bindTo": "Notes",
"values": {
contentType: Terrasoft.ContentType.RICH_TEXT,
"layout" : {column: 0, row: 1, colSpan: 24},
"controlConfig": {
"imageLoaded": {
"bindTo": "insertImagesToNotes"
},
"images": {
"bindTo": "NotesImagesCollection"
}
}
},
"index": 1
} Полный код схемы карточки детали во вложении. Итог работы:
Добрый день!
Не нашла вложения, где есть полный код страницы.. И еще - что нужно сделать в этом пункте конкретно?
1. зависимость на "NotesUtilities" для requirejs;
Речь о коде в начале:
mixins: {
NotesUtilities: "Terrasoft.NotesUtilities"
},