O
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));
Возврат;
КонецЕсли;
зн = "";
Если Найд.ВыбратьЗначение(зн,"Все что есть ",,,0) = 1 Тогда
АктивизироватьОбъект(зн);
КонецЕсли;
КонецПроцедуры // ПоискОЕМ
С С-ку не так давно работаю, посоветую что-нибудь
Я понимаю, что нужно в отдел внедрения францайзи идти, НО у нас во-первых ценник лупят не хилый, причем предлагают все переписать, а во-вторых, и это самое главное человека жалко: после запрета ввоза праворуких машин бизнес, поставленный им за 5 лет, трешит по швам, да и некрасиво признаваться в собственной некомпетенции, может все же поможете?
Суть вопроса следующая:
Есть типовая ТиС (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));
Возврат;
КонецЕсли;
зн = "";
Если Найд.ВыбратьЗначение(зн,"Все что есть ",,,0) = 1 Тогда
АктивизироватьОбъект(зн);
КонецЕсли;
КонецПроцедуры // ПоискОЕМ
С С-ку не так давно работаю, посоветую что-нибудь
Я понимаю, что нужно в отдел внедрения францайзи идти, НО у нас во-первых ценник лупят не хилый, причем предлагают все переписать, а во-вторых, и это самое главное человека жалко: после запрета ввоза праворуких машин бизнес, поставленный им за 5 лет, трешит по швам, да и некрасиво признаваться в собственной некомпетенции, может все же поможете?