Добрый день уважаемые!
Есть справочник контрагенты, открываем любой элемент, в контрагенте видим закладку контакты, открываем её, в ней в самом низу есть табличка Контактные лица, как показано тут
Что хочется:
Имеется обработка "Универсальный подбор и обработка объектов", с помощью неё по какому то критерию отбирается список контрагентов, так вот дальше, с помощью произвольного алгоритма необходимо проверить есть ли у контрагента хоть одно контактное лицо и, если есть ОДИН, то сделать его основным. Если их больше одного и не один из них не является основным, то сделать основным первый в списке.
Для чего: директору нужна выборка контрагентов, у которых НЕТ контактных лиц. Типовые отчеты выдают только Основное контактное лицо, ну а менеджеры как то забывают делать их основными при вносе. В итоге контрагентов много и шерстить всю эту кучу, выставляя контактные лица основными - умом тронешься.
P.S. Возможно задачу можно решить проще, если да, то просьба подсказать как. :)
Спасибо.
Есть справочник контрагенты, открываем любой элемент, в контрагенте видим закладку контакты, открываем её, в ней в самом низу есть табличка Контактные лица, как показано тут
Что хочется:
Имеется обработка "Универсальный подбор и обработка объектов", с помощью неё по какому то критерию отбирается список контрагентов, так вот дальше, с помощью произвольного алгоритма необходимо проверить есть ли у контрагента хоть одно контактное лицо и, если есть ОДИН, то сделать его основным. Если их больше одного и не один из них не является основным, то сделать основным первый в списке.
Для чего: директору нужна выборка контрагентов, у которых НЕТ контактных лиц. Типовые отчеты выдают только Основное контактное лицо, ну а менеджеры как то забывают делать их основными при вносе. В итоге контрагентов много и шерстить всю эту кучу, выставляя контактные лица основными - умом тронешься.
P.S. Возможно задачу можно решить проще, если да, то просьба подсказать как. :)
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попытайтесь сами написать. один запрос. Один вложенный, к регистру контактные лица. Группируем по контрагенту. Во второе выводим количество контактных лиц. Потом вяжем к списку контрагентов по контрагенту и выбираем, где количество 0. Простой запрос. Просто конфы под рукой нет
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| КонтактныеЛицаКонтрагентов.Владелец КАК Контрагент,
| КонтактныеЛицаКонтрагентов.Ссылка КАК КонтактноеЛицо,
| КонтактныеЛицаКонтрагентов.Наименование КАК Наименование
|ИЗ
| Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
|ГДЕ
| КонтактныеЛицаКонтрагентов.Владелец.ОсновноеКонтактноеЛицо = ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаКонтрагентов.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Наименование
|ИТОГИ ПО
| Контрагент";
ВыборкаКА = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКА.Следующий() Цикл
ВыборкаКЛ = ВыборкаКА.Выбрать();
Если ВыборкаКЛ.Следующий() Тогда
Контрагент = ВыборкаКА.Контрагент.ПолучитьОбъект();
Контрагент.ОсновноеКонтактноеЛицо = ВыборкаКЛ.КонтактноеЛицо;
Контрагент.Записать();
КонецЕсли;
КонецЦикла;
Запрос.Текст = "ВЫБРАТЬ
| КонтактныеЛицаКонтрагентов.Владелец КАК Контрагент,
| КонтактныеЛицаКонтрагентов.Ссылка КАК КонтактноеЛицо,
| КонтактныеЛицаКонтрагентов.Наименование КАК Наименование
|ИЗ
| Справочник.КонтактныеЛицаКонтрагентов КАК КонтактныеЛицаКонтрагентов
|ГДЕ
| КонтактныеЛицаКонтрагентов.Владелец.ОсновноеКонтактноеЛицо = ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаКонтрагентов.ПустаяСсылка)
|
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Наименование
|ИТОГИ ПО
| Контрагент";
ВыборкаКА = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаКА.Следующий() Цикл
ВыборкаКЛ = ВыборкаКА.Выбрать();
Если ВыборкаКЛ.Следующий() Тогда
Контрагент = ВыборкаКА.Контрагент.ПолучитьОбъект();
Контрагент.ОсновноеКонтактноеЛицо = ВыборкаКЛ.КонтактноеЛицо;
Контрагент.Записать();
КонецЕсли;
КонецЦикла;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот