Распаковывает архив во временную папку и даёт доступ к содержимому, если путь к исходному архиву не указан, то открывается диалог выбора пути.
// Возвращает путь к распакованному архиву и его содержимое
//
// Параметры:
// Архив - ЧтениеZipФайла, Строка, Неопределено - Архив; Путь к архиву; Если неопределенно, то спросит путь у пользователя
// Пароль - Строка
// Возвращаемое значение:
// Структура - содержит:
// * ВременныйПуть - Строка - путь к папке куда будет извлечено содержимое архива
// * Архив - ЧтениеZipФайл
// Пример:
// НаборСхемXML = Новый НаборСхемXML;
// СодержимоеАрхива = СодержимоеАрхива();
// Для Каждого ЭлементАрхива из СодержимоеАрхива.Архив.Элементы Цикл
// Если ЭлементАрхива.Расширение = "xsd" Тогда
// СхемаXML = СхемаXMLИзФайла(СодержимоеАрхива.ВременныйПуть +"/"+ ЭлементАрхива.ПолноеИмя);
// НаборСхемXML.Добавить(СхемаXML);
// КонецЕсли;
// КонецЦикла;
Функция СодержимоеАрхива(Архив = Неопределено, Пароль = Неопределено) Экспорт
Если ТипЗнч(Архив ) = Тип("ЧтениеZipФайла") Тогда
Архив = Архив;
ИначеЕсли ТипЗнч(Архив) = Тип("Строка") Тогда
Архив = Новый ЧтениеZipФайла(Архив, Пароль);
ИначеЕсли Архив = Неопределено Тогда
Путь = Путь("Выберите архив, содержащий схемы XML:", "(*.zip)|*.zip", РежимДиалогаВыбораФайла.Открытие);
Если Путь = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Архив = Новый ЧтениеZipФайла(Путь, Пароль);
Иначе
Возврат Неопределено;
КонецЕсли;
Результат = Новый Структура("Архив", Архив);
Результат.Вставить("ВременныйПуть", КаталогВременныхФайлов() + "ZIP_" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMddHHmmss"));
Архив.ИзвлечьВсе(Результат.ВременныйПуть);
Возврат Результат;
КонецФункции // СодержимоеАрхива()
// Функция - открывает диалог выбора пути, возвращает результат выбора.
//
// Параметры:
// Заголовок - Строка - НПР: "Укажите путь к базе Поставщиков"
// Фильтр - Строка - НПР: "(*.txt)|*.txt"
// Режим - РежимДиалогаВыбораФайла - НПР: РежимДиалогаВыбораФайла.Открытие
// ИсходныйПуть - Строка - НПР: Путь чтобы выбор начинался в определённом месте
//
// Возвращаемое значение:
// Строка, Неопределено - В случае успеха Путь в виде Строки, иначе Неопределено
//
// Пример:
// Элемент.Значение = Путь("Выберите путь к файлу с данными (xls):","(*.xls*)|*.xls*", РежимДиалогаВыбораФайла.Открытие, Элемент.Значение)
Функция Путь(Заголовок, Фильтр, Режим, ИсходныйПуть = Неопределено) Экспорт
Результат = Неопределено;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла (Режим);
//выбор начнётся по исходному пути?!
Если ИсходныйПуть <> Неопределено Тогда
Если Режим = РежимДиалогаВыбораФайла.ВыборКаталога Тогда
ДиалогОткрытияФайла.Каталог = ИсходныйПуть;
ИначеЕсли Режим = ДиалогОткрытияФайла.ПолноеИмяФайла Тогда
ДиалогОткрытияФайла.ПолноеИмяФайла = ИсходныйПуть;
КонецЕсли;
КонецЕсли;
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = Заголовок;
ДиалогОткрытияФайла.Фильтр = Фильтр;
Успех = ДиалогОткрытияФайла.Выбрать();
Если Успех Тогда
Если Режим = РежимДиалогаВыбораФайла.ВыборКаталога Тогда
Результат = ДиалогОткрытияФайла.Каталог;
Иначе
Результат = ДиалогОткрытияФайла.ПолноеИмяФайла;
КонецЕсли;
Иначе
Результат = Неопределено;
КонецЕсли;
Возврат Результат;
КонецФункции
ПроверитьМаксимальнуюДлинуПолногоПутиВРабочемКаталогеПослеПереносаСодержимогоРабочегоКаталога (БСП)
ТаблицаЗначений из кроны ДереваЗначений
ОтфильтроватьСодержимоеТекстаHTML (БСП)
ОтключитьНебезопасноеСодержимое (БСП)
Чтение файлов Excel в таблицу значений (автоматическое наименование столбцов)