7.7 Выгрузка в Excel

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Siddy, 11 окт 2009.

  1. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Подскажите, пожалуйста, как обойти ситуацию:
    после окончания действий обработки, которая создает файлы .xls и выгружает в них данные, при попытке открыть один из созданных файлов открываются все. Если закрыть, потом опять открыть - все нормально, открываются по одному.
    Код:
    Excel = СоздатьОбъект("Excel.Application");
    Excel.SheetsInNewWorkBook =1;
    Excel.Caption = "Заказы" + Докум.НомерДок;
    NewBook = Excel.WorkBooks.Add;
    СписокСтолбцов = СоздатьОбъект("СписокЗначений");
    СписокСтолбцов.ДобавитьЗначение("Артикул");
    СписокСтолбцов.ДобавитьЗначение("Товар");
    СписокСтолбцов.ДобавитьЗначение("Количество");   	
    Для Столбец = 1 По СписокСтолбцов.РазмерСписка() Цикл
    Ячейка= Excel.Cells(1,Столбец);  
    Ячейка.Font.Bold = 1;
    Ячейка.Value = СписокСтолбцов.ПолучитьЗначение(Столбец);
    КонецЦикла;
    Столбец = 1;            
    ......................
    //заполняем
    ......................
    ИмяДок = Right(Докум.НомерДок,4);
    Попытка  
    NewBook.SaveAs("С:\НоваяПапка\" + ИмяДок + ".xls");
    Исключение
    Сообщить("Папка не существует");
    Excel.Quit();
    Возврат;
    КонецПопытки;
    
    Excel.Visible = 0;          
    Excel = 0;
    
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Каким образом открываются все? Просто вызываешь Excel и открываются все созданные файлы?
  3. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    открываю любой из созданных - открываются все созданные.
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Просто у Вас Excel закрывается только если файл не удается записать. Нужно либо
    Код:
    Excel.Quit();
    
    
    вынести в конец процедуры из условия, либо закрывать созданную книгу:
    Код:
    NewBook.SaveAs("c:\" + ИмяДок + ".xls");
    NewBook.Close(0);
    
    
    А лучше использовать оба метода - так будет правильнее
  5. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Еще одна проблемка:

    Excel.SheetsInNewWorkBook =1;
    {E:\ВЫГРУЗКА.ERT(23)}: Поле агрегатного объекта не обнаружено (SheetsInNewWorkBook)

    выскакивает, если выбрать выгрузку доков гд-то за неделю
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Кода мало. Покажите как выгрузка вообще построена. То, что в первом посте внутри цикла по документам крутится? Такое ощущение, что просто объект эксель создать не удается уже программе.
    Общий алгоритм должен такой примерно быть:

    Создать объект Excel
    Установить параметры
    Цикл по документам
    Создать книгу
    внести данные
    Записать книгу
    Закрыть книгу
    КонецЦикла
    Закрыть объект Excel
  7. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Спасибо)
  8. TopicStarter Overlay
    Siddy
    Offline

    Siddy Опытный в 1С

    Регистрация:
    18 мар 2009
    Сообщения:
    311
    Симпатии:
    0
    Баллы:
    26
    Еще в тему вопрос. Подскажите, как сделать автофильтр по возрастанию?

    Excel.Range("E1").Select();
    Excel.Selection.AutoFilter();

Поделиться этой страницей