|
Подскажите по загрузке данных в 1С из Excel | ☑ | ||
---|---|---|---|---|
0
Luhtas
03.05.12
✎
13:51
|
Доброго дня, поднимал эту тему, подсказали как реализоват, вот что удалось сделать...Но не могу реализовать заполнение строк ТЧ, т.е сроки добавляются, но без данных. Подскажите что забыл сделать.
Вод код: &НаКлиенте Функция мПрочитатьТабличныйДокументИз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 Цикл НоваяСтрока=Объект.Номенклатура.Добавить(); Для Column = 1 По ColumnCount Цикл НоваяСтрока.Наименование = ExcelЛист.Columns(Column).ColumnWidth; КонецЦикла; //НоваяСтрока.Наименование=ExcelЛист.Cells(Row,Column).Text; //ТабличныйДокумент.Область("R" + Формат(Row, "ЧГ=") +"C" + Формат(Column, "ЧГ=")).Текст = ExcelЛист.Cells(Row,Column).Text; КонецЦикла; КонецЦикла; Excel.WorkBooks.Close(); Excel = 0; Возврат Истина; Иначе Возврат Ложь; КонецЕсли; КонецФункции // () |
|||
1
sanja26
03.05.12
✎
13:53
|
НоваяСтрока.номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ExcelЛист.Cells(Row,Column).Text)
|
|||
2
vicof
03.05.12
✎
13:53
|
Для Column = 1 По ColumnCount Цикл
НоваяСтрока.Наименование = ExcelЛист.Columns(Column).ColumnWidth; КонецЦикла; вот это вот зачем? |
|||
3
Luhtas
03.05.12
✎
13:55
|
(2) Пробовал добавить данные в поле "наименование" строки ТЧ видимо...
|
|||
4
Luhtas
03.05.12
✎
13:57
|
(1) А если поиск не увенчался успехом, как добавить наименование из екселя в поле ТЧ "номенклатура"? Никак не вкурю что-то.
|
|||
5
Mouzem
03.05.12
✎
13:58
|
Передаешь строку путь к файлу, получаешь ТЗ.
Функция ПрочитатьВТаблицуЗначений(Файл) НомерНачальнойСтроки = 1; Excel = Новый ComОбъект("Excel.Application"); Excel.Workbooks.Open(Файл); Excel.DisplayAlerts = 0; //Не выводить предупреждения Excel ТЗ = Новый ТаблицаЗначений; Для ии = 1 По Excel.Cells.SpecialCells(11).Column Цикл Попытка Если ии < 10 Тогда ТЗ.Колонки.Добавить("Кол00"+Строка(ии), ,Excel.ActiveSheet.Cells(1,ии).Value); Иначе ТЗ.Колонки.Добавить("Кол0"+Строка(ии), ,Excel.ActiveSheet.Cells(1,ии).Value); КонецЕсли; Исключение Сообщить("Не удалось добавить колонку"); КонецПопытки; КонецЦикла; КолКолонок = ии - 1; КоличествоСтрок = Excel.Cells.SpecialCells(11).Row; Если НомерНачальнойСтроки < 1 Тогда НомерНачальнойСтроки = 1 КонецЕсли; Для ии = НомерНачальнойСтроки По КоличествоСтрок Цикл стр = ТЗ.Добавить(); Для кол = 1 По КолКолонок Цикл стр[кол-1] = Формат(Excel.ActiveSheet.Cells(ии,кол).Value,"ЧГ=0"); КонецЦикла; Состояние("Загружено из XLS: "+Строка(ии)+ " из "+Строка(КоличествоСтрок)); КонецЦикла; Excel.Quit(); Возврат ТЗ; КонецФункции // ПрочитатьВТаблицуЗначений() |
|||
6
vicof
03.05.12
✎
13:59
|
(3) не, это наименованию присваивается ширина колонки
|
|||
7
vicof
03.05.12
✎
14:01
|
(4) тогда создавать объект номенклатуры, его записывать и передавать ссылку на него в ТЧ
|
|||
8
Luhtas
03.05.12
✎
14:01
|
(6) Да, не то признаю. Буду править. Первый раз делаю...
|
|||
9
Luhtas
03.05.12
✎
14:02
|
В (5) хороший пример, кажется понимаю как делать нужно.
Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |