Имя: Пароль:
1C
1С v8
Преобразование к типу Число не может быть определено.
0 AllJoke
 
12.09.13
17:00
Всем времени доброго. По сабжу не пинайте, знаю что в гугле куча инфы. Но тут загвоздка именно в следующем.
Делаю задачи по пособию Радченко.
Там есть глава - Полнотекстовый поиск.

Вот код:

Процедура РезультатПоискаПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
    
    ЭлементHTML = ДанныеСобытия.Event.srcElement;
    Если (ЭлементHTML.Id = "FullTextSearchListItem") Тогда
        //Получить имя файла (номер строки поиска), содержащегося в гиперссылке
        НомерВСписке = Число(ЭлементHTML.nameProp);
        
        //Получить строку списка поиска по номеру
        ВыбраннаяСтрока = РезультатПоиска[НомерВСписке].Значение;
        
        //Открыть форму найденнго объекта
        ОткрытьЗначение(ВыбраннаяСтрока);
        СтандартнаяОбработка = Ложь;
    КонецЕсли;
    
КонецПроцедуры


Делаю всё в 1С:Предприятие 8.3.3.715

        НомерВСписке = Число(ЭлементHTML.nameProp); // вот здесь и выскакивает ошибка. В отладчике ЭлементHTML.nameProp = "#", Тип = Строка. Неужели дело в платформе?
1 Тролль главный
 
12.09.13
17:02
дело в ДНК, какое это число "#"?
2 vicof
 
12.09.13
17:04
(1) +1
3 Fish
 
12.09.13
17:06
(0) Не всякую строку можно преобразовать в число.
4 bolobol
 
12.09.13
17:07
Я, чессслово, не знаю о чём речь, но name - это имя, и вряд ли может быть числом. Проверьте код.
5 AllJoke
 
12.09.13
17:08
Так это всё понятно. НО! Код взят прям с книги. Всё сделано по книге. НА форумах смотрел, в Инете глянул - у всех якобы всё работает в этом месте. Хотя тогда платформы 8.3.3 не было ещё.
6 vicof
 
12.09.13
17:09
(5) В книгах тоже бывают опечатки. Или ты тупо контролцэ-контролвэ?
7 vicof
 
12.09.13
17:10
+(6) хотя не факт, что в книге
8 AllJoke
 
12.09.13
17:10
1С:Предприятие 8.2 Практическое пособие разработчика. Стр.605. Листинг 19.4:

&НаКлиенте
Процедура РезультатПоискаПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
    
    ЭлементHTML = ДанныеСобытия.Event.srcElement;
    Если (ЭлементHTML.Id = "FullTextSearchListItem") Тогда
        //Получить имя файла (номер строки поиска), содержащегося в гиперссылке
        НомерВСписке = Число(ЭлементHTML.nameProp);
        
        //Получить строку списка поиска по номеру
        ВыбраннаяСтрока = РезультатПоиска[НомерВСписке].Значение;
        
        //Открыть форму найденнго объекта
        ОткрытьЗначение(ВыбраннаяСтрока);
        СтандартнаяОбработка = Ложь;
    КонецЕсли;
    
КонецПроцедуры
9 spu79
 
12.09.13
17:10
(1) shift+3 (в англ раскладке). Не? Тогда вопрос становиться по другому: "Какому числу соответствует shift?"
10 AllJoke
 
12.09.13
17:15
(9) да беда в том, что мысля такая и у меня возникла. Так как кликал 3 строку. НО! Когда кликаешь и первую и вторую строку - возвращает то же самое.
11 Fragster
 
модератор
12.09.13
17:15
учитывая то, что автор даже текст ошибки написал неправильно, многое может быть не так...
12 bolobol
 
12.09.13
17:21
Где-то говорят - обновите индекс полнотекстового поиска... Тут уж - на всякий случай)
13 sikuda
 
12.09.13
17:25
(9) Nan. В 1с нет специальный чисел. Вызывается исключение.
14 spu79
 
12.09.13
17:27
в качестве бреда.
в Эксель, например, # появляется, когда число Больше ширины ячейки. Кстати тип = число, но при попытки прочитать (программно) возвращает как раз "#". Может здесь покурить?
15 AllJoke
 
12.09.13
17:28
(11) Торопился. Был удивлен и поражен тем, что делая всё по книге не всегда получаются такие же результаты.
Вот вся ошибка:

{Отчет.ПоискДанных.Форма.ФормаОтчета.Форма(69)}: Преобразование значения к типу Число не может быть выполнено
        НомерВСписке = Число(ЭлементHTML.nameProp);


(12) делал обновление индекса - не помогло.
16 AllJoke
 
12.09.13
17:35
Странно, в той же книге сказано - "Добавим в форму реквизит РезультатПоиска и перетащим его в окно элементов формы". Хотя про тип этого реквзизита ничего не сказано. У меня по умолчанию строка. Здесь, скорее всего, важен Вид Поля.
17 AllJoke
 
12.09.13
17:43
Такое ощущение, что он мне в nameProp возвращает то же значение что и в href = "#"
18 AllJoke
 
12.09.13
17:46
<a id="FullTextSearchListItem" href="#" sel_num="2">Оказание услуги: Оказание услуги 000000001 от 23.08.2013 0:00:00</a>

вот здесь у меня предположение, что нужно получать цифру 2, т.е. sel_num. Хотя такого свойтсва у ДанныеСобытия.Event.srcElement нет.
19 AllJoke
 
12.09.13
18:02
На 8.2.15 всё отрабатывает.
20 bolobol
 
12.09.13
18:54
Ну всё же - точку останова и ЭлементHTML - Шифт+Ф9 - смотри свойства и значения. Ну, вдрюк, так сказать, исправили что-то
21 Fragster
 
модератор
12.09.13
20:00
(18) судя по докам: Returns the file name from the URL specified by the href or src property of the current element.

а тебе нужно getAttribute("sel_num")
22 AllJoke
 
13.09.13
08:41
(21) см (19) - тогда же в чём баг????
23 AllJoke
 
13.09.13
08:45
(21) ну что могу сказать - благодарствую. Но всё же косяк платформы не определён. Почему же в 8.2.15 идёт одна отработка, а в 8.3.3 уже совсем другая. Хотя и свойство элемента присутствует, но оно совсем другое.
Как вы думаете, в данном случае нужно писать в 1С?
24 Serg_1960
 
13.09.13
09:20
Об чём писать в 1С будешь? Об том, что пособие Радченко, написанное для 8.2, не совсем подходит для 8.3?
25 AllJoke
 
13.09.13
09:24
(24) ))) юмор понял. Значит в закрома своих знаний добавлю.