Пытаюсь удалить 1 строку из сформированного и сохраненного в в файл Экселя отчета.
Текст процедуры:
//*** Процедура Сформировать()
КаталогФайла = "D:\1CBases\Пищевик";
ИмяФайла = "Отчет в Эрманн за Январь 2016 г.";
db= СоздатьОбъект("ADODB.Connection");
rs= СоздатьОбъект("ADODB.Recordset");
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+КаталогФайла+"\"+ИмяФайла+".xls"+";Extended Properties=""Excel 8.0;HDR=No; IMEX=1;""";
//db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ИмяФайлаДанных+";Extended Properties=""Excel 8.0; IMEX=1;""";
//HDR=NO - Имена полей имеют вид "F1, F2, F3..." то-есть буква "F" и порядковый номер колонки. Если данный параметр опустить
// имена полей беруться из первой строки - для таблиц Экселя норма.
db.Mode = 3; //чтение и запись
db.Open();
Catalog = СоздатьОбъект("ADOX.Catalog");
Catalog.ActiveConnection = db;
ИмяТаблицы = "'Каталог номенклатуры$'";
Для iCount = 0 По Catalog.Tables.Count-1 Цикл
Если Catalog.Tables.Item(iCount).Type <> "VIEW" Тогда
ИмяТаблицы = Catalog.Tables.Item(iCount).Name;
rs.ActiveConnection = db;
rs.LockType = 3;
rs.CursorType = 2;
rs.Open("Select * from ["+ИмяТаблицы+"]");
rs.MoveFirst();
rs.Delete(1);
rs.Close();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Выходит ошибка: "Microsoft JET Database Engine: Обновление невозможно. База данных или объект доступны только для чтения."
Пошарил по инету, но ничего путного не нашел. Прочитал кучу портянок, но воз и ныне там :(
Jet не будет так работать. Надо или ADODB.Command + DELETE или с помощью COM-объекта Экселя.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший