Вопрос

Сохранение нескольких файлов на ПК из детали "Файлы"

Подскажите, есть ли возможность(или возможность реализовать) сохранения нескольких выделенных файлов на ПК с тем же именем, с которым они хранятся в Terrasoft(аналогично добавлению).

Спасибо.

Нравится

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

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

1. Откройте в Terrasoft Administrator скрипт scr_FilesDetailGridArea;

2. Найдите функцию function SaveToFile() и замените ее содержимое на следующее:

	var IDs = grdData.SelectedIDs.CommaText.split(',');
	for(i = 0; i < IDs.length; i++){
		var FileName = System.CreateObject('TSObjectLibrary.Value');
		var Dat = Services.GetNewItemByUSI('ds_FileInItem');
		ApplyDatasetFilter(Dat, 'ID', IDs[i], true);
		Dat.Open();
		if (Dat('ItemTypeID') != ft_File) {
			continue;
		}	
		FileName.Value =
			GetFieldValueFromDisabledField(Dat, 'Link');
		Dat.Close();		
			var FileExtension = '.' + ExtractFileExtension(FileName.Value);
			var FileFilterValue = '*' + FileExtension;
			FileFilterValue = FileFilterValue + '|' + FileFilterValue;
			var WindowCaption = "Сохранить файл";
			var InitialDir = EmptyStr;
			var IsSaving = true;
			if (FileName.Value == EmptyStr) {
				return;
			}
			if (!(System.PromptForFileName(FileName, FileFilterValue, FileExtension,
					WindowCaption, InitialDir, IsSaving))) {
				return;
			}
			var File = LoadFileFromDatabase(IDs[i], 
				FileName.Value, false);	    //
			if (!File) {
				return;
			} 
	}       

Обратите внимание, в этом случае система будет предлагать задать место сохранения каждого файла отдельно.

Анна, спасибо, а есть возможность сохранять все файлы в выбранный каталог(указать каталог один раз перед сохранением)?

В версиях старше 3.4.1 есть такие функции ядра, а в старых версиях это можно реализовать только вызовом функций shell, то есть, на уровне конфигурации - крайне трудоемко

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