Автор: 4andriy 16.02.22, 18:30
Метод НайтиПоНаименованию ищет элемент справочника по наименованию.
В справочнике под одним именем есть несколько одинаковых значений потому при поиске находит самое первое значение.
В коде это так:
Если Спр.НайтиПоНаименованию(ТекущийЭлемент().Товар.Наименование,0) = 1 Тогда
На что и как можно заменить что-бы при поиске еще сверяло еще какое-то значение, а не брало первое.
Автор: denis84 16.02.22, 20:53
4andriy @ Сегодня, 18:30
,
Выбратьпореквизиту. Я так делал,когда артикул одинаковый у нескольких товаров. Но по наименованию это не прокатит,т.к. это предопределенный реквизит
Выгрузи в ТЗ и сверни по реквизитам
Автор: volodya1122 17.02.22, 11:14
Цитата(4andriy @ 16.02.22, 18:30)
На что и как можно заменить что-бы при поиске еще сверяло еще какое-то значение, а не брало первое.
Заменить на выборку запросом всех элементов с заданным наименованием (в поля выборки включить все дополнительные поля по которым будет еще проверяться значение). А потом обходом выборки запроса взять нужное
Автор: andrew76 21.02.22, 19:10
Цитата(4andriy @ 16.02.22, 21:30)
Метод НайтиПоНаименованию ищет элемент справочника
Сколько записей в справочнике ?
andrew76 @ Сегодня, 21:28
,
только циклом обходить весь справочник,но если много записей,то будет тормоз.
если избавляться от пробелов в условии , то еще медленнее будет
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 цикл
Если Спр.Наименование=ТекущийЭлемент().Товар.Наименование Тогда
//какие то действия для анализа Наименования
КонецЕсли;
КонецЦикла;
Цитата(4andriy @ 16.02.22, 21:30)
На что и как можно заменить что-бы при поиске еще сверяло еще какое-то значение, а не брало первое.
Так надо 2 поля сравнивать в условии ? Не только Наименование ,но и еще что-то ?
Можно сделать через новый реквизит в Спр.Только заполнить его надо уникальным значением,т.е.
сделать индекс.Потом найти по реквизиту.