• Yamaha motors
  • Subaru WRX STI
  • Баба Клава!
  • Светодиодные системы освещения

Печать

Загрузка прайса из Excel пример кода

Источник - 1С-PROFI


 
//Номер листа в книге Excel для получения данных
НомерЛиста = 1;

//Пытаемся подключиться к Excel

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

//Подключились удачно, открываем файл

Excel.Workbooks.Open(ИмяФайла);

//Открываем необходимый лист
Excel.Sheets(НомерЛиста).select();

//Получим количество строк и колонок.

//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе

ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;

 
//Для установки цен необходимо создать документ "Установка цен номенклатуры"
//Заполним шапку документа, в т.ч. заполним тип цены и валюту
ТипЦеныРозничный = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Розничная");
НоваяСтрока = ДокументУстановкиЦенГривна.ТипыЦен.Добавить();
НоваяСтрока.ТипЦен = ТипЦеныРозничный;
ДокументУстановкиЦенГривна.Дата = ТекущаяДата();
ВалютаГривна = Справочники.Валюты.НайтиПоКоду("980");

//определим по файлу в каких колонках необходимые данные

НомерКолонкиКодаТовара = 1;
НомерКолонкиНаименованияТовара = 2;
НомерКолонкиЦеныТовара = 3;

// Выбираем данные из файла
Для а = НомерСтрокиТЧ по ФайлСтрок Цикл

//Полуим данные из соответсвующих ячеек

КодТовара = СокрЛП(Excel.Cells(а,НомерКолонкиКодаТовара).Value);
НаименованиеТовара = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
Цена = Число(Excel.Cells(а,НомерКолонкиЦеныТовара).Value);

Товар = Справочники.Номенклатура.ПустаяСсылка();

// Ищем товар в справочнике по коду

Товар = Справочники.Номенклатура.НайтиПоКоду(КодТовара);

// Если не нашли по коду, то ищем по наименованию
Если Товар.Пустая() Тогда

Товар = Справочники.Номенклатура.НайтиПоНаименованию(тНаименование, Истина);
Конецесли;

//Если не нашли создаем новый

Если Товар.Пустая() Тогда
Товар = Справочники.Номенклатура.СоздатьЭлемент();
Товар.Код = КодТовара;
Товар.Наименование = НаименованиеТовара;
Товар.НаименованиеПолное = НаименованиеТовара;
Товар.Записать();
Конецесли;

//Запишем товар и цену в документ установки цен

НоваяСтрока = ДокументУстановкиЦенГривна.Товары.Добавить();
НоваяСтрока.Валюта = ВалютаГривна;
НоваяСтрока.Цена = Цена;
НоваяСтрока.Номенклатура = Товар.Ссылка;
НоваяСтрока.ТипЦен = ТипЦеныРозничный;
Конеццикла;

//Если в документе есть товары записываем и проводим

Если Не(ДокументУстановкиЦенГривна.Товары.Количество() = 0) Тогда
ДокументУстановкиЦенГривна.Записать(РежимЗаписиДокумента.Запись);
ДокументУстановкиЦенГривна.Записать(РежимЗаписиДокумента.Проведение);
Конецесли;

//Закрываем Excel

Excel.ActiveWorkbook.Close();