Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 15:03

Выгрузка из 1с в Ексель

Автор Вожак, 21 мар 2012, 12:32

0 Пользователей и 2 гостей просматривают эту тему.

Вожак

Цитата: Dethmontt от 21 мар 2012, 22:34
Ты не понимаешь что пишешь, а тупо копируешь чужой код...
Ты хочешь разобраться как это работает или написать на результат????
пока чтобы был результат, параллельно пытаясь разобраться в готовом коде)

Dethmontt

Так не бывает... Либо ты хочешь разобраться, либо нет!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Вожак

Цитата: Dethmontt от 22 мар 2012, 01:36
Так не бывает... Либо ты хочешь разобраться, либо нет!!!
да уж, спасибо за помощь

Klyacksa

Чтобы был результат - это делается проще. Платишь кому-то денежку, а он тебе дает результат. Сидишь потом разбираешься, как это работает.
Либо В НАЧАЛЕ разбираешься, что за среда и как в ней все работает, и постепенно САМ получаешь РЕЗУЛЬТАТ.

Цитироватьмне завтра нужно сдать
Вот теперь все понятно. Студент? Все делается в последнюю минуту, без каких-либо знаний системы и алгоритмов.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Вожак

открытие файла excel происхожит в функции печать ведь? описание точнее открытие файла екселя

Klyacksa

Чего?
Вы бы хоть вопросы нормально ставили. Какая печать? Как это ни странно, открытие файла происходит функцией Open.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Вожак

Вот мой Модуль Объекта:

Функция ИнициализацияТаблицыСтрок()

   Товары = Новый ТаблицаЗначений();
   Товары.Колонки.Добавить("Номер");
   Товары.Колонки.Добавить("НаименованиеТовара");
   Товары.Колонки.Добавить("ЕдиницыИзмерения");
   Товары.Колонки.Добавить("Количество");
   Товары.Колонки.Добавить("ЦенаБезНДС");
   Товары.Колонки.Добавить("СтавкаНДС");
   Товары.Колонки.Добавить("ЦифровойКод");
   Товары.Колонки.Добавить("ЕдиницаИзмерения");
   Товары.Колонки.Добавить("КраткоеНаименование");
   Товары.Колонки.Добавить("НомерГТД");
   Товары.Колонки.Добавить("СуммаБезНДС");
   Товары.Колонки.Добавить("СуммаНДС");
   Товары.Колонки.Добавить("ВсегоСНДС");
   Товары.Колонки.Добавить("ДатаДокумента");

   Возврат Товары;

КонецФункции

Функция СобратьДанныеПоПоступлениюТоваровУслуг(ТекущееОснование)
   ТабДок = Новый ТабличныйДокумент;

        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   Макет = ВнешниеОбработки.ОбработкаВыгрузки.ПолучитьМакет("Макет");
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ПоступлениеТоваровУслугТовары.НомерСтроки,
      |   ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное,
      |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
      |   ПоступлениеТоваровУслугТовары.Количество,
      |   ПоступлениеТоваровУслугТовары.Цена,
      |   ПоступлениеТоваровУслугТовары.СтавкаНДС,
      |   ПоступлениеТоваровУслугТовары.Номенклатура.СтранаПроисхождения.Код,
      |   ПоступлениеТоваровУслугТовары.Номенклатура.СтранаПроисхождения.Наименование,
      |   ПоступлениеТоваровУслугТовары.Номенклатура.НомерГТД
      |ИЗ
      |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
      |ГДЕ
      |   ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";

   Запрос.УстановитьПараметр("Ссылка", ТекущееОснование);

   Результат = Запрос.Выполнить();

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы);
   ТабДок.НачатьАвтогруппировкуСтрок();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
      ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
   КонецЦикла;

   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодвалТаблицы);
   ТабДок.Вывести(ОбластьПодвал);

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   ДанныеДляПечати  = Новый Структура();
   
   ДанныеДляПечати.Вставить("Номер",            СсылкаНаОбъект.Номер);
   ДанныеДляПечати.Вставить("НаименованиеТовара",        ОбластьДетальныхЗаписей.Количество);
   ДанныеДляПечати.Вставить("ЕдиницыИзмерения",          ОбластьДетальныхЗаписей.ЕдиницаИзмерения);
   ДанныеДляПечати.Вставить("Количество",        ОбластьДетальныхЗаписей.Количество);
   ДанныеДляПечати.Вставить("ЦенаБезНДС", ОбластьДетальныхЗаписей.Цена );
   ДанныеДляПечати.Вставить("СтавкаНДС",       ОбластьДетальныхЗаписей.СтавкаНДС);
   ДанныеДляПечати.Вставить("ЦифровойКод", ОбластьДетальныхЗаписей.НоменклатураСтранаПроисхожденияКод );
   ДанныеДляПечати.Вставить("КраткоеНаименование",            ОбластьДетальныхЗаписей.НоменклатураСтранаПроисхожденияНаименование);
   ДанныеДляПечати.Вставить("НомерГТД",           ОбластьДетальныхЗаписей.НоменклатураНомерГТД);
   ДанныеДляПечати.Вставить("СуммаБезНДС",     ОбластьПодвал.Сумма);
   ДанныеДляПечати.Вставить("СуммаНДС", ОбластьПодвал.СуммаСНДС);
   ДанныеДляПечати.Вставить("ВсегоСНДС", ОбластьПодвал.СуммаДокумента);

   ДанныеДляПечати.Вставить("ДатаДокумента", ОбластьПодвал.ДатаДокумента);
   ВыборкаСтрокТовары = Запрос.Выполнить().Выбрать();

   
   Товары = ИнициализацияТаблицыСтрок();
   Пока ВыборкаСтрокТовары.Следующий() = 1 Цикл

      Строчка = Товары.Добавить();
      Строчка.Номер               = ВыборкаСтрокТовары.НомерСтроки;
      Строчка.НаименованиеТовара  = ВыборкаСтрокТовары.НаименованиеПолное;
      Строчка.Количество          = ВыборкаСтрокТовары.Количество;
      Строчка.ЦенаБезНДС          = ВыборкаСтрокТовары.Цена;
      Строчка.СтавкаНДС           = ВыборкаСтрокТовары.СтавкаНДС;
      Строчка.ЦифровойКод         = ВыборкаСтрокТовары.НоменклатураСтранаПроисхожденияКод;
      Строчка.КраткоеНаименование = ВыборкаСтрокТовары.НоменклатураСтранаПроисхожденияНаименование;
      Строчка.ЕдиницаИзмерения    = "";
      Строчка.НомерГТД            = "";
         КонецЦикла;

   ДанныеДляПечати.Вставить("ТабличнаяЧасть", Товары);


   
КонецФункции




Функция Печать(ИмяМакета = "Макет", КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
   
   
   
   
   
КонецФункции

Вожак

выдает ошибку что не определен метод Печать, как его определить я не особо понимаю, а мне вообще в итоге нужна загрузка моей табличной части в ексель, но нихера не получается

Вожак

Процедура ВыгрузкаДанных()
   Попытка
      

Эксель = Новый COMОбъект("Excel.Application");
Книга = Эксель.WorkBooks.Open();
Лист = Книга.WorkSheets(1);

ВсегоКолонок = Лист.Cells(1,1).SpecialCells(9).Column;
ВсегоСтрок = Лист.Cells(1,1).SpecialCells(50).Row;
Для Строка = 1 по ВсегоСтрок цикл
     для Колонка = 1 по ВсегоКолонок цикл
          Значение = СокрЛП(Лист.Cells(Строка,Колонка).Value);
     КонецЦикла;
КонецЦикла;
   Исключение;
      
   КонецПопытки;   
   КонецПроцедуры

Вожак

как и где мне теперь вызвать процедуру выгрузка данных. Ведь при ее вызове на сколько я понимаю и должен открываться заполненный Эксель

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск