Александр, 95% клиентов имеют ИНН, и они нормально отрабатывают, даже в том случае, если изначально клиент был забит в базу Offline, а потом сделал заказ на сайте.
Но есть 5% клиентов, которые есть в базе 1С и у них пустой ИНН, при заказе на сайте они также не заполняют ИНН, и в итоге в 1С мы получаем кашу.
В запросе ты делаешь поиск по ИНН, не проверив этот параметр на заполненность. Это баг. Поиск по пустому значению даст первого попавшегося контрагента, а не того кто реально сделал заказ. У себя я сделал так.
Код |
---|
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Ссылка Как Контрагент
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|";
Если ПараметрыОбмена.СпособИдентификацииКонтрагентов = "ИНН"
И ЗначениеЗаполнено(ИнформацияОКонтрагенте.ИНН)
И ИнформацияОКонтрагенте.ИНН<>"-"
И ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда //МИКО добавили условие про юрлицо
Запрос.Текст = Запрос.Текст + " Контрагенты.ИНН = &ИНН ";
Иначе
Запрос.Текст = Запрос.Текст + " Контрагенты.Наименование = &Наименование ";
КонецЕсли;
тзнКонтрагента = Запрос.Выполнить().Выгрузить();
Если тзнКонтрагента.Количество() > 0 тогда
Контрагент = тзнКонтрагента[0].Контрагент;
КонецЕсли;
|
СпособИдентификацииКонтрагентов только по наименованию дает дубли, менеджеры и клиент по разному пишут наименование