Здравствуйте!
3.4.0.117
Интересуют наиболее эффективные способы сохранения файлов любого типа (файл, ссылка, url, ссылка на папку).
Нравится
5 комментариев
13 апреля 2012 11:28
С использованием функционала детали "Файлы". Очень эффективно :smile:
13 апреля 2012 13:55
Меня интересует как это сделать без GUI (из скрипта).
13 апреля 2012 16:58
То есть необходимо прикрепить добавить файл в таблицу файлов. К какой записи какого раздела она должна быть привязана?
Файл из локальной директории?
13 апреля 2012 17:23
Совершенно верно! Нужно добавить файл в таблицу tbl_Files, а затем создать связь между файлом и записью из раздела Документы , используя развязанную таблицу tbl_FileInDocument
17 апреля 2012 16:05
Добрый день!
Решил вопрос следующим образом:
Добавил в GridArea кнопку, по нажатию на которую выполняется функция AttachOnClick. Сам код ниже:
var RecordID; function AttachOnClick(Control) { RecordID = dlData.Dataset.Values('ID'); var Dataset = Services.GetSingleItemByUSI('ds_Files'); var ObjectType = '{39A5B367-4A7A-473E-8F74-26977CB6DB67}'; var AddedFileIDsArray = new Array(); var FileNameStr = "C:\\Documents and Settings\\I.Gakalo\\Рабочий стол\\Read Me.txt"; AddFile2Record(Dataset, ObjectType, null, 'новый файл.txt', FileNameStr, 1, AddedFileIDsArray); } function AddFile2Record(Dataset, ObjectType, OldFileID, ShortFileName, LongFileName, Revision, AddedFileIDsArray) { var ID = Connector.GenGUID(); try { Dataset.Append(); Dataset.Values('ID') = ID; Dataset.Values('ItemTypeID') = ObjectType; Dataset.Values('Link') = ShortFileName; Dataset.Values('Revision') = Revision; if (ObjectType == ft_File) { var FileSize = GetFileSize(LongFileName); if (FileSize > 0) { Dataset.Values('FileSize') = FileSize; } var Result = SaveFileToDataset(LongFileName, Dataset, 'FileData'); if (!Result) { return; } } var FilePosted = Dataset.Post(); if ((FilePosted) && (ObjectType == ft_File)) { CopyFileAccessDetailData(OldFileID, ID); } } finally { Dataset.Close(); } if (FilePosted) { var InsertQuery = Services.GetSingleItemByUSI('iq_FileInDocument'); var ColumnsValues = InsertQuery.ColumnsValues; ColumnsValues.ItemsByName('FileID').Value = ID; ColumnsValues.ItemsByName('DocumentID').Value = RecordID; ColumnsValues.ItemsByName(BaseGridArea.IDFieldName).Value = dlData.Dataset('ID'); var NewID = Connector.GenGUID(); ColumnsValues.ItemsByName('ID').Value = NewID; InsertQuery.Execute(); AddedFileIDsArray.push(NewID); } }
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать