v3.0.0.110

This commit is contained in:
Профи-Софт
2026-07-23 04:21:14 +00:00
parent f1796f537a
commit aa3c4401ce
2 changed files with 15 additions and 13 deletions
@@ -36,10 +36,12 @@
Сообщить("Выберите файл!");
Возврат;
КонецЕсли;
Состояние("Загрузка и чтение файла...");
Результат = ПрочитатьФайлНаСервере(Объект.ПутьКФайлу);
Состояние("Загрузка файла...");
АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ПутьКФайлу), УникальныйИдентификатор);
Состояние("Чтение данных...");
Результат = ПрочитатьФайлНаСервере(АдресФайла);
Если Результат = Неопределено Тогда
Сообщить("Ошибка загрузки файла!");
Сообщить("Ошибка чтения файла!");
Возврат;
КонецЕсли;
// Заполняем реквизиты формы
@@ -69,23 +71,23 @@
#Область СерверныеПроцедуры
// Главная функция: читает Excel файл целиком на сервере и возвращает структуру результатов
// Главная функция: читает Excel файл из временного хранилища на сервере
&НаСервере
Функция ПрочитатьФайлНаСервере(ПутьКФайлу) Экспорт
ФайлНаДиске = Новый Файл(ПутьКФайлу);
Если Не ФайлНаДиске.Существует() Тогда
Сообщить("Файл не найден: " + ПутьКФайлу);
Функция ПрочитатьФайлНаСервере(АдресФайла) Экспорт
ДД = ПолучитьИзВременногоХранилища(АдресФайла);
Если ДД = Неопределено Тогда
Сообщить("Файл не получен!");
Возврат Неопределено;
КонецЕсли;
// Копируем во временный каталог (обход проблем с кириллицей)
// Сохраняем во временный файл на сервере
ВремКаталог = КаталогВременныхФайлов();
ИмяФайла = "temp_load" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMddHHmmss") + ФайлНаДиске.Расширение;
ПутьВрем = ВремКаталог + ИмяФайла;
КопироватьФайл(ПутьКФайлу, ПутьВрем);
ПутьВрем = ВремКаталог + "temp_load.xlsx";
ДД.Записать(ПутьВрем);
// Читаем в ТабличныйДокумент
ТаблДок = Новый ТабличныйДокумент;
ТаблДок.Прочитать(ПутьВрем);
УдалитьФайлы(ПутьВрем);
УдалитьФайлы(ПутьВрем);
// Проверяем наличие листа "Расчет"
ЛистРасчет = Неопределено;