Контрагенты -> Контакты -> Контактные лица

1. Serg0FFan 18.10.13 15:45 Сейчас в теме
Добрый день уважаемые!
Есть справочник контрагенты, открываем любой элемент, в контрагенте видим закладку контакты, открываем её, в ней в самом низу есть табличка Контактные лица, как показано тут

Что хочется:
Имеется обработка "Универсальный подбор и обработка объектов", с помощью неё по какому то критерию отбирается список контрагентов, так вот дальше, с помощью произвольного алгоритма необходимо проверить есть ли у контрагента хоть одно контактное лицо и, если есть ОДИН, то сделать его основным. Если их больше одного и не один из них не является основным, то сделать основным первый в списке.

Для чего: директору нужна выборка контрагентов, у которых НЕТ контактных лиц. Типовые отчеты выдают только Основное контактное лицо, ну а менеджеры как то забывают делать их основными при вносе. В итоге контрагентов много и шерстить всю эту кучу, выставляя контактные лица основными - умом тронешься.
P.S. Возможно задачу можно решить проще, если да, то просьба подсказать как. :)
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Serg0FFan 18.10.13 15:46 Сейчас в теме
Забыл сказать самое главное: собственно требуется алгоритм, который нужно запихнуть в обработку, чтобы она произвела указанные действия :)
3. forev8 18.10.13 15:48 Сейчас в теме
Может легче написать такую обработку?
4. Serg0FFan 18.10.13 15:50 Сейчас в теме
(3) forev8, ну может быть и легче, только я не силён в языке :)
5. Скиминок 18.10.13 16:29 Сейчас в теме
Попытайтесь сами написать. один запрос. Один вложенный, к регистру контактные лица. Группируем по контрагенту. Во второе выводим количество контактных лиц. Потом вяжем к списку контрагентов по контрагенту и выбираем, где количество 0. Простой запрос. Просто конфы под рукой нет
6. ipoloskov 163 18.10.13 16:42 Сейчас в теме
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| КонтактныеЛицаКонтрагентов.Владелец КАК Контрагент,
| КонтактныеЛицаКонтрагентов.Ссылка КАК КонтактноеЛицо,
| КонтактныеЛицаКонтрагентов.Наименование КАК Наименование
|ИЗ
| Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
|ГДЕ
| КонтактныеЛицаКонтрагентов.Владелец.ОсновноеКонтактноеЛицо = ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаКонтрагентов.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Наименование
|ИТОГИ ПО
| Контрагент";
ВыборкаКА = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКА.Следующий() Цикл
ВыборкаКЛ = ВыборкаКА.Выбрать();
Если ВыборкаКЛ.Следующий() Тогда
Контрагент = ВыборкаКА.Контрагент.ПолучитьОбъект();
Контрагент.ОсновноеКонтактноеЛицо = ВыборкаКЛ.КонтактноеЛицо;
Контрагент.Записать();
КонецЕсли;
КонецЦикла;
Serg0FFan; amiralnar; +2 Ответить
7. Serg0FFan 21.10.13 11:02 Сейчас в теме
(6) ipoloskov, спасибо огромное! Сделал все :)
8. olga10121982 1 20.10.22 09:10 Сейчас в теме
(7) Доброе утро! Подскажите пжл как решили данный вопрос?
Оставьте свое сообщение

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