|
v8: Неправильное чтение из Екселя | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
15.10.12
✎
14:28
|
Попытка
Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ИсточникФайла); WS = WB.Worksheets(1);//указываем номер листа - 1 arr = WS.UsedRange.Value; WB.Close(0); Исключение Предупреждение("Внимание! Файл не открыт."+Символы.ПС+"Попробуйте открыть и пересохранить данный файл программой Эксель."); Возврат; КонецПопытки; //Узнаём данные выходные данные об листе ексель МассивКолонок = arr.Выгрузить(); колКол = МассивКолонок.ВГраница(); колСтр = МассивКолонок.Получить(0).Количество(); // ТабПоле.Колонки.Добавить("Номер", ,"Номер").Ширина=5; //Добавим новый столбец номер строки Для кол = 0 По колКол Цикл назКолМК = "Колонка"+(кол+2); //Сообщить("наз "+имяКолМК); имяКолМК = назКолМК; //Сообщить("имя "+имяКолМК); ТабПоле.Колонки.Добавить(назКолМК, Новый ОписаниеТипов("Строка"), имяКолМК).Ширина=20; //имя-колонка1, шапка-КолИмя КонецЦикла; // ЭлементыФормы.ТабПоле.СоздатьКолонки(); //Вставляем необходимое колличество колонок строк в ТабПоле Для новСтрока = 1 По колСтр Цикл новСтр = ТабПоле.Добавить(); номСтр = ТабПоле.Индекс(новСтр); новСтр.Установить(0,номСтр+1); КонецЦикла; //Заполняем ТЗ столбец =1; Для Каждого Колонка Из МассивКолонок Цикл СтолбецИмя = ТабПоле.Колонки.Получить(столбец).Имя; //Сообщить("-"+СтолбецИмя); ТабПоле.ЗагрузитьКолонку(Колонка,СтолбецИмя);//табельный номер столбец =столбец+1; КонецЦикла; Даная процедура почему то поле в прасе с кодом 83526 загружает как 83 526... Как этого избежать? |
|||
1
Boudybuilder
15.10.12
✎
14:29
|
Код я для примера написал...
И в то же время из других прайсов может считать без пробела... |
|||
2
Aprobator
15.10.12
✎
14:29
|
Формат(ТвоеЗначение, "ЧГ=0")
|
|||
3
Aprobator
15.10.12
✎
14:30
|
хотя в чем проблема то? Цена - число, а 83 526 всего лишь его представление вывода.
|
|||
4
Boudybuilder
15.10.12
✎
14:30
|
Смотрел в самом прайсе , в одном формат числовой , а в другом общий. Можно переделать на общий и в том. А как то чтоб уже автоматически избегало эту проблему?
|
|||
5
Balonbl4
15.10.12
✎
14:30
|
(2) Опередил=)
|
|||
6
Aprobator
15.10.12
✎
14:30
|
дык это не проблема.
|
|||
7
Aprobator
15.10.12
✎
14:32
|
можно даже в формате ячейки указать в макете. Только вот нафиг? Разделение то специально сделано для большей читаемости.
|
|||
8
Heckfy
15.10.12
✎
14:32
|
Как вариант, НПП заменить.
|
|||
9
Ахиллес
15.10.12
✎
14:33
|
100500 жертва неразрывного пробела :-)
(4) В (2) Самое правильное. Одинэс всегда при преобразовании числа к строке разделитель разрядов вставляет. Везде, где такое преобразование есть везде формат вставляй. |
|||
10
Aprobator
15.10.12
✎
14:33
|
а млин тут код, а не цена, тогда 2 тебе поможет.
|
|||
11
Aprobator
15.10.12
✎
14:34
|
(90 ну если такое везде надо, то можно региональными установками базы подкрутить.
|
|||
12
Boudybuilder
15.10.12
✎
14:36
|
(7) Зачем мне код разделять? А потом с базы по коду как искать? Если в прайсе без пробела а базе с пробелом...
|
|||
13
Aprobator
15.10.12
✎
14:37
|
(12) да поправился в (10) уже. Твое решение в (2).
|
|||
14
Boudybuilder
15.10.12
✎
14:39
|
Для Каждого Колонка Из МассивКолонок Цикл
СтолбецИмя = ТабПоле.Колонки.Получить(столбец).Имя; //Сообщить("-"+СтолбецИмя); ТабПоле.ЗагрузитьКолонку(Формат(Колонка, "ЧГ=0"),СтолбецИмя);//табельный номер столбец =столбец+1; КонецЦикла; Тогда так сделать? |
|||
15
КуплюКровать
15.10.12
✎
14:41
|
еще вариант стрзаменить("ляялля", символы.нпп,""). но это если другие не катят, на крайняк
|
|||
16
Масянька
15.10.12
✎
14:42
|
Как правило (из моей практики), когда грузишь из Excel'я - лучше всегда преобразовывать формат и использовать СокрЛП().
|
|||
17
Ахиллес
15.10.12
✎
14:44
|
(11) Юзеры придут и морду набьют. Им то в отчётах такого не надо.
|
|||
18
Boudybuilder
15.10.12
✎
14:44
|
(16) Тогда Ваще так ?!
ТабПоле.ЗагрузитьКолонку(СокрЛП(Формат(Колонка, "ЧГ=0")),СтолбецИмя); Так правильно будет? |
|||
19
Масянька
15.10.12
✎
14:46
|
(18) Мда, понедельник - день тяжелый......
СокрЛП - для текста. Формат - для даты и чисел. И вообще, экспериментируй. |
|||
20
Ахиллес
15.10.12
✎
14:46
|
(18) Нормалёк. Ток чтоб эту фигню не городить везде, сделай себе функцию, которая будет возвращать тебе строку в нужном тебе формате.
|
|||
21
Масянька
15.10.12
✎
14:47
|
+(20) Послушай умного мужика.
|
|||
22
Boudybuilder
15.10.12
✎
14:48
|
Ништяк,братишъ! Щас опробуем. ;)
|
|||
23
Масянька
15.10.12
✎
14:49
|
(22) Натюрлих :)))))
|
|||
24
Boudybuilder
15.10.12
✎
14:49
|
{Обработка.ФанЗаполнениеРегистраНоменклатураКонтрагента.Форма.Форма.Форма(427)}: Ошибка при вызове метода контекста (ЗагрузитьКолонку)
ТабПоле.ЗагрузитьКолонку(СокрЛП(Формат(Колонка, "ЧГ=0")),СтолбецИмя); по причине: Несоответствие типов (параметр номер '1') |
|||
25
Boudybuilder
15.10.12
✎
14:50
|
Без этого конечно низзя! :(
|
|||
26
HeroShima
15.10.12
✎
14:52
|
Как дети малые...
|
|||
27
Boudybuilder
15.10.12
✎
14:53
|
ТабПоле.ЗагрузитьКолонку(СокрЛП(Формат(Колонка, "ЧГ=0")),СтолбецИмя);
Тогдв что тут за глюк с параметром 1 ? |
|||
28
Ахиллес
15.10.12
✎
14:55
|
(27) Я тя понимаю, тебе очень хочется пописдить на мисте, но почитай всё таки синтаксис помощник.
|
|||
29
Boudybuilder
15.10.12
✎
15:00
|
Мне бы ответ...
|
|||
30
Aprobator
15.10.12
✎
15:07
|
посмотри в конце книжки.
|
|||
31
hhhh
15.10.12
✎
15:11
|
(29) формат не берет всю колонку, надо каждое число по отдельности фигачить. В цикле.
|
|||
32
Boudybuilder
15.10.12
✎
15:11
|
Это понятно. Но мне сейчас решение нужно.
Куда мне это СокрЛП(Формат(, "ЧГ=0")) подставить в этой (1) процедуре? |
|||
33
Boudybuilder
15.10.12
✎
15:12
|
(31) Понятно. Спасибо...
Но это будет долго... |
|||
34
Boudybuilder
15.10.12
✎
15:25
|
Для Каждого ТекСтр Из СписокНоменклатуры Цикл
ТекСтр.КодНоменклатурыКонтрагента = Формат(ТекСтр.КодНоменклатурыКонтрагента, "ЧГ=0"); КонецЦикла; Попробовал так , но чтото не помагает... |
|||
35
НЕА123
15.10.12
✎
15:29
|
в описание типов колонки добавь число.
ну, на крайняк тут был совет с НПП. |
|||
36
Boudybuilder
15.10.12
✎
15:34
|
ТекСтр.КодНоменклатурыКонтрагента = СтрЗаменить(ТекСтр.КодНоменклатурыКонтрагента," ","");
Так не фурычит. Если вместо пробела символ , то меняет. А что , символы не удаляет? |
|||
37
Boudybuilder
15.10.12
✎
15:34
|
тоесть не ищет?
|
|||
38
Boudybuilder
15.10.12
✎
15:34
|
пробелы
|
|||
39
Boudybuilder
15.10.12
✎
15:38
|
СтрЗаменить(ТекСтр.КодНоменклатурыКонтрагента,Символы.НПП,"");
Вот выход из положения! Спасибо всем за внимание! Извините что отобрал время за такой пустяк. |
|||
40
НЕА123
15.10.12
✎
15:39
|
Новый ОписаниеТипов("Строка, Число",
Новый КвалификаторыЧисла(64, 5, ДопустимыйЗнак.Любой), Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)) |
|||
41
НЕА123
15.10.12
✎
15:40
|
(39)
не кошерно. |
|||
42
Aprobator
15.10.12
✎
16:02
|
песец. Час на то чтобы увидеть, что тип колонки строка.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |