Имя: Пароль:
1C
 
Не могу присвоить значение строки
, ,
0 Nemirov
 
04.06.20
15:11
Не получается присвоить ТабСтр.НоменклатураТП значение Справочники.Номенклатура.НайтиПоНаименованию(Стр.Наименование); пустые ссылки  на всех реквизитах. Кто встречался с такой бедой подскажите в чем может быть причина?
            Для Каждого Стр Из тзРезультат Цикл
                
                ТаблицаДляПостроителя = Новый ТаблицаЗначений;
                ТаблицаДляПостроителя.Колонки.Добавить("НоменклатураТП",Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
                
                ТабСтр  = ТаблицаДляПостроителя.Добавить();
                ТабСтр.НоменклатураТП = Справочники.Номенклатура.НайтиПоНаименованию(Стр.Наименование);
                
                Если НЕ ИспользоватьАртикул Тогда
                    
                    Если ТабЗначКодыПоставщика.Количество() > 0 Тогда
                        Построитель = Новый ПостроительЗапроса;
                        Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабЗначКодыПоставщика);
                        СтрокаОтбора = Построитель.Отбор.Добавить("НоменклатураКодыПоставщика");
                        СтрокаОтбора.ВидСравнения  = ВидСравнения.Равно;
                        СтрокаОтбора.Значение      = ТабСтр.НоменклатураТП;
                        СтрокаОтбора.Использование = Истина;
                        Построитель.Выполнить();
                        ВременнаяТЗ = Построитель.Результат.Выгрузить();
                        КолВо =  СтрокаОтбора.Значение.КодЧ;
                        Если Колво > 0 Тогда                                
                            Стр.НоменклатураСсылка = ТабСтр.НоменклДляПостр;        
                        Иначе
                            Сообщить("Нет привязки номенклатуры " + СокрЛП(Стр.Наименование),СтатусСообщения.ОченьВажное);
                            Отказ = Истина;
                        КонецЕсли;
                        
                    КонецЕсли;
                    
                Иначе
                    Стр.НоменклатураСсылка = омРаботаСФормами.ПолучитьАртикулПоставщика(ЭтотОбъект.Дата,Стр.Номенклатура,Стр.ЕдиницаИзмерения,ЭтотОбъект.Контрагент,ЭтотОбъект.Договор,Стр.Характеристика);
                КонецЕсли;    
                
            КонецЦикла;
1 ГдеСобака Зарыта
 
04.06.20
15:19
Какой ужас. Стыдно должно быть выкладывать такое на всеообщее обозрении. Все удали и перепиши как следует.
2 dka80
 
04.06.20
15:35
Справочники.Номенклатура.НайтиПоНаименованию(Стр.Наименование) - в отладчике что возвращает?
3 Волшебник
 
модератор
04.06.20
15:39
Вместо

СтрокаОтбора.ВидСравнения  = ВидСравнения.Равно;
СтрокаОтбора.Значение      = ТабСтр.НоменклатураТП;
СтрокаОтбора.Использование = Истина;

можно

СтрокаОтбора.Установить(ТабСтр.НоменклатураТП);
4 Nemirov
 
04.06.20
15:43
(2) Пустые ссылки, хотя сама СТр.Наименование имеет значение. Может по умолчанию ищет точное совпадение ?
5 Волшебник
 
модератор
04.06.20
15:45
(4) встаньте курсором на НайтиПоНаименованию и нажмите Ctrl-F1
6 dka80
 
04.06.20
15:46
(4) в смысле у тебя в наименовании написано "масло", а в справочнике "супер масло"? Тогда точно не найдет. Ставь не точное совпадение
7 Nemirov
 
04.06.20
15:48
(6) Короче нашлась причина походу: к примеру Стр.Наименовании "Масло доз" а в справочнике "Масло доз."
8 Nemirov
 
04.06.20
15:49
(6) И как быть в такой ситуации? Просто все наименования не меняются, а бывает что вот такие точки или другие символы добавляются(
9 dka80
 
04.06.20
15:50
Справочники.Номенклатура.НайтиПоНаименованию(Стр.Наименование, ЛОжь), но за результат я не отвечаю
10 Nemirov
 
04.06.20
15:58
(9) Да пробовал, ладно спасибо буду думать сам
11 Timon1405
 
04.06.20
16:02
Запросом искать Номенлкатуру
Где Наименование подобно &СтрокаПоиска+"%"