Имя: Пароль:
1C
1С v8
Записать ТабличныйДокумент в новый лист существующего файла Excel
0 ДядяМитяй
 
07.09.17
18:02
Вот собственно сабж. Хорошо бы было что-нибудь аналогичное ТабличныйДокумент.Записать(). Но поскольку нету, может кто-нибудь подскажет, как это сделать средствами VB, в котором я полный лох. Или еще как. Или сохранить как другой файл, но тогда как перекинуть лист из книги в книгу? В справке по VB нашел только как внутри книги лист пинать.
1 Господин ПЖ
 
07.09.17
18:04
а проблема то в чем? лист - такой же член коллекции как ТЧ из ТабличныеЧасти
2 Базис
 
naïve
07.09.17
18:08
Я тут уже хвалил книгу Андрея Михайлова "1С.Предприятие 7.7/8.0. Системное программирование", но повторюсь. Там хорошие простые примеры и раскрыта объектная модель экселя, ворда и прочая.
3 Tatitutu
 
07.09.17
18:30
1. Для чего это нужно ?
2. выбрал папку - сохранил туда все файлы
3. Всести строку Название файла или выбрать файл
и все что есть в папке в один файл запихать, что осталось удалить...

ДокЭксель = Новый COMОбъект("Excel.Application");
    ДокЭксель.DisplayAlerts=0;
    ОбщаяКнига      =    ДокЭксель.WorkBooks.Open(ИмяОсновногоФайла);
    ЛистСДанными     = ОбщаяКнига.Sheets(1);
    ЛистСДанными.Select();
    ЛистСДанными.Name ="MAGAZKA (http://www.magazkat.ru)";
    
    Сч=1;
    Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл
        Книга            = ДокЭксель.WorkBooks.Open(ПутьКФайлуXLS.Значение);
        ЛистСДанными     = Книга.Sheets(1);
        ЛистСДанными.Select();
        ИмяЛиста=СтрЗаменить(Книга.Name,СокрЛП(ПутьДляСохранения),"");
        ИмяЛиста=СтрЗаменить(ИмяЛиста,".xls","");
        ЛистСДанными.Name =ИмяЛиста;
        ЛистСДанными.Copy(ОбщаяКнига.Sheets(Сч));
        Сч=Сч+1;
        Книга.close();
    КонецЦикла;     
    
    ДокЭксель.ActiveWindow.TabRatio = 0.5;
    ЛистСДанными     = ОбщаяКнига.Sheets(1);
    ЛистСДанными.Select();
    ОбщаяКнига.Save();        
    ОбщаяКнига.close();
    ДокЭксель.Quit();
    
    ДокЭксель = Неопределено;    
    Для каждого ПутьКФайлуXLS Из МассивПутейФайловXLS Цикл        
        УдалитьФайлы(СокрЛП(ПутьКФайлуXLS.Значение));             
    КонецЦикла;
    
    //КомандаСистемы(СокрЛП(ПутьДляСохранения)+"\royalti.xls");
    ДокЭксель = Новый COMОбъект("Excel.Application");
    ДокЭксель.WorkBooks.Open(ИмяОсновногоФайла);
    ДокЭксель.Visible = Истина;
4 Господин ПЖ
 
07.09.17
18:33
>Там хорошие простые примеры и раскрыта объектная модель экселя, ворда и прочая.

эти модели хорошо раскрывает msdn
5 ДядяМитяй
 
08.09.17
09:29
(3) Спасибо, это то, что нужно. Просто в справке в описании этих команд только внутри одной книги все описано - поэтому сомневался.
А нужно это для предоставления реестра в банк по строгому шаблону - три совершенно разных таблицы в одном файле с определенными именами листов.
6 ДядяМитяй
 
08.09.17
15:38
Интересно, что ТабличныйДокумент.Записать(Путь, ".xls) создает файл, в котором только один лист и добавить как-то не получается. Пришлось создавать новый файл и из трех других добавлять листы.
7 ДядяМитяй
 
08.09.17
15:41
* ".xls" - кавычку пропустил