8.х Открыть объект Excel из 1С V8

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем AAN, 30 окт 2010.

  1. TopicStarter Overlay
    AAN
    Offline

    AAN

    Регистрация:
    30 окт 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый всем день!
    Пытаюсь решить такую проблему:
    Существует самодельная конфигурация на платформе 1С v 8.1 - база данных сервисного центра. Для обмена данными с головным сервисным центром требуется сформировать файл Excel, заполнить лист некими данными, взятыми в базе 1С, а затем отправить файл по эл. почте. Все это реализуется достаточно легко, однако хотелось бы, перед отправкой, просмотреть сформированный файл, возможно, что-то подредактировать, и лишь после закрытия окна Excel передать управление 1С.
    Сделано это примерно так (все переменные, заключенные в <>, естественно, определены):

    ОбъектПредпродажка=Новый COMОбъект("Excel.Application");
    КнигаПредпродажка=ОбъектПредпродажка.Workbooks.Open(<Имя файла шаблона>);
    ЛистПредпродажки=ОбъектПредпродажка.WorkSheets(1);
    ЛистПредпродажки.SaveAs(<Имя файла результата>); // Сохраним сразу в нужном месте

    // Заполняем ячейки данными:
    ОбъектПредпродажка.Cells(1,1).Value=<Параметр 1>;
    ......
    ОбъектПредпродажка.Cells(9,1).Value=<Параметр ...>;

    ОбъектПредпродажка.Visible=Истина;

    Вот здесь бы остановиться, передать управление Excel и, пока не сохранишь файл, не двигаться дальше. Потом можно задать из 1С вопрос: что делать с файлом - передавать по почте, удалить или еще что-нибудь.
    Но реально не получается: после ОбъектПредпродажка.Visible окно Excel не открывается на полный экран, а сворачивается в мигающую иконку, наружу выплывает вопрос, на который обычно все отвечают автоматом, не просматривая результат формирования. В принципе, достаточно было бы просто заставить Excel развернуть окно на весь экран, но как?

    Может быть, кто-нибудь сталкивался с такой проблемой и знает, как ее решить?

    С уважением, AAN
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Насколько я помню,
    Код:
    ОбъектПредпродажка.Activate()
    
  3. TopicStarter Overlay
    AAN
    Offline

    AAN

    Регистрация:
    30 окт 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Itsvs, добрый вечер!
    Не получается, ругается, что метод объекта не обнаружен (Activate)
  4. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Сори
    Код:
    КнигаПредпродажка.Activate()
    
  5. TopicStarter Overlay
    AAN
    Offline

    AAN

    Регистрация:
    30 окт 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Добрый вечер!
    Вчера я, естественно перепробовал все варианты Activate(). К сожалению, вариант активировать книгу тоже не получается: не ругается, но и не открывает окно в полный рост - дает иконку. Может быть Excel у меня глюкавый - 2003. Я слыхал, что глюков там немерянно. Подумал, подумал, и решил извернуться вот так:

    ЛистСправки.SaveAs(<Имя файла результата);
    ЗапуститьПриложение(<Имя файла результата>);

    Как ни странно, прокатило! Правда, чтобы не возникало дурацких вопросов Сохранять - Не сохранять, первоначальное сохранение убрал. И объект закрыл, чтобы Excel не повис навсегда:

    Попытка
    КнигаСправка.Close(0);
    ОбъектСправка.Application.Quit();
    Исключение
    //
    КонецПопытки;

    Не знаю, красиво ли, но работает. Хотя, конечно, хотелось бы разобраться в чем глюк с Activate().

    В любом случае, Itsys, спасибо большое!!!!
  6. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Дайте обработку, у себя проверю.

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