Имя: Пароль:
1C
1С v8
Преобразование значения к типу Число не может быть выполнено
↓ (Maxus43 15.03.2013 14:58)
0 fitilj123
 
15.03.13
12:41
добрый день . нужна помащь не получаеться округление выводит сообщение - Преобразование значения к типу Число не может быть выполнено что не так подскажите


Процедура КоманднаяПанельТоварыИзменитьЗаГрам(Кнопка)

ФормаВводаЗаГрам = ПолучитьФорму("ВводЦеныЗаГрам",ЭтаФорма);

Если ТипЗнч(ПараметрыНаценки) = Тип("Структура") Тогда

Для каждого КлючИЗначение Из ПараметрыНаценки цикл

ФормаВводаЗаГрам[КлючИЗначение.Ключ] = КлючИЗначение.Значение;

КонецЦикла;

КонецЕсли;

ПараметрыНаценки = ФормаВводаЗаГрам.ОткрытьМодально();

Если ТипЗнч(ПараметрыНаценки) = Тип("Структура") Тогда

МассивПодарочныхСертификатов = ПолучитьМассивНоменклатурыПодарочныхСертификатов();
Для каждого СтрокаТоваров Из Товары Цикл

Если СтрокаТоваров.Пометка
И МассивПодарочныхСертификатов.Найти(СтрокаТоваров.Номенклатура) = Неопределено Тогда

//СтрокаТоваров.Цена = СтрокаТоваров.вес*ПараметрыНаценки.Цена;
Если ЗначениеЗаполнено(ПараметрыНаценки.Округление) Тогда

ЗначениеОкругления = Число(Строка(ПараметрыНаценки.Округление));


Цена = Окр(Цена/ЗначениеОкругления,РежимОкругления.Окр15как20);

КонецЕсли;
СтрокаТоваров.Цена = СтрокаТоваров.вес*ПараметрыНаценки.Цена;

КонецЕсли;

КонецЦикла;


КонецЕсли;

КонецПроцедуры
помогите
1 Wobland
 
15.03.13
12:42
внимательно смотри в строку с ошибкой и крепко думай
2 Wobland
 
15.03.13
12:43
а грам - это мера веса?
3 Wobland
 
15.03.13
12:45
телепатирую. ФормаВводаЗаГрам возвращает хрень
4 MSII
 
15.03.13
12:46
(0) А вот запусти отладчик и скажи нам, какое значение не может быть преобразовано к типу Число.
5 fitilj123
 
15.03.13
12:46
да грам это мера веса. я не могу понять может мне округление в другой процедуре выполнить а округленная сумма уже в таблицу выводила ? второй день мучаюсь много чего перепробовал не получаеться (((
6 Maxus43
 
15.03.13
12:47
автор предлагает всем читать эти буквы, догадываясь о типах и т.д.? У автора есть номер строки, в которой ошибка, а у нас нет... Это пятничный ребус?
7 fitilj123
 
15.03.13
12:47
жалуеться на строчку -Цена = Окр(Цена/ЗначениеОкругления,РежимОкругления.Окр15как20);
8 Wobland
 
15.03.13
12:47
(5) про гран слышал, про грам - нет
9 Maxus43
 
15.03.13
12:48
(7) и? Цена или ЗначениеОкругления не являются ЧИСЛАМИ. Что ты хочешь от нас?
10 Wobland
 
15.03.13
12:48
(7) а теперь скажи значения обоих операндов первого параметра
11 Wobland
 
15.03.13
12:48
(9) чтоб мы их числами сделали
12 Maxus43
 
15.03.13
12:51
Турум-Пурм (кружусь с бубном напротив чучела голого бабуина) Турум-Пурум!

Помогло?
13 fitilj123
 
15.03.13
12:51
суть вот в чем . есть установка цен . цена устанавливаеться за 1грам изделия и исходя из веса изделия выводит новую цену и нужно чтоб полученная цена округлялось .
14 Maxus43
 
15.03.13
12:53
Сообщиьт(ТипЗнч(Цена));
Сообщиьт(ТипЗнч(ЗначениеОкругления));
Цена = Окр(Цена/ЗначениеОкругления,РежимОкругления.Окр15как20);
15 Maxus43
 
15.03.13
12:53
Сообщить*
16 Wobland
 
15.03.13
12:54
(13) ваще пофих на суть. сколько граммов в граме?
>цена устанавливаеться.. и .. выводит.. и нужно чтоб цена округлялось
язык форума русский
17 Wobland
 
15.03.13
12:56
(14) ну сообщит оно ему ерунду всякую. может, даже кто-то посоветует перечитать (3). боюсь, это автора не спасёт
18 Maxus43
 
15.03.13
12:58
(17) я даже читать (0) не хочу, без знаний о том, какая именно переменная <> числу
19 acsent
 
15.03.13
12:58
цена есть null
20 Maxus43
 
15.03.13
12:59
ЗначениеОкругления = Число(Строка(ПараметрыНаценки.Округление));

феерический код просто,
21 Maxus43
 
15.03.13
12:59
может жертва неразрывного пробела вобще
22 Wobland
 
15.03.13
13:01
(20) пятнично! а я и не приметил
23 НЕА123
 
15.03.13
13:09
(20)    
мне вот так больше нравится
ЗначениеОкругления = 0 + ("" + ПараметрыНаценки.Округление);
24 tdm
 
15.03.13
13:11
(0) загнать всю конструкцию в:
попытка...тут ваш текст... исключение =0 конец попытки;
и идти пить пиво =))) в пн. уже серьезно думать
25 Wobland
 
