From aa3c4401cecf0d425fb58c51050f4fdc830737ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=84=D0=B8-=D0=A1=D0=BE=D1=84=D1=82?= Date: Thu, 23 Jul 2026 04:21:14 +0000 Subject: [PATCH] v3.0.0.110 --- Configuration.xml | 2 +- .../Forms/Форма/Ext/Form/Module.bsl | 26 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Configuration.xml b/Configuration.xml index ecbc10a..18df647 100755 --- a/Configuration.xml +++ b/Configuration.xml @@ -56,7 +56,7 @@ Russian ООО "Профи-Софт", код партнера 42575-13, г.Байконур. - 3.0.0.109 + 3.0.0.110 Language.Русский diff --git a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl index 4574577..9ce4027 100644 --- a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl +++ b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl @@ -36,10 +36,12 @@ Сообщить("Выберите файл!"); Возврат; КонецЕсли; - Состояние("Загрузка и чтение файла..."); - Результат = ПрочитатьФайлНаСервере(Объект.ПутьКФайлу); + Состояние("Загрузка файла..."); + АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ПутьКФайлу), УникальныйИдентификатор); + Состояние("Чтение данных..."); + Результат = ПрочитатьФайлНаСервере(АдресФайла); Если Результат = Неопределено Тогда - Сообщить("Ошибка загрузки файла!"); + Сообщить("Ошибка чтения файла!"); Возврат; КонецЕсли; // Заполняем реквизиты формы @@ -69,23 +71,23 @@ #Область СерверныеПроцедуры -// Главная функция: читает Excel файл целиком на сервере и возвращает структуру результатов +// Главная функция: читает Excel файл из временного хранилища на сервере &НаСервере -Функция ПрочитатьФайлНаСервере(ПутьКФайлу) Экспорт - ФайлНаДиске = Новый Файл(ПутьКФайлу); - Если Не ФайлНаДиске.Существует() Тогда - Сообщить("Файл не найден: " + ПутьКФайлу); +Функция ПрочитатьФайлНаСервере(АдресФайла) Экспорт + ДД = ПолучитьИзВременногоХранилища(АдресФайла); + Если ДД = Неопределено Тогда + Сообщить("Файл не получен!"); Возврат Неопределено; КонецЕсли; - // Копируем во временный каталог (обход проблем с кириллицей) + // Сохраняем во временный файл на сервере ВремКаталог = КаталогВременныхФайлов(); - ИмяФайла = "temp_load" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMddHHmmss") + ФайлНаДиске.Расширение; - ПутьВрем = ВремКаталог + ИмяФайла; - КопироватьФайл(ПутьКФайлу, ПутьВрем); + ПутьВрем = ВремКаталог + "temp_load.xlsx"; + ДД.Записать(ПутьВрем); // Читаем в ТабличныйДокумент ТаблДок = Новый ТабличныйДокумент; ТаблДок.Прочитать(ПутьВрем); УдалитьФайлы(ПутьВрем); + УдалитьФайлы(ПутьВрем); // Проверяем наличие листа "Расчет" ЛистРасчет = Неопределено;