Материал: Автоматизация документооборота для решения задач организационного управления в ООО "Башкирская концессионная компания"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
113
СписокЗапрещенныхРасширений =
ФайловыеФункции.ПолучитьСписокЗапрещенныхРасширений();
Для Каждого ВыбранныйФайл Из ФайлыАргумент Цикл
Попытка
Если ВыбранныйФайл.Существует() Тогда
Если ВыбранныйФайл.Расширение = ".lnk" Тогда
ВыбранныйФайл =
РазыменоватьLnkФайл(ВыбранныйФайл);
КонецЕсли;
Если ВыбранныйФайл.ЭтоКаталог() Тогда
Если Рекурсивно = Истина Тогда
НовыйПуть =
Строка(ВыбранныйФайл.Путь);
НовыйПуть =
ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(
НовыйПуть,
ОбщегоНазначенияДокументооборотПовтИсп.ТипПлатформыСервера());
НовыйПуть = НовыйПуть +
Строка(ВыбранныйФайл.Имя);
МассивФайлов =
ФайловыеФункцииКлиентСервер.НайтиФайлыПсевдо(ПсевдоФайловаяСистема,
НовыйПуть);
// Создаем группу в справочнике -
эквивалент папки на диске
Если МассивФайлов.Количество() <> 0
Тогда
ИмяФайла = ВыбранныйФайл.Имя;
114
Если
РаботаСФайламиВызовСервера.ЕстьПапкаСТакимИменем(ИмяФайла, Владелец,
ПерваяПапкаСТакимЖеИменем) Тогда
ДокГруппаСсылка =
ПерваяПапкаСТакимЖеИменем;
Иначе
ДокГруппаСсылка =
РаботаСФайламиВызовСервера.СправочникиПапкиСоздатьЭлемент(ИмяФайла,
Владелец, Пользователь);
КонецЕсли;
ИмпортФайлов(
ДокГруппаСсылка,
НовыйПуть,
МассивФайлов,
Индикатор,
МассивИменФайловСОшибками,
МассивСтруктурВсехФайлов,
Комментарий,
ХранитьВерсии,
Рекурсивно,
КоличествоСуммарное,
Счетчик,
ИдентификаторФормы,
ПсевдоФайловаяСистема,
ДобавленныеФайлы,
МассивВсехПапок,
РежимЗагрузки,
Пользователь,
ПараметрыРаспознавания,
Категории);
115
МассивВсехПапок.Добавить(НовыйПуть);
КонецЕсли;
КонецЕсли;
Продолжить;
КонецЕсли;
Если Не
ФайловыеФункцииКлиентСервер.ФайлМожноЗагружать(ВыбранныйФайл,
МаксРазмерФайла, ЗапретЗагрузкиФайловПоРасширению,
СписокЗапрещенныхРасширений, МассивИменФайловСОшибками) Тогда
Продолжить;
КонецЕсли;
// Создаем Элемент справочника Файлы
ИмяБезРасширения =
ВыбранныйФайл.ИмяБезРасширения;
Расширение = ВыбранныйФайл.Расширение;
Если РежимЗагрузки Тогда
Если
РаботаСФайламиВызовСервера.ЕстьФайлСТакимИменем(ИмяБезРасширения,
Владелец) Тогда
Запись = Новый Структура;
Запись.Вставить("ИмяФайла",
ВыбранныйФайл.ПолноеИмя);
ТекстОшибки =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Файл с таким именем
уже есть в информационной базе в папке ""%1""'"),
116
Строка(Владелец));
Запись.Вставить("Ошибка", ТекстОшибки);
МассивИменФайловСОшибками.Добавить(Запись);
Продолжить;
КонецЕсли;
КонецЕсли;
АдресВременногоХранилищаФайла =
ВыбранныйФайл.ПолноеИмя;
АдресВременногоХранилищаТекста =
ИзвлечьТекстВХранилищеЗначения(
ВыбранныйФайл.ПолноеИмя);
// Создаем элемент справочника Файлы
РаботаСФайламиКлиентСервер.СоздатьЭлементСправочникаФайлы(Выбр
анныйФайл, МассивСтруктурВсехФайлов,
Владелец, ИдентификаторФормы, Комментарий,
ХранитьВерсии, ДобавленныеФайлы,
АдресВременногоХранилищаФайла,
АдресВременногоХранилищаТекста, Пользователь,
ПараметрыРаспознавания, Категории);
Иначе
Запись = Новый Структура;
Запись.Вставить("ИмяФайла",
ВыбранныйФайл.ПолноеИмя);
Запись.Вставить("Ошибка", НСтр("ru = 'Файл
отсутствует на диске'"));
МассивИменФайловСОшибками.Добавить(Запись);
КонецЕсли;
Исключение
ОшибкаИнфо = ИнформацияОбОшибке();
СообщениеОбОшибке = "";
117
Если ОшибкаИнфо.Причина = Неопределено Тогда
СообщениеОбОшибке =ОшибкаИнфо.Описание;
Иначе
СообщениеОбОшибке =
ОшибкаИнфо.Причина.Описание;
КонецЕсли;
Запись = Новый Структура;
Запись.Вставить("ИмяФайла", ВыбранныйФайл.ПолноеИмя);
Запись.Вставить("Ошибка", СообщениеОбОшибке);
МассивИменФайловСОшибками.Добавить(Запись);
КонецПопытки;
КонецЦикла;
КонецПроцедуры
// Импорт - с вспомогательными операциями типа проверки предельного
размера и впоследствии удаления файлов и показа ошибок
// при импорте только одной папки - вернет на нее ссылку.
Функция ИмпортФайловВыполнить(
ПапкаДляДобавления,
ВыбранныеФайлы,
Комментарий,
ХранитьВерсии,
УдалятьФайлыПослеДобавления,
Рекурсивно,
ИдентификаторФормы,
Знач ПсевдоФайловаяСистема,
ДобавленныеФайлы,
РежимЗагрузки,
Пользователь,
МассивИменФайловСОшибками,
СтратегияРаспознавания,
ЯзыкРаспознавания,
Источник: https://baza.diplomsite.ru/previewfile/1504