Имя: Пароль:
1C
1С v8
Выдает ошибку: (ADODB.Recordset)
0 AnyBaz
 
11.09.13
12:28
Сообщение об ошибке: Произошла исключительная ситуация (ADODB.Recordset): Невозможно использование подключения для выполнения операции. Оно закрыто или не допускается  в данном контексте.

задача: Из Excel-файла записать данные в справочник 1С. Управляемые формы

Код:
Лист = Объект.ЛистExcel;      
СтрокаПодключения  =   "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ЗагружаемыйФайл + ";""";
    Connection = Новый COMОбъект("ADODB.Connection");
    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
       RecSet = Новый COMОбъект("ADODB.RecordSet");

    RecSet.Open(Лист, Connection,,,);
    RecSet.CommandText = "select * FROM Table1";
    RecSet.CommandType = 1;
    RecordSet = Новый COMОбъект("ADODB.RecordSet");
    RecordSet = RecSet.Execute();
    стр ="";
      Пока RecordSet.EOF() = 0 Цикл
            для н=0 по  Recordset.Fields.Count -1 цикл
            стр = стр + " " + Recordset.Fields(н).Value;
         КонецЦикла;
      Сообщить(стр);
             стр ="";
        RecordSet.MoveNext();
      КонецЦикла;
   RecordSet.Close();
    Connection.Close();
1 ДенисЧ
 
11.09.13
12:31
RecSet.CommandText = "
|SET NOCOUNT ON
|select * FROM Table1
|";
2 МихаилМ
 
11.09.13
12:39
(1)
"SET NOCOUNT ON" ... ?
3 shuhard
 
11.09.13
12:42
(0)[ RecSet.CommandText = "select * FROM Table1";]
такой синтаксис для xls не пригоден
$ не хватает
4 МихаилМ
 
11.09.13
12:44
5 AnyBaz
 
11.09.13
12:44
SET NOCOUNT ON
Где ее использовать?
6 AnyBaz
 
11.09.13
12:45
1С ругается на этот символ $
7 shuhard
 
11.09.13
12:46
(6)     MyCon = Новый COMОбъект ("ADODB.Connection");
    Попытка
        MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ПутьКфайламБюджета+";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""");
    Исключение
        Сообщить("Не удалось открыть файл->"+ПутьКфайламБюджета+" Проверьте путь и тип файла");
        возврат;    
    КонецПопытки;
    MyCat=Новый COMОбъект ("ADOX.Catalog");
    MyCat.ActiveConnection = MyCon;
    ИмяПервойСтраницы=MyCat.Tables.Item(0).Name;
    //ИмяПервойСтраницы="ОБ ДР$";
    MyRst = Новый COMОбъект ("ADODB.Recordset");
    MyStr = "select * from ["+ИмяПервойСтраницы+"]";
    MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
        Пока НЕ MyRst.EOF() Цикл
        Если СокрЛП(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value))<>"" Тогда
            НоваяСтрокаТЧ=Статьи.Добавить();
            НоваяСтрокаТЧ.Код=СокрЛП(Строка(MyRst.Fields(MyRst.Fields.Item(0).Name).Value));
            НоваяСтрокаТЧ.Имя=СокрЛП(Строка(MyRst.Fields(MyRst.Fields.Item(2).Name).Value));
        КонецЕсли;
        MyRst.MoveNext();
    КонецЦикла;
    MyRst.Close();
    MyCon.Close();
8 AnyBaz
 
11.09.13
13:00
Спасибо всем, буду разбираться далее!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.