Процедура КнопкаВыполнитьНажатие(Кнопка)
xlLastCell = 11;
НомерЛистаExcel = 1;
ВыбФайл = Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить("Файл не существует!");
КонецЕсли;
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
Состояние("Обработка файла Microsoft Excel...");
ExcelЛист = Excel.Sheets(НомерЛистаExcel);
Исключение
Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
КонецПопытки;
ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;
ТЗ = Новый ТаблицаЗначений;
Для Column = 1 По ColumnCount Цикл
Тз.Колонки.Добавить("Колонка" + Column);
КонецЦикла;
Для Row = 1 По RowCount Цикл
НоваяСтрока = Тз.Добавить();
Для Column = 1 По ColumnCount Цикл
НоваяСтрока["Колонка" + Column] = ExcelЛист.Cells(Row,Column).Value;
КонецЦикла;
КонецЦикла;
Excel.WorkBooks.Close();
Excel = 0;
ДокОбъект = Докссылка.ПолучитьОбъект();
Для Каждого ТекущаяСтрока Из Тз Цикл
Наименование = ТекущаяСтрока["Колонка12"];
Артикул = СокрЛП(СтрЗаменить(Строка(ТекущаяСтрока["Колонка11"])," ",""));
НомерВхДок = ТекущаяСтрока["Колонка9"];
Количество = ТекущаяСтрока["Колонка13"];
ЕдИзмерения = ТекущаяСтрока["Колонка14"];
Цена = ТекущаяСтрока["Колонка15"];
Сумма = ТекущаяСтрока["Колонка16"];
СтавкаНДС = ТекущаяСтрока["Колонка17"];
СуммаНДС = ТекущаяСтрока["Колонка18"];
Всего = ТекущаяСтрока["Колонка19"];
СтранаГТД = ТекущаяСтрока["Колонка21"];
ГТДТовара = ТекущаяСтрока["Колонка22"];
Если СокрЛП(ДокОбъект.ВхДокНомер) = "" Тогда
ДокОбъект.ВхДокНомер = СтрЗаменить(СокрЛП(НомерВхДок)," ","");
КонецЕсли;
СпрЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",СокрЛП(Артикул));
Если СокрЛП(Артикул) <> "" Тогда
Если СпрЭлемент = Справочники.Номенклатура.ПустаяСсылка() Тогда
СпрЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
СпрЭлемент.УстановитьНовыйКод();
СпрЭлемент.Родитель = СпрРодитель;
СпрЭлемент.ОбработкаЗаполнения("");
СпрЭлемент.Наименование = Наименование;
СпрЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
СпрЭлемент.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
СпрЭлемент.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар;
СпрЭлемент.ТипНоменклатуры = Справочники.ТипыНоменклатуры.Штучный;
СпрЭлемент.Артикул = Артикул;
СпрЭлемент.Записать();
СпрЭлемент = СпрЭлемент.Ссылка;
Сообщить("Создан новый элемент: " + Наименование + ", " + Артикул);
КонецЕсли;
КолВо = Число(Количество);
НоваяСтрока = ДокОбъект.Товары.Найти(СпрЭлемент, "Номенклатура");
Если НоваяСтрока = Неопределено Тогда
НоваяСтрока = ДокОбъект.Товары.Добавить();
НоваяСтрока.Номенклатура = СпрЭлемент;
НоваяСтрока.Количество = Колво;
НоваяСтрока.КоличествоБазовое = Колво;
НоваяСтрока.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
НоваяСтрока.Коэффициент = 1;
НоваяСтрока.Цена = Число(СтрЗаменить(Цена,".",""));
НоваяСтрока.Сумма = Число(СтрЗаменить(Сумма,".",""));
НоваяСтрока.СуммаНДС = Число(СтрЗаменить(СуммаНДС,".",""));
НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
стрГТД = Справочники.ГТД.НайтиПоНаименованию(СокрЛП(ГТДТовара));
Если стрГТД = Справочники.ГТД.ПустаяСсылка() Тогда
стрГТД = Справочники.ГТД.СоздатьЭлемент();
стрГТД.УстановитьНовыйКод();
стрГТД.Наименование = СокрЛП(ГТДТовара);
стрГТД.Страна = Справочники.КлассификаторСтранМира.НайтиПоНаименованию(СокрЛП(СтранаГТД));
стрГТД.Записать();
стрГТД = стрГТД.Ссылка;
КонецЕсли;
НоваяСтрока.ГТД = стрГТД;
НоваяСтрока.СуммаВсего = Число(СтрЗаменить(Всего,".",""));
Иначе
НоваяСтрока.Количество = НоваяСтрока.Количество + Колво;
НоваяСтрока.КоличествоБазовое = НоваяСтрока.КоличествоБазовое + Колво;
НоваяСтрока.СуммаВсего = НоваяСтрока.СуммаВсего + Число(СтрЗаменить(Всего,".",""));
НоваяСтрока.Сумма = НоваяСтрока.Сумма + Число(СтрЗаменить(Сумма,".",""));
НоваяСтрока.Цена = ?(НоваяСтрока.Количество = 0,0,НоваяСтрока.Сумма / НоваяСтрока.Количество);
НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + Число(СтрЗаменить(СуммаНДС,".",""));
КонецЕсли;
Состояние(Наименование);
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
ДокОбъект.ПолучитьФорму().Открыть();