Имя: Пароль:
1C
 
помогите прочитать из Excel
0 axell
 
30.10.10
15:13
Ребята помогите плиз! Сохранил список табличной части документа в xls. Код номенклатуры выглядит так 098834. Но при попытке прочитать xls в 1С он почему то читается как 98834. Ребята как победить???? Всем заранее респект!
1 axell
 
30.10.10
15:14
т.е нуля впереди нет, из за этого не могу найти номенклатуру по коду.
2 Megas
 
30.10.10
15:23
Формат
И выводить лидирующие 0  может поможет, хотя странно
3 luns
 
30.10.10
15:36
я всегда сначала вот этой функцией преобразую екселевский лист в табличный документ 1с, а уж его и разбираю.

// Функция считывает в табличный документ данные из файла в формате Excel
//
// Параметры:
//  ТабличныйДокумент  - ТабличныйДокумент, в который необходимо прочитать данные
//  ИмяФайла           - имя файла в формате Excel, из которого необходимо прочитать данные
//  НомерЛистаExcel    - номер листа книги Excel, из которого необходимо прочитать данные
//
// Возвращаемое значение:
//  Истина, если файл прочитан, Ложь - иначе
//
Функция ПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент, ИмяФайла, НомерЛистаExcel = 1) Экспорт
   
   xlLastCell = 11;
   
   ВыбФайл = Новый Файл(ИмяФайла);
   Если НЕ ВыбФайл.Существует() Тогда
       Сообщить("Файл не существует!");
       Возврат Ложь;
   КонецЕсли;
   
   Попытка
       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 Цикл
       ТабличныйДокумент.Область("C" + Формат(Column, "ЧГ=")).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
   КонецЦикла;
   Для Row = 1 По RowCount Цикл
       
       Для Column = 1 По ColumnCount Цикл
           ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Value;
       КонецЦикла;
       
   КонецЦикла;
   
   Excel.WorkBooks.Close();
   Excel = 0;
   
   Возврат Истина;
   
КонецФункции // ()
4 axell
 
30.10.10
15:42
(2)Спасибо помогло!
(3)Сопипаст! Очень интересный и грамотный подход спасибо за идею!