Удаление документов вместе с файлами

Появился вопрос:
Когда я удаляю созданный документ в разделе Документы, то файлы прикрепленные к нему на детали Файлы (файлы сохранены в базу данных) остаются в базе данных. Т.е. чтобы не оставлять этот мусор в базе мне приходиться перед удалением документа вручную удалить прикрепленные файлы.
Как сделать чтобы при удалении документа связанные с ним файлы (сохраненные в базу данных) удалялись автоматически ?
---------------
TS CRM 3.3.1.72
MSSQL 2005

Нравится

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

Наверное придется в обработчик клика кнопки "удалить" писать код для удаления файлов.
Или на вкладке деталей сначала поудалять файлы а потом удалить документ.
Можно еще каскадное удаление сделать для таблицы документ

Только что проверил на 3.3.1 SoftKey - действительно, есть такая проблема. Если удалить "Документ", то триггер (для каскадного удаления) удаляет только линк из таблицы tbl_FileInDocument, а вот сам файл остается в таблице tbl_Files (мусор). Но, если удалить файл из детали "Файлы", тогда он удаляет за собой (опять триггер) из tbl_Files.
Вот здесь бы и пригодилась идея Алексея: http://community.terrasoft.ua/ideas/2789 очень жаль, что отложили :cry:

--
www.it-sfera.com.ua

И все же вернемся к вопросу: каков на данный момент наиболее быстрый и простой способ решения данной ситуации ?

К датасету ds_Document надо добавить обработчик события OnAfterDelete, в котором удалять те файлы из tbl_Files, на которые есть ссылки в tbl_FileInDocument, то есть:
- tbl_FileInDocument.DocumentID = ID удаленного документа
- tbl_FileInDocument.FileID = ссылки на tbl_Files

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

--------------------------------------------
Лабитек
Центр разработки приложений

Спасибо будем посмотреть.

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