v3.0.0.75

This commit is contained in:
Профи-Софт
2026-07-16 08:07:43 +00:00
parent 055c9c3f45
commit 65657932bd
9 changed files with 768 additions and 694 deletions
@@ -0,0 +1,68 @@
// Клиентский модуль для COM-взаимодействия с Excel
// Содержит только COM-вызовы
&НаКлиенте
Функция ОткрытьФайлExcel(ПутьКФайлу)
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = Ложь;
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Возврат Новый Структура("Книга, Excel", Книга, Excel);
Исключение
Сообщить("Не удалось открыть Excel: " + ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КонецФункции
&НаКлиенте
Процедура ЗакрытьExcel(КонтекстExcel, ВременныйФайл)
Если КонтекстExcel = Неопределено Тогда Возврат; КонецЕсли;
Попытка
КонтекстExcel.Книга.Close(Ложь);
КонтекстExcel.Excel.Quit();
Исключение
КонецПопытки;
Если ЗначениеЗаполнено(ВременныйФайл) Тогда УдалитьФайлы(ВременныйФайл); КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПрочитатьЯчейкуЧисло(Лист, Строка, Колонка, КонтекстОшибки)
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено ИЛИ Значение = "" Тогда Возврат 0; КонецЕсли;
Возврат Число(Значение);
Исключение
Сообщить("Ошибка чтения числа: " + КонтекстОшибки + " | строка " + Строка + " колонка " + Колонка);
Возврат 0;
КонецПопытки;
КонецФункции
&НаКлиенте
Функция ПрочитатьЯчейкуСтрока(Лист, Строка, Колонка)
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено Тогда Возврат ""; КонецЕсли;
Возврат СокрЛП("" + Значение);
Исключение
Возврат "";
КонецПопытки;
КонецФункции
&НаКлиенте
Функция ИзвлечьИмяЛистаИзФормулы(Формула)
Если Формула = Неопределено Тогда Возврат ""; КонецЕсли;
Текст = СокрЛП("" + Формула);
Если Не СтрНачинаетсяС(Текст, "='") Тогда Возврат ""; КонецЕсли;
Поз = СтрНайти(Текст, "'!");
Если Поз = 0 Тогда Возврат ""; КонецЕсли;
Возврат Сред(Текст, 3, Поз - 3);
КонецФункции
&НаКлиенте
Функция НайтиЛист(Книга, ИмяЛиста)
Для Каждого Лист Из Книга.Sheets Цикл
Если ВРег(Лист.Name) = ВРег(ИмяЛиста) Тогда Возврат Лист; КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции