Имя: Пароль:
1C
1С v8
Эксель: данные из двух колонок в одну (в массив)
0 листопад
 
22.12.11
22:59
В Эксель есть колонка с наименованием на англ.языке (НаимАнгл) и колонка с наименованием на русском языке (НаимРуск). Надо загрузить номенклатуру, чтобы наименование было в виде:
НаимАнгл/НаимРуск
Подскажите, не получается...

Пишу:

Процедура ЗагрузитьДанныеИзФайла(ПутьКФайлу,Таблица) Экспорт
       Excel     = Новый COMОбъект("Excel.Application");
       WB         = Excel.Workbooks.Open(ПутьКФайлу);
       WS         = WB.Worksheets(1); //указываем номер листа - 1
       arr     = WS.UsedRange.Value;  //передаём таблицу в переменную
       WB.Close(0);
       
   
   МассивКолонок = arr.Выгрузить(); //Выгружаем таблицу в массив
   всегоСтрок   = (МассивКолонок.Получить(0).Количество())-1;
   
   Для строкаТП = 1 По всегоСтрок Цикл
       НовСтрока = Таблица.Добавить();
               
       НовСтрока.Номер                    = СокрЛП(МассивКолонок.Получить(0).Получить(строкаТП));
       НовСтрока.НаимАнгл                = СокрЛП(МассивКолонок.Получить(1).Получить(строкаТП));
       НовСтрока.Кол                    = СокрЛП(МассивКолонок.Получить(2).Получить(строкаТП));
       НовСтрока.ЕдАнгл                = СокрЛП(МассивКолонок.Получить(3).Получить(строкаТП));
       НовСтрока.ЕдРуск                = СокрЛП(МассивКолонок.Получить(4).Получить(строкаТП));
       НовСтрока.Сумма                 = СокрЛП(МассивКолонок.Получить(5).Получить(строкаТП));
       НовСтрока.НаимРуск              = СокрЛП(МассивКолонок.Получить(6).Получить(строкаТП));
       НовСтрока.НаимИтоговое          = СокрЛП(НовСтрока.НаимАнгл) + СокрЛП(НовСтрока.НаимРуск); //вот здесь не получается
           
   КонецЦикла;    
КонецПроцедуры
1 ProProg
 
22.12.11
23:03
разуй глаза
2 wade25
 
22.12.11
23:04
Конкатенация строк не?)
3 НуВотКак
 
22.12.11
23:04
ну сложи
4 листопад
 
22.12.11
23:06
(3) Так я и складываю:
НовСтрока.НаимИтоговое          = СокрЛП(НовСтрока.НаимАнгл) + СокрЛП(НовСтрока.НаимРуск);
5 НуВотКак
 
22.12.11
23:08
ну и почему не скалдывается? значит это не строки, надо сделать строкой
6 wade25
 
22.12.11
23:08
Та нафиг тут вообще все это) Иди циклом по строкам, если не пустая строка, то НовСтрока.НаимИтоговое = 1(стр1, кол2) + "\" + 2(стр1, кол3). Ну как то так...)
7 ProProg
 
22.12.11
23:09
пилять. все разуйте глаза
8 НуВотКак
 
22.12.11
23:10
(7) да скажи уж ответ.
9 листопад
 
22.12.11
23:11
(6) не поняла, в чем отличие от моего (4) ?
10 ProProg
 
22.12.11
23:11
(8) шо слеп?
у него стоит один плюс.
а надо бы парочку с "/" собственно в (6) ответ.
11 wade25
 
22.12.11
23:13
+ еще перед нужно "" +, а то если у тебя нет проверки на незаполненное, ошибка вылетит...
12 НуВотКак
 
22.12.11
23:13
ладно чтото это совсем нудняк
13 maxstore
 
22.12.11
23:15
НовСтрока.НаимИтоговое =""+ СокрЛП(НовСтрока.НаимАнгл) + "" + СокрЛП(НовСтрока.НаимРуск) + "";
14 НуВотКак
 
22.12.11
23:16
Маразм крепчал
15 листопад
 
22.12.11
23:17
(13) написАла, все равно не заполняется (((
16 maxstore
 
22.12.11
23:19
Ну вот эти значения (...НовСтрока.НаимАнгл ..НовСтрока.НаимРуск) в отладчике тип значения строка?
17 НуВотКак
 
22.12.11
23:19
(15) К строке приведи значения из ячеек
18 maxstore
 
22.12.11
23:23
(17)  "" + система по первому в конкатенации попытается привести все остальное к типу строки...
19 Deon
 
22.12.11
23:24
Вообще, конечно, стоило бы начать с описания проблемы. Конкретно-то что "не получается"?
Может там ваще на выходе Таблица пустая?
20 НуВотКак
 
22.12.11
23:25
Крутотенюшка --- + ""; --- если ты еще логично раскажешь шо цэ галиматья делает, я буду тебе примного благодарен
21 листопад
 
22.12.11
23:27
(16), (17) Не получается, пишу:

НовСтрока.НаимИтоговое = ""+ Строка(СокрЛП(НовСтрока.НаимАнгл)) + "" + Строка(СокрЛП(НовСтрока.НаимРуск)) + "";
22 НуВотКак
 
22.12.11
23:28
(21) Почему не получается? Выдели в отладчике НовСтрока.НаимАнгл и скажи нам пожалуйста тип и значение, оки доки?
23 maxstore
 
22.12.11
23:31
(20) ну ты че?
в конкатенации если мы пишем 23 + "21" то будет 44,  а если "23" + 21 то "2321"
24 листопад
 
22.12.11
23:34
25 НуВотКак
 
22.12.11
23:34
(23) Ну это вообще крутотенюшка-крутотень
НовСтрока.НаимИтоговое =""+ 1 + "" + 2 + ""; - это я упростил то что ты написал в (13) в котором даром не нужно все что после 2...............
26 НуВотКак
 
22.12.11
23:35
(24) Ну так значения нет, что ты складуешь то?
27 листопад
 
22.12.11
23:37
28 Deon
 
22.12.11
23:38
(27) Давай-давай, ща ещё 5 раз нажать F10 и дело пойдееееет
29 maxstore
 
22.12.11
23:38
(25) Ну и?... результат будет "12"
30 Deon
 
22.12.11
23:40
Чё-то я вас не пойму, о чем вы ваще спорите. В последней строке идет сложение строк, какие там нахрен числа?
31 Deon
 
22.12.11
23:41
(27) Ну как там с отладчиком-то дела?
32 листопад
 
22.12.11
23:46
(31) Странно, в отладчике на строке НовСтрока.НаимИтоговое = ""+ Строка(СокрЛП(НовСтрока.НаимАнгл)) + "" + Строка(СокрЛП(НовСтрока.НаимРуск)) + "";

показывает все правильно: Omega 73смазка

А почему тогда в ТЗ на форме все колонки переносятся, а эта -нет???
33 НуВотКак
 
22.12.11
23:48
(29) Правильно НовСтрока.НаимИтоговое =""+ 1 + "" + 2;  и вот так он тоже будет "12" ты мне начал объяснять про приведение типов а я тебя спросил "зачем ты лишние ковычки поставил?", на что ты мне опять очевидные вещи говоришь
34 листопад
 
22.12.11
23:49
+(32) всем СПАСИБО!!! Нашла свою ошибку )))
35 Deon
 
22.12.11
23:49
(34) Поведай хоть, в чем она была? )
36 листопад
 
22.12.11
23:56
(35) Я значение Данные в ТабличномПоле на форме не определила у НаимИтоговое )))
37 листопад
 
23.12.11
00:00
Еще подскажите пож-та:
в Эксель колонка Количество заполнена по-разному, например:
10
10.00
10,00

А должно быть как просто число 10.

Также колонка Сумма заполнена не корректно:
1,771.24
16.34
17,16



Можно ли это при перегрузке в ТЗ как-то преобразовывать в единый формат?
38 листопад
 
23.12.11
00:02
(37) Такое получилось, т.к. данные из формата pdf перевели в Эксель. А теперь это все надо как-то загрузить в 1С.
39 maxstore
 
23.12.11
00:05
(33) кавычки лишние, согласен, но это не ошибка
40 maxstore
 
23.12.11
00:06
Формат(.. , ..)
41 НуВотКак
 
23.12.11
00:06
(39) Конечно не ошибка
42 НуВотКак
 
23.12.11
00:07
Число(СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>))
43 Deon
 
23.12.11
00:12
(37) Ну, в первом случае все десятки переведутся в число 10 без проблем, вроде