Имя: Пароль:
1C
1С v8
Не ищется значение в табличной части управляемой формы
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_, ты оказался прав. В отладчике у таблицы справа от номера были два пробела, хотя в самой видимой табличной части их не было. Спасибо тебе.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший