//
// Функция получает таблицу из базы аксесса
//
Функция ПолучитьТаблицуАкцесса (Подключение, ИмяТаблици)
Результат = СоздатьОбъект("ТаблицаЗначений");
Результат.Очистить();
Команда = СоздатьОбъект("ADODB.Command");
Команда.ActiveConnection=Подключение;
ТекстСелект = "SELECT * FROM " + ИмяТаблици;
НаборЗаписей = СоздатьОбъект("ADODB.RecordSet");
Команда.CommandText=ТекстСелект;
Попытка
НаборЗаписей=Команда.Execute();
Исключение
Сообщить(ОписаниеОшибки());
Возврат -1;
КонецПопытки;
// надо создать колонки
Для е = 0 по (НаборЗаписей.Fields.Count - 1) Цикл
Результат.НоваяКолонка(СокрЛП(НаборЗаписей.Fields(е).Name));
КонецЦикла;
Попытка
НаборЗаписей.MoveFirst();
Исключение //нет записей в рекордсете
НаборЗаписей.Close();
Возврат Результат;
КонецПопытки;
НаборЗаписей.MoveFirst();
Пока НаборЗаписей.EOF() = 0 Цикл
// тут имеем строку записи
//ОбработкаПрерыванияПользователя();
Состояние("Идет чтение таблицы <" + ИмяТаблици + "> - " + Обмен_Индикатор(Счетчик, МаксСчетчик));
Результат.НоваяСтрока();
Стр = "";
Для е = 0 по (НаборЗаписей.Fields.Count - 1) Цикл
Результат.УстановитьЗначение(Результат.КоличествоСтрок(), СокрЛП(НаборЗаписей.Fields(е).Name), НаборЗаписей.Fields(е).Value);
Если ВыводитьДанныеВСтрокуСообщений=1 Тогда
Стр = Стр + "; " + НаборЗаписей.Fields(е).Name + "=" + НаборЗаписей.Fields(е).Value;
КонецЕсли;
КонецЦикла;
Если ВыводитьДанныеВСтрокуСообщений=1 Тогда
Сообщить (Стр);
КонецЕсли;
НаборЗаписей.MoveNext();
КонецЦикла;
НаборЗаписей.Close();
Возврат Результат;
КонецФункции
// *******************************
// пример вызова
//
//
// подключаемся
//
СтрокаПод="Driver={Microsoft Access Driver (*.mdb)};Dbq=" + ИмяФайла + ";";
Акцесс = СоздатьОбъект("ADODB.CONNECTION");
Попытка
Акцесс.Open(СтрокаПод);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
//
// получем таблицу с именем "Номенклатура"
//
ТабСпр = ПолучитьТаблицуАкцесса (Акцесс, """Номенклатура""");
Вступайте в нашу телеграмм-группу Инфостарт