|
Добавление в РС | ☑ | ||
---|---|---|---|---|
0
Kurbash
29.09.14
✎
10:07
|
Всем привет. делаю загрузку данных из файла эксель:
Ексель = Новый COMОбъект("Excel.Application") ; ФайлЕксель = Ексель.Workbooks.Open(ПутьКФайлу); //нб.Отбор.Цех.Установить(Цех); Для н = НомерСтрокиНачало По НомерСтрокиКонец Цикл Цех=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(сокрлп(строка(Ексель.Sheets(Лист).Cells(н,1).Value))); Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию(сокрлп(строка(Ексель.Sheets(Лист).Cells(н,2).Value))); НомерОперации=сокрлп(строка(Ексель.Sheets(Лист).Cells(н,3).Value)); НаименованиеОперации=сокрлп(строка(Ексель.Sheets(Лист).Cells(н,4).Value)); Норма=сокрлп(строка(Ексель.Sheets(Лист).Cells(н,5).Value)); //добавление в ТЧ ст=Объект.ИзФайла.Добавить(); ст.Цех=Цех; ст.Номенклатура=Номенклатура; ст.НомерОперации=НомерОперации; ст.НаименованиеОперации=НаименованиеОперации; //закончили добавлять нб=регистрысведений.НормыИзБазыНарядов.СоздатьНаборЗаписей(); н=нб.Добавить(); н.Цех=Цех; н.Номенклатура=Номенклатура; н.НомерОперации=НомерОперации ; н.НаименованиеОперации=НаименованиеОперации; н.Норма= число(Норма); нб.Записать(); конеццикла; Ексель.Application.Quit(); все бы хорошо, но при попытке добавить запись в регистр выдается ошибка что преобразование к числу не может быть выполнено. отладчиком проверял, всем реквизитам регистра присваиваются значения, но когда доходит до конеццикла вываливается ошибка. в чем может быть дело? |
|||
1
Cube
29.09.14
✎
10:10
|
Ну так вставь попытку-исключение...
|
|||
2
YFedor
29.09.14
✎
10:10
|
Так пишет же что "преобразование к числу не может быть выполнено" нужно посмотреть на какой строке и отладчиком проверить что там
|
|||
3
Kurbash
29.09.14
✎
10:11
|
я же пишу-он стопорится на строке конеццикла, всем реквизитам регистра значения присваюваются. я отладчиком проверял уже
|
|||
4
Defender aka LINN
29.09.14
✎
10:11
|
Число("Абырвалг") чему должно равняться, 42?
|
|||
5
13_Mult
29.09.14
✎
10:13
|
НомерОперации к числу приведи.
|
|||
6
Kurbash
29.09.14
✎
10:13
|
(4)на это грешил с самого начала, убирал эту строку-все равно
|
|||
7
lavalit
29.09.14
✎
10:13
|
СокрЛП() автоматом все переводит в "строку"
Обратите внимание на НомерОперации=сокрлп(строка(Ексель.Sheets(Лист).Cells(н,3).Value)); Где НомерОперации есть "Число" Вот здесь и живет "суслик" Сделайте НомерОперации=сокрлп(Число(Ексель.Sheets(Лист).Cells(н,3).Value)); И да будет Вам счастье |
|||
8
Kurbash
29.09.14
✎
10:13
|
(5) у меня в рс текстовое поле
|
|||
9
13_Mult
29.09.14
✎
10:13
|
(5) сори Норму
|
|||
10
lavalit
29.09.14
✎
10:14
|
ТО есть НомерОперации=Число(Ексель.Sheets(Лист).Cells(н,3).Value));
|
|||
11
Kurbash
29.09.14
✎
10:15
|
стнанно, но если убрать кусок кода добавление в РС то все работает нормально, никаких ошибок
|
|||
12
ale-sarin
29.09.14
✎
10:15
|
н - сначал число, а потом
н=нб.Добавить(); и следующее "Для н = НомерСтрокиНачало По НомерСтрокиКонец Цикл" уже не справляется |
|||
13
lavalit
29.09.14
✎
10:16
|
Короче все "числа" должны быть приведены к "Числам" с ёкселя все поля получаем как "текст"
|
|||
14
Kurbash
29.09.14
✎
10:16
|
(12) блин точно:) спс
|
|||
15
Cube
29.09.14
✎
10:20
|
(12) Ахахаха)))
Эти СИшники уже порядком надоели)))) в 1С принято называть ПеременныеСвоимиИменами =)) |
|||
16
Kurbash
29.09.14
✎
10:24
|
и на старуху бывает порнуха...тьфу, проруха:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |