Загрузка данных в 1С из xls
При ведении учета в системе 1С:Предприятие достаточно часто возникает необходимость загружать различные данные из файлов формата .xls. В файлах .xls могут, например, храниться цены на товар, предоставленные поставщиком или просто список товаров. Чтобы эти данные были доступны в базе 1С, их надо туда загрузить. Нижеприведенный программный модуль демонстрирует загрузку из файла формата .xls новых кодов и наименований товаров в справочник Номенклатура.
ИмяФайла= "С:\Товары\каталог.xls"; Попытка //создаем ссылку на приложение Excel ExcelApp = СоздатьОбъект("Excel.Application"); Исключение Предупреждение(ОписаниеОшибки()+"; программа Excel не установлена на данном компьютере!"); СтатусВозврата(0); КонецПопытки; Попытка //открывем рабочую книгу из файла "С:\Товары\каталог.xls" Книга = ExcelApp.WorkBooks.Open(ИмяФайла); //открывем первую страницу рабочей книги Страница = Книга.WorkSheets(1); Исключение Предупреждение(ОписаниеОшибки()); КонецПопытки; ПрТов = СоздатьОбъект("Справочник.Номенклатура"); //начинаем цикл, пока не сработает команда "прервать". Ном=1; //начинаем перебор с первой строки таблицы Пока 1=1 Цикл //считываем значения из ячеек рабочей книги Код = СокрЛП(Строка(ExcelApp.Cells(Ном,1).Value)); Наименование = СокрЛП(Строка(ExcelApp.Cells(Ном,2).Value)); НовыйКод = СокрЛП(Строка(ExcelApp.Cells(Ном,3).Value)); НовоеНаимен = СокрЛП(Строка(ExcelApp.Cells(Ном,4).Value)); Если ПустоеЗначение(Код) = 1 Тогда //кончились товары, прекращаем перебор Прервать; КонецЕсли; //находим в справочнике Номенклатура товар с заданным кодом Если ПрТов.НайтиПоКоду(Код)=1 Тогда Если ПустоеЗначение(НовыйКод)=0 Тогда //меняем у найденного товара код и наименование на считанные //из рабочей книги значения ПрТов.Код=НовыйКод; Если ПустоеЗначение(НовоеНаимен)=0 Тогда ПрТов.Наименование=НовоеНаимен; КонецЕсли; Тов=ПрТов.ТекущийЭлемент(); Попытка ПрТов.Записать(); Сообщить("Обновлен товар ("+Тов.Код+") "+Тов.Наименование); Исключение Сообщить("Товар с кодом ("+НовыйКод+") уже существует"); КонецПопытки; КонецЕсли; Иначе Сообщить("Не найден "+Код); КонецЕсли; Ном = Ном + 1; КонецЦикла; //завершаем работу с приложением Excel ExcelApp.Quit(); ExcelApp = "";
Аналогичным образом можно заполнять справочники цен на товары, контрагентов и др. Загруженные таким образом данные быстро становятся доступными для использования в базе 1С.