Имя: Пароль:
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. Если не через попытку, как тогда правильнее?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn