Перем СписокКаталогов ;
Функция ФайлСуществует (Знач ПутьКФайлу) Экспорт
Файл = Новый Файл (ПутьКФайлу);
Возврат Файл.Существует();
КонецФункции
Процедура ПоискКаталога (Каталог)
НайденныеФайлы = НайтиФайлы (Каталог,"*");
Для каждого Ф из НайденныеФайлы цикл
Если Ф.ЭтоКаталог() и Не ф.ПолучитьНевидимость() Тогда
СписокКаталогов.Добавить(Ф.Имя, Ф.ПолноеИмя);
ПоискКаталога (Ф.ПолноеИмя);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПоказатьДокументыНажатие(Элемент)
Если ФайлСуществует(ПапкаПользователя) = ложь Тогда
// Разбираем строку пути и вычленяем имя (только имя) каталога пользователя
ФлагПоиска1 = 0;
ТСтрока = ПапкаПользователя;
Пока ФлагПоиска1 = 0 Цикл
НомерСимвола = Найти(ТСтрока,"\");
ДлСтроки = СтрДлина(ТСтрока);
НоваяСтрока = Прав(ТСтрока, ДлСтроки - НомерСимвола);
Если Найти(НоваяСтрока,"\") = 0 тогда
ФлагПоиска1 = 1;
Прервать;
КонецЕсли;
ТСтрока = НоваяСтрока;
КонецЦикла;
// Путь к каталогу хранения - это путь к каталогу - внутри которого осуществляем поиск.
// в общем случае это имя диска
ПутьХранения = Константы.ПутьККаталогуХранения.Получить()+ "\";
СписокКаталогов = Новый СписокЗначений;
ПоискКаталога (ПутьХранения);
// Поиск имени каталога в списке каталогов.
// И соответсвенно реакция
НайденныйКаталог = СписокКаталогов.НайтиПоЗначению(НоваяСтрока);
Если НайденныйКаталог = Неопределено Тогда
Предупреждение ("Каталог пользователя потерян." + Символы.ПС +
"Поиск каталога результатов не дал." + Символы.ПС +
"Нужна ручная корректировка");
Возврат ;
Иначе
ТекстВопроса = "Каталог пользователя потерян." + Символы.ПС +
"Каталог обнаружен в новом месте." + Символы.ПС +
"Старое размещение: "+ ЭтотОбъект.ПапкаПользователя + Символы.ПС +
"Новое размещение : "+ НайденныйКаталог.Представление + Символы.ПС +
"Скорректировать размещение?";
РезультатВопроса = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Если РезультатВопроса = КодВозвратаДиалога.Нет Тогда
Сообщить ("Путь к найденному каталогу " + НайденныйКаталог.Представление);
Возврат ;
Иначе
ЭтотОбъект.ПапкаПользователя = НайденныйКаталог.Представление;
Сообщить ("Внесение изменений.");
Попытка
ЭтотОбъект.Записать ();
Исключение
Предупреждение("Не удалось записать объект """ + ЭтотОбъект + """
|" + ОписаниеОшибки(),60);
КонецПопытки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
// Здесь вызываем обработку открытия папки по указанному пути
КонецПроцедуры Вступайте в нашу телеграмм-группу Инфостарт