Имя: Пароль:
   
1C
 
таблица значений + НайтиЗначение = грабли?
0 Crystalizer
 
26.05.04
22:56
есть такое:

   Список = СоздатьОбъект("ТаблицаЗначений");
   список.НоваяКолонка ("тмц", "Строка", , ,"тмц");
   список.НоваяКолонка ("кол", "Число", , ,"Количество");

заполняется

   Ит = СоздатьОбъект("БухгалтерскиеИтоги");    
   ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, , 1);
   ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "26","23",,3,,"К");
   ит.ВыбратьСубконто(1,,0);                  
   Пока ит.ПолучитьСубконто(1)=1 Цикл
       Если ит.ДО(3) <> 0 Тогда
           список.НоваяСтрока();
           список.тмц=ит.Субконто(1).ПолнНаименование;
           список.кол=ит.ДО(3);
       КонецЕсли;
   КонецЦикла;

вроде всё ок...

потом поиск

       зу = Запрос.ЗначениеУпорядочивания(1);
       с = ПолучитьПустоеЗначение ("число");
           //  зу = текст кароче
       Если Список.НайтиЗначение( зу, с, "тмц")=0 Тогда
           Сообщить("       Ошибка при поиске соответствия ...");
       Иначе
           список.ТекущаяСтрока(с);
           кол = Список.кол;
           Сообщить(кол);
       КонецЕсли;

НЕ НАХОДИТ!!!
кароче скока я не парился всякие параметры передавал - не находит и всё тут! в итоге написал просто в цикле просмотр последовательный и сравнение ;-)

как это сделать правильно шоб НАХОДИЛО таки значение?
1 Asmody
 
26.05.04
23:00
с=0;
2 It is me
 
26.05.04
23:02
Есть фишка...При поиске в таблице значений должно быть ТОЧНОЕ совпадение, вплоть до пробелов. То бишь если ищем слово "товар" в колонке строковой длиной 10 символов, надо искать "товар     "...
3 SnarkHunter
 
26.05.04
23:02
зу = Запрос.ЗначениеУпорядочивания(1);
с = 0;  <==
Если Список.НайтиЗначение( зу, с, "тмц")=0 Тогда
 Сообщить("       Ошибка при поиске соответствия ...");
Иначе
 список.ПолучитьСтрокуПоНомеру(с); < ==
 кол = Список.кол;
 Сообщить(кол);
КонецЕсли;
4 Crystalizer
 
26.05.04
23:16
Asmody, SnarkHunter: попробовал! ни разу не нашёл! :((((
я уже и пробелы обрезал...
5 It is me
 
26.05.04
23:19
Их не обрезать, их добавить надо...
6 SnarkHunter
 
26.05.04
23:25
И это... список.тмц=ит.Субконто(1)
7 SnarkHunter
 
26.05.04
23:27
И это... список.НоваяКолонка ("тмц", "Спровочник.Номенклатура");
8 It is me
 
26.05.04
23:31
Снарк, тмц то у него - строковый, а вдруг у него основное представление в виде кода :)
Кристалайзер - пойми намек, сделай тмц тип - Справочник.ТМЦ и будет у тебя счастье...только  список.тмц=ит.Субконто(1) действительно и зу=Запрос.ТМЦ (или как у тебя там в запросе справочник обозван)
9 Crystalizer
 
26.05.04
23:34
SnarkHunter ты имеешь ввиду Справочник.ТМЦ ;-)
оно конечно резонно
дык грабли в том что после

   Пока Запрос.Группировка(1) = 1 Цикл
       зу = Запрос.ЗначениеУпорядочивания(1);
           ...
зу = строка
т.е. надо находить ЭлементСправочника.НайтиПоНаименованию(зу);
что в общем то тоже не получалось... код уже похерил...
10 It is me
 
26.05.04
23:37
ЭлементСправочника.НайтиПоНаименованию(Запрос.ЗначениеУпорядочивания(1)) Это идея! ;))
11 SnarkHunter
 
26.05.04
23:38
На кой тебе зу... Обращайся к элементу справочника... Переменная запроса, соответствующая ТМЦ как у тебя обзывается? Вот ее и используй, например Запрос.ТМЦ...
12 Crystalizer
 
26.05.04
23:39
опа... %)
13 Crystalizer
 
26.05.04
23:44
УРА! КАТИТ!
через обращение        
Если Список.НайтиЗначение( запрос.продукция, с, "тмц")=0 Тогда
находит :)
It is me, SnarkHunter: спасибо :) я как-то профтыкал момент, что можно обращаться запрос.продукция %)
14 Crystalizer
 
26.05.04
23:45
вы просто волшебники! %)