Имя: Пароль:
1C
1С v8
преобразование значения к типу число не может быть выполнено
0 Fire-Rex
 
23.10.14
11:46
Добрый День!
Добавил внешнюю печатную форму "Уведомление на увольнение иностр.гр-н, никак не запущу.
Ругается "преобразование значения к типу число не может быть выполнено" в след.строке
Если СтрДлина(СтатьяТКРФ)>69 Тогда
        СтатьяТКРФПункт = Число(СокрЛП(Сред(СтатьяТКРФ,21,2)));
        СтатьяТКРФСтатья = Число(СокрЛП(Сред(СтатьяТКРФ,43,2)));
    Иначе
        СтатьяТКРФПункт = Число(СокрЛП(Сред(СтатьяТКРФ,7,2)));
        СтатьяТКРФСтатья = Число(СокрЛП(Сред(СтатьяТКРФ,29,3)));
1 Cube
 
23.10.14
11:47
(0) Зачем тебе в печатной форме число?
2 Fire-Rex
 
23.10.14
11:47
Там статья и пункт ТК РФ
3 Cube
 
23.10.14
11:48
(2) И что? Они обижаются, что их строкой записывают?
4 Fire-Rex
 
23.10.14
11:48
Видимо, да
5 butterbean
 
23.10.14
11:49
в отладчик!
6 Cube
 
23.10.14
11:50
(4) Ну, с пунктом ТК можно договориться легко - на мисте сто раз обсасывали. А вот со статей договариваться сложно, но тоже можно...
7 18_plus
 
23.10.14
11:50
(4) где-то промахнулся с цифирями в сред или циферки плавают в разных значениях. отладчик в зубы и разбираться.
8 Fire-Rex
 
23.10.14
11:50
СтатьяТКРФПункт = Число(СокрЛП(Сред(СтатьяТКРФ,7,2)));
        СтатьяТКРФСтатья = Число(СокрЛП(Сред(СтатьяТКРФ,29,3)));
Сюда ругается
9 Fire-Rex
 
23.10.14
11:50
в форме есть два поля, в одно пункт, в другое статью
10 программистище
 
23.10.14
11:51
и что ни сообщить
ни отладчиком не смотрено
что там в СокрЛП(Сред(СтатьяТКРФ,21,2))?
11 Fire-Rex
 
23.10.14
11:55
Отладчик:
Ошибка времени выполнения:
ВнешняяОбработка.ПечатьУведомленияНаИностранногоГражданина.МодульОбъекта(375): преобразование значения к типу Число не может быть выполнено в модуле ВнешняяОбработка.ПечатьУведомленияНаИностранногоГражданина.МодульОбъекта(375)
12 Fire-Rex
 
23.10.14
11:56
В зупе строка выглядит так: ст 278 п 2.
В форме:   Статья____  пункт _____
13 Enders
 
23.10.14
11:58
(12) Пиши строкой, в чем проблема?
Пройдись отладчиком, посмотри что у тебя в СокрЛП(Сред(СтатьяТКРФ,21,2))
в (11) это не отладчик, это текст ошибки
14 silent person
 
23.10.14
11:59
значит у тебя в строке которая получается после СокрЛП() кроме цифр есть еще какие то символы

Встроенные функции языка (Script functions)
Число (Number)
Значение типа Строка преобразуется в число в том случае, если параметр является строковым представлением литерала численного типа....В противном случае будет выдано сообщение об ошибке выполнения функции.
15 Cube
 
23.10.14
12:00
(9) Ну так и засунь в эти поля СТРОКИ. Зачем туду сувать ЧИСЛА?
16 Fire-Rex
 
23.10.14
12:05
Тупо заменить число на строку?
17 Cube
 
23.10.14
12:07
(16) Тупо удалить преобразование к числу.

Вместо

СтатьяТКРФПункт = Число(СокрЛП(Сред(СтатьяТКРФ,21,2)));

пиши

СтатьяТКРФПункт = СокрЛП(Сред(СтатьяТКРФ,21,2));
18 Мимохожий Однако
 
23.10.14
12:09
А не пробовал получить из строки с разделителями список значений или массив?
19 Fire-Rex
 
23.10.14
12:10
Терь вот что:
{ВнешняяОбработка.ПечатьУведомленияНаИностранногоГражданина.МодульОбъекта(25)}: Метод объекта не обнаружен (РазложитьСтрокуВМассивПодстрок)
    МассивМестоРождения    =    ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(?(ВерхнийРегистр, Врег(СтрокаМестоРождения), СтрокаМестоРождения));
20 palpetrovich
 
23.10.14
12:13
(19)  а она (РазложитьСтрокуВМассивПодстрок) там есть, в ОбщегоНазначения?
21 Cube
 
23.10.14
12:14
(19) Позови специалиста))))
Или скопипасти процедуру РазложитьСтрокуВМассивПодстрок() из общего модуля (там, где она есть) к себе и юзай её.
22 Fire-Rex
 
23.10.14
12:17
Заменил на ОбщегоНазначенияЗК
23 Fire-Rex
 
23.10.14
12:18
Ошибок нет, но форма вышла пустая
24 palpetrovich
 
23.10.14
12:18
(21) "Позови специалиста" -- ваще-т да, 20 постов и наконец-то верный
25 Cube
 
23.10.14
12:18
(23) Печаль, беда?))
26 Fire-Rex
 
23.10.14
12:19
Задница, в целом
27 Fire-Rex
 
23.10.14
12:20
Была б возможность - вызвал бы)
28 Fire-Rex
 
23.10.14
12:24
разобрался
29 palpetrovich
 
23.10.14
12:24
(27) из тюрьмы пишешь? :)
30 Fire-Rex
 
23.10.14
12:24
Мужики, Всем спасибо!!!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс