Имя: Пароль:
1C
1С v8
Поиск строки в регистре по элементу.
,
0 dborovsky
 
21.05.13
16:31
Сразу к делу.

В переменную передаю значение из табл эксель

врНаименование = ЛистЭксель.Cells(Счетчик, КолонкаНаименование).Value;
врНаименование принимает значение "Клемма АКБ комплект свинцовая с зажимом под болт (Рязань)"

У меня есть регистр сведений в котором одно из измерений Наименование со значением: "Клемма АКБ комплект свинцовая с зажимом под болт (Рязань)"

Ниже приведен часть кода где я хочу найти эту строку из регистра по наименованию, что я выцепил из экселя. Но почему то постояно выдает что стАльтернативныеНаименования неопределено, т.е. не находит. Может кто даст дельный совет, что ни так. Через отладчик смотрел, значение из экселя и и из регистра один к одному. Заранее спасибо за ответ.

Если врНеНайдено Тогда
           
           стАльтернативныеНаименования = тзАльтернативныеНаименования.Найти(врНаименование, "Наименование")";                
           Если стАльтернативныеНаименования = Неопределено Тогда
               Если Не ПустаяСтрока(врКод) Тогда
                   НоваяСтрока.Наименование = Справочники.Номенклатура.НайтиПоКоду(врКод);
               КонецЕсли;
           Иначе
               НоваяСтрока.Наименование = стАльтернативныеНаименования.Ссылка;
           КонецЕсли;
       Иначе...
1 dborovsky
 
21.05.13
16:33
Т.е. стАльтернативныеНаименования постоянно равно Неопределено
2 HEKPOH
 
21.05.13
16:34
вопрос: покажи кусок кода, где "хочу найти эту строку из регистра по наименованию"
3 dborovsky
 
21.05.13
16:35
стАльтернативныеНаименования = тзАльтернативныеНаименования.Найти(врНаименование, "Наименование");
4 HEKPOH
 
21.05.13
16:35
тзАльтернативныеНаименования - какой тип?
5 mikecool
 
21.05.13
16:36
собрать данные из экселя в тз, тз засунуть в запрос, в запросе по подобно искать
6 mikecool
 
21.05.13
16:36
маньяк недавно описывал ,как он в несколько проходов поиском занимается
7 HEKPOH
 
21.05.13
16:37
в первом посте нет ни одной строчки, где показан поиск в регистре
8 Allexe
 
21.05.13
16:38
тзАльтернативныеНаименования это что такое?
9 HEKPOH
 
21.05.13
16:39
вероятно, таблица значений
10 dborovsky
 
21.05.13
16:40
вот полный код:

//ПОИСК АЛЬТЕРНАТИВНЫХ НАИМЕНОВАНИЙ НОМЕНКЛАТУРЫ
   зпАльтернативныеНаименования = Новый Запрос;
   зпАльтернативныеНаименования.Текст =
    "ВЫБРАТЬ
    |    исПоставщикиНоменклатураНаименование.Наименование,
    |    Номенклатура.Ссылка
    |ИЗ
    |    РегистрСведений.исПоставщикиНоменклатураНаименование КАК исПоставщикиНоменклатураНаименование
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
    |        ПО исПоставщикиНоменклатураНаименование.Товар = Номенклатура.Ссылка";
   
    тзАльтернативныеНаименования = зпАльтернативныеНаименования.Выполнить().Выгрузить();
       
   //ЗАГРУЗКА В ТАБЛИЧНУЮ ЧАСТЬ ФОРМЫ ВЫБОРКИ
   Для Счетчик = НомерНачСтроки По НомерКонСтроки Цикл
               
       ИндикаторЗагрузки = Счетчик;
       врНаименование = ЛистЭксель.Cells(Счетчик, КолонкаНаименование).Value;
       
       Если ПустаяСтрока(врНаименование) Тогда
           Прервать;
       КонецЕсли;
       
       НоваяСтрока = Товары.Добавить();
       НоваяСтрока.АльтернативноеНаименование = врНаименование;
               
       Если КолонкаКод = 0 Тогда
           врКод = "";
       Иначе
           врКод = ЛистЭксель.Cells(Счетчик, КолонкаКод).Value;
       КонецЕсли;
       
       НоваяСтрока.АльтернативныйКод = врКод;
       НоваяСтрока.Количество = лкЗначениеВЧисло(ЛистЭксель.Cells(Счетчик, КолонкаКоличество).Value);
       НоваяСтрока.Цена = лкЗначениеВЧисло(ЛистЭксель.Cells(Счетчик, КолонкаЦена).Value);
       НоваяСтрока.Сумма = Окр(НоваяСтрока.Количество * НоваяСтрока.Цена, Округление);
       
       стНаименование = Справочники.Номенклатура.НайтиПоНаименованию(врНаименование);
       
       Попытка
           врНеНайдено = стНаименование.Пустая();
       Исключение
           врНеНайдено = Истина;
       КонецПопытки;
       
       Если врНеНайдено Тогда
           
           стАльтернативныеНаименования = тзАльтернативныеНаименования.Найти(врНаименование, "Наименование");                
           Если стАльтернативныеНаименования = Неопределено Тогда
11 dborovsky
 
21.05.13
16:41
тзАльтернативныеНаименования тип таблица значений
12 Allexe
 
21.05.13
16:43
(11) Может дело в лишних пробелах?
13 HEKPOH
 
21.05.13
16:52
врНеНайдено = стНаименование.Пустая(); - это что?
14 HEKPOH
 
21.05.13
16:54
блин, запутался в названиях переменных)))
15 HEKPOH
 
21.05.13
16:54
но в попытке это делать - жесть
16 dborovsky
 
22.05.13
10:28
Удалил последнее слово и находит. Может на самом деле где лишний пробел был. Спасибо за ответы.

P.S. Если не через попытку, как тогда правильнее?