Sky1C

Разделы каталога

Товар дняХиты продажПереносы данных 1СПродукты и лицензии 1СПрочий Софт

Информация

О насИнтересноеДоставка и оплатаКонтакты

Работа с Excel в 1С 8

Работа с Excel в 1С 8

Импорт данных в 1С из Microsoft Excel Вопросы по операциям импорта и экспорта данных между системами 1С и Excel возникают достаточно неоднократно при активной работе с различными источниками информации. Обработка по работе с Excel файлами рассмотренная в данной статье позволяет загрузить сведения из выбранного файла в табличную часть формы для последующей обработки информации уже внутри 1С Предприятия (автоматизированное создание документов, автоматическое заполнение справочников и регистров сведений и т.д.).

Описание алгоритма загрузки из Excel в 1С В обработке описано три функции, формулировка которых имеется возможность прочитать, скачав бесплатную демонстрационную версию. При нажатии кнопки "Загрузить" происходит создание COM Объекта для связи с приложением Excel, далее открывается выбранный файл. По умолчанию обработка будет использовать Лист 1 открытой книги. Дан пример последовательного чтения xls или xlsx файла по строкам. В примере определены три столбца - Артикул, Описание, Цена. Именно такие колонки чаще всего встречаются в прайс-листах, для импорта которых и может быть полезна эта заготовка.

Исходный код процедуры 1С для загрузки XLS файла: Процедура ЧтениеXLSФайла(Элемент)

  Если ПустаяСтрока(ИмяФайла) Тогда     Предупреждение("Для запуска обработки необходимо предварительно выбрать файл Microsoft Excel.");     Возврат;   КонецЕсли;

  Попытка     // Загрузка Microsoft Excel     Состояние("Загрузка Microsoft Excel...");     ExcelПриложение = Новый COMОбъект("Excel.Application");   Исключение     Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);     Возврат;   КонецПопытки;

  Попытка     // Открытие файла Microsoft Excel     Состояние("Открытие файла Microsoft Excel...");     ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла);   Исключение     Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);   КонецПопытки;

  Попытка     // Обработка файла Microsoft Excel     Состояние("Обработка файла Microsoft Excel...");     // Читаем данные первого листа книги     ExcelЛист = ExcelФайл.Sheets(1);

    // Определить количество строк и колонок выбранного листа книги Excel     xlCellTypeLastCell = 11;     ExcelПоследняяСтрока = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row;     ExcelПоследняяКолонка = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column;   Исключение     Сообщить("Ошибка открытия листа №1 Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);     // Закрыть COM соединение для экономии памяти     ExcelПриложение.Quit();   КонецПопытки;

  // Создание описателя типов для таблицы значений   КЧ = Новый КвалификаторыЧисла(15,2);   КС = Новый КвалификаторыСтроки(50);   Массив = Новый Массив;   Массив.Добавить(Тип("Строка"));   ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);   Массив.Очистить();   Массив.Добавить(Тип("Число"));   ОписаниеТиповЧ = Новый ОписаниеТипов(Массив, , ,КЧ);

  // Очистить предыдущие значения   ТаблицаДокумента.Очистить();   ТаблицаДокумента.Колонки.Очистить();

  // Создать колонки табличного документа   ТаблицаДокумента.Колонки.Добавить("Номер",ОписаниеТиповС,"Номер",5);   ТаблицаДокумента.Колонки.Добавить("Артикул",ОписаниеТиповС,"Артикул",11);   ТаблицаДокумента.Колонки.Добавить("Описание",ОписаниеТиповС,"Описание",25);   ТаблицаДокумента.Колонки.Добавить("Цена",ОписаниеТиповЧ,"Цена",6);

  // Последовательное чтение строк с выбранного листа   Для Строка = 1 По ExcelПоследняяСтрока Цикл

    // Обработка нажатия Ctrl + Break     ОбработкаПрерыванияПользователя();

    // Добавить данные в табличную часть экранной формы     Стр=ТаблицаДокумента.Добавить();     Стр.Номер = Строка;     Попытка       Стр.Артикул = ExcelЛист.Cells(Строка, 1).Value;       Стр.Описание = ExcelЛист.Cells(Строка, 2).Value;       Стр.Цена = ExcelЛист.Cells(Строка, 3).Value;     Исключение       // Не редко происходит ошибка конвертации отдельной ячейки документа       Сообщить("Ошибка чтения строки файла Microsoft Excel." + Строка + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);     КонецПопытки;     // Отобразить информацию о ходе выполнения обработки     Состояние("Обработка файла Microsoft Excel : "       + "строка " + Строка + " из " + ExcelПоследняяСтрока);

  КонецЦикла;

  // Закрыть COM соединение для экономии памяти   ExcelПриложение.Quit();

  // Отобразить результаты загрузки в форме элемента   ЭлементыФормы.ТаблицаДокумента.Значение = ТаблицаДокумента;   ЭлементыФормы.ТаблицаДокумента.СоздатьКолонки();

КонецПроцедуры // ЧтениеXLSФайла(Элемент)

 

Взято с http://www.cfdt.ru/?globalNav=1&section=5&page=10

Читайте также

Перенос справочников и документов между идентичными конфигурациями · Консоль запросов 1С 8.2 · Загрузка документов из XLS 1С 7.7 · 1С Предприятие характеристика