helpf.pro
Регистрация
 0 
Распечатать

Загрузка данных из MS Excel через объект ADODB

Данный метод обладает гораздо большей производительностью и простотой, чем банальный объектный метод через COM соединение.

Все что потребуется это создание 2 объектов
* ADODB.Connection
* ADODB. Recordset

Здесь универсальная обработка по загрузке Номенклатуры из Excel:
Код 1C v 8.х
 // Функция для Платформы 1С 8.0 или 8.1
// Выполняет загрузку из файла Excel
//
// Параметры
//  ПутьКФайлу  - <Строка>            - путь к файлу xls
//
// Автор: ---%%%Gmix 16.03.2006 12:38:48
//     
// Возвращаемое значение:
//   <Булево>   – Истина загрузка произошла
//                                             - Ложь загрузки не было
//
Функция ВыполнитьЗагрузку(ПутьКФайлу) Экспорт
       
            Файл=Новый Файл(ПутьКФайлу);

            Если Файл.Существует() Тогда
                        Стр_Файл=Файл.ПолноеИмя;
        
                        // Отрезаем слеш если он есть в конце пути
                        Стр_Путь=Файл.Путь;
                        Если Прав(Стр_Путь,1)="\" Тогда
                                   Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1);
                        КонецЕсли;
                       
                        // Строка корнекта
                        Стр_Конект = "Driver={Microsoft Excel Driver (*.xls)};
                    |DriverId=790;
                    |Dbq="+Стр_Файл+";
                    |DefaultDir="+Стр_Путь+";"; 
                        Об_Конект = Новый COMОбъект("ADODB.Connection");
                        Попытка
                                    Об_Конект.Open(Стр_Конект);           
                        Исключение
                                   Сообщить ("Не возможно подключится к Microsoft Excel Driver!!!
                                   |Возможно файл ["+Стр_Файл+"] открыт другим пользователем.");
                                   Возврат Ложь;
                        КонецПопытки;
                       
                        // формируем запрос
                        // Здесь есть нюанс первая строка данных всегда будет являться заголовком
// если она пустая то имена клонок формируются следующим образом F<Номер колонки>
                        Стр_SQL = "S_elect
                |     F1 as Артикул,
                |     F2 as Наименование,
                |     F3 as ПолноеНаименование
                | FROM [A1:AZ100000]
                | WHERE ((F1 Is Not Null) AND (F1 <>''))";
                Об_РекордСет = Новый COMОбъект("ADODB.Recordset");

                        Попытка
                                   Об_РекордСет=Об_Конект.Execute(Стр_SQL);
                        Исключение
                                   Сообщить("Не удадлось выполнить запрос к файлу Excel
                                   |"+ ОписаниеОшибки(),СтатусСообщения.Важное);
                                   Возврат Ложь;
                        КонецПопытки;

                     
                        Пока НЕ Об_РекордСет.EOF Цикл
                                  // Получаем данные из Об_РекордСет
                                   // ...
                      Сообщить("");
                                   Для каждого ОБ_Поле Из Об_РекордСет.Fields Цикл
                // Пример вывода информации Сообщить(ОБ_Поле.Name,Об_РекордСет.Fields(ОБ_Поле.Name).value); 
                                   КонецЦикла;
                                   // ...
                                   Об_РекордСет.MoveNext();
                        КонецЦикла;
                      
                        Об_Конект.Close();     // Закрываем конект
                        Об_Конект=Неопределено;
                        Об_РекордСет=Неопределено;

                        Возврат Истина;
            Иначе
                        Сообщить("Файл "+ПутьКФайлу+" не найден!");
                        Возврат Ложь;
            КонецЕсли;
КонецФункции    
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 20525
 0 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
COM-подключение к базе 7.7 из .NET, .NET Core 2
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: ---C# static void Main(string args) { // создаем строку соединен
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 2
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!