15.03.13
13:11
интересно, а Ложь+""+ч нормально отработает?
26 НЕА123
 
15.03.13
13:18
(25) нет

ложь+"0" + 1
так работает. = 1
27 НЕА123
 
15.03.13
13:20
(26)+
ложь+(""+1) тоже отрабатывает. =1
28 Wobland
 
15.03.13
13:24
(27) сложение не ассоциативно?
29 НЕА123
 
15.03.13
13:26
хм... кстати, а почему к числу-то булево преобразуется.
ложь+истина+истина = 2
30 Maxus43
 
15.03.13
13:29
(29) правильно же, "+" арифмитическое.
А вот ИСТИНА ИЛИ ЛОЖЬ ИЛИ ИСТИНА = Истина
31 Wobland
 
15.03.13
13:31
в (25) пустая строка не может преобразоваться в число
32 Maxus43
 
15.03.13
13:32
(31) но сложени пустой строки с 1 даст строку "1", что при последующем сложении с Ложь преобразуется в число
33 Wobland
 
15.03.13
13:33
а автор смотрит сейчас на ветку и думает "вот придурки" ;)
34 Maxus43
 
15.03.13
13:34
пятница, можно
35 cw014
 
15.03.13
13:35
Я думаю ТС уже забыл, зачем сюда пришел :)
36 mikecool
 
15.03.13
13:38
(0) продам запятые, 100шт по 50р
37 fitilj123
 
15.03.13
13:41
всем спасибо .не у тех я людей я спросил, в другом форуме все поняли и объяснили . играйтесь дальше.
38 Wobland
 
15.03.13
13:42
(37) они использовали другие слова?
39 Maxus43
 
15.03.13
13:49
(37) тут нормально помогают, надо нормально задавать вопрос. разжёжвывать всё - хуже в первую очередь для тебя, а не для других. ответы по существу были, ты их проигнорировал
40 fitilj123
 
15.03.13
14:27
тыт больше придуривались чем пытались понять проблемму ! да и хотел бы я посмотреть как вы начинали програмировать все ли у вас с самого начала шло без проблем!
41 cw014
 
15.03.13
14:31
(40) Нет конечно, ты прав. Были проблемы. Но глупых вопросов стараемся не задавать.
42 Maxus43
 
15.03.13
14:44
давайте объективно.

Ошибка написана по русски, "Преобразование значения к типу Число не может быть выполнено".

Строка, на которую ругается - известна (но она появилась только в (7)), если не знаем что такое отладчик, то код (14) указал бы конкретную переменную из 2-х. Дальше смотрели бы в чем проблема.

Выкладывая кусок кода, без текста ошибки (там строка указана), без попыток самому понять - не оправдание тому что только начинаешь. Это больше похоже на "Сделайте всё за меня"
43 fitilj123
 
15.03.13
14:54
да понимаю что допустил ошибку не укозав строку на которую ссылаеться . но ваши термины для меня непонятны . и когда мне сказали нормальным человеческим языком я указал строчку . а умничать многие из вас гаразды, да и над начинающими посмеяться, вместа того чтоб помоч!
44 Maxus43
 
15.03.13
14:59
да не надо принимать на свой счет такое тут, а тем более в пятницу. Люди устали за неделю, надо отдыхать