7.7 Сохранение обработи в xls

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Ikatesgi, 9 апр 2017.

  1. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени! Есть Внешняя обработка которая выводит информацию по контрагентам на печать, надо ее сохранить в формат екселя. Все до чего додумался это:
    Код:
     ИмяФайла, ИмяПапки;
    
    Процедура ВыбратьФайл()
        Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяПапки,"Открыть","(*.xls)|*.xls") = 1 Тогда
            Файл = Строка(ИмяПапки+ИмяФайла);            
        КонецЕсли;
    КонецПроцедуры //ВыбратьФайл()
    Процедура Сформировать()
        Перем Запрос, ТекстЗапроса, Таб;
        //Создание объекта типа Запрос
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |Контрагенты = Справочник.Контрагенты.ТекущийЭлемент;
        |Улица = Справочник.Контрагенты.Улица;
        |Дом = Справочник.Контрагенты.Дом;
        |Квартира = Справочник.Контрагенты.Квартира;
        |Этаж = Справочник.Контрагенты.Этаж;
        |ВидЖилья = Справочник.Контрагенты.ВидЖилья;
        |Адрес = Справочник.Контрагенты.Адрес;
        |ГлобальныйИдентификаторподомам = Справочник.Контрагенты.ГлобальныйИдентификаторподомам;
        |AOGUID = Справочник.Контрагенты.AOGUID;
        |ПризнакСтроения = Справочник.Контрагенты.ПризнакСтроения;
        |Группировка Контрагенты упорядочить по Контрагенты.Наименование, Контрагенты.Улица, Контрагенты.Дом, Контрагенты.Квартира, Контрагенты.Этаж, Контрагенты.ВидЖилья, Контрагенты.Площадь, Контрагенты.Адрес, Контрагенты.Тариф, Контрагенты.ПризнакСтроения, Контрагенты.AOGUID, Контрагенты.ГлобальныйИдентификаторподомам;
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
               
       
        // Подготовка к заполнению выходных форм данными запроса
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Сформировать");
        // Заполнение полей "Заголовок"
        Таб.ВывестиСекцию("Заголовок");
        Состояние("Заполнение выходной таблицы...");
        Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
        Пока Запрос.Группировка(1) = 1 Цикл
            // Заполнение полей Контрагенты
            Таб.ВывестиСекцию("Контрагенты");
        КонецЦикла;
        // Вывод заполненной формы
        Таб.ТолькоПросмотр(1);
       
        Эксель = СоздатьОбъект("Excel.Application");
        Книга = эксель.workbooks.add();
        эксель.Visible=1;
        Лист = Книга.worksheets(1);
        книга.saveas(файл);
       
        Таб.записать("Сформировать","");
        Таб.Показать("Сформировать", "");
    
    КонецПроцедуры
    А как теперь заполнить параметрами эту таблицу?
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.330
    Симпатии:
    503
    Баллы:
    204
    1) Вывести в обычную таблицу- макет
    2) Записать как XLS.. Таб.Записать(ИмяФайла,1);
    Если более 5500 строк в таблице - повиснет (тут шаманский бубен понадобится)
  3. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    спасибо работает, но оказалось надо что бы пользователь сам выбирал куда сохранять.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.330
    Симпатии:
    503
    Баллы:
    204
    Так какие проблемы? добавьте выбор каталога на форму
  5. TopicStarter Overlay
    Ikatesgi
    Offline

    Ikatesgi

    Регистрация:
    9 апр 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Проблема в том что я далеко не очень в 1с,
    Код:
    Если ФС.ВыбратьФайл(1,ИмяФайла,ИмяПапки,"сохранить","(*.xls)|*.xls") = 1 Тогда
         ???(ИмяПапки+ИмяФайла);           
        КонецЕсли;
    не пойму что нужно подставить вместо знаков вопроса.
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    22.330
    Симпатии:
    503
    Баллы:
    204
    Имя реквизита на форме

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