8.х Выгрузка в Excel через ПостроительОтчета

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

  1. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Всем здравствуйте!
    В своем отчете вывожу табличную часть в файл таким кодом:
    Код:
            ТабДок = Новый ТабличныйДокумент;
            Построитель = Новый ПостроительОтчета();
            Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
            Построитель.ВыводитьЗаголовокОтчета = Ложь;
            ПолеВыбора = Построитель.ВыбранныеПоля.Найти("НомерСтроки");
            Построитель.ВыбранныеПоля.Удалить(ПолеВыбора);
            Построитель.Вывести(ТабДок );
            ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS);
            Сообщить("Создан документ Excel: "+ИмяФайла);
            ЗапуститьПриложение(ИмяФайла);     
    
    Все устраивает, за исключением того, что таблица в файле начинается со второго столбца. Как убрать лишний пустой столбец в начале листа? Открывать заново и использовать средства VBA как-то некрасиво. Чувствую, что должно быть средство в самом построителе.
    Последнее редактирование: 30 авг 2016
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Столбец слева - это для удобства. Вероятно, не отключаемо, т.к. на уровне платформы выполняется.
  3. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Ой, как жалко... Формат выгрузки регламентирован - пустых столбцов слева быть не должно. А как еще можно выгрузить табличную часть в Эксель без необходимости в цикле заполнять ячейки, не подскажете? Обычно в 8-ке есть много альтернативных способов, но их нужно знать.
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    думаю что никак..
    делать как обычно - вывод через макет.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    можно попробовать удалить столбец из ТабДок перед сохранением в файл.
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Ну или так.
  7. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    А как это сделать практически?
    Пока вышли из положения через VBA:

    Код:
        Попытка
            Excel = Новый COMОбъект("Excel.Application");
            Excel.WorkBooks.Open(ИмяФайла);
            ExcelЛист = Excel.Sheets(1);
        Исключение
            Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
            Возврат;
        КонецПопытки;
            ExcelЛист.Columns("A:A").Delete(-4159);
            Excel.ActiveWorkBook.Save();
            Excel.WorkBooks.Close();
            Excel = 0;
    
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    ТабДок.УдалитьОбласть(ТабДок.Область("С1"), ТипСмещенияТабличногоДокумента.ПоГоризонтали).
  9. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    Выдает ошибку:
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    С - латинская должна быть.

    Можно еще так попробовать область задать: ТабДок.Область(,1) или ТабДок.Область(, 1, , 1)

  11. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    412
    Симпатии:
    72
    Баллы:
    54
    C одной C1 не получилось, а задаю диапазон "R1C1:R20C1" - то, что надо! Теперь осталось чуть только доделать. Спасибо огромное!

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