Не идет поиск по реквизиту в справочнике

1. pavel06 2 11.11.22 17:14 Сейчас в теме
В УФ все не работает нормально, как в ОФ.

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

&НаСервере
Процедура Создать_счет(ИНН,  Сумма);
 
  Сообщить("Вход в процедуру счета "+ИНН);
 Контрагент=Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ИНН);
 Если Контрагент=Справочники.Контрагенты.ПустаяСсылка() Тогда
     Сообщить("Контрагент не найден");
 КонецЕсли;	 
  		
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	Контрагенты.ИНН КАК ИНН,
		|	Контрагенты.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Контрагенты КАК Контрагенты
		|ГДЕ
		|	Контрагенты.ИНН = &ИНН";
	
	Запрос.УстановитьПараметр("ИНН", ИНН);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Сообщить("Запрос не нашел контрагента");
	КонецЕсли;
...
Счет.Записать(РежимЗаписиДокумента.Запись);
Сообщить("Создан счет №"+Счет.Номер);
КонецПроцедуры
Показать


Еще счет без контрагента "создается" почему-то и номер ему следующий присвается, но в журнале он не показывается.(???)
По теме из базы знаний
Найденные решения
14. spacecraft 11.11.22 18:05 Сейчас в теме
(4)
ЧРГ = ' '

Нужно не разделитель групп использовать, а убрать группировку числа
ЧГ=0
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sashares 35 11.11.22 17:27 Сейчас в теме
(1)
Еще счет без контрагента "создается" почему-то

Создается он потому что в приведенном тексте процедуры нет прерывания алгоритма, если контрагент не найден.
6. pavel06 2 11.11.22 17:44 Сейчас в теме
(3)
Создается он потому что в приведенном тексте процедуры нет прерывания, если контрагент не найден.


По здравому смыслу, такой счет не должен записываться, должна выдаваться ошибка, т.к. контрагент в счете обязателен. А он куда-то записывается и номера счетов где-то запоминаются.Глюк системы?
7. Sashares 35 11.11.22 17:48 Сейчас в теме
(6)Так напишите проверку.
Если Не ЗначениеЗаполнено(Контрагент) Тогда
Возврат;
КонецЕсли;
9. pavel06 2 11.11.22 17:50 Сейчас в теме
(7)
Так напишите проверку.


Меня не проверка интересует, а почему не ищется и почему создается счет без контрагента.
Что надо писать, чтобы контрагент искался?
11. Sashares 35 11.11.22 17:52 Сейчас в теме
(9)Вам ответили уже. Чтобы искался, надо передать строку, состоящую из 10 или 12 цифр, без всяких других.
12. pavel06 2 11.11.22 18:00 Сейчас в теме
(11)
надо передать строку, состоящую из 10 или 12 цифр


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


Воспользуйтесь отладчиком и посмотрите что дает "Формат(ИНН,"ЧРГ=''") или Строка(ИНН)". Посмотрите, что реально передается.
Если там будет строка из 10 символов, то проблема в другом. Если же нет, то в этом.
5. Prikum 3 11.11.22 17:43 Сейчас в теме
(1)
В УФ все не работает нормально, как в ОФ.
Это потому что руки кривые, УФ здесь совершенно ни причем.
8. pavel06 2 11.11.22 17:49 Сейчас в теме
(5)
что руки кривые

На руки просто ругаться, а вы знаете, почему контрагент не ищется?
Конфигурация типовая, в справочнике реквизит ИНН правда указан как строка длины 50 почему-то.
Неужели к стандартному ИНН надо добавить 40 пробелов, чтобы искался?
10. Prikum 3 11.11.22 17:51 Сейчас в теме
(8)
Неужели к стандартному ИНН надо добавить 40 пробелов, чтобы искался?
Понятно, значит действительно правда? Месье не знает про функцию СоркЛП()? Зато вывод что на УФ все работает неправильно сделал?
2. soft_wind 11.11.22 17:16 Сейчас в теме
так надо ИНН в виде строки передавать?
а вы число передаете?
Prikum; Sashares; +2 Ответить
4. pavel06 2 11.11.22 17:40 Сейчас в теме
(2)
так надо ИНН в виде строки передавать?


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

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

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

Результат тот же. (ЧРГ = ' ' ) между одинарными кавычками нет пробела, поэтому выглядит как двойная кавычка.
14. spacecraft 11.11.22 18:05 Сейчас в теме
(4)
ЧРГ = ' '

Нужно не разделитель групп использовать, а убрать группировку числа
ЧГ=0
15. pavel06 2 11.11.22 18:11 Сейчас в теме
(14)
ЧГ=0


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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот