Показать все файлы по Контрагенту

Каким образом можно на карточке Контрагента отобразить все файлы из связанных с ним Активностей, Продаж и некоторых других объектов?

Есть где-то пример подобной реализации?

Нравится

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

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

Файлы хранятся в следующих таблицах:
Контрагенты - 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 (одну и ту же деталь нельзя использовать несколько раз на странице редактирования), и указать для разных деталей (разные объекты) полем для связи с разделом "Контрагенты".

Алексей, может лучше использовать представление?

"Андросов Дмитрий" написал:

Алексей, может лучше использовать представление?

Здравствуйте, Дмитрий!

Данная задача может быть решена разными способами - вариант с представлением еще один способ решения.

"Андросов Дмитрий" написал:Алексей, может лучше использовать представление?

Спасибо! Кажется, это самый простой вариант!

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