![]() |
|
v7: Проблема при импорте данных из Excel | ☑ | ||
---|---|---|---|---|
0
ahetaton
15.08.11
✎
16:14
|
Торговля и склад 7.7.
Добавил вот такую процедуру: Excel = СоздатьОбъект("Excel.Application"); Excel.Workbooks.Open("C:\test.xls"); Книга = Excel.ActiveWorkbook; Строк = Excel.Cells.CurrentRegion.Rows.Count; Для х = 1 По Строк Цикл Конт.НоваяСтрока(); Конт.Номенклатура = СокрЛП(Строка(Excel.Cells(х, 1).Value)); Конт.Количество = Число(Excel.Cells(х, 2).Value); Конт.Цена = Число(Excel.Cells(х, 3).Value); Конеццикла; Excel.Workbooks.Close(); Пробую импортировать данные в документ "Поступление ТМЦ". В документе создается нужное количество строк, проставляется цена и количество товара. Только поле "номенклатура" остается пустым. Почему? (Четко проверял - номенклатура с таким наименованием, буква в букву, в базе существует.) Что делаю не так? |
|||
1
Rie
15.08.11
✎
16:16
|
(0) Потому что номенклатура и её наименование - две больших разницы.
|
|||
2
ahetaton
15.08.11
✎
16:17
|
Т.е. туда надо вставлять код номенклатуры?
|
|||
3
Rie
15.08.11
✎
16:17
|
(2) Номенклатура и код номенклатуры - тоже две больших разницы.
Туда надо вставить элемент справочника Номенклатура (то бишь ссылку на него). |
|||
4
ahetaton
15.08.11
✎
16:17
|
Я буду только счастлив, если это так :)
|
|||
5
ahetaton
15.08.11
✎
16:18
|
>Туда надо вставить элемент справочника Номенклатура (то бишь ссылку на него).
О, а вот этого не понял. Как это? |
|||
6
ДенисЧ
15.08.11
✎
16:20
|
ном = создатьОбъект("Справочник.Номенклатура");
ном.НайтиПоНаименованию(СокрЛП(Строка(Excel.Cells(х, 1).Value))); Конт.Номенклатура = ном.ТекущийЭлемент(); |
|||
7
Rie
15.08.11
✎
16:20
|
(5) А это
спрНоменклатура = СоздатьОбъект("Справочник.Номенклатура"); Если спрНоменклатура.НайтиПоНаименованию(Строка(Excel.Cells(х, 1).Value))=1 Тогда Конт.Номенклатура = спрНоменклатура.ТекущийЭлемент(); КонецЕсли; |
|||
8
ahetaton
15.08.11
✎
16:22
|
Спасибо, сейчас попробую.
|
|||
9
ahetaton
15.08.11
✎
16:24
|
А, еще вопрос, а можно тогда уж искать в справочнике не по наименованию, а по коду или по артикулу? Это было бы намного удобнее...
|
|||
10
hunter76
15.08.11
✎
16:25
|
если по артикулу - то для этого реквизита в конфигураторе должен стоять флаг "Сортировка"
|
|||
11
Rie
15.08.11
✎
16:26
|
(9) Ищи по коду (НайтиПоКоду). Если по артикулу - НайтиПоРеквизиту (но при этом у реквизита должен стоять флажок "Сортировка").
|
|||
12
ahetaton
15.08.11
✎
16:36
|
Странно, пока попробовал по наименованию - оно опять не вставилось. Сделал чтобы для каждой строчки выдавалось сообщение со значением ТекущийЭлемент() - выдается пустое значение.
|
|||
13
hunter76
15.08.11
✎
16:37
|
а если:
спрНоменклатура.НайтиПоНаименованию(СокрЛП(Excel.Cells(х, 1).Value),0,0); ? |
|||
14
Rie
15.08.11
✎
16:38
|
(12) Не нашлось, видимо. Попробуй вместо Строка(Excel.Cells(x,1).Value) использовать Excel.Cells(x,1).Text.
Ну и заодно проверь - а что именно считывается из этой ячейки Excel. Может, там только издали похоже на наименование? |
|||
15
ahetaton
15.08.11
✎
16:47
|
Нет, там точное наименование. Я сейчас попробовал с артикулом, НайтиПоРеквизиту (флажок в справочнике стоит), тоже не вставляется.
Что именно считывается из этой ячейки Excel я проверял msgbox'ом ("Предупреждение" в 1С). Сейчас попробую Excel.Cells(x,1).Text |
|||
16
ahetaton
15.08.11
✎
17:04
|
Вах! По коду вставилось!
С Excel.Cells(x,1).Text не получилось, ошибка выдавалась. Странно, что не вставляется по наименованию или артикулу, мне-то нужно бы именно по артикулу. |
|||
17
Злопчинский
15.08.11
✎
17:48
|
(16) вывести в отладочное сообщение строку получаемую для наименования или артикула из экселя перед тем как это пихать в програмный код поиска - религия не позволяет?
|
|||
18
ahetaton
15.08.11
✎
17:59
|
(17) Я писал об этом выше. Строку, получаемую для наименования, я порверял в самую первую очередь. Только выводил не в отладочное сообщение (это я не умею), а то, что в VB называется msgbox (message box). Сообщение выдавалось именно с наименованием.
|
|||
19
ahetaton
15.08.11
✎
18:20
|
Я тормознул. По артикулу тоже вставляется. Просто я первый раз выбрал те товары, у которых в 1С не проставлены артикулы.
А по наименованию все равно не вставляется, хотя мне это и не особо нужно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |