В УФ все не работает нормально, как в ОФ.

Мне понадобился в обработке для БП3.0 поиск контрагенту по реквизиту ИНН в справочнике Контрагенты.
Пробовал двумя способами(ниже), в обоих случаях контрагент не находится, хотя он есть.
ИНН в процедуру передается нормально, но выводится странно,
с разрядкой(разбивкой на группы), а не слитно -> 1 234 567 890
Может, нет поиска из-за этой разрядки?

```1c
    &НаСервере
    Процедура Создать_счет(ИНН, Сумма);

    Сообщить("Вход в процедуру счета "+ИНН);
    Контрагент=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ИНН);
    Если Контрагент=Справочники.Контрагенты.ПустаяСсылка() Тогда
    Сообщить("Контрагент не найден");
    КонецЕсли;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | Контрагенты.ИНН КАК ИНН,
    | Контрагенты.Ссылка КАК Ссылка
    |ИЗ
    | Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    | Контрагенты.ИНН = &ИНН";

    Запрос.УстановитьПараметр("ИНН", ИНН);

    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
    Сообщить("Запрос не нашел контрагента");
    КонецЕсли;
    ...
    Счет.Записать(РежимЗаписиДокумента.Запись);
    Сообщить("Создан счет №"+Счет.Номер);
    КонецПроцедуры
```

Еще счет без контрагента "создается" почему-то и номер ему следующий присвается, но в журнале он не показывается.(???)
---
ЧРГ = ' '
Нужно не разделитель групп использовать, а убрать группировку числа
ЧГ=0
---
Еще счет без контрагента "создается" почему-то
Создается он потому что в приведенном тексте процедуры нет прерывания алгоритма, если контрагент не найден.
---
Создается он потому что в приведенном тексте процедуры нет прерывания, если контрагент не найден.

По здравому смыслу, такой счет не должен записываться, должна выдаваться ошибка, т.к. контрагент в счете обязателен. А он куда-то записывается и номера счетов где-то запоминаются.Глюк системы?
---
Так напишите проверку.

```1c
    Если Не ЗначениеЗаполнено(Контрагент) Тогда
    Возврат;
    КонецЕсли;
```
---
Так напишите проверку.

Меня не проверка интересует, а почему не ищется и почему создается счет без контрагента.
Что надо писать, чтобы контрагент искался?
---
Вам ответили уже. Чтобы искался, надо передать строку, состоящую из 10 или 12 цифр, без всяких других.
---
надо передать строку, состоящую из 10 или 12 цифр

Вы читали, что я уже пробовал передавать строку через преобразование в нее в виде
Формат(ИНН,"ЧРГ=''") или Строка(ИНН)
Так же не ищется. Причина в другом.
---
Вы читали, что я уже пробовал передавать строку через преобразование в нее в виде
Формат(ИНН,"ЧРГ=''") или Строка(ИНН)

Воспользуйтесь отладчиком и посмотрите что дает "Формат(ИНН,"ЧРГ=''") или Строка(ИНН)". Посмотрите, что реально передается.
Если там будет строка из 10 символов, то проблема в другом. Если же нет, то в этом.
---
В УФ все не работает нормально, как в ОФ.Это потому что руки кривые, УФ здесь совершенно ни причем.
---
что руки кривые
На руки просто ругаться, а вы знаете, почему контрагент не ищется?
Конфигурация типовая, в справочнике реквизит ИНН правда указан как строка длины 50 почему-то.
Неужели к стандартному ИНН надо добавить 40 пробелов, чтобы искался?
---
Неужели к стандартному ИНН надо добавить 40 пробелов, чтобы искался?Понятно, значит действительно правда? Месье не знает про функцию СоркЛП()? Зато вывод что на УФ все работает неправильно сделал?
---
так надо ИНН в виде строки передавать?
а вы число передаете?
---
так надо ИНН в виде строки передавать?

Я пробовал писать и
Контрагент=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Строка(ИНН));

или
Контрагент=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", Формат(ИНН,"ЧРГ=''"));

Т.е. передавал строкой.

Результат тот же. (ЧРГ = ' ' ) между одинарными кавычками нет пробела, поэтому выглядит как двойная кавычка.
---
ЧРГ = ' '
Нужно не разделитель групп использовать, а убрать группировку числа
ЧГ=0
---
ЧГ=0

Спасибо, ИНН нормально-слитно вывелся и контрагент нашелся.