Версия для печати темы (https://pro1c.org.ua/index.php?s=b5c0303ae81bd299634253f7cfbf2ce8&showtopic=66925)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ заменить НайтиПоНаименованию

Автор: 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 поля сравнивать в условии ? Не только Наименование ,но и еще что-то ?
Можно сделать через новый реквизит в Спр.Только заполнить его надо уникальным значением,т.е.
сделать индекс.Потом найти по реквизиту.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua