7.7 поиск по неполному наименованию

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем BOBS, 4 сен 2010.

  1. TopicStarter Overlay
    BOBS
    Offline

    BOBS

    Регистрация:
    22 май 2010
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    есть журнал серийных номеров, в нем документы со списками сериников с товара. есть поиск по серийному номеру - но срабатывает только если номера идентичны. Проблема в том, что иногда при забивании серийников используются диапазоны с коробки наример 1234(40-60) возможно ли в 1С 7.7 сделать поиск по неполному серийнику ?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если это справочник:
    Код:
     
    НайтиПоНаименованию(Серийник,0,0);
    
    
    
    Можно применить ВК StrMatch (ну или писать алгоритм сравнения самому)
  3. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    да.. цикл по элементам и функция Найти().. Если элементов много, то работать будет очень не быстро.. Можно немного ускорить "черным" запросом.. типа
    Код:
            ТекстЗапроса ="
    |ТекущийЭлемент = Справочник.ТвойСпр.ТекущийЭлемент;" + 
    РеквизитПоиска + " = Справочник.ТвойСпр." + РеквизитПоиска + ";
    |Группировка ТекущийЭлемент Без Упорядочивания Без Групп;
    |Условие(Найти(ВРег(" + РеквизитПоиска + "),ВРег(СокрЛП(СтрПоиск)))>0);
    |Без итогов;";   
    
    
  4. TopicStarter Overlay
    BOBS
    Offline

    BOBS

    Регистрация:
    22 май 2010
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    1
    Код:
     Док=СоздатьОбъект("Документ");
    Таб=СоздатьОбъект("Таблица");
    Таб.ВывестиСекцию("Шапка");
    Ном=0;
    Док.ВыбратьДокументы(ДатаНачала,ДатаКонца);
    Пока Док.ПолучитьДокумент()=1 Цикл
    Если Док.Вид()="СерийныеПоставщиков"  Тогда
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку()=1 Цикл
    Если SN=Док.Серийник Тогда
    Ном=Ном+1;
    Таб.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    
    Получается серийники хранятся не в регистре, но никак не могу сообразить куда и как вставить НайтиПоНаименованию(Серийник,0,0);,
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) В данном случае лучше использовать ОПРЕДЕЛЕННЫЙ вид документа (быстрее будет).
    2) НайтиПоНаименованию применим ТОЛЬКО к справочнику (о чем было сказано)
    3) В данной ситуации луше использовать конструкцию которую предложил фобец. Т.е. ЗАПРОС (но не к справочнику а к строкам документа)

Поделиться этой страницей