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

Помогите пожалуйста решить задачу по выгрузки из 1С в excel

Автор MrPlankton, 11 мая 2012, 12:36

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

MrPlankton

Доброго времени суток.
Необходимо сделать выгрузку значений из оборотно-сальдовой ведомости 1С в excel(шаблонный файл-в разные ячейки на разных листах). Пытаюсь для начала выгрузить обороты по дебету и кредиту счета "Основные средства" за 2011 год. Но в ячейки excel возвращаются значения 0 - Дт, 0- Кт, 1- Количество записей всего. Обороты по счету за указанный период есть. Помогите пожалуйста. Код процедуры модуля формы внешней обработки:

Процедура КнопкаВыгрузкаНажатие(Элемент);
НачПериода='2011.01.01'; 
КонПериода='2011.12.31';
        //Запрос   
ЗапросОС = Новый Запрос;
ЗапросОС.Текст = ("ВЫБРАТЬ
|   ХозрасчетныйОбороты.СуммаОборотДт,
|   ХозрасчетныйОбороты.СуммаОборотКт 
|ИЗ
|   РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода, &КонПериода,, Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты");

ЗапросОС.УстановитьПараметр("НачПериода", НачПериода);
ЗапросОС.УстановитьПараметр("КонПериода", КонПериода);
ЗапросОС.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОсновныеСредства);

   
РезультатЗапроса = ЗапросОС.Выполнить();
ВыборкаИтоги=РезультатЗапроса.Выгрузить();
КоличествоЗаписей = ВыборкаИтоги.Количество();
    //Выгрузка
ИмяФайла=(Путь); //Путь- поле содержащие путь к файлу
        Excel= Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Excel.Sheets(1).Cells(1,1).Value=ВыборкаИтоги[0].СуммаОборотДт;  // возвращает 0
    Excel.Sheets(1).Cells(1,2).Value=ВыборкаИтоги[0].СуммаОборотКт;  // возвращает 0
    Excel.Sheets(1).Cells(1,3).Value=КоличествоЗаписей;                        // возвращает 1
    Excel.Visible= Истина;
КонецПроцедуры

MrPlankton

Еще раз код:
Процедура КнопкаВыгрузкаНажатие(Элемент);
НачПериода='2011.01.01'; 
КонПериода='2011.12.31';
        //Запрос   
ЗапросОС = Новый Запрос;
ЗапросОС.Текст = ("ВЫБРАТЬ
|   ХозрасчетныйОбороты.СуммаОборотДт,
|   ХозрасчетныйОбороты.СуммаОборотКт 
|ИЗ
|   РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода, &КонПериода,, Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты");

ЗапросОС.УстановитьПараметр("НачПериода", НачПериода);
ЗапросОС.УстановитьПараметр("КонПериода", КонПериода);
ЗапросОС.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОсновныеСредства);

   
РезультатЗапроса = ЗапросОС.Выполнить();
ВыборкаИтоги=РезультатЗапроса.Выгрузить();
КоличествоЗаписей = ВыборкаИтоги.Количество();
    //Выгрузка
ИмяФайла=(Путь); //Путь- поле содержащие путь к файлу
        Excel= Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Excel.Sheets(1).Cells(1,1).Value=ВыборкаИтоги[0].СуммаОборотДт;  // возвращает 0
    Excel.Sheets(1).Cells(1,2).Value=ВыборкаИтоги[0].СуммаОборотКт;  // возвращает 0
    Excel.Sheets(1).Cells(1,3).Value=КоличествоЗаписей;                        // возвращает 1
    Excel.Visible= Истина;
КонецПроцедуры

ChakChak

Excel.Sheets(1).Cells(1,1).Value=ВыборкаИтог ты пытаешься в ячейку, записать целую таблицу.
Как я понимаю, необходимо обойти всю таблицу(ВыборкаИтог) и каждую ее ячейку записать в соответствующую ячейку в Excel.

Теги:

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

Рейтинг@Mail.ru

Поиск