Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

выгрузка в ексель дает ошибку Произошла исключительная ситуация (0x800a03ec)

выгрузка в ексель дает ошибку Произошла исключительная ситуация (0x800a03ec)
Я
   koketka
 
21.01.13 - 13:47
Произошла исключительная ситуация (0x800a03ec)
 
 
   koketka
 
1 - 21.01.13 - 13:47
Процедура Отчет(ТабДок, ДатаВыгрузки, СчетВыгрузки) Экспорт

 //  Попытка
 
    Попытка
     // Загрузка объекта Microsoft Excel
 
      Состояние("Выгрузка данных из 1С в Microsoft Excel...");
      ExcelПриложение =  Новый COMОбъект("Excel.Application"); 

    Исключение
      Сообщить("Ошибка при запуске Microsoft Excel."
        + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
      Возврат;
    КонецПопытки;

   // Создадим книгу, по умолчанию в ней уже есть листы
 
    Книга = ExcelПриложение.WorkBooks.Add();


   // Используем первый лист книги Excel
 
    ТекЛист = Книга.WorkSheets(1);

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

    Запрос.УстановитьПараметр("ДатаВыгрузки", КонецДня(ДатаВыгрузки));
    Запрос.УстановитьПараметр("СчетВыгрузки", СчетВыгрузки);
    Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("00001"));
    Результат = Запрос.Выполнить();

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

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

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

    Пока ВыборкаДетали.Следующий() Цикл
        а = а+1;
        ТекЛист.Cells(а, 2).Value = ВыборкаДетали.Счет;
        ТекЛист.Cells(а, 7).Value = ВыборкаДетали.Организация;
        ТекЛист.Cells(а, 8).Value = ВыборкаДетали.Валюта;
        ТекЛист.Cells(а, 9).Value = ВыборкаДетали.Подразделение;
        ТекЛист.Cells(а, 10).Value = ВыборкаДетали.СуммаОстатокДт;
        ТекЛист.Cells(а, 11).Value = ВыборкаДетали.СуммаОстатокКт;
        ТекЛист.Cells(а, 12).Value = ВыборкаДетали.ВалютнаяСуммаОстатокДт;
        ТекЛист.Cells(а, 13).Value = ВыборкаДетали.ВалютнаяСуммаОстатокКт;
        ТекЛист.Cells(а, 14).Value = ВыборкаДетали.КоличествоОстатокДт;
        ТекЛист.Cells(а, 15).Value = ВыборкаДетали.КоличествоОстатокКт;

        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
        Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто1)) = Истина Тогда
            ОбластьДетальныхЗаписей.Параметры.Субконто_1 = ВыборкаДетали.Субконто1.Код;
            ТекЛист.Cells(а, 3).Value = ВыборкаДетали.Субконто1.Код;

        ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто1)) = Истина  Тогда
            ОбластьДетальныхЗаписей.Параметры.Субконто_1 = ВыборкаДетали.Субконто1;
            ТекЛист.Cells(а, 3).Value = ВыборкаДетали.Субконто1;

        КонецЕсли;
        Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто2)) = Истина Тогда
             ОбластьДетальныхЗаписей.Параметры.Субконто_2 = ВыборкаДетали.Субконто2.Код;
             ТекЛист.Cells(а, 4).Value = ВыборкаДетали.Субконто2.Код;

         ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто2)) = Истина  Тогда
              ОбластьДетальныхЗаписей.Параметры.Субконто_2 = ВыборкаДетали.Субконто2;
              ТекЛист.Cells(а, 4).Value = ВыборкаДетали.Субконто2;

        КонецЕсли;

        Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто3)) = Истина Тогда
            ОбластьДетальныхЗаписей.Параметры.Субконто_3 = ВыборкаДетали.Субконто3.Код;
            ТекЛист.Cells(а, 5).Value = ВыборкаДетали.Субконто3.Код;

        ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто3)) = Истина Тогда
             ОбластьДетальныхЗаписей.Параметры.Субконто_3 = ВыборкаДетали.Субконто3;
             ТекЛист.Cells(а, 5).Value = ВыборкаДетали.Субконто3;

        КонецЕсли;

        Если Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто4)) = Истина Тогда
            ОбластьДетальныхЗаписей.Параметры.Субконто_4 = ВыборкаДетали.Субконто4.Код;
            ТекЛист.Cells(а, 6).Value = ВыборкаДетали.Субконто4.Код;

        ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипЗнч(ВыборкаДетали.Субконто4)) = Истина Тогда
             ОбластьДетальныхЗаписей.Параметры.Субконто_4 = ВыборкаДетали.Субконто4 ;
             ТекЛист.Cells(а, 6).Value = ВыборкаДетали.Субконто4;

        КонецЕсли;
                
                ТабДок.Вывести(ОбластьДетальныхЗаписей);
    КонецЦикла;

    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
 
    Попытка
        Книга.SaveAs("d:\vo.xls"); 
        Сообщить("d:\vo.xls Файл сохранен!"); 
    Исключение
        Сообщить("d:\vo.xls Файл не сохранен!"); 
    КонецПопытки;
    ExcelПриложение.Application.Quit();
    КомандаСистемы("taskkill /F /IM excel.exe"); 
   //КонецПопытки;
 
//  КонецПопытки;
КонецПроцедуры
   koketka
 
2 - 21.01.13 - 14:44
неужели не у кого не было?
   koketka
 
3 - 21.01.13 - 15:19
все дошло!
ТекЛист.Cells(а, 2).Value = Строка(ВыборкаДетали.Счет);
и заработало
   vmv
 
4 - 21.01.13 - 15:33
только хотел написать

ТекЛист.Cells(а, 2).Value = ВыборкаДетали.Счет;

и что ексель уже такой умный, что на лету конвертирует чужеродные типы данных?)

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует