Поиск по реквизиту номенклатуры с выводом остатков

Тема в разделе "1C и всё что с ней связано", создана пользователем oleco, 8 июн 2009.

  1. oleco

    oleco Гость

    Доброго времени суток!
    Суть вопроса следующая:
    Есть типовая ТиС (954), немного редактированная, а именно:
    предпиятие - сеть магазинов по продаже японских (и не только) автозапчастей, практически у каждой запчасти есть свой японский (оригинальный) номер (называется OEM), к оригинальной запчасти куча заводов выпускает свои аналоги (со своими номерами), тем не менее каждая запчасть имеет привязку к OEM-у, как правило одна и таже деталь подходит к разным маркам авто, практически это выглядит так:
    Наим: 335689 //Номер продукции производителя, занесен в наименование для облегчения импорта из .xls катологов завода
    OEM: 485625513, 485534412, 486512233 //номера совместимых оригинальных TOYOTA-вских амортизаторов
    Расшифровка: Амортизатор задний Toyota Chaiser //добавленные мною реквизиты номенклатуры, для вывода в докуметах: чекККМ; этикетках и ценниках
    Аналог: кузов 100, 105, 110 // модели кузовов авто к которым подходят данные амортизаторы

    Так вот нужно организовать поиск, основанные на OEM номерах, то бишь продавец вбивая название "335689" и видя что его нет на остатке должен увидеть есть ли в наличии товары, OEM которых идет через запятую в данной номенклатуре в реквизите OEM

    поиск я вроде сделал, но окончательно запутался и тем боле не могу вывести остаток найденных товаров, поиск реализован в подборе, его код:

    Процедура ПоискОЕМ()

    ОстаткиТМЦ = СоздатьОбъект("Регистр.ОстаткиТМЦ");
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.ВыбратьЭлементы();
    Найд = СоздатьОбъект("СписокЗначений");

    Пока Спр.ПолучитьЭлемент() = 1 Цикл

    Если Спр.ЭтоГруппа() = 1 Тогда

    Продолжить;

    КонецЕсли;

    // ОстатокТекНоменклатуры = СокрЛП(Формат(СписокОст.ПолучитьЗначение(1),"Ч014.3"));

    Если Найти(Нрег(СокрЛП(Спр.Артикул)),Нрег(СокрЛП(ВыбО))) <> 0 Тогда

    Найд.ДобавитьЗначение(Спр.ТекущийЭлемент(), СокрЛП(Спр.Наименование)+?(Спр.Уровень() <> 1," - "+ Спр.Родитель.Наименование,""));
    КонецЕсли;

    КонецЦикла;

    Если Найд.РазмерСписка() = 0 Тогда

    Предупреждение("Уважаемый по вашему запросу ничего НЕ найдено!!!");
    Возврат;
    КонецЕсли;

    Если Найд.РазмерСписка() = 1 Тогда

    АктивизироватьОбъект(Найд.ПолучитьЗначение(1));
    Возврат;

    КонецЕсли;

    зн = "";
    Если Найд.ВыбратьЗначение(зн,"Все что есть :unsure:",,,0) = 1 Тогда

    АктивизироватьОбъект(зн);

    КонецЕсли;


    КонецПроцедуры // ПоискОЕМ

    С С-ку не так давно работаю, посоветую что-нибудь :)

    Я понимаю, что нужно в отдел внедрения францайзи идти, НО у нас во-первых ценник лупят не хилый, причем предлагают все переписать, а во-вторых, и это самое главное человека жалко: после запрета ввоза праворуких машин бизнес, поставленный им за 5 лет, трешит по швам, да и некрасиво признаваться в собственной некомпетенции, может все же поможете?
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    через перебор работает медленно - через запрос быстрее.
    а судя по коду - остатки у тебя вообще не трогаются.
     
  3. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Уверены?
    Таки запретили ввоз машин с рулем в бардачке?!
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Это когда я так говорил????!!!
     
  5. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    puh14, странно... видимо движок форума глюканул...
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А не подойдет ли типовая форма подбора? У вас ведь ОЕМ в наименовании...
    А так - изучайте получение остатков по регистру.
     
Загрузка...

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