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
+1 -1
View File
@@ -56,7 +56,7 @@
<ScriptVariant>Russian</ScriptVariant>
<DefaultRoles/>
<Vendor>ООО "Профи-Софт", код партнера 42575-13, г.Байконур.</Vendor>
<Version>3.0.0.109</Version>
<Version>3.0.0.110</Version>
<Caption/>
<ShortCaption/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
@@ -36,10 +36,12 @@
Сообщить("Выберите файл!");
Возврат;
КонецЕсли;
Состояние("Загрузка и чтение файла...");
Результат = ПрочитатьФайлНаСервере(Объект.ПутьКФайлу);
Состояние("Загрузка файла...");
АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ПутьКФайлу), УникальныйИдентификатор);
Состояние("Чтение данных...");
Результат = ПрочитатьФайлНаСервере(АдресФайла);
Если Результат = Неопределено Тогда
Сообщить("Ошибка загрузки файла!");
Сообщить("Ошибка чтения файла!");
Возврат;
КонецЕсли;
// Заполняем реквизиты формы
@@ -69,23 +71,23 @@
#Область СерверныеПроцедуры
// Главная функция: читает Excel файл целиком на сервере и возвращает структуру результатов
// Главная функция: читает Excel файл из временного хранилища на сервере
&НаСервере
Функция ПрочитатьФайлНаСервере(ПутьКФайлу) Экспорт
ФайлНаДиске = Новый Файл(ПутьКФайлу);
Если Не ФайлНаДиске.Существует() Тогда
Сообщить("Файл не найден: " + ПутьКФайлу);
Функция ПрочитатьФайлНаСервере(АдресФайла) Экспорт
ДД = ПолучитьИзВременногоХранилища(АдресФайла);
Если ДД = Неопределено Тогда
Сообщить("Файл не получен!");
Возврат Неопределено;
КонецЕсли;
// Копируем во временный каталог (обход проблем с кириллицей)
// Сохраняем во временный файл на сервере
ВремКаталог = КаталогВременныхФайлов();
ИмяФайла = "temp_load" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMddHHmmss") + ФайлНаДиске.Расширение;
ПутьВрем = ВремКаталог + ИмяФайла;
КопироватьФайл(ПутьКФайлу, ПутьВрем);
ПутьВрем = ВремКаталог + "temp_load.xlsx";
ДД.Записать(ПутьВрем);
// Читаем в ТабличныйДокумент
ТаблДок = Новый ТабличныйДокумент;
ТаблДок.Прочитать(ПутьВрем);
УдалитьФайлы(ПутьВрем);
УдалитьФайлы(ПутьВрем);
// Проверяем наличие листа "Расчет"
ЛистРасчет = Неопределено;