Каким образом можно на карточке Контрагента отобразить все файлы из связанных с ним Активностей, Продаж и некоторых других объектов?
Есть где-то пример подобной реализации?
Нравится
Здравствуйте!
Файлы хранятся в следующих таблицах:
Контрагенты - AccountFile
Активности - ActivityFile
Продажи - OpportunityFile
Другой объект:
Object - ObjectFile
Все объекты унаследованы от базового объекта File.
Если файлов в системе нет, то Вы можете сделать следующее:
1) Создать объект, унаследовавшись от File (UsrAllObjectsFile)
2) Добавить в него справочные поля интересующих объектов.
3) Удалить деталь "Файлы" во всех разделах.
4) Добавить свою деталь во все разделы (на примере Активностей):
UsrFiles: { schemaName: "FileDetailV2", entitySchemaName: "UsrAllObjectsFile", filter: { masterColumn: "Id", detailColumn: "UsrActivity" } }
(и разместить ее куда-то на страницу)
5) Добавить логику заполнения поля Контрагент при добавлении файла в деталь/изменении значения в поле "Контрагент" основной записи.
Недостатки:
- Не тестировалось
- Может замедлить быстродействие
Преимущества:
- Записи будут отображаться на одной детальке
Другой вариант - заместить FileDetailV2 и тянуть записи из всех связанных объектов через настройки фильтрации. Но с быстродействием есть большие вопросы.
Третий вариант - заместить ObjectFile, добавив в него поле "Контрагент" и организовать логику его заполнения. А дальше сделать несколько деталей, скопировав FileDetailV2 (одну и ту же деталь нельзя использовать несколько раз на странице редактирования), и указать для разных деталей (разные объекты) полем для связи с разделом "Контрагенты".
"Андросов Дмитрий" написал:Алексей, может лучше использовать представление?
Здравствуйте, Дмитрий!
Данная задача может быть решена разными способами - вариант с представлением еще один способ решения.
"Андросов Дмитрий" написал:Алексей, может лучше использовать представление?
Спасибо! Кажется, это самый простой вариант!