|   |   | 
| 
 | Как сохранить несколько разных листов в одной книге .xls программно из 1С? | ☑ | ||
|---|---|---|---|---|
| 0
    
        vechiy 17.10.12✎ 11:45 | 
        Встала вот такая задача. Вроде все описано в сабже.
  Кто знает как давать имена листам в сохраняемом эксель-файле и добавлять новые листы? | |||
| 1
    
        Heckfy 17.10.12✎ 11:48 | ||||
| 2
    
        vechiy 17.10.12✎ 16:24 | 
        спасибо)
  ещё нужно программно сохранить макет печатной формы в .xls, после заполнения и вывода самого макета | |||
| 3
    
        vechiy 17.10.12✎ 16:27 | 
        это вроде нашел) 
  ТабДок.сохранить(йцу,xls) но если у меня выводится 2 или более макетов, и все их нужно сохранить в одну книгу, на разные листы? | |||
| 4
    
        vechiy 17.10.12✎ 17:29 | 
        и рраз     | |||
| 5
    
        Asmody 17.10.12✎ 17:46 | 
        Перем ТаблицыОтчетов;
  Процедура ПоказатьТаблицу(ТабДок, Менеджер) Экспорт Если ТаблицыОтчетов.Количество()=0 Тогда ТекущаяСтраница=ЭлементыФормы.Панель1.Страницы[0]; Иначе ТекущаяСтраница=ЭлементыФормы.Панель1.Страницы.Добавить(); ЭлементыФормы.Панель1.ТекущаяСтраница = ТекущаяСтраница; КонецЕсли; ТекущаяСтраница.Заголовок=Менеджер; ТекущаяСтраница.Значение=Менеджер; ИмяПоляТабДока = "ПолеТабличногоДокумента"+ТекущаяСтраница.Имя; ПолеТабДока = ЭлементыФормы.Добавить(Тип("ПолеТабличногоДокумента"), ИмяПоляТабДока, Истина, ЭлементыФормы.Панель1); ПолеТабДока.Верх = 6; ПолеТабДока.Лево = 6; ПолеТабДока.Ширина = ЭлементыФормы.Панель1.Ширина - 14; ПолеТабДока.Высота = ЭлементыФормы.Панель1.Высота - 30; ПолеТабДока.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Право); ПолеТабДока.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭлементыФормы.Панель1, ГраницаЭлементаУправления.Низ); ПолеТабДока.Вывести(ТабДок); ТаблицыОтчетов.Вставить(Менеджер, ТабДок); КонецПроцедуры Процедура ДействияФормыСохранитьВКнигуExcel(Кнопка) Если ТаблицыОтчетов.Количество()>0 Тогда ДиалогВыбораФайла=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогВыбораФайла.ПолноеИмяФайла = ""; ДиалогВыбораФайла.Фильтр="Файлы Microsoft Excel (*.xls)|*.xls|Все файлы (*.*)|*.*"; ДиалогВыбораФайла.МножественныйВыбор=Ложь; ДиалогВыбораФайла.ПроверятьСуществованиеФайла=Истина; Если Не ДиалогВыбораФайла.Выбрать() Тогда Возврат; КонецЕсли; Попытка xlsApp=ПолучитьCOMОбъект("","Excel.Application"); Исключение Предупреждение("Ошибка при получении объекта Excel. Возможно не установлен Microsoft Office.",15); Возврат; КонецПопытки; xlsApp.SheetsInNewWorkbook = 1; xlsApp.DisplayAlerts = 0; book = xlsApp.Workbooks.Add(); delSheet = book.Sheets(1); Для Каждого Страница из ЭлементыФормы.Панель1.Страницы Цикл Менеджер=Страница.Значение; ТабДок=ТаблицыОтчетов[Менеджер]; ИмяФайла=ПолучитьИмяВременногоФайла("xls"); ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLS); tempBook=xlsApp.Workbooks.Open(ИмяФайла); tempBook.Sheets(1).Name=СокрЛП(Менеджер.Наименование); tempBook.Sheets(1).Copy(delSheet); tempBook.Close(0); УдалитьФайлы(ИмяФайла); //Сообщить("Записан "+Каталог+ИмяФайла); КонецЦикла; Попытка delSheet.Delete(); Исключение КонецПопытки; book.SaveAs(ДиалогВыбораФайла.ПолноеИмяФайла,-4143); xlsApp.DisplayAlerts = 1; xlsApp.Workbooks.Close(); xlsApp.Quit(); //ЗапуститьПриложение( ДиалогВыбораФайла.ПолноеИмяФайла ); КонецЕсли; КонецПроцедуры ТаблицыОтчетов = Новый Соответствие; | |||
| 6
    
        vechiy 17.10.12✎ 18:20 | 
        это, я так понимаю, собственно, создание(копирование) листа?
  tempBook.Sheets(1).Copy(delSheet); | |||
| 7
    
        vechiy 01.11.12✎ 10:21 | 
        блеать не получается так. нельзя просто взять сохранить табдок в нужный лист книги?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |