Добрый день!
Задача: создать произвольную деталь "файлы и ссылки", с возможностью группирования добавляемых файлов по значению (колонке).
Данную задачу я решил разбить на две, первая есть добавление самой детали(1), вторая уже реализация группирования(2).
1.
1.1 Для добавления детали я добавил "схема модели представления детали с реестром".
1.2 Унаследовал ее от "FileDetailV2 ( UIv2 )".
1.3 Добавил следующий код:
define("UsrDocumentsFileDetail", [], function() { return { entitySchemaName: "UsrDocumentsListImage" }; } );
1.4 Затем я добавил объект "UsrDocumentsListImage" унаследовав его от "Файл ( Base )".
В объект добавил Lookup на форму, на которой будет отображаться создаваемая деталь. Подробная структура объекта:
[Id], [CreatedOn], [CreatedById], [ModifiedOn], [ModifiedById], [Name], [Notes], [LockedById], [LockedOn], [Data], [TypeId], [Version], [Size], [ProcessListeners], [UsrApplicationFormId] -- Lookup на форму для отображения детали
1.5 На модель страницы формы я добавил следующий код:
details: { // Настройка детали [(Просмотр изображений)Документы] "UsrDocumenctImageViewDetailElement": { "schemaName": "UsrDocumentsFileDetail", "filter": { "detailColumn": "UsrApplicationForm", "masterColumn": "Id" } } }, diff: [ { { "operation": "insert", // Название детали. "name": "UsrDocumenctImageViewDetailElement", "values": { "itemType": Terrasoft.core.enums.ViewItemType.DETAIL, "markerValue": "added-detail" }, // Контейнеры, в котором размещена деталь. // Деталь размещена на вкладке [ДОКУМЕНТЫ И ФОТО]. "parentName": "Tabd3595bedTabLabel", "propertyName": "items", // Индекс в списке добавляемых элементов. "index": 1 } } ]
После компиляции выполненных шагов, деталь корректно отобразилась на форме, файлы корректно записываются в таблицу, но есть проблема, после перезагрузки формы, файлы занесенные в таблицу на форме в детали не отображаются.
Лог консоли браузера:
Error while sending request response status: 500 (ItemNotFoundException) request url: ../DataService/json/SyncReply/SelectQuery method: POST request data: {"rootSchemaName":"UsrDocumentsListImage","operationType":0,"filters":{"items":{"211c1207-255e-48c2-8eb6-e011b92fdfc6":{"filterType":1,"comparisonType"... Uncaught i {message: "Элемент коллекции с именем UsrDocumentsListImage не найден"} user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647 file: http://localhost:83/0/configuration/d79cf7d52ccb236d2d57879ca34250e6ru-RU/FileDetailV2.js line: 183 column: 7 message: Uncaught Terrasoft.UnknownException: Элемент коллекции с именем UsrDocumentsListImage не найден date: Mon Nov 12 2018 17:05:55 GMT+0300 (Москва, стандартное время) stack: undefined
Вопрос:
Как исправить данную проблему и что означает данная ошибка?
Нравится
Добрый день, а в таблице все поля корректно заполняются?
Попробуйте в объекте UsrDocumentsListImage переименовать поле UsrApplicationForm на UsrDocumentsListImage, возможно дело кроется в методе initParentEntity
Колодяжный Владислав Эдуардович,
Спасибо за Ваш ответ!
Заполняется все кроме lockedById([uniqueidentifier] NULL) и lockedOn([datetime2](7) NULL).
В случае переименования в объекте UsrDocumentsListImage поля UsrApplicationForm на UsrDocumentsListImage компилятор ругается:
Элемент c идентификатором "UsrDocumentsListImage" уже существует
Может, набор и имена полей в объекте и в select-запросе отличаются. Посмотрите в Fiddler-е наполнение request data полностью.