Найти тему
Про 1С

В разделе "Продажи", в списке"Клиенты" не можем найти контрагента, ни по ИНН ни по наименованию (1С "Управление торговлей 11.5")

Добрый день!

В этой статье расскажу момент как бороться с ситуацией, когда вроде-бы как справочники перенесли из УТ 10.3 в УТ 11.5, знаем что контрагент есть в базе и в справочнике партнеры и в справочнике контрагенты, а через список "Клиенты", раздела "Продажи", найти не можем контрагента.

Пример контрагент демо базы "1С-СОФТ ООО" (ИНН 7730643014)

Поиск в справочнике "Контрагенты"

Тут, что по ИНН, что по наименованию, контрагент находится без проблем

-2

Но стоит перейти в список "Клиенты"

-3
-4

То здесь ни по ИНН, ни по наименованию, клиент не находится.

Сразу озвучу причину

Отсутствие необходимой записи в регистре сведений "Иерархия партнеров"

Варианты решений подобной задачи:

1. Самое простое, зайти в карточку "проблемного" партнера и закрыть карточку через кнопку "Записать и закрыть"

-5

В момент записи данного контрагента, как раз производится создание той саой записи в регистре сведений "Иерархия партнеров"

-6

2. Если таких моментов много в вашей базе, то, нужна обработка которая отберет всех партнеров у которых нет записей в регистре "Иерархия партнеров" и отрабjтает код по каждому подобному партнеру, создавая тем самым запись в регистре

Этот вариант как программно сделать запись для одного партнера.

&НаСервере
Процедура ЗаполнитьИерархиюПоВыбрКонтрагенту()

Если НашПартнер.Пустая() Тогда Возврат; КонецЕсли;

МассивПартнеров = Новый Массив;
МассивПартнеров.Добавить(НашПартнер);
ПартнерыИКонтрагенты.ВыполнитьЗаписьИерархияПартнеров( МассивПартнеров);

КонецПроцедуры

Этот вариант когда мы отбираем всех подобных партнеров без записи в регистре "Иерархия партнеров" и обрабатываем их.

P.S.: Но с этим вариантом нужно , быть по аккуратнее, т.к. выборка может быть приличной, в одном из моих случаев 65 тыс. позиций :).

&НаСервере
Процедура Заполнить()

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

МассивПартнеров = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);

ПартнерыИКонтрагенты.ВыполнитьЗаписьИерархияПартнеров( МассивПартнеров);

КонецПроцедуры

Кому нужно обработка здесь. Но сразу предупреждаю, что предварительно всё что скачиваете из сети интернет пробуйте на копии базы

3. Сделать обработку которая отберет всех партнеров у которых нет записей в регистре "Иерархия партнеров" и произведёт процедуру записи партнера

На этом у меня всё!