Не могу найти по коду в справочнике так как в нем пробелы а в строке поиска нет #767705


#0 by Shur1cIT
Не стану изобретать велосипед, лучше спрошу как быть? бежать циклом по справочнику и делать СокрЛП у кода не хочу, так как такие элементы могут опять появиться. как лучше поступить в данном случае?
#1 by Cyberhawk
Убрать пробелы у кодов справочника
#2 by Cyberhawk
Ну а коль не хочешь - запросом через ПОДОБНО
#3 by Shur1cIT
не хочу в уже написал, нужен другой вариант
#4 by Shur1cIT
у меня загрузка из xml запрос в цикле.нужно максимально простое решение
#5 by Shur1cIT
поиск по реквизиту в режиме неполного соответствия тоже отпадает так как код может быть 1024 у действующего , а поиск произвожу по 24 соответственно он его найдет и перезапишит
#6 by Fish
"так как такие элементы могут опять появиться" - так сделай так, чтобы не появлялись.
#7 by Shur1cIT
кстати ПОДОБНО мне тоже не подайдет так как там посути поиск вхождений. только цикл по справочнику как вариант
#8 by marty0701
База типовая?
#9 by mistеr
Если коды нельзя стандартизировать (а обычно можно), то привязываться нужно не к ним, а к чему-то другому. Например, добавить реквизит.
#10 by Cyberhawk
"поиск по реквизиту в режиме неполного соответствия тоже отпадает" // Такой возможности не существует, ты видимо спутал с НайтиПоНаименованию
#11 by Cyberhawk
"загрузка из xml запрос в цикле.нужно максимально простое решение" // Я его дал в
#12 by Cyberhawk
"кстати ПОДОБНО мне тоже не подайдет так как там посути поиск вхождений" // Покажи пример: что нужно искать, среди чего искать
#13 by f_vadim
видимо так "%" + Код + "%" по коду 1234 выдаст и 1234 и 12345 и 01234 и т.д. а надо точное попадание.
#14 by marty0701
1 234 ?
#15 by f_vadim
хз. тс пишет только про СокрЛП
#16 by marty0701
Тема не стоит слов, делай цикл и сокрЛП, требуемого алгоритма не существует.
#17 by marty0701
Тема поста "Не могу найти по коду в справочнике так как в нем _пробелы_ а в строке поиска нет"
#18 by Shur1cIT
совершено верно в справочнике есть код "00766     " и код "007661    " ищу по коду "00766"
#19 by f_vadim
"... и делать СокрЛП у кода не хочу..."
#20 by Shur1cIT
куча других обменов привязано не только 1с
#21 by marty0701
Извращенное решение, запросом 1 раз получи ТЗ вида Ссылка:СокрЛП(КОД), в загрузке своей ищи по коду в ТЗ. Блин, ТС, у тебя слишком длинная полоска для таких вопросов.
#22 by Карупян
У кодов фиксированная длинна, там пробелы НЕ уберешь
#23 by Ranger_83
А как же поболтать?
#24 by Карупян
нужно пробелы добавлять до длины кода
#25 by Ranger_83
Сделай перенумерацию кодов до полной длины и найди источник коротких кодов.А лучше в обратном порядке
#26 by marty0701
С какой стороны предлагаешь добавлять?
#27 by f_vadim
если количество пробелов величина случайная, то можно вот так. метод тупой, сразу говорю. Код ПОДОБНО "%[ ]" + &Код ИЛИ если объёмы небольшие, то может и ничего.
#28 by marty0701
Смотря чем;)
#29 by Shur1cIT
мнение других хотел спросить, зачем колхозить если до меня уже кто то с этим сталкивлся, Да можно циклом по спраочнику бежать и сравнивать через сокрЛП ,запросом выгрузить весь справочник в ТЗ поправить в нем код и осуществлять поиск уже по нему, возможно и третий вариант есть ......
#30 by marty0701
Ищещь все совпадения, ненайденное выводишь в ТЗ расхождений, оператор настраивает сопоставления. Делаешь РС сопоставлений. Еще интереснее вариант.
#31 by marty0701
Вопросы к : 1) Периодичность загрузки? 2) Объем?
#32 by Shur1cIT
переодичность раз в час, объем около 1000 элементов
#33 by marty0701
Вообще-то КОД - строка, и может быть " 1 ", "1  ", "  1". Что будем делать?
#34 by f_vadim
моё условие отработает корректно
#35 by f_vadim
ошибки будут только если пробел есть в середине кода
#36 by marty0701
Это 3 разных элемента.
#37 by f_vadim
код то на вход подаётся, ему-то можно сокрлп сделать
#38 by f_vadim
по условию пробелы в кодах справочника, а не в строке поиска
#39 by marty0701
Это 3 кода справочника РАЗНЫХ элементов.
#40 by f_vadim
ааа, понял. собсна а существует в природе код, который выберет из этого списка нужную единицу? тут только порядок в базе наводить.
#41 by Shur1cIT
по поводу порядка согласен, но очень много чего на этих неправельных кодах подвязано...
#42 by marty0701
Сделай РС Соответсвий для себя уже и пиши любые выгрузки/загрузки.
#43 by marty0701
Кстати, у тебя есть коды, как в ? Если есть, как надумал обходить такую ситуацию?
#44 by Cyberhawk
"в справочнике есть код "00766     " и код "007661    " ищу по коду "00766"" Не понял, чем ПОДОБНО в запросе не устраивает
#45 by Zhuravlik
Можно код по которому ищешь добивать пробелами до необходимой длины (Метаданные.Справочники.МойСп.ДлинаКода).
#46 by Zhuravlik
+1
#47 by MUXACb
Опередил :(
#48 by Shur1cIT
на самом деле ещё одну проблему нашел в справочнике есть код "0766     " а поиск по 00766 короче в базе полный бардак....
#49 by marty0701
А подумать? В ОДНОМ справочнике есть ТРИ элемента с кодами " 1 ", "1  ", "  1", чем подобно будет заниматься в этом случае?
#50 by marty0701
С какой стороны добивать пробелы?
#51 by aka AMIGO
Существующая нумерация тебе очень нужна? Может перенумеровать, тогда спокойно можешь искать..
#52 by Cyberhawk
В этом случае задача в имеющихся условиях не решается на уровне программирования, ибо неясно, какое поведение в нее закладывать (ибо человеку неясно, какой элемент-таки выбрать)
#53 by Fish
Имхо, без предварительного разгребания бардака и искоренения его появления в дальнейшем, красивого и простого решения не найти.
#54 by marty0701
О чем и речь, какой тут алгоритм-то? Тут оператор + алгоритм)
#55 by Fish
Есть более простое решение: оставить коды такими, как есть, а для поиска завести другой реквизит, и исключить в нём возможность подобного бардака.
#56 by marty0701
человеку, кстати ясно, как раз таки, там еще наименование есть.
#57 by marty0701
В исходной базе тоже, оттуда откуда приходят Коды? Тогда надо их синхронизировать в две стороны, периодически.
#58 by Fish
Ботинок  1, Ботинок 1, Ботинок1 - какое выберешь? :)
#59 by aka AMIGO
Мне не нравится :) Лучше таки перенумеровать и запретить менять коды. Если коды - 1с-овские, а не сторонние (поставщика) - нечего в них лазить..
#60 by marty0701
Ну да, я не прав, если настолько всё запущено, то моя логика не пройдет, однако, если проблема только с кодами, то моя логика вполне рабочая.
#61 by Aleksey
А точно пробелы, а не код числом и отображается с пробелами?
#62 by Zhuravlik
С конца. Но учитывая видимо неактуально, по ходу перенумерация нужна. Или добавить поисковый реквизит - только символы из кода.
#63 by marty0701
Да и тут _опереатор_ исследуя остатки, движения, сможет сделать верный выбор.
#64 by marty0701
У него 2 кода идентичных уже нашлось.см.
#65 by Fish
Пример: в одну базу сливаются данные из двух других. И получишь задвоение кодов (если нельзя префиксы использовать).
#66 by marty0701
+, кароче ТС в *опе, как обычно)
#67 by Cyberhawk
Все равно не понял, чем ПОДОБНО не устраивает - никто вроде не сказал, что результатом поиска должен быть один элемент справочника, а не два-три
#68 by Cyberhawk
Раз есть дубли по "значащим" цифрам (00766, 0766, 766), то ПОДОБНО в запросе с этим легко справится
#69 by marty0701
Так, это то, что он нашел, вот есть у тебя коды "  1", "1  ", " 1 ", догадаешься, что будет в случае использования ПОДОБНО?
#70 by marty0701
Да и (00766, 0766, 766), так так так, в файле импорта у ТС есть код 766, что же будет?
#71 by marty0701
+Или 000000766, что же делать ТС в этом случае?
#72 by Cyberhawk
марти0701, см.
#73 by Карупян
Если делать красиво, то дополнять коды нулями спереди
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С