Ошибка при вызове метода контекста windows

   bard666

15.05.15 — 10:30

Столкнулся со следущим: При сохранении файла ексель в 1С вылетает ошибка:

Ошибка при вызове метода контекста (Save)

                ТекущийДокЕксель.Save();

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод Save из класса Application завершен неверно

Порылся на форумах, внятного ответа как исправить не нашёл.

Делается следущее: есть файл екселя (.xls) с заданной структурой, в него вносятся данные, сохраняются, отсылаются на почты.

Может ли быть такая ошибка из-за того, что на сервере, где выполняется обработка стоит 2013 офис и файл открывается в режиме совместимости? Как это обходить?

   bard666

1 — 15.05.15 — 10:59

Метод saveAs вообще не обнаружен.

   Ненавижу 1С

2 — 15.05.15 — 11:01

может прав нет на место сохранения?

   bard666

3 — 15.05.15 — 11:01

Никто не сталкивался?

   bard666

4 — 15.05.15 — 11:02

Права есть. Если просто открыть екселем, изменить и сохранить как — все прокатывает, а через 1С сохранить не получается.

   bard666

5 — 15.05.15 — 11:04

Создается файлик, но ячейки пустые. Формат вроде нужный — .xls

   Ненавижу 1С

6 — 15.05.15 — 11:05

(4) если это делается на сервере, то права надо смотреть у пользователя под кем работает служба сервера приложений

   фобка

7 — 15.05.15 — 11:13

Новая книга? Попобуй saveas()

   bard666

8 — 15.05.15 — 11:13

(6) Попробую уточнить. По результатам отпишусь.

   bard666

9 — 15.05.15 — 11:13

(7) При этом методе

Метод объекта не обнаружен (SaveAs) ТекущийДокЕксель.SaveAs(КаталогДанных + «» + ТекИмя);

   фобка

10 — 15.05.15 — 11:14

Текущийдокэксель это книга или аппликейшн?

   фобка

11 — 15.05.15 — 11:17

Ну кароч ты книгу должен сохранять. Покажи что присваиваешь текущийдокэксель

   bard666

12 — 15.05.15 — 11:32

До меня делалось:

Код функции, которая возвращает ТекущийДок

Excel    = 0;

    
    Попытка

        Excel = Новый COMОбъект(«Excel.Application»);

    Исключение

        Сообщить(«Не удалось инициализировать Excel»);

        Возврат Неопределено;

    КонецПопытки;

    
    Попытка

        тИмяСупера    = СокрЛП(Супервайзер.Наименование);

        тИмяСупера    = СтрЗаменить(тИмяСупера, «#», «»);

        чПоз    = Найти(тИмяСупера, » «);

        Если чПоз > 0 Тогда

            тИмяСупера    = СокрЛП(Лев(тИмяСупера, чПоз));

        КонецЕсли;

        
        тТекстАшан    = «»;

        чПозНайшлиАшан    = Найти(Должность.Наименование, «АШАН»);

        Если чПозНайшлиАшан > 0 Тогда

            тТекстАшан    = «_ashan»;

        КонецЕсли;

        
        ИмяФайлаКопия = тИмяСупера + «_» + СокрЛП(Должность.Должность) + тТекстАшан + «_» + СокрЛП(Должность.Код) + «_»+Месяц(ТекущаяДата());    

        ИмяФайлаКопия = СтрЗаменить(ИмяФайлаКопия,»00000″,»»);

        ИмяТекужегоДокументаЕксель = СокрЛП(КаталогДанных) + «» + ИмяФайлаКопия + «.xls»;

        
        Попытка

            КопироватьФайл(ИмяФайла, ИмяТекужегоДокументаЕксель);         

            Excel.Workbooks.Open(ИмяТекужегоДокументаЕксель);

        Исключение

            Сообщить(«Некорректное имя файла при копировании (» + ИмяФайла + «) в (» + ИмяТекужегоДокументаЕксель + «)»);

            Excel    = 0;

        КонецПопытки;

        
    Исключение

        Сообщить(ОписаниеОшибки());

        Excel.Quit();

        Excel    = 0;

    КонецПопытки;

    Возврат Excel;

   фобка

13 — 15.05.15 — 11:33

(12) в данном случае текущийдок это не книга

   фобка

14 — 15.05.15 — 11:34

Текдок.activeworkbook

   фобка

15 — 15.05.15 — 11:35

И да — в (12) копрокод

   bard666

16 — 15.05.15 — 11:37

(15) Пробовал

ТекущийДокЕксель.Application.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

ТекущийДокЕксель.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

Также не видит функцию

   bard666

17 — 15.05.15 — 11:43

(15)

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

   фобка

18 — 15.05.15 — 11:43

(16) workbooks это не workbook — другой объект

   Wern

19 — 15.05.15 — 11:43

(16) смотри (12). то что у тебя все неправильное написание.

   фобка

20 — 15.05.15 — 11:44

Ответ дан выше, перечитай (14)

   bard666

21 — 15.05.15 — 11:46

(20) я в (17) показал какая ошибка выпадает при ТекущийДокЕксель.ActiveWorkbook

   bard666

22 — 15.05.15 — 11:47

(19) где неправильно?

   фобка

23 — 15.05.15 — 11:47

Сообщить(каталогданных+»»+текимя);

   bard666

24 — 15.05.15 — 11:58

(23) Здесь все четко.

«F:Ведомостиимя.xls»

   фобка

25 — 15.05.15 — 12:01

(24) Если файл существует попробуй опять save(). Для saveas можно вторым параметром задать формат файла еще

   bard666

26 — 15.05.15 — 12:07

(25) Я ж говорю — ошибка есть, но файл пустой появляется..)

   bard666

27 — 15.05.15 — 12:10

(25) Попробовал передать формат

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя, «.xls»);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

   фобка

28 — 15.05.15 — 12:13

(27) не, формат это число. Передай туда 50

   фобка

29 — 15.05.15 — 12:16

Существует ли на сервере f:ведомости?

   bard666

30 — 15.05.15 — 12:17

(28) Создал. Ура! Осталось протестировать откроет ли 2003 офис

   фобка

31 — 15.05.15 — 12:22

(30) Вбей в справке по vba xlFileFormat

   bard666

32 — 15.05.15 — 12:56

(31) а в Save есть подобные параметры?

   фобка

33 — 15.05.15 — 13:12

(32) нет, он вообще без параметров

   bard666

34 — 15.05.15 — 13:20

(33) Тогда ладно. Файлики создаются.

Есть ещё вопрос.

Обработина, сделанная по образу и подобию

http://catalog.mista.ru/public/88055/

ругается на .Windows(1).Visible = 1;

   фобка

35 — 15.05.15 — 13:28

(34) значит опять путанница с объектами

   bard666

36 — 15.05.15 — 13:29

Код такой:

ТабДок = Новый табличныйДокумент;

    АктивныйДокумент = ПолучитьМакет(«Макет»);  //— Макет Active Document лист Ексель.

    КомОбъект = АктивныйДокумент.Получить();    

    //— далее пишем в Cells(НомерСтроки, НомерСтолбца). Value  все что нужно. см.пример ниже

    //шапка

    Лист=КомОбъект.Sheets(1);

    
        
    Лист.Cells(9,4).Value=Идент;

    Лист.Cells(10,4).Value=Док.Организация.ПолноеНаименование();

    Лист.Cells(11,4).Value=НомерКонтракта;

    Лист.Cells(12,4).Value= ?(ЗначениеЗаполнено(Дата), Формат(Дата, «ДФ=dd.MM.yyyy»), Формат(Док.Дата, «ДФ=dd.MM.yyyy»));

    Лист.Cells(13,4).Value=НомРеестра;

    СимволовДоНулей=Найти(ДокППИ.Номер,»0″);

    НомППИ=Число(Прав(ДокППИ.Номер,СтрДлина(ДокППИ.Номер)-СимволовДоНулей-1));

    Лист.Cells(14,4).Value=СокрЛП(Формат(НомППИ, «ЧГ=0»));

    Лист.Cells(15,4).Value=Формат(ДокППИ.Дата, «ДФ=dd.MM.yyyy»);

    
    //Зарплата к выплате организаций

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

    
    Если НЕ(РезультатЗапроса.Пустой()) Тогда

        
        //СтрокаОтчета = Лист.Range(«Строка»);

        СтрокаОтчета = Лист.Range(«A20»);

        Счетчик=0;

        Итого=0;

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

        Пока Выборка.Следующий() Цикл

            Счетчик=Счетчик+1;

            Если Счетчик>1 Тогда

                СтрокаОтчета.EntireRow.Copy();

                СтрокаОтчета.EntireRow.Insert();

            КонецЕсли;

            //ТекСтрока = СтрокаОтчета.Range(«A»+(СтрокаОтчета.Row-1));

            //ТекСтрока.Cells(СтрокаОтчета.Row-1,1).Value=»Вася»;

            //ТекСтрока.Find(«<ИмяСотрудника>»).Value = СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,1).Value=СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,4).Value=СокрЛП(Выборка.ЛицевойСчет);

            Лист.Cells(19+Счетчик,6).Value=Число(СокрЛП(Выборка.Сумма));

            Итого=Итого+Выборка.Сумма;

        КонецЦикла;

    КонецЕсли;

    
    //итоговая строка

    Лист.Cells(19+Счетчик+1,4).Value=СчетКонтракта;

    Лист.Cells(19+Счетчик+1,6).Value=Итого;

    
    Лист.Cells(19+Счетчик+20,1).Value=»»;   //заплатка с целью увидеть макет целиком

    КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

   bard666

37 — 15.05.15 — 13:30

(35) выложил код. Запросы всякие вырезал.

   bard666

38 — 15.05.15 — 13:32

Вся эта ботва вылезла когда поставили 2013 офис)

   DomovoiAtakue

39 — 15.05.15 — 13:43

Отдельный момент.

Я может ошибаюсь: по коду если все удачно сохранилось, то объект excel не удаляется.

   bard666

40 — 15.05.15 — 13:45

(39) не совсем понимаю к чему это..

   bard666

41 — 15.05.15 — 13:48

Ошибка такая: Ошибка при вызове метода контекста (Windows)

    КомОбъект.Windows(1).Visible = 1;

по причине:

Произошла исключительная ситуация (0x8002000b)

   DomovoiAtakue

42 — 15.05.15 — 13:54

(40)Ну если я все правильно понимаю, то 10 раз запустите свой код, не выходя из 1с, и в процессах будет висеть 10 excel-ей.

   bard666

43 — 15.05.15 — 14:01

(42) Это все проверяю

   bard666

44 — 15.05.15 — 14:02

У меня просто открывается ексель как приложение, а окна документа не видно. Серый экран.

   bard666

45 — 15.05.15 — 14:08

А со второго раза создает.

  

bard666

46 — 15.05.15 — 14:26

Придумал как поправить:

Вместо

КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

Делаю

    
    
    КомОбъект.Activate();

    КомОбъект.Windows(1).Visible = 1;

  

bard666

15.05.15 — 10:30

Столкнулся со следущим: При сохранении файла ексель в 1С вылетает ошибка:

Ошибка при вызове метода контекста (Save)

                ТекущийДокЕксель.Save();

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод Save из класса Application завершен неверно

Порылся на форумах, внятного ответа как исправить не нашёл.

Делается следущее: есть файл екселя (.xls) с заданной структурой, в него вносятся данные, сохраняются, отсылаются на почты.

Может ли быть такая ошибка из-за того, что на сервере, где выполняется обработка стоит 2013 офис и файл открывается в режиме совместимости? Как это обходить?

  

bard666

1 — 15.05.15 — 10:59

Метод saveAs вообще не обнаружен.

  

Ненавижу 1С

2 — 15.05.15 — 11:01

может прав нет на место сохранения?

  

bard666

3 — 15.05.15 — 11:01

Никто не сталкивался?

  

bard666

4 — 15.05.15 — 11:02

Права есть. Если просто открыть екселем, изменить и сохранить как — все прокатывает, а через 1С сохранить не получается.

  

bard666

5 — 15.05.15 — 11:04

Создается файлик, но ячейки пустые. Формат вроде нужный — .xls

  

Ненавижу 1С

6 — 15.05.15 — 11:05

(4) если это делается на сервере, то права надо смотреть у пользователя под кем работает служба сервера приложений

  

фобка

7 — 15.05.15 — 11:13

Новая книга? Попобуй saveas()

  

bard666

8 — 15.05.15 — 11:13

(6) Попробую уточнить. По результатам отпишусь.

  

bard666

9 — 15.05.15 — 11:13

(7) При этом методе

Метод объекта не обнаружен (SaveAs) ТекущийДокЕксель.SaveAs(КаталогДанных + «» + ТекИмя);

  

фобка

10 — 15.05.15 — 11:14

Текущийдокэксель это книга или аппликейшн?

  

фобка

11 — 15.05.15 — 11:17

Ну кароч ты книгу должен сохранять. Покажи что присваиваешь текущийдокэксель

  

bard666

12 — 15.05.15 — 11:32

До меня делалось:

Код функции, которая возвращает ТекущийДок

Excel    = 0;

    

    Попытка

        Excel = Новый COMОбъект(«Excel.Application»);

    Исключение

        Сообщить(«Не удалось инициализировать Excel»);

        Возврат Неопределено;

    КонецПопытки;

    

    Попытка

        тИмяСупера    = СокрЛП(Супервайзер.Наименование);

        тИмяСупера    = СтрЗаменить(тИмяСупера, «#», «»);

        чПоз    = Найти(тИмяСупера, » «);

        Если чПоз > 0 Тогда

            тИмяСупера    = СокрЛП(Лев(тИмяСупера, чПоз));

        КонецЕсли;

        

        тТекстАшан    = «»;

        чПозНайшлиАшан    = Найти(Должность.Наименование, «АШАН»);

        Если чПозНайшлиАшан > 0 Тогда

            тТекстАшан    = «_ashan»;

        КонецЕсли;

        

        ИмяФайлаКопия = тИмяСупера + «_» + СокрЛП(Должность.Должность) + тТекстАшан + «_» + СокрЛП(Должность.Код) + «_»+Месяц(ТекущаяДата());    

        ИмяФайлаКопия = СтрЗаменить(ИмяФайлаКопия,»00000″,»»);

        ИмяТекужегоДокументаЕксель = СокрЛП(КаталогДанных) + «» + ИмяФайлаКопия + «.xls»;

        

        Попытка

            КопироватьФайл(ИмяФайла, ИмяТекужегоДокументаЕксель);         

            Excel.Workbooks.Open(ИмяТекужегоДокументаЕксель);

        Исключение

            Сообщить(«Некорректное имя файла при копировании (» + ИмяФайла + «) в (» + ИмяТекужегоДокументаЕксель + «)»);

            Excel    = 0;

        КонецПопытки;

        

    Исключение

        Сообщить(ОписаниеОшибки());

        Excel.Quit();

        Excel    = 0;

    КонецПопытки;

    Возврат Excel;

  

фобка

13 — 15.05.15 — 11:33

(12) в данном случае текущийдок это не книга

  

фобка

14 — 15.05.15 — 11:34

Текдок.activeworkbook

  

фобка

15 — 15.05.15 — 11:35

И да — в (12) копрокод

  

bard666

16 — 15.05.15 — 11:37

(15) Пробовал

ТекущийДокЕксель.Application.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

ТекущийДокЕксель.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

Также не видит функцию

  

bard666

17 — 15.05.15 — 11:43

(15)

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

  

фобка

18 — 15.05.15 — 11:43

(16) workbooks это не workbook — другой объект

  

Wern

19 — 15.05.15 — 11:43

(16) смотри (12). то что у тебя все неправильное написание.

  

фобка

20 — 15.05.15 — 11:44

Ответ дан выше, перечитай (14)

  

bard666

21 — 15.05.15 — 11:46

(20) я в (17) показал какая ошибка выпадает при ТекущийДокЕксель.ActiveWorkbook

  

bard666

22 — 15.05.15 — 11:47

(19) где неправильно?

  

фобка

23 — 15.05.15 — 11:47

Сообщить(каталогданных+»»+текимя);

  

bard666

24 — 15.05.15 — 11:58

(23) Здесь все четко.

«F:Ведомостиимя.xls»

  

фобка

25 — 15.05.15 — 12:01

(24) Если файл существует попробуй опять save(). Для saveas можно вторым параметром задать формат файла еще

  

bard666

26 — 15.05.15 — 12:07

(25) Я ж говорю — ошибка есть, но файл пустой появляется..)

  

bard666

27 — 15.05.15 — 12:10

(25) Попробовал передать формат

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя, «.xls»);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

  

фобка

28 — 15.05.15 — 12:13

(27) не, формат это число. Передай туда 50

  

фобка

29 — 15.05.15 — 12:16

Существует ли на сервере f:ведомости?

  

bard666

30 — 15.05.15 — 12:17

(28) Создал. Ура! Осталось протестировать откроет ли 2003 офис

  

фобка

31 — 15.05.15 — 12:22

(30) Вбей в справке по vba xlFileFormat

  

bard666

32 — 15.05.15 — 12:56

(31) а в Save есть подобные параметры?

  

фобка

33 — 15.05.15 — 13:12

(32) нет, он вообще без параметров

  

bard666

34 — 15.05.15 — 13:20

(33) Тогда ладно. Файлики создаются.

Есть ещё вопрос.

Обработина, сделанная по образу и подобию

http://catalog.mista.ru/public/88055/

ругается на .Windows(1).Visible = 1;

  

фобка

35 — 15.05.15 — 13:28

(34) значит опять путанница с объектами

  

bard666

36 — 15.05.15 — 13:29

Код такой:

ТабДок = Новый табличныйДокумент;

    АктивныйДокумент = ПолучитьМакет(«Макет»);  //— Макет Active Document лист Ексель.

    КомОбъект = АктивныйДокумент.Получить();    

    //— далее пишем в Cells(НомерСтроки, НомерСтолбца). Value  все что нужно. см.пример ниже

    //шапка

    Лист=КомОбъект.Sheets(1);

    

        
    Лист.Cells(9,4).Value=Идент;

    Лист.Cells(10,4).Value=Док.Организация.ПолноеНаименование();

    Лист.Cells(11,4).Value=НомерКонтракта;

    Лист.Cells(12,4).Value= ?(ЗначениеЗаполнено(Дата), Формат(Дата, «ДФ=dd.MM.yyyy»), Формат(Док.Дата, «ДФ=dd.MM.yyyy»));

    Лист.Cells(13,4).Value=НомРеестра;

    СимволовДоНулей=Найти(ДокППИ.Номер,»0″);

    НомППИ=Число(Прав(ДокППИ.Номер,СтрДлина(ДокППИ.Номер)-СимволовДоНулей-1));

    Лист.Cells(14,4).Value=СокрЛП(Формат(НомППИ, «ЧГ=0»));

    Лист.Cells(15,4).Value=Формат(ДокППИ.Дата, «ДФ=dd.MM.yyyy»);

    

    //Зарплата к выплате организаций

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

    
    Если НЕ(РезультатЗапроса.Пустой()) Тогда

        

        //СтрокаОтчета = Лист.Range(«Строка»);

        СтрокаОтчета = Лист.Range(«A20»);

        Счетчик=0;

        Итого=0;

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

        Пока Выборка.Следующий() Цикл

            Счетчик=Счетчик+1;

            Если Счетчик>1 Тогда

                СтрокаОтчета.EntireRow.Copy();

                СтрокаОтчета.EntireRow.Insert();

            КонецЕсли;

            //ТекСтрока = СтрокаОтчета.Range(«A»+(СтрокаОтчета.Row-1));

            //ТекСтрока.Cells(СтрокаОтчета.Row-1,1).Value=»Вася»;

            //ТекСтрока.Find(«<ИмяСотрудника>»).Value = СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,1).Value=СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,4).Value=СокрЛП(Выборка.ЛицевойСчет);

            Лист.Cells(19+Счетчик,6).Value=Число(СокрЛП(Выборка.Сумма));

            Итого=Итого+Выборка.Сумма;

        КонецЦикла;

    КонецЕсли;

    

    //итоговая строка

    Лист.Cells(19+Счетчик+1,4).Value=СчетКонтракта;

    Лист.Cells(19+Счетчик+1,6).Value=Итого;

    
    Лист.Cells(19+Счетчик+20,1).Value=»»;   //заплатка с целью увидеть макет целиком

    КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

  

bard666

37 — 15.05.15 — 13:30

(35) выложил код. Запросы всякие вырезал.

  

bard666

38 — 15.05.15 — 13:32

Вся эта ботва вылезла когда поставили 2013 офис)

  

DomovoiAtakue

39 — 15.05.15 — 13:43

Отдельный момент.

Я может ошибаюсь: по коду если все удачно сохранилось, то объект excel не удаляется.

  

bard666

40 — 15.05.15 — 13:45

(39) не совсем понимаю к чему это..

  

bard666

41 — 15.05.15 — 13:48

Ошибка такая: Ошибка при вызове метода контекста (Windows)

    КомОбъект.Windows(1).Visible = 1;

по причине:

Произошла исключительная ситуация (0x8002000b)

  

DomovoiAtakue

42 — 15.05.15 — 13:54

(40)Ну если я все правильно понимаю, то 10 раз запустите свой код, не выходя из 1с, и в процессах будет висеть 10 excel-ей.

  

bard666

43 — 15.05.15 — 14:01

(42) Это все проверяю

  

bard666

44 — 15.05.15 — 14:02

У меня просто открывается ексель как приложение, а окна документа не видно. Серый экран.

  

bard666

45 — 15.05.15 — 14:08

А со второго раза создает.

  

bard666

46 — 15.05.15 — 14:26

Придумал как поправить:

Вместо

КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

Делаю

    

         КомОбъект.Activate();

    КомОбъект.Windows(1).Visible = 1;

  • Remove From My Forums
  • Question

  • Any ideas why I am getting COMException when I was expecting and handling an exception of type

    CrystalDecisions.CrystalReports.Engine.InvalidArgumentException

    Why are those nasty interop exceptions showing up ?

    Thanks

    Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Runtime.InteropServices.COMException: Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

    Source Error:

Answers

  • Hello,

    This is definitely a usability issue.  I will track it with our development team and they will have to address it in a future release or service pack.

    Keith — Business Objects

  • Remove From My Forums
  • Question

  • Any ideas why I am getting COMException when I was expecting and handling an exception of type

    CrystalDecisions.CrystalReports.Engine.InvalidArgumentException

    Why are those nasty interop exceptions showing up ?

    Thanks

    Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Runtime.InteropServices.COMException: Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

    Source Error:

Answers

  • Hello,

    This is definitely a usability issue.  I will track it with our development team and they will have to address it in a future release or service pack.

    Keith — Business Objects

I have a part of code which tries to export data (from database) to Excel. When I am trying to perform this task, it is generating this error:

System.Runtime.InteropServices.COMException occurred
Additional information: Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

Code which is generating this error:

string ExcelFileName = RootFolder + "" + "Work_Sheet.xls";
File.Copy(RootFolder + "" + "WorksOrder_Template.xls", ExcelFileName);
Excel.Workbook xlWorkBook;
xlWorkBook = excelApp.Workbooks.Open(ExcelFileName, 0, false, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, Type.Missing, Type.Missing, true, Type.Missing, false, true, Type.Missing);
Excel.Worksheet Page2;
Excel.Worksheet Page3;
Page2 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet2");
Page3 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet3");

The code line on :

Page3 = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("Sheet3");

is generating the aforementioned error. Any idea how to solve this issue?

************** Текст исключения **************

System.Runtime.InteropServices.COMException (0x8002000B): Неверный индекс. (Исключение из HRESULT: 0x8002000B (DISP_E_BADINDEX))

в Microsoft.VisualBasic.CompilerServices.LateBinding .LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)

в Microsoft.VisualBasic.CompilerServices.NewLateBind ing.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)

в WindowsApplication1.Form_Main_Window.Form_Main_Win dow_Load(Object sender, EventArgs e)

в System.EventHandler.Invoke(Object sender, EventArgs e)

в System.Windows.Forms.Form.OnLoad(EventArgs e)

в System.Windows.Forms.Form.OnCreateControl()

в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

в System.Windows.Forms.Control.CreateControl()

в System.Windows.Forms.Control.WmShowWindow(Message& m)

в System.Windows.Forms.Control.WndProc(Message& m)

в System.Windows.Forms.Form.WmShowWindow(Message& m)

в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Загруженные сборки **************

mscorlib

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C

CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

—————————————-

Бриз_ПП

Версия сборки: 1.7.0.1

Версия Win32: 1.7.0.1

CodeBase: file:///C:/Breez_PP/%D0%91%D1%80%D0%B8%D0%B7_%D0%9F%D0%9F_x64.exe

—————————————-

Microsoft.VisualBasic

Версия сборки: 10.0.0.0

Версия Win32: 14.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll

—————————————-

System

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

—————————————-

System.Core

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

—————————————-

System.Windows.Forms

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

—————————————-

System.Drawing

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

—————————————-

System.Configuration

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

—————————————-

System.Xml

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2612.0 built by: NET471REL1LAST_B

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

—————————————-

System.Runtime.Remoting

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll

—————————————-

System.Data

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll

—————————————-

System.Data.resources

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Data.resources.dll

—————————————-

System.Transactions

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll

—————————————-

System.EnterpriseServices

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

—————————————-

Microsoft.Office.Interop.Excel

Версия сборки: 15.0.0.0

Версия Win32: 15.0.4569.1506

CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.Office.Interop.Excel/15.0.0.0__71e9bce111e9429c/Microsoft.Office.Interop.Excel.dll

—————————————-

office

Версия сборки: 15.0.0.0

Версия Win32: 15.0.4613.1000

CodeBase: file:///C:/Windows/assembly/GAC_MSIL/office/15.0.0.0__71e9bce111e9429c/office.dll

—————————————-

mscorlib.resources

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll

—————————————-

System.Windows.Forms.resources

Версия сборки: 4.0.0.0

Версия Win32: 4.7.2556.0 built by: NET471REL1

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll

—————————————-

  • shtucer-igor 04.03.2009 at 12:54

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • shtucer-igor 04.03.2009 at 12:54

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • softbear 11.03.2009 at 00:25

    однозначно плюс !

    Reply

  • COMPER 19.03.2009 at 11:51

    не работает. Но красиво

    Reply

  • COMPER 19.03.2009 at 11:51

    не работает. Но красиво

    Reply

  • COMPER 19.03.2009 at 11:53

  • Pim 19.03.2009 at 19:10

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • Pim 19.03.2009 at 19:10

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • egorover 20.03.2009 at 16:26

    внимательней, там загрузка идёт по всем типам цен в строку

    Reply

  • olee 23.03.2009 at 00:40

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • olee 23.03.2009 at 00:40

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • egorover 23.03.2009 at 08:03

    всё времени нет, укажите имя листа excel Лист1

    Reply

  • olee 23.03.2009 at 10:39

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee 23.03.2009 at 10:39

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee 25.03.2009 at 00:44

    Разобрался, все работает!

    Очень нужная обработка.

    Плюс.

    Reply

  • dev_gen 31.03.2009 at 13:35

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • dev_gen 31.03.2009 at 13:35

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • kozakm 11.04.2009 at 08:26

  • VikFx 28.04.2009 at 11:00

    то, что нужно, спасибо

    Reply

  • VikFx 28.04.2009 at 11:00

    то, что нужно, спасибо

    Reply

  • 4emodan 06.05.2009 at 01:22

    Большое спасибо! Давно искал.

    Reply

  • 4emodan 06.05.2009 at 01:39

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

    Reply

  • 4emodan 06.05.2009 at 01:39

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

    Reply

  • petrash 06.06.2009 at 11:50

    Выручил! Спасибо большое!

    Reply

  • qwertylion@rambler.ru 07.06.2009 at 19:01

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • qwertylion@rambler.ru 07.06.2009 at 19:01

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • steelrat1976 20.06.2009 at 15:19

    нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:20

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:20

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:22

    все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976

    Reply

  • Dimka74 21.07.2009 at 04:29

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • Dimka74 21.07.2009 at 04:29

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • sly99 07.10.2009 at 21:25

    можно поподробнее, что где писать?

    выдает ошибку

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • cooldanie 06.11.2009 at 15:51

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • cooldanie 06.11.2009 at 15:51

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • helloworld 09.11.2009 at 14:31

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();

    Reply

  • labuh 26.11.2009 at 03:38

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh 26.11.2009 at 03:38

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh 27.11.2009 at 23:51

    Здесь что, больше никто не живет???

    Reply

  • meser 06.12.2009 at 22:22

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • meser 06.12.2009 at 22:22

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • nikser 11.01.2010 at 18:40

    Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .

    Reply

  • Epishko 14.02.2010 at 22:04

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Epishko 14.02.2010 at 22:04

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Родная 14.04.2010 at 10:56

    изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка

    {ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)

    по причине:

    Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)

    при том что справочник «Установка цен номенклатуры» пуст.

    Что я не так делаю?

    Reply

  • provnick 24.01.2011 at 21:39

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • provnick 24.01.2011 at 21:39

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • Glenas 28.01.2011 at 14:46

    Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо

    Reply

  • egorover 29.07.2011 at 10:03

  • egorover 29.07.2011 at 10:03

  • lenka-nes@mail.ru 13.10.2011 at 10:19

    спасибо!пригодилось

    Reply

  • wwizard 01.11.2011 at 17:05

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • wwizard 01.11.2011 at 17:05

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • tgnike 08.11.2011 at 12:30

    Она со всеми екселями работате?

    Reply

  • w22u 21.11.2011 at 14:54

    Спасибо, протестируем Вашу обработку.

    Reply

  • w22u 21.11.2011 at 14:54

    Спасибо, протестируем Вашу обработку.

    Reply

  • Belka063 30.11.2011 at 09:30

    Работает.Спасибо.Помогло

    Reply

  • AruslanM 07.12.2011 at 10:41

    Спасибо за идею, пригодилось.

    Reply

  • AruslanM 07.12.2011 at 10:41

    Спасибо за идею, пригодилось.

    Reply

  • Ibrogim 19.12.2011 at 10:51

    Спасибо за обработку, помогла как пример

    Reply

  • ASoft 18.01.2012 at 22:14

  • ASoft 18.01.2012 at 22:14

  • maratsat 21.01.2012 at 17:44

    Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.

    Во-вторых, предложения по улучшению

    Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.

    Или как вариант сделать возможным добавлять разные типы цен к одному документу.

    А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.

    Reply

  • wwizard 21.01.2012 at 23:25

    (35) так что делать то

    Reply

  • wwizard 21.01.2012 at 23:25

    (35) так что делать то

    Reply

  • egorover 23.01.2012 at 21:18

    (42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен

    Reply

  • egorover 23.01.2012 at 21:19

    (43) имя листа в книге excel

    Reply

  • egorover 23.01.2012 at 21:19

    (43) имя листа в книге excel

    Reply

  • FE_D_OR83 31.01.2012 at 15:11

    Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.

    Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.

    Reply

  • fonomo0 31.01.2012 at 15:24

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • fonomo0 31.01.2012 at 15:24

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • AlexxxMksv 29.04.2012 at 12:17

    Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?

    Reply

  • TitanLuchs 17.06.2012 at 13:20

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • TitanLuchs 17.06.2012 at 13:20

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • MyPuK_OLD 19.11.2013 at 15:46

    Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?

    Reply

  • egorover 19.11.2013 at 21:23

    Пробуйте, не пробовал, код открыт

    Reply

  • Ошибка при вызове метода контекста в 1С

    Любой программист 1С встречался с таким сообщением, как «Ошибка при вызове метода контекста (Выполнить)». Обычно эта ошибка не вызывает затруднения у опытного программиста. Почему она возникает? Рассмотрим ниже.

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

    Самые распространенные ошибки при вызове типовых методов:

    • Записать
    • Создать
    • Подключиться
    • Connect
    • ПроверитьВывод
    • PreviewFile1C
    • Прочитать
    • Выполнить
    • ВыполнитьПакет
    • ПрочитатьИзменения

    Рассмотрим пример. Мы программно создали запрос (справочник по запросам), передав в параметры «текст» вот такой фрагмент:

    В конструкции «ГДЕ» мы преднамеренно ошиблись, поставив «И», но не прописав еще одно условие. Совершенно логично, что 1С не сможет справиться с таким запросом и выдаст ошибку:

    <МодульСеанса(21)>: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
    по причине:
    <(13, 4)>: Синтаксическая ошибка
    И >

    Рассмотрим еще один пример:

    Получите 267 видеоуроков по 1С бесплатно:

    Перенесем ошибочный код в обработчик «ПередЗаписью» справочника «Версии программ» и попробуем записать справочник программно. Видим ошибку:

    <МодульСеанса(8)>: Ошибка при вызове метода контекста (Записать)
    Выборка.ПолучитьОбъект().Записать();
    по причине:
    Ошибка при выполнении обработчика — ‘ПередЗаписью’
    по причине:
    <Справочник.ВерсииПрограмм.МодульОбъекта(20)>: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
    по причине:
    <(13, 4)>: Синтаксическая ошибка
    И >

    Несмотря на то, что ошибка заключается в выполнения метода «Выполнить», система ругается и на строчку кода, где вызывается программная запись объекта.

    Решение проблемы

    Для решения проблемы достаточно понять, в чем именно заключается ошибка. В 99% случаев проблема решается банальным чтением справки и анализом проблемы.

    Для того чтобы узнать, как пользоваться тем или иным методом, достаточно установить курсор на интересующей Вас функции и нажать «Ctrl + F1». Платформа 1С выдаст Вам контекстную подсказку по требуемому методу:

    Проверьте параметры, передаваемые в функцию, и правильность её использования.

    Другие статьи по 1С:

    К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

    Источник

    Ошибка при настройке синхронизации УТ 11.4.6.239 — БП 3.0.68.58

    На УТ 11.4.7.114 ошибка повторяется.
    Как бы узнать какая версия была без ошибки ?

    Еще хотел в отладчике посмотреть, но как продолжить настройку после ошибки не понятно. Если запустить по кнопке «Синхронизация», то в журнале регистрации сообщение:

    У меня следующая ошибка в базе, согласно Журнала регистрации:

    о причине:
    Ошибка проверки данных XDTO:
    Структура объекта ‘/Товары/Строка[1]/ДанныеНоменклатуры/Упаковка’ не соответствует типу: < http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6 >КлючевыеСвойстваУпаковка
    Проверка свойства ‘Наименование’:
    форма: Элемент
    имя: < http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6 >Наименование
    тип: < http://www.w3.org/2001/XMLSchema >string
    Не установлено значение одного из следующих свойств: ЕдиницаИзмерения

    Не пойму в чём суть проблемы — ведь в документе ед.изм. указана, а функционал упаковок в базе не включался даже и не включён по сей час.

    Подсобите пожалуйста — куда копать ?

    А что было за ошибка? У меня сейчас такая ошибка, после обновления.
    <ОбщийМодуль.ОбменДаннымиСервер.Модуль(5450)>: Ошибка при вызове метода контекста (СтрокаСообщенияОбОшибке)
    СтруктураНастроекОбменаВнешнееСоединение.СтрокаСообщенияОбОшибке = ОбработкаДляЗагрузкиДанных.СтрокаСообщенияОбОшибке();
    по причине:
    Произошла исключительная ситуация (1C:Enterprise 8.3.14.1630): <Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(81)>: Значение не является значением объектного типа (СтрокаСообщенияОбОшибке)

    Где искать — ума не приложу. Мучаюсь 3 дня.

    <ОбщийМодуль.ОбменДаннымиСервер.Модуль(5551)>: Ошибка при вызове метода контекста (СтрокаСообщенияОбОшибке)

    Такая же ошибка!! Не могли бы подсказать, где собака зарыта? Отчетность на носу, а данные не можем выгрузить? СПАСИБО!

    Направление: Отправка.
    ПОД: Документ_ПоступлениеТоваровУслуг_Отправка.
    ПКО: Документ_ПоступлениеТоваровУслуг_Отправка.
    Объект: Документ объект: Приобретение товаров и услуг, Приобретение товаров и услуг УТ00-000008 от 11.02.2019 12:00:00 (e1cib/data/Документ.ПриобретениеТоваровУслуг?ref=a2ea001e8c5cea6f11e92fc0e35d94aa).

    <ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(3976)>: Ошибка при вызове метода контекста (Проверить)
    ОбъектXDTO.Проверить();
    по причине:
    Ошибка проверки данных XDTO:
    Структура объекта ‘/РасшифровкаДопРасходов/Строка[1]/ДокументПоступления/ПоступлениеТоваровУслугСсылка’ не соответствует типу: < http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6 >КлючевыеСвойстваПоступлениеТоваровУслуг
    Проверка свойства ‘Контрагент’:
    форма: Элемент
    имя: < http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6 >Контрагент
    тип: < http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6 >КлючевыеСвойстваКонтрагент
    Отсутствует обязательное свойство

    Не удалось выполнить конвертацию в объект формата «Документ.ПоступлениеТоваровУслуг»:
    Документ.ПоступлениеТоваровУслуг
    ->РасшифровкаДопРасходов
    ->Строка[1]
    ->ДокументПоступления
    ->ПоступлениеТоваровУслугСсылка
    ->Контрагент — не заполнено обязательное поле.

    Дополнительная информация:
    Направление: Отправка.
    ПОД: Документ_ПоступлениеТоваровУслуг_Отправка.
    ПКО: Документ_ПоступлениеТоваровУслуг_Отправка.
    Объект: Документ объект: Приобретение товаров и услуг, Приобретение товаров и услуг УТ00-000008 от 11.02.2019 12:00:00 (e1cib/data/Документ.ПриобретениеТоваровУслуг?ref=a2ea001e8c5cea6f11e92fc0e35d94aa).

    Источник

    Тема: COM-объект и Excel

    Опции темы
    Поиск по теме
    Отображение

    COM-объект и Excel

    Создаю COM-объект и пытаюсь открыть файл Excel:
    ex=Новый ComОбъект(«Excel.Application»);
    ex.WorkBooks.Open(Файл);
    Файл существует, COM-объект создается, но при открытии файла Excel выдается сообщение:

    Ошибка при вызове метода контекста (Open)
    ex.WorkBooks.Open(Файл);
    по причине:
    Неизвестная ошибка

    Сталкиваюсь с этим впервые, на других компах всю жизнь все работает, с любой платформой 8.3
    Если что-то с Excel, то что?

    Re: COM-объект и Excel

    Создаю COM-объект и пытаюсь открыть файл Excel:
    ex=Новый ComОбъект(«Excel.Application»);
    ex.WorkBooks.Open(Файл);
    Файл существует, COM-объект создается, но при открытии файла Excel выдается сообщение:

    Ошибка при вызове метода контекста (Open)
    ex.WorkBooks.Open(Файл);
    по причине:
    Неизвестная ошибка

    Сталкиваюсь с этим впервые, на других компах всю жизнь все работает, с любой платформой 8.3
    Если что-то с Excel, то что?

    Ты открываешь Апликайшон — а как ты это открываешь (интерактивно или же на сервере)? Опять же у тебя какой эксель (32-х разрядный или же 64-х разрядный) и в каком контексте пытаешься открыть (в 32-х разрядном клиенте или же на стороне 64-х разрядного сервера)?

    Re: COM-объект и Excel

    Все очень просто.
    Файловая база.
    Excel 2010. Файл лежит на том же диске, что и база и открывающая его обработка.
    Никакого клиент-серверного режима нет.

    Re: COM-объект и Excel

    А попробуй «завернуть» в Попытку

    Попытка
    Excel = Новый COMОбъект(«Excel.Application»);
    Excel.WorkBooks.Open(ИмяФайла);
    Состояние(«Обработка файла Microsoft Excel. «);
    Исключение
    Сообщить(«Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!»);
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;

    Re: COM-объект и Excel

    Все то же самое.
    Ошибка при вызове метода контекста (Open): Неизвестная ошибка
    ОписаниеОшибки()=»»

    Re: COM-объект и Excel

    [QUOTE=lilyapo;469920]Все то же самое.
    Ошибка при вызове метода контекста (Open): Неизвестная ошибка

    похоже у тебя проблема с com-ом. А у тебя Excel нормально в реестре зареген? Ты его видишь в com-объектах?

    Попробуй подключиться к открытому «ручками» экселю

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

    Источник

    Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’

    Часто бывает, что при настроенной синхронизации после обновления платформы появляется ошибка «Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты ‘comcntr’ отличается от версии корневого модуля ‘core83’». Так происходит потому, что автоматически не зарегистрировалась компонента comcntr.dll из-за проблем с правами пользователя на компьютере.

    Решить данную проблему можно двумя способами.

    Способ №1.

    Переустановить платформу под правами Администратора или под пользователем, у которого есть такие права.

    Способ №2.

    Если не получилось как в способе №1, то можно вручную зарегистрировать самому эту компоненту.

    Перед этим нам необходимо изменить Параметры контроль учетной записи.

    Для Windows 7 нам необходимо зайти в Пуск затем в Панель управления.

    Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Панель управления и перейти по открывшейся ссылке.

    В правом верхнем углу Панели управления выбрать Просмотр-Мелкие значки и затем в списке перейти в Учетные записи пользователей.

    Учетные записи пользователей

    Там выбрать Изменить параметры контроля учетных записей.

    Параметры контроля учетных записей

    Затем поставить ползунок в самом нижнем положении.


    Купон на ОЗОН за покупку программ 1С

    Ползунок параметров контроля учетных записей

    И перезапустить компьютер.

    После перезагрузки необходимо:

    Для Windows 7 надо перейти в Пуск, затем в строке поиска ввести cmd.exe,нам покажет что найдена Командная строка и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».

    Для Windows 10 нам необходимо в левом нижнем углу панели задач в строке поиска набрать Командная панель или cmd.exe и, щелкнув по ней правой клавишей мыши, выбрать «Запуск от имени администратора».

    Запуск командной строки

    У нас откроется Командная строка, где нам необходимо ввести команду:

    1.Для платформы x86

    Regsvr32 «C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files (х86)1cv8номер версии вашей платформыbincomcntr.dll»).

    Команда для платформы x86

    2.Для платформы х64

    Regsvr32 «C:Program Files1cv8номер версии вашей платформыbincomcntr.dll» (regsvr32пробел»C:Program Files1cv8номер версии вашей платформыbincomcntr.dll»).

    Команда для платформы x64

    Затем нажать клавишу Enter.

    Если все сделали правильно, то увидите вот такое окно.

    Успешное выполнение команды

    После этого необходимо перезагрузить компьютер. Как включится, пробуйте снова сделать синхронизацию.

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

    Исправляем ситуацию

    Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

    Рассмотрим действия разработчика на примере со специально допущенной ошибкой. Мы запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора. Компилятор 1С пропускает такую процедуру, так как орфографических ошибок в написании команд мы не допустили. Однако в режиме предприятия нас ждет такое сообщение об ошибке:

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

    Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

    Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

    Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.

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

    1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

    Рис.3 Синтакс-помощник
    Рис.3 Синтакс-помощник

    В конфигураторе находим строку и метод, на который указывало сообщение об ошибке, и нажимаем на него правой кнопкой мыши. Выбираем пункт «Поиск в синтакс-помощнике» и платформа самостоятельно ищет справочную информацию по выделенному методу. В справке мы видим не только подробное описание параметров и самого метода, но и пример. Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает.

    Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
    Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

    Чаще всего причиной подобных ошибок выступают следующие факторы:

    1. Невнимательность;
    2. Отсутствие опыта или знаний;
    3. Несогласованность действий разработчиков друг с другом;
    4. Изменения в методах контекста в новых версиях платформы.

    Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.

    Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста sheets
  • Ошибка при вызове метода контекста send произошла исключительная ситуация
  • Ошибка при вызове метода контекста select
  • Ошибка при вызове метода контекста saveas произошла исключительная ситуация
  • Ошибка при вызове метода контекста save