Имя: Пароль:
1C
1С v8
Не работает функция НайтиСтроки таблицы значений
,
0 Alex_MA
 
16.06.12
09:45
Всем доброго дня!

1С:Предприятие 8.2 (8.2.15.310)

Простейший код:

СтруктураПоиска = Новый Структура;
КлючПоиска      = "УникальныйИдентификаторПриемника";
ЗначениеПоиска  = "58d01354-ad1b-11e0-8072-002264a3800e";
СтруктураПоиска.Вставить(КлючПоиска, ЗначениеПоиска);

НайденныеСоответствия = ТаблицаШина.НайтиСтроки(СтруктураПоиска);

// НайденныеСоответствия - количество элементов 0, хотя значение в таблице есть, оно находится следующим образом:

НайденнаяСтрока = ТаблицаШина.Найти("58d01354-ad1b-11e0-8072-002264a3800e"); // Не равно Неопрпеделено.

ЧЯДНТ ? Очередной глюк 1С ?
1 Фокусник
 
16.06.12
10:00
(0) а так находит:
НайденнаяСтрока = ТаблицаШина.Найти("58d01354-ad1b-11e0-8072-002264a3800e", "УникальныйИдентификаторПриемника") ?
2 Alex_MA
 
16.06.12
10:10
Сейчас попробую, я уже сделал на временных таблицах

КлючПоиска                  = ?(Объект.ВидАнализа = "Источник", "УникальныйИдентификаторИсточника", "УникальныйИдентификаторПриемника");
   МенеджерВременныхТаблиц     = Новый МенеджерВременныхТаблиц;
   
   Запрос = Новый Запрос("ВЫБРАТЬ * ПОМЕСТИТЬ ТаблицаШиныВременнаяТаблица ИЗ &ТаблицаШина КАК ТаблицаШина");
   Запрос.УстановитьПараметр("ТаблицаШина", ТаблицаШина);
   Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
   
   Запрос.Выполнить();
   
   ЗапросРезультат = Новый Запрос();
   
   Для Каждого ТекСтр Из ТаблицаИБ Цикл
       
       ТекстЗапроса = "ВЫБРАТЬ * ИЗ ТаблицаШиныВременнаяТаблица КАК ТаблицаШиныВременнаяТаблица ГДЕ ТаблицаШиныВременнаяТаблица." + КлючПоиска + " ПОДОБНО ""%" + ТекСтр.СсылкаУникальныйИдентификатор + "%""";
       ЗапросРезультат.Текст = ТекстЗапроса;
       
       ЗапросРезультат.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
       
       ТаблицаДанных = ЗапросРезультат.Выполнить().Выгрузить();


Правда долго отрабатывает
3 Alex_MA
 
16.06.12
10:13
(1)так находит, а вот НайтиСтроки не работает - прочитай внимательнее топик.
У меня могут быть не уникальные значения в таблице.
4 Alex_MA
 
16.06.12
10:15
(1)прошу прощения,
ТаблицаШина.Найти("58d01354-ad1b-11e0-8072-002264a3800e", "УникальныйИдентификаторПриемника")  = Неопределено
5 Нуф-Нуф
 
16.06.12
10:16
(4) :)
6 Alex_MA
 
16.06.12
10:17
это что баг такой ?
7 Александр_
Тверь
 
16.06.12
10:17
(6) угу, но не там где ты думаешь :)
8 Alex_MA
 
16.06.12
10:18
(7)а где ?
9 Александр_
Тверь
 
16.06.12
10:18
(8) почитай описание метода найти.
10 Wobland
 
16.06.12
10:20
(8) видимо, в кислоте
11 Александр_
Тверь
 
16.06.12
10:20
либо у тебя колонка в таблице называется не "УникальныйИдентификаторПриемника" (может ошибку при написании допустил), либо у тебя значение "58d01354-ad1b-11e0-8072-002264a3800e" в другой колонке.
12 Нуф-Нуф
 
16.06.12
10:31
(11) колонка называется верно. только вот значение в другой
13 Нуф-Нуф
 
16.06.12
10:33
Судя по коду. УникальныйИдентификаторИсточника
14 Нуф-Нуф
 
16.06.12
10:34
выполни вот такой код:

СтруктураПоиска = Новый Структура;
КлючПоиска = ?(Объект.ВидАнализа = "Источник", "УникальныйИдентификаторИсточника", "УникальныйИдентификаторПриемника");
ЗначениеПоиска  = "58d01354-ad1b-11e0-8072-002264a3800e";
СтруктураПоиска.Вставить(КлючПоиска, ЗначениеПоиска);

НайденныеСоответствия = ТаблицаШина.НайтиСтроки(СтруктураПоиска);
15 Alex_MA
 
16.06.12
10:35
(14)спасибо люди добрые, все разобрался....
мне уже 1с ночью сниться, так что скорее бы уже в отпуск :)
16 experimentator76
 
16.06.12
12:51
(11) не может быть чтобы гений ошибался))
17 experimentator76
 
16.06.12
12:52
(15) а ты отладчиком эту одноэс отладчиком
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший