|
Поиск артикула в наименовании | ☑ | ||
---|---|---|---|---|
0
sereban
26.08.11
✎
11:49
|
Есть прайс от поставщика, в котором названия товаров выглядят таким образом:
FCN89024 З/п"Колгейт"свеж.дых.50мл. 8670281 Део тв."Рексона"кислород 40г. FTR22295 Гель-душ"Палмолив"энергия 250мл. 3866 М/с"Фейри"зелен.яблоко 500мл. А некоторые позиции вообще без артикулов. Прайс порядка 8000 тысяч позиций. При помощи задания шаблона в операторе ПОДОБНО можно определить есть ли артикул в Наименовании. А существует ли возможность выбрать запросом сами артикулы? Слышал что возможно реализовать при помощи регулярных выражений. Может кто сталкивался с подобной задачей? |
|||
1
Ненавижу 1С
гуру
26.08.11
✎
11:51
|
(0) СКД
|
|||
2
sereban
26.08.11
✎
11:52
|
(1) А по-подробнее?
|
|||
3
Ненавижу 1С
гуру
26.08.11
✎
11:53
|
(2) в СКД можно юзать произвольные пользовательские функции
например Лев(Реквизит,Найти(Реквизит," ")-1) |
|||
4
sereban
26.08.11
✎
11:59
|
Через найти не получится, нет точного значения строки поиска. Там может быть произвольная последовательность цифр или сначала буквы потом цифры
|
|||
5
Ненавижу 1С
гуру
26.08.11
✎
12:00
|
(4) а я ищу пробел вообще то
|
|||
6
Eugeneer
26.08.11
✎
12:01
|
(0) сталкивался. написал загрузку из экселя в которой сделал более 10 вариантов поиска, плюс полнотекстовый поиск если вообще ничерта нету по чем бы сходилось.
|
|||
7
Ненавижу 1С
гуру
26.08.11
✎
12:03
|
(6) кроме как хвастаться, что умеешь?
|
|||
8
sereban
26.08.11
✎
12:06
|
(5) Если искать пробел, а артикула нет в наименовании, то выдернет первое слово из названия
|
|||
9
Eugeneer
26.08.11
✎
12:07
|
Артикул может быть в любом месте в наименовании. спереди/сзади/где попало. Размер артикула может быть какой угодно.
|
|||
10
Ненавижу 1С
гуру
26.08.11
✎
12:07
|
(8) как отличить артикул от просто слова?
(9) тогда практически невозможно выдернуть |
|||
11
shuhard
26.08.11
✎
12:07
|
(8) Маня прав
случай тривиальный бери первое слово проверяй на цифры и латиницу, считай артикулом |
|||
12
Eugeneer
26.08.11
✎
12:09
|
Причем может быть варианты:
1) в файле в строке есть артикул / в базе его нет в поле артикула, но есть в наименовании где попало 2) в файле нету артикула в колонке, но есть в наименовании строки экселя / в базе есть артикул 3) в файле нету артикула в отдельной колонке, но есть в наименовании / в базе нету артикула у номенклатуры, но тоже есть в наименовании причем расходится с строкой файла. 4) артикул есть в загрузке но символьно что то не совпадает (лишний пробел, лишние знакм, черточки, галочки, или целые лишние слоги) |
|||
13
shuhard
26.08.11
✎
12:10
|
(12) угу
+ большие/маленькие буквы |
|||
14
Eugeneer
26.08.11
✎
12:11
|
Тут только точно может помочь специальная обработка которая бы показывала результаты поиска. Только так можно отладить необходимый поиск
http://subsystems.ru/upload/iblock/c0e/c0ea82a1aeaaabd371c99ee1dd7b809b.png http://subsystems.ru/upload/iblock/151/1514f70aca2de02b772b52da447bcfdf.png |
|||
15
Ненавижу 1С
гуру
26.08.11
✎
12:13
|
(14) заипал рекламировать свои протухшие поделки
|
|||
16
Eugeneer
26.08.11
✎
12:13
|
А еще может быть
5) артикул есть в файле/ есть артикул в базе - НО это совершенно другая номенклатура. |
|||
17
shuhard
26.08.11
✎
12:15
|
(16) угу
вариантов до фига полнотекстовый поиск лучшее решение |
|||
18
Eugeneer
26.08.11
✎
12:15
|
(15) тебе что не нравится? я что то рекламирую?? заипал флудить в теме. Никуя человеку помочь не можешь какую то куйню советуешь. еще и возникаешь.
|
|||
19
Eugeneer
26.08.11
✎
12:16
|
(10) "(9) тогда практически невозможно выдернуть"
Иди гуляй Вася. Не умеешь - бросай в 1С работать. |
|||
20
shuhard
26.08.11
✎
12:17
|
(17) уймись
реклама на форуме конечно запрещена правилами [Не публикуйте рекламные объявления] |
|||
21
Ненавижу 1С
гуру
26.08.11
✎
12:18
|
(18)(19) хахаха, ты смотрю помог
в общем случае вытащить не вариант вот строка "БАК АВАТАР" где здесь артикул? возможно это "БАК", а возможно "АВАТАР", ну и возможно его вообще нет включи логику, хотя как ты хреню пишешь, то не взлетит |
|||
22
Eugeneer
26.08.11
✎
12:19
|
(21) если в базе естьв артикулах любое из этих слов значит найти его можно!
|
|||
23
Ненавижу 1С
гуру
26.08.11
✎
12:20
|
(22) а кто сказал что в базе есть? поставщик прислал новый товар и надо его загрузить
|
|||
24
Eugeneer
26.08.11
✎
12:23
|
(23) ну так стоят задачи.
1) найти по максимуму номенклатуру 2) если не нашлась то это новая. Мы же не обсуждаем тут новую. Автор хочет алгоритмы именно поиска номенклатуры чтобы избежать дублирования |
|||
25
Eugeneer
26.08.11
✎
12:25
|
Вообще все очень просто делается. Алгоритм простой.
Бежим по выборке файла. Получаем строку с артикулом и наименованием. Ищем по артикулу стандартно, плюс наименованию. Не находим. Ищем дальше. Допустим вариант. нету артикула в файле отдельной колонкой. он в наименовании. Раскладываем наименование по словам и делаем подзапросы по словам по поиску в базе по артикулу. Вот и вариант решения. Один из ситуаций. |
|||
26
shuhard
26.08.11
✎
12:25
|
(23) может быть и такое
100% решения задачи нет, но 99% обеспечивается я писал загрузчик для Price.ru вендоров было штук 20 каждый со своим форматом |
|||
27
Eugeneer
26.08.11
✎
12:26
|
(26) Хм. может нам есть что по личке обсудить?
|
|||
28
shuhard
26.08.11
✎
12:27
|
(26) вряд ли
загрузчик был для SAP B1 и писался на Access |
|||
29
Ненавижу 1С
гуру
26.08.11
✎
12:27
|
(27) вызови на дуэль, только приедь на логане
|
|||
30
sereban
26.08.11
✎
12:53
|
Извиняюсь, я немного отлучился и тут без меня нагородили что-то непонятное.
(10) Артикул отличается от простого слова: 1. Это последовательность цифр в начале Наименования 2. Это несколько букв + последовательность цифр в начале Наименования И есть позиции, в которых нет артикула. Задача найти артикул в наименовании, чтобы его можно было оттуда просто удалить за ненадобностью(наименование попадет в интернет магазин). Для какого-либо поиска артикул не нужен(есть отдельная колонка ИД - с артикулом не связана). Прайс 8000 строк - большой. Загрузка каждый день. + Будут еще прайсы от других поставщиков с подобными проблемами. Загрузка тоже каждый день. Конечно в цикле перелопатить все наименования можно, проверить первое слово на наличие цифр и убрать его. Но какой то "костыль" получается. Хотелось бы запросом или еще как то это оптимизировать. Про запрос писал в начале темы |
|||
31
Ненавижу 1С
гуру
26.08.11
✎
12:55
|
(30) найти первый пробел, установить что ДО него стоит символ цифра
все это в СКД - пользовательские функции |
|||
32
sereban
26.08.11
✎
12:55
|
Ненавижу 1С как я понимаю если вместо цикла использовать скд с вызовом процедуры общего модуля, то работать быстрее будет. или нет?
|
|||
33
Ненавижу 1С
гуру
26.08.11
✎
12:56
|
(32) хз, но в клиент-серверном варианте скорее всего да
|
|||
34
sereban
26.08.11
✎
12:56
|
Спасибо. Буду пробовать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |