Поиск контрагента с частичным совпадением ИНН. #515710


#0 by Adolf88
Есть справочник "ЮрЛица", у некоторых элементов которого в реквизите "ИНН" написан только ИНН, а у некоторых ИННКПП. Задача - сделать так, чтобы при добавлении нового ЮрЛица велась проверка на наличие в базе юрика с таким же ИНН. Возможна ситуация, что в базе есть юрик с парой ИНН/КПП, допустим стр1=50502312451505001001, мы пытаемся добавить юрика с ИНН стр2=50502312451. т.к. первая строка не равняется второй то НайтиПоРеквизиту возвратит болт, хотя должна бы она его спалить. Встаёт адова проблема, как сделать проверку на вхождение стр2 в стр1. Перепробовал строковые функции Найти, сравнивал обрезанные с помощью Лев строки и ни хрена не получается. Насколько я понял, в качестве параметров этим функциям нельзя передавать переменные значения, только явные строки, или числа. Ладно, подумал я, сделаю запросом, там же есть такая отличная вещь, как "В". Текст запроса: КонецЦикла; Притом если указал в условии запроса |Условие (Строка(50501) в ИннЮрлица);, то запрос действительно выдаёт юриков, в ИНН которых содержися "50501". Боги одинэса, призываю вас на помощь, ибо я уже в отчаянии.
#1 by ДенисЧ
|Условие (СокрЛП(ИНН) в ИннЮрлица);
#2 by Lexxxxx
Это как понимать?
#3 by Lexxxxx
Особенно второе предложение?
#4 by Vladal
Запрос/перебор по справочнику, вігрузка в ТЗ и поиск подстроки. Или сразу при переборе поиск подстроки: СтрНайти
#5 by filh
А если юрлицо одно, а вот КПП разные, т.к. в разных регионах ведется торговля?
#6 by palpetrovich
1cpp юзать надо
#7 by Adolf88
ДенисЧ: Спасибо ОГРОМАДНЕЙШЕЕ, добрый человек. Сделал, как ты сказал - заработало. Только вот непонятно мне, откуда в этой строке могли взяться пробелы, если я её ввожу в поле на форме без пробелов и прочей ерунды. Получается, одинэс заполняет остаток строки пробелами? Lexxx: Найти(Стр1,Стр2) Лев(Стр1,СтрДлина(Стр2))=Стр1 тогда сообщить("нашли"). Если написать Найти(Стр1,"50501") или же   Лев(Стр1,СтрДлина("50501")), т.е. передать строку или число напрямую, а не переменную, то всё норм работает. filh: Такого пока нет, т.к. контора работает исключительно в районе и окрестностях. Если вдруг будет, будем заводить 2 юрлица.
#8 by Vladal
либо подчиненній справочник юрлица, либо второй контрагент
#9 by Vladal
>> Только вот непонятно мне, откуда в этой строке могли взяться пробелы, если я её ввожу в поле на форме без пробелов и прочей ерунды. Если длина поля больше чем введенная строка, система заполняет строку пробелами до длины поля
#10 by Lexxxxx
Найти нормально работает и с переменными, и с указанными значениями и с их комбинациями!
#11 by МихаилМ
тк инн идет первым то легко дустим ищем на совпадение инн 50502312451 тогда условие в запросе должно иметь вид (инн >=  50502312451 ) b (инн <  50502312452) те код последнего символа должен быть больше не 1 и соответственно в случае 0 или 9 (не помню у какой цифры макс код ) будет не число.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям