Загрузка в 1С из Excel

Загрузка в 1С из Excel — самый распространенный способ переноса данных и, само собой, самое частое задание для программиста. XLX файлы содержат в некоторых случаях очень большое количество информации и для ее загрузки в базу данных используется соответствующий COM- объект.  К примеру, наша фирма, занимается сельским хозяйством. В информационной базе у нас существует справочник «Поля», который и необходимо заполнить данными из Excel файла. В файле будет 2 колонки: «Наименование» и «Площадь поля». Теперь приступим к реализации.

  • В конфигураторе создадим новую внешнюю обработку. Добавим один реквизит ПутьКФайлу (тип: строка, длина 100-150). Далее создадим новую форму и разместим на ней наш реквизит. А также на событие «НачалоВыбора» пропишем соответствующий код.

Процедура ВыборФайла(Элемент, ПроверятьСуществование=Ложь)

   ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогФыбораФайла.Фильтр = «Файл данных (*.xls)|*.xls»;
   ДиалогФыбораФайла.Заголовок = «Выберите файл Excel»;
   ДиалогФыбораФайла.ПредварительныйПросмотр = Ложь;
   ДиалогФыбораФайла.Расширение = «xls»;
   ДиалогФыбораФайла.ИндексФильтра = 0;
   ДиалогФыбораФайла.ПолноеИмяФайла = Элемент.Значение;
   ДиалогФыбораФайла.ПроверятьСуществованиеФайла = ПроверятьСуществование;

   Если ДиалогФыбораФайла.Выбрать() Тогда
     Элемент.Значение = ДиалогФыбораФайла.ПолноеИмяФайла;
  КонецЕсли;

КонецПроцедуры

В данной процедуре мы описываем, что данное поле ввода будет представлять собой диалог выбора файла, с соответствующей фильтрацией по расширению файла xls. Если соответствующий excel файл выбран, то присваиваем имя данного файла переменной.

  • Далее напишем небольшой код уже для непосредственной загрузки данных, при нажатии кнопки выполнить.

Процедура КнопкаВыполнитьНажатие(Кнопка)

Попытка
   Файл = ПолучитьCOMОбъект(ПутьКФайлу);   //Здесь мы проверяем на корректность выбора файла и его существование
Исключение
   Предупреждение(«Не удалось открыть файл Excel.»);
   Возврат
КонецПопытки;

ЛистExcel = Файл.Sheets(1);    //указываем лист, с которого будут браться данные

Для СтрокаExcel = 1 По 354 Цикл    //количество строк в excel файле, если указать больше, то будут грузится пустые поля
   Наименование = СокрЛП(ЛистExcel.Cells(СтрокаExcel,1).Value); //ячейка
   ПлощадьПоля= СокрЛП(ЛистExcel.Cells(СтрокаExcel,2).Value); //ячейка
   Сообщить(«Наименование _»+Наименование);

   СправочникПолей = Справочники.схПоля.СоздатьЭлемент();  
   СправочникПолей.Наименование = Наименование;
   СправочникПолей.ПлощадьПоля = ПлощадьПоля;
   СправочникПолей.Записать();
КонецЦикла;

КонецПроцедуры

Как видим на примере, вся процедура очень проста. Такие действия можно проводить не только со справочниками, но и любыми объектами метаданных. Например очень часто необходимо загружать данные в документы. Вы так же можете скачать обработку  Загрузка Полей для редактирования.

Поделитесь своим мнением

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх