Имя: Пароль:
1C
1С v8
Эксель --> 1С (проблема с числами 16,515.60 и 16515.60)
,
0 листопад
 
23.12.11
15:36
Загружаю данные из Эксель. В столбце "Сумма" если сумма больше 999, т.е.  имеет больше трех чисел, то в Эксель они в виде:
16,515.60
2,674.37
А должны быть в виде:
16515.60
2674.37
Из-за этого они не подгружаются. Подскажите, как можно такие числа отформатировать?
1 Fish
 
23.12.11
15:37
Убрать запятые :)))
2 KishMish
 
23.12.11
15:37
запятые убирай СтрЗаменить() или что там в 8?
3 Формат
 
23.12.11
15:38
<--
4 sanja26
 
23.12.11
15:39
В эксель есть настройки разделителей триад
5 Fish
 
23.12.11
15:40
Вот, может поможет:
Функция ЭксельВЧисло(ЭксельСтрока)
   ЭксельЧисло = 0;
   ЭксельСтрока = СокрЛП(ЭксельСтрока);
   
   Если Найти(ЭксельСтрока," ") > 0 Тогда
       ЭксельСтрока = СтрЗаменить(ЭксельСтрока," ","");
   КонецЕсли;
   
   Если Найти(ЭксельСтрока,",") > 0 Тогда
       ЭксельСтрока = СтрЗаменить(ЭксельСтрока,",","");
   КонецЕсли;    
   
   Если Найти(ЭксельСтрока,Символы.НПП) > 0 Тогда
       ЭксельСтрока = СтрЗаменить(ЭксельСтрока,Символы.НПП,"");
   КонецЕсли;    
   
   Попытка
       ЭксельЧисло = Число(ЭксельСтрока);
   Исключение
       ЭксельЧисло = 0;
   КонецПопытки;
   
   Возврат ЭксельЧисло;
КонецФункции
6 ProProg
 
23.12.11
15:42
Если Название = "КоличествоКонтрагента" ИЛИ Название = "ЦенаКонтрагента" ИЛИ Название = "Вес" ИЛИ Название = "Объем" Тогда
               Значение = СтрЗаменить(Значение," ","");
               Если Найти(Значение,".") > 0 И Найти(Значение,",") > 0 Тогда
                   Значение = СтрЗаменить(Значение,",","");
               ИначеЕсли Найти(Значение,",") > 0 Тогда
                   Значение = СтрЗаменить(Значение,",",".");                
               КонецЕсли;
           КонецЕсли;
           
           Если Название = "СуммаКонтрагента" Тогда
               Значение = СтрЗаменить(Значение," ","");
               Если Найти(Значение,".") > 0 И Найти(Значение,",") > 0 Тогда
                   Значение = СтрЗаменить(Значение,",","");
               КонецЕсли;
               
               Если ЗначениеЗаполнено(Значение) И НовСтрока.КоличествоКонтрагента > 0 Тогда
                   НовСтрока.ЦенаКонтрагента = Значение / НовСтрока.КоличествоКонтрагента;
               КонецЕсли;
               
               НовСтрока[Название] = Значение;
           ИначеЕсли Название = "СтавкаНДС" Тогда
               Значение = СтрЗаменить(Значение," ","");
               
               Если ЗначениеЗаполнено(Значение) Тогда
                   НовСтрока[Название] = ПолучитьСтавкуНДС(Значение);
               КонецЕсли;
           Иначе
               Попытка
                   НовСтрока[Название] = Значение;
               Исключение
               КонецПопытки;
           КонецЕсли;    


http://subsystems.ru/catalog/27/158/
7 МихаилМ
 
23.12.11
15:43
мне кажется, Вы спатали своства value и text
8 sanja26
 
23.12.11
15:44
http://imageshost.ru/photo/2826613/id1175499.html
для разовой загрузки
9 листопад
 
23.12.11
15:44
Всем СПАСИБО!!! Помогло:
Сумма = СтрЗаменить(Сумма,",","");
10 ProProg
 
23.12.11
15:45
(9) эээ. это не все. еще хуже когда запятая и точка есть
11 ProProg
 
23.12.11
15:46
запятую нельзя убирать просто так
12 Fish
 
23.12.11
15:47
+(10) Или НПП :))
(11) Это смотря какой разделитель стоит в настройках. Если разделитель триад - запятая, то можно.
13 ProProg
 
23.12.11
15:48
(12) лучше не опиратся на настройки. а сделать сразу чтобы независело
14 ProProg
 
23.12.11
15:49
еще могут быть ксатти в колонка с ценой символы валют всякие. когда в одно стоит 1500р.
15 Fish
 
23.12.11
15:51
(13) Ну да, конечно это будет лучше и правильней. В принципе еще пара дополнительных проверок, мне просто влом было заморачиваться :)) А для разовой загрузки вполне пойдёт.
16 ProProg
 
23.12.11
15:53
у меня ситуация другая))) платная и 250 клиентов которые пользуются