|
Оприходование товара загрузка из xls | ☑ | ||
---|---|---|---|---|
0
1C2SS
29.04.13
✎
15:38
|
1C 8.2 Розница 2.0
Пытаюсь загрузить остатки товара из xls посредством оприходования. Вот что есть: Попытка Эксель = новый COMОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Книга = Эксель.WorkBooks.Open("c:\3.xls"); Лист = Книга.WorkSheets(1); до = Документы.ОприходованиеТоваров.НайтиПоНомеру("000000001",'20130429').ПолучитьОбъект(); тч = до.Товары; сн = Справочники.Номенклатура; Для ф = 1 по 500 Цикл н = тч.Добавить(); н.Номенклатура = сн.НайтиПоРеквизиту("Артикул",СокрЛП(Лист.Cells(ф, 2).Value)); н.Цена = Число(СокрЛП(Лист.Cells(ф, 3).Value)); н.Количество = Число(СокрЛП(Лист.Cells(ф, 4).Value)); н.Сумма = н.Количество*н.Цена; КонецЦикла; до.Записать(РежимЗаписиДокумента.Проведение); Все нормально кроме того, что Количество не сохраняется. В отладчике видно что оно записывается. В чем может быть косяк ? |
|||
1
Bumer
29.04.13
✎
15:43
|
Попробуй добавить...
до.КоличествоУпаковок = Число(СокрЛП(Лист.Cells(ф, 4).Value)); |
|||
2
Maniac
29.04.13
✎
15:43
|
формат количества не тот.
Например запятая точка. |
|||
3
Bumer
29.04.13
✎
15:43
|
н.КоличествоУпаковок = Число(СокрЛП(Лист.Cells(ф, 4).Value));
|
|||
4
AaNnDdRrEeYy
29.04.13
✎
15:44
|
Ты количество на форме просто не видишь? или в таблице БД пусто?
|
|||
5
Maniac
29.04.13
✎
15:44
|
еще 1С может не считывать количество с триадами. такое тоже бывает.
|
|||
6
Maniac
29.04.13
✎
15:45
|
(3) это значения не имеет. тк когда назначается в тип число - автоматичсеки форматирование происходит
|
|||
7
1C2SS
29.04.13
✎
15:46
|
(4) Только на форме не видно. В БД сохраняется.
|
|||
8
Maniac
29.04.13
✎
15:46
|
в числе не должно быть дефисов (бывает)
И 1С неправильно также форматирует если есть запятая в триаде и точка в дроби. |
|||
9
Масянька
29.04.13
✎
15:47
|
Я писала для 7.7
// количество мКолВо = Лист.Cells(НомерСтроки, 4).Value; // сумма мСумма = Лист.Cells(НомерСтроки, 5).Value; В Excel - тип ячейки с кол-вом - "Общий". Экспериментировала - долго :) (именно с кол-вом). Сейчас - работает :)) |
|||
10
Ёпрст
29.04.13
✎
15:48
|
(0) единица измерения мест не заполнена
|
|||
11
1C2SS
29.04.13
✎
15:48
|
Там везде шт. в ячейках натуральные числа без точек и запятых.
|
|||
12
Масянька
29.04.13
✎
15:50
|
Как вариант - считай и выведи значение т тип значения ячейки с кол-вом.
|
|||
13
Мыш
29.04.13
✎
15:51
|
Ну что за архаизм. КомСейфАррэй наше всё )
|
|||
14
1C2SS
29.04.13
✎
15:52
|
Помогло вот это:
н.КоличествоУпаковок = Число(СокрЛП(Лист.Cells(ф, 4).Value)); |
|||
15
Масянька
29.04.13
✎
15:52
|
Кстати, если там (в кол-ве) число, зачем преобразуешь?
|
|||
16
1C2SS
29.04.13
✎
15:52
|
(13) что это ?
|
|||
17
1C2SS
29.04.13
✎
15:52
|
(15) для надежности )
|
|||
18
AaNnDdRrEeYy
29.04.13
✎
15:53
|
(7) Значит колонка "Количество" не просто выводится а рассчитывается, на что ссылается элемент формы?
|
|||
19
Мыш
29.04.13
✎
15:58
|
(16) Ускоритель чтения и записи )
Эксель = Новый COMОбъект("Excel.Application"); Книга = Эксель.Workbooks.Open(ИмяФайла); Лист = Книга.Sheets(ИмяИлиНомерЛиста); // Вот он, ComSafeArray МассивКом = Лист.Range("A1", "S500").Value; // Закроем Excel Книга.Close(); Эксель.Quit(); // Далее работаем с массивом, можно в цикле НекотороеЗначение = МассивКом.GetValue(1, 1); // Не забываем округлять числа НекотороеЗначение = Окр(НекотороеЗначение, 2); |
|||
20
Bumer
29.04.13
✎
20:13
|
(6) Да не про это я... там надо...
И упаковки и количество... логика программы такая... |
|||
21
Aprobator
29.04.13
✎
20:28
|
(7) значит на форму оно не выводится. Смотри свойства формы.
|
|||
22
Aprobator
29.04.13
✎
20:29
|
А именно колонки с заголовком шапки Количество.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |