|
Загрузка из Excel | ☑ | ||
---|---|---|---|---|
0
Amfiaray
22.11.16
✎
09:15
|
Добрый день.
Делаю обработку для загрузки данных в 1с из Excel. Из первых 2 колонок все грузится, а вот в остальных Лист.Cells(i,n).Value = Неопределено выходит. Формул нет, все значения там числовые. Excel 2010. Подскажите что может быть? |
|||
1
torgm
22.11.16
✎
09:22
|
(0) не заполнено
Лист.Cells(i,n).text что говорит? |
|||
2
Невский
22.11.16
✎
09:32
|
(0) Колонки скрыты?
|
|||
3
elCust
22.11.16
✎
09:34
|
(0) Автор, тут нет экстрасенсов, пришли код цикла поглядим, может там у тебя косяк на косяке.
|
|||
4
Chameleon1980
22.11.16
✎
09:38
|
Подозреваю, что как в (2)
перед заполненными колонками есть скрытые незаполненные |
|||
5
Звездец
22.11.16
✎
09:43
|
(4) или есть объединение ячеек. В этом случае значение в первой
|
|||
6
Amfiaray
22.11.16
✎
11:02
|
(1) Лист.Cells(i,n).text = "",
(2)Нет не скрыты (5)Нет не объединены |
|||
7
torgm
22.11.16
✎
11:03
|
(6) значит незаполнено.
|
|||
8
Amfiaray
22.11.16
✎
11:06
|
ну я открываю файл и эта ячейка заполнена
|
|||
9
bolobol
22.11.16
✎
11:07
|
(8) это другой файл
|
|||
10
Amfiaray
22.11.16
✎
11:07
|
нет
|
|||
11
Fish
22.11.16
✎
11:09
|
(10) Показывай код.
|
|||
12
Amfiaray
22.11.16
✎
11:10
|
Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
Если СокрЛП(ПутьКФайлу) = "" Тогда Предупреждение("Не выбран файл для загрузки."); Возврат; КонецЕсли; Попытка Excel = Новый COMObject("Excel.Application"); Excel.visible = 0; Книга = Excel.WorkBooks.Open(ПутьКФайлу); Лист = Книга.WorkSheets(1); Исключение Сообщить("Не установлен Excel"); КонецПопытки; ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column; ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row; ТекСтрокаДДС = Неопределено; Для i = ПерваяСтрока По ВсегоСтрок Цикл НайденнаяСтатьяДДС = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка(); НайденныйДоговор = Справочники.ТипДоговора.ПустаяСсылка(); Если Лист.Cells(i,2).Value = Неопределено Тогда Продолжить; КонецЕсли; НайденнаяСтатьяДДС = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоНаименованию(СокрЛП(Лист.Cells(i,2).Value)); Если НайденнаяСтатьяДДС.Пустая() Тогда НайденныйДоговор = Справочники.ТипДоговора.НайтиПоНаименованию(СокрЛП(Лист.Cells(i,2).Value)); КонецЕсли; Если НайденнаяСтатьяДДС.Пустая() И НайденныйДоговор.Пустая() Тогда Сообщить("Не нашли значение из строки "+Строка(i)); Продолжить; КонецЕсли; Если НайденнаяСтатьяДДС.Пустая() Тогда Если ТекСтрокаДДС = Неопределено Тогда Сообщить("Не указана статья ДДС для типов договоров в строке "+Строка(i)); Продолжить; КонецЕсли; НовСтр = Источник.НовыйСостав.Добавить(); НовСтр.СтатьяДДС = ТекСтрокаДДС; НовСтр.ТипДоговора = НайденныйДоговор; ЗаполнитьЧисловыеЗнаения(НовСтр, Лист, i); Иначе НовСтр = Источник.НовыйСостав.Добавить(); НовСтр.СтатьяДДС = НайденнаяСтатьяДДС; НовСтр.ТипДоговора = НайденныйДоговор; ЗаполнитьЧисловыеЗнаения(НовСтр, Лист, i); ТекСтрокаДДС = НайденнаяСтатьяДДС; КонецЕсли; КонецЦикла; Закрыть(); КонецПроцедуры Процедура ЗаполнитьЧисловыеЗнаения(СтрокаТабЧасти, МассивДанных, НомерСтроки) СтрокаТабЧасти.Январь = ?(МассивДанных.Cells(НомерСтроки, Январь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Январь).Value)); СтрокаТабЧасти.Февраль = ?(МассивДанных.Cells(НомерСтроки, Февраль).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Февраль).Value)); СтрокаТабЧасти.Март = ?(МассивДанных.Cells(НомерСтроки, Март).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Март).Value)); СтрокаТабЧасти.Апрель = ?(МассивДанных.Cells(НомерСтроки, Апрель).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Апрель).Value)); СтрокаТабЧасти.Май = ?(МассивДанных.Cells(НомерСтроки, Май).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Май).Value)); СтрокаТабЧасти.Июнь = ?(МассивДанных.Cells(НомерСтроки, Июнь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Июнь).Value)); СтрокаТабЧасти.Июль = ?(МассивДанных.Cells(НомерСтроки, Июль).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Июль).Value)); СтрокаТабЧасти.Август = ?(МассивДанных.Cells(НомерСтроки, Август).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Август).Value)); СтрокаТабЧасти.Сентябрь = ?(МассивДанных.Cells(НомерСтроки, Сентябрь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Сентябрь).Value)); СтрокаТабЧасти.Октябрь = ?(МассивДанных.Cells(НомерСтроки, Октябрь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Октябрь).Value)); СтрокаТабЧасти.Ноябрь = ?(МассивДанных.Cells(НомерСтроки, Ноябрь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Ноябрь).Value)); СтрокаТабЧасти.Декабрь = ?(МассивДанных.Cells(НомерСтроки, Декабрь).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Декабрь).Value)); СтрокаТабЧасти.Квартал1 = ?(МассивДанных.Cells(НомерСтроки, Квартал_1).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Квартал_1).Value)); СтрокаТабЧасти.Квартал2 = ?(МассивДанных.Cells(НомерСтроки, Квартал_2).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Квартал_2).Value)); СтрокаТабЧасти.Квартал3 = ?(МассивДанных.Cells(НомерСтроки, Квартал_3).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Квартал_3).Value)); СтрокаТабЧасти.Квартал4 = ?(МассивДанных.Cells(НомерСтроки, Квартал_4).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Квартал_4).Value)); СтрокаТабЧасти.Год = ?(МассивДанных.Cells(НомерСтроки, Год).Value = Неопределено, 0, Число(МассивДанных.Cells(НомерСтроки, Год).Value)); КонецПроцедуры |
|||
13
bolobol
22.11.16
✎
11:11
|
(11) бог с ним, с кодом...
Записывай, вместо чтения, значение в эту ячейку - смотри, куда записалось |
|||
14
ЕШе_н
22.11.16
✎
11:30
|
А переменные Январь, Февраль и т.д определены?
|
|||
15
aka AMIGO
22.11.16
✎
11:31
|
Лист.Cells(i,n).String
ЗЫ. а вдруг!! :) |
|||
16
Amfiaray
22.11.16
✎
11:46
|
(14) Да
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |