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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
118
Категории) Экспорт
Перем ПерваяПапкаСТакимЖеИменем;
Перем ПапкаДляДобавленияТекущая;
ВыбранКаталог = Ложь;
Путь = "";
КоличествоСуммарное = 0;
МассивФайлов = Новый Массив;
Счетчик = 0;
Индикатор = 0;
МассивСтруктурВсехФайлов = Новый Массив;
МассивВсехПапок = Новый Массив;
ПапкаДляДобавленияТекущая = Неопределено;
// параметры распознавания по умолчанию
РаспознатьПослеДобавления = Истина;
Если СтратегияРаспознавания =
Перечисления.СтратегииРаспознаванияТекста.НеРаспознавать Тогда
РаспознатьПослеДобавления = Ложь;
КонецЕсли;
ИспользоватьРаспознавание =
РаботаСФайламиВызовСервера.ПолучитьИспользоватьРаспознавание();
Если ИспользоватьРаспознавание = Ложь Тогда
РаспознатьПослеДобавления = Ложь;
КонецЕсли;
ПараметрыРаспознавания = Новый Структура("СтратегияРаспознавания,
ЯзыкРаспознавания, РаспознатьПослеДобавления",
СтратегияРаспознавания, ЯзыкРаспознавания,
РаспознатьПослеДобавления);
Для Каждого ИмяФайла Из ВыбранныеФайлы Цикл
Попытка
ВыбранныйФайл = Новый Файл(ИмяФайла.Значение);
ВыбранКаталог = Ложь;
Если ВыбранныйФайл.Существует() Тогда
119
ВыбранКаталог = ВыбранныйФайл.ЭтоКаталог();
КонецЕсли;
Если ВыбранКаталог Тогда
Путь = ИмяФайла.Значение;
МассивФайловЭтогоКаталога =
ФайловыеФункцииКлиентСервер.НайтиФайлыПсевдо(ПсевдоФайловаяСистема,
Путь);
ИмяПапки = ВыбранныйФайл.Имя;
Если
РаботаСФайламиВызовСервера.ЕстьПапкаСТакимИменем(ИмяПапки,
ПапкаДляДобавления, ПерваяПапкаСТакимЖеИменем) Тогда
ПапкаДляДобавленияТекущая =
ПерваяПапкаСТакимЖеИменем;
Иначе
ПапкаДляДобавленияТекущая =
РаботаСФайламиВызовСервера.СправочникиПапкиСоздатьЭлемент(ИмяПапки,
ПапкаДляДобавления, Пользователь);
КонецЕсли;
// Собственно импорт
ИмпортФайлов(
ПапкаДляДобавленияТекущая,
Путь,
МассивФайловЭтогоКаталога,
Индикатор,
МассивИменФайловСОшибками,
МассивСтруктурВсехФайлов,
Комментарий,
ХранитьВерсии,
Рекурсивно,
КоличествоСуммарное,
Счетчик,
ИдентификаторФормы,
120
ПсевдоФайловаяСистема,
ДобавленныеФайлы,
МассивВсехПапок,
РежимЗагрузки,
Пользователь,
ПараметрыРаспознавания,
Категории);
МассивВсехПапок.Добавить(Путь);
Иначе
МассивФайлов.Добавить(ВыбранныйФайл);
КонецЕсли;
Исключение
// запись в журнал регистрации
ОписаниеОшибки =
КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ТекстСообщения =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка автоматической загрузки
файлов: ""%1""'"),
ОписаниеОшибки);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Автоматическая загрузка файлов'",
Метаданные.ОсновнойЯзык.КодЯзыка),
УровеньЖурналаРегистрации.Ошибка, , ,
ТекстСообщения);
КонецПопытки;
КонецЦикла;
Если МассивФайлов.Количество() <> 0 Тогда
// Собственно импорт
ИмпортФайлов(
ПапкаДляДобавления,
Путь,
121
МассивФайлов,
КоличествоСуммарное,
Счетчик,
ИдентификаторФормы,
ПсевдоФайловаяСистема,
ДобавленныеФайлы,
МассивВсехПапок,
РежимЗагрузки,
Пользователь,
ПараметрыРаспознавания,
Категории);
КонецЕсли;
Если УдалятьФайлыПослеДобавления = Истина Тогда
ФайловыеФункцииКлиентСервер.УдалитьФайлыПослеДобавления(Масси
вСтруктурВсехФайлов, МассивВсехПапок, РежимЗагрузки);
КонецЕсли;
// Вывод сообщений об ошибках
Для Каждого Выборка Из МассивИменФайловСОшибками Цикл
ТекстСообщения =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = шибка автоматической загрузки файла
""%1"": ""%2""'"),
Выборка.ИмяФайла, Выборка.Ошибка);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Автоматическая загрузка файлов'",
Метаданные.ОсновнойЯзык.КодЯзыка),
УровеньЖурналаРегистрации.Ошибка, , ,
ТекстСообщения);
КонецЦикла;
Если ВыбранныеФайлы.Количество() <> 1 Тогда
ПапкаДляДобавленияТекущая = Неопределено;
КонецЕсли;
122
Возврат ПапкаДляДобавленияТекущая;
КонецФункции
Функция ЕстьПравоДоступа(Пользователь, Папка)
// Если не включена функциональная опция "использовать права доступа" -
то не делаем проверки.
Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей()
Тогда
Возврат Истина;
КонецЕсли;
Возврат
ДокументооборотПраваДоступа.ПолучитьПраваПоОбъекту(Папка,
Пользователь).Добавление;
КонецФункции
// Выполняет загрузку файлов с диска
Процедура ЗагрузкаФайлов(МассивНастроек) Экспорт
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания();
Если ТипЗнч(МассивНастроек) <> Тип("Массив") Тогда
Возврат;
КонецЕсли;
Для Каждого Настройка Из МассивНастроек Цикл
КаталогНаДиске = "";
ТипПлатформыСервера =
ОбщегоНазначенияДокументооборотПовтИсп.ТипПлатформыСервера();
Если ТипПлатформыСервера = ТипПлатформы.Windows_x86 ИЛИ
ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
КаталогНаДиске = Настройка.КаталогWindows;
Иначе
КаталогНаДиске = Настройка.КаталогLinux;
КонецЕсли;
Категории = Неопределено;
Если ТипЗнч(Настройка) = Тип("Структура") Тогда
Настройка.Свойство("Категории", Категории);
Источник: https://baza.diplomsite.ru/previewfile/1504