|
Не ищется значение в табличной части управляемой формы |
☑ |
0
Nick_Cher
25.10.16
✎
15:20
|
На клиенте не работает следующий код,
данные в табличной части есть,
поиск через интерфейс находит запись "СР1609604",
а вот программно найти не получается, всё время выдаёт
сообщение "Значение не найдено!".
Поле Номер - строковое длиной 15 символов.
Пробовал брать значение в одиночные кавычки
"'СР1609604'"- тоже не находит.
Что может быть причиной? Помогите разобраться.
ЕСЛИ ДанныеТаблицы4.Количество()>0 ТОГДА
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номер", "СР1609604");
НайденныеСтроки = ДанныеТаблицы4.НайтиСтроки(ПараметрыОтбора);
ЕСЛИ НайденныеСтроки.Количество() > 0 ТОГДА
Сообщить(НайденныеСтроки[0].Номер);
ИНАЧЕ
Сообщить("Значение не найдено!");
КОНЕЦЕСЛИ;
КОНЕЦЕСЛИ;
|
|
1
Fragster
гуру
25.10.16
✎
15:21
|
СР <> CP
|
|
2
mikecool
25.10.16
✎
15:21
|
а если добить до длины пробелами справа?
|
|
3
Nick_Cher
25.10.16
✎
15:30
|
Fragster
СР = СР
Полностью ищется через интерфейс поиска и оттуда же копипастом в код (то же самое, 1:1).
|
|
4
Nick_Cher
25.10.16
✎
15:31
|
mikecool
Попробую.
|
|
5
Nick_Cher
25.10.16
✎
15:40
|
mikecool, не прошло.
Никаких пробелов и латинских символов нет.
Только русский префикс СР и цифры.
Может быть играет роль &НаКлиенте / &НаСервере ?
У меня код &НаКлиенте. Что тогда делать?
Как выделить искомую строку в таблице?
Форма управляемая, с табличной частью.
|
|
6
Lexey_
25.10.16
✎
15:45
|
(5) да сравни уже две строки в отладчике
|
|
7
Nick_Cher
25.10.16
✎
15:56
|
Lexey_, проблема не в сравнении строк, а в поиске нужной записи. Какой метод использовать? Этот метод почему-то не отбирает нужную строку, хотя она есть в табличной части управляемой формы. Возможно, есть другие способы.
Да, использую 1С Предприятие 8.2.
|
|
8
Fragster
гуру
25.10.16
✎
16:08
|
а тип значения колонки какой?
|
|
9
Lexey_
25.10.16
✎
16:17
|
(7) "хотя она есть в табличной части", вот и проверь, есть ли она в таб части сравнением того, что ищешь с тем, что есть
|
|
10
Nick_Cher
25.10.16
✎
16:33
|
Lexey_, поиск через интерфейс находит эту строку. Но программный код - нет. Можно попробовать перебрать каждую строку таблицы и тупо сравнить. Вопрос только как это сделать. Интуитивно непонятно. Методом проб и ошибок не получается. Хоть бы где-нибудь это было толково описано.
|
|
11
Lexey_
25.10.16
✎
16:36
|
(10) я понял это, поэтому и предлагаю взять в руки отладчик, там всё интуитивно
|
|
12
Nick_Cher
25.10.16
✎
17:55
|
Lexey_, ты оказался прав. В отладчике у таблицы справа от номера были два пробела, хотя в самой видимой табличной части их не было. Спасибо тебе.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший