Видалення файлу з групи

У версії 3.2.0.х в деталі "Файли" відсутній механізм  видалення файлу з групи. Для вирішення цієї проблеми потрібно додати відповідні пункти в меню видалення та в контексне меню в сервісі wnd_FilesDetailGridArea. А в сервіс scr_FilesDetailGridArea додати обробники подій на ці кнопки та функцію:

function CurrentGroupClear(){
        var Dataset = dlData.Dataset;
        var FileID = Dataset('ID');
        var FileGroupID = Self.Attributes('FileGroupID');
        var FilesDataset = GetSingleItemByCode('ds_FileInItem', 'CurrentGroupClear');
        FilesDataset.FetchRecordsCount = 1;
        ApplyDatasetFilter(FilesDataset, 'ID', FileID, true);
        FilesDataset.Open();
        if (!FilesDataset.IsEmptyPage) {
                FilesDataset.Edit();
                FilesDataset('FileGroupID') = null;
                FilesDataset.Post();
        }
        FilesDataset.Close();
       
        var UpdateQuery =
                GetSingleItemByCode('uq_UpdateFileGroup', 'CurrentGroupClear');
        UpdateQuery.ColumnsValues.ItemsByName('FileGroupID').Value = null;
        UpdateQuery.Parameters('OldFileGroupID').Value = FileGroupID;
        UpdateQuery.Parameters('NewFileGroupID').Value = null;
        try {
         UpdateQuery.Execute();
        }catch(e){
        }
        Dataset.Close();
        Dataset.Open();
}

Можна, звичайно, завантажити виправлені сервіси. Тоді майте на увазі, вони україномовні.

Автор цієї функції Артем Репко:cool::twisted:

Нравится

Поделиться

7 комментариев
        try {
         UpdateQuery.Execute();
        }catch(e){
        }

Вы "глушите" все исключения. Зачем?

Були не бажані. Інакше не глушив би :wink:. В Террасофт CRM іноді бувають виключення, які простіше заглушити ніж зрозуміти. Подивіться по конфігурації таких заглушок вистачає.

Ну тогда можно обернуть весь код функции, почему только Execute запроса? :smile:

Це вже на ваш смак :smile:

Ну просто интересно :smile:
Ошибки в Execute запроса на Update будут точно такими же как строчках чуть выше:

                FilesDataset.Edit();
                FilesDataset('FileGroupID') = null;
                FilesDataset.Post();

Почему там Вы не обернули в try..catch?

Теоретично, так. Олександр, виникла потреба поставити затичку. SQL-запит виконується успішно, а Execute() викликає помилку.

Те саме виникає при злитті знайдених зв'язків після перевірки на дублі.

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