У версії 3.2.0.х в деталі "Файли" відсутній механізм видалення файлу з групи. Для вирішення цієї проблеми потрібно додати відповідні пункти в меню видалення та в контексне меню в сервісі wnd_FilesDetailGridArea. А в сервіс scr_FilesDetailGridArea додати обробники подій на ці кнопки та функцію:
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();
}
Можна, звичайно, завантажити виправлені сервіси. Тоді майте на увазі, вони україномовні.
Автор цієї функції Артем Репко
try { UpdateQuery.Execute(); }catch(e){ }
Вы "глушите" все исключения. Зачем?
Були не бажані. Інакше не глушив би :wink:. В Террасофт CRM іноді бувають виключення, які простіше заглушити ніж зрозуміти. Подивіться по конфігурації таких заглушок вистачає.
Ну тогда можно обернуть весь код функции, почему только Execute запроса? :smile:
Ну просто интересно :smile:
Ошибки в Execute запроса на Update будут точно такими же как строчках чуть выше:
FilesDataset.Edit(); FilesDataset('FileGroupID') = null; FilesDataset.Post();
Почему там Вы не обернули в try..catch?
Теоретично, так. Олександр, виникла потреба поставити затичку. SQL-запит виконується успішно, а Execute() викликає помилку.
Те саме виникає при злитті знайдених зв'язків після перевірки на дублі.