|
v7: Не работает поиск по ТЗ | ☑ | ||
---|---|---|---|---|
0
brenli
10.03.17
✎
13:31
|
Доброго дня.
Почему может не работать поиск по таблице значений. Мне её что циклом обходить сравнивая получаемые значения с искомыми. Значение в таблице точно есть, а метод НайтиЗначение возвращает 0. Искомое значение пробовал указать руками. Результат тот же. ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Код","Строка",9); ТЗ.НоваяКолонка("НомКод","Строка",15); ТЗ.НоваяКолонка("Объект","Справочник.Номенклатура"); //...... //Заполнили таблицу результатом запроса.... //...... ТЗ.Сортировать("НомКод"); //...... //...... Если ТЗ.НайтиЗначение(НовыйНомер,,"НомКод")=1 Тогда Иначе КонецЕсли; Значение "00001", в ТЗ есть ТОЧНО. Переменная НовыйНомер содержит это значение. Почему результат работы метода 0??!! Вообще х....й пойму как работают очевидные на 1 взгляд вещи в этом языке. |
1 |
||
1
brenli
10.03.17
✎
13:33
|
(0) Небольшая поправочка в коде, поиск осуществляется в бесконечном цикле
Пока 1=1 Цикл Если ТЗ.НайтиЗначение(НовыйНомер,,"НомКод")=1 Тогда //.... КонецЕсли; КонецЦикла; |
|||
2
Это_mike
10.03.17
✎
13:36
|
патамушта "строка15"
|
4 14 19 24 |
||
3
ADirks
10.03.17
✎
13:37
|
в
ТЗ.НоваяКолонка("НомКод","Строка",15); длину строки не указывай в поиске ТЗ.НайтиЗначение(СокрЛП(НовыйНомер),,"НомКод") |
4 16 19 |
||
4
brenli
10.03.17
✎
13:42
|
||||
5
Это_mike
10.03.17
✎
13:42
|
значит, ошибка там же, где и всегда...
|
6 |
||
6
brenli
10.03.17
✎
13:43
|
(5) Стесняюсь спросить... ?
|
7 |
||
7
Это_mike
10.03.17
✎
13:49
|
(6) в ДНК...
|
|||
8
azernot
10.03.17
✎
13:55
|
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл Сообщить("'"+ТЗ.НомКод+"'"); КонецЦикла; Вставь этот код после сортировки ТЗ, результат из окна сообщений размести тут |
12 |
||
9
azernot
10.03.17
✎
13:56
|
Да, а ещё чуть ниже вставь
Сообщить("'"+НовыйНомер+"'"); |
10 |
||
10
brenli
10.03.17
✎
13:56
|
(9) момент, сейчас сделаю
|
|||
11
пипец
10.03.17
✎
13:56
|
перебери ТЗ по строкам с кодом
Сообщить("!"+ТЗ.НомКод+"!"); и посмотри сколько у тебя там и чего ))) и потом - НайтиЗначение все таки не совсем стандартное применение конструкции ))))))))))))) |
|||
12
Остап Сулейманович
10.03.17
✎
13:57
|
(8) Не поможет.
"Значение "00001", в ТЗ есть ТОЧНО." ставлю 1 бакс на то что такого значения в ТЗ нет. |
13 14 15 |
||
13
azernot
10.03.17
✎
13:58
|
(12) Вот и убедимся, что того, значения, которое ищется в ТЗ - нет
|
17 |
||
14
Остап Сулейманович
10.03.17
✎
13:59
|
16 17 |
|||
15
пипец
10.03.17
✎
13:59
|
(12) эээ классику не помним , ранее дайм ставили )))
|
17 |
||
16
azernot
10.03.17
✎
14:00
|
||||
17
brenli
10.03.17
✎
14:00
|
18 20 |
|||
18
azernot
10.03.17
✎
14:01
|
(17) Ты же пробелы глазами не видишь.
|
19 |
||
19
brenli
10.03.17
✎
14:02
|
21 |
|||
20
пипец
10.03.17
✎
14:03
|
(17) ты не видишь длинны строки ... это раз
про префиксы и буквы вместо цифер - уже паранойя но и такое бывает |
|||
21
azernot
10.03.17
✎
14:04
|
(19) Потому что мы не видим, как заполняется ТЗ.
Давай убедимся, что в ТЗ нет пробелов слева, справа, что там не "1", что там именно "00001" и что переменная НовыйНомер = "00001" |
22 |
||
22
brenli
10.03.17
✎
14:12
|
(21) +++
Вы правы оказались. Даже после того как я убрал длину строки у колонки, длина строки стала как длина поля. '00001 ' НовыйНомер = '00001' |
|||
23
brenli
10.03.17
✎
14:13
|
Пока Запрос.Группировка()=1 Цикл
ТЗ.НоваяСтрока(); ТЗ.Код = Запрос.Код; ТЗ.НомКод = СокрЛП(Запрос.НомКод); ТЗ.Объект = Запрос.Объект; КонецЦикла; Решил... Спасибо всем )) |
25 |
||
24
Остап Сулейманович
10.03.17
✎
14:14
|
А правильный ответ был еще в (2)...
|
|||
25
azernot
10.03.17
✎
14:16
|
(23) Спасибом не отделаешься!
Отправь СМС со словом "ДОБРО" на 5541 |
26 |
||
26
Это_mike
10.03.17
✎
14:17
|
||||
27
пипец
10.03.17
✎
15:11
|
меньше часа )))) эт еще нормально
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |