Имя: Пароль:
1C
1C 7.7
v7: Загрузка в 1с 77 из Экселя, без установки Экселя
,
0 Buzztekk
 
19.04.17
09:53
Добрый день. Можно ли сделать импорт из Эксель файла в 1с77 без установки экселя, чтобы не ругался что программа ексель не установлена при вызове СоздатьОбъект("Excel.Application")?

Эксель файл уже есть, надо только чтобы 7-ка могла обратиться к нему, но пишет что нет экселя

Попытка
Эксель= СоздатьОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() +    " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
1 Amra
 
19.04.17
10:00
По АДО цепляйся, а не через Эксель
2 SleepyHead
 
гуру
19.04.17
10:04
Скачай Yoksel, открой им экселовский файл, преобразуй в MXL7 и читай напрямую из 1с.
3 Buzztekk
 
19.04.17
10:10
(1) По АДО это как?? по Экселю много примеров есть, а по АДО где посмотреть?

(2) А к MXL7 как обращаться и разбирать?
4 aka AMIGO
 
19.04.17
10:15
(0) в поиск по форуму:
СоздатьОбъект("MSScriptControl.ScriptControl")

Реально работает, и Excel не нужен
5 aka AMIGO
 
19.04.17
10:16
+4 в Поиске выбери кнопку kb.mista.ru
6 SleepyHead
 
гуру
19.04.17
10:19
(3)

Т = СоздатьОбъект("таблица");
Т.Открыть(имя файла)

и смотри в СП методы работы с областями таблицы, как прочитать
7 Злопчинский
 
19.04.17
10:28
Йокселем кодом в пять строк из экселя получаешь готовую таблицу значений, с которой делай что хочешь.
Если нужна помощь то могу прям вставить и показать
8 LienXo
 
19.04.17
10:32
Ну и через open office тоже можно.
9 NikVars
 
19.04.17
10:40
(0) Красное Я видишь правее названия темы?! Жмакни!
10 Злопчинский
 
19.04.17
11:58
//----------- ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ --------------------------------------------------------------------------------------
    //
    
    ВыбТипФайла         = 2; //эксель всегда
    ВыбСжиматьКартинки     = 1;
    Таб = СоздатьОбъект ("ТабличныйДокумент");
        
    Попытка     Таб.Открыть(ФайлДанных, ВыбТипФайла, ВыбСжиматьКартинки);
    Исключение     
        Форма.Параметр.Установить("КОДВОЗВРАТА",-99);
        Форма.Параметр.Установить("ОПИСАНИЕ","Проблема открытия файла данных: "+ОписаниеОшибки()+": ЗАГРУЗКА НЕ ВЫПОЛНЕНА..?");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    Конвертер = СоздатьОбъект("Йоксель.КонвертерВТаблицуЗначений");
    Конвертер.УстановитьДокумент(Таб);
    Конвертер.ОпределятьСтруктуру             = 0;
    Конвертер.ПроверятьСтруктуру             = 0;
    Конвертер.СтрокДляОпределенияСтруктуры     = 50;
    Попытка ТЗ = Конвертер.Загрузить();
    Исключение
        Форма.Параметр.Установить("КОДВОЗВРАТА",-99);
        Форма.Параметр.Установить("ОПИСАНИЕ","Проблема чтения файла данных: "+ОписаниеОшибки()+": ЗАГРУЗКА НЕ ВЫПОЛНЕНА..?");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
11 Buzztekk
 
19.04.17
12:19
Всем спасибо, буду разбираться!)
12 MWWRuza
 
гуру
19.04.17
23:01
А еще вот такая ВК есть:

ЗагрузитьВнешнююКомпоненту("MiracleV8.dll");

XLS = СоздатьОбъект("AddIn.MiracleClass");

XLS.ReadXLS(ФормИмяФайлаДанных);
    
Для СчСтрок = 1 По КонСтрока Цикл  
    Наименование = СокрЛП(XLS.ReadCell(1,СчСтрок,2));
    Код = Прав("000"+СокрЛП(XLS.ReadCell(1,СчСтрок,1)),3);
            ТЗ.НоваяСтрока();
            ТЗ.Наименование = Наименование;
            ТЗ.Код = Код;
КонецЦикла;
XLS = 0;

Использую уже много лет... Единственный недостаток - надо указывать конечную строку в явном виде...
13 Злопчинский
 
20.04.17
00:29
(12) Это Абадонны (Аркадий Кучер, RIP).
еще у Василия Душелова (Василий Демидов, RIP) есть http://catalog.mista.ru/public/19139/
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.