Имя: Пароль:
1C
 
Установка ОСНОВНОГО контактного лица у контрагента
,
0 fedotov_andrey
 
09.01.18
21:58
Помогите пожалуйста с запросом.
Нужно с помощью универсального подбора и обработки объектов установить контрагентам ОСНОВНОЕ контактное лицо. Если контактное лицо у контрагента одно, то его сделать основным, если их два, то первое в списке. Если у контрагента уже есть ОСНОВНОЕ контактное лицо, то его не трогаем. С запросом вроде разобрался, получилось:


Запрос = Новый Запрос(
"ВЫБРАТЬ
|    КонтактныеЛицаПартнеров.Наименование КАК Наименование,
|    КонтактныеЛицаПартнеров.Ссылка КАК Ссылка,
|    КонтактныеЛицаПартнеров.Владелец КАК Владелец
|ИЗ
|    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
|ГДЕ
|    КонтактныеЛицаПартнеров.Владелец.CRM_ОсновноеКонтактноеЛицо = ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаПартнеров.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
|    КонтактныеЛицаПартнеров.Владелец,
|    КонтактныеЛицаПартнеров.Наименование,
|    КонтактныеЛицаПартнеров.Ссылка
|ИТОГИ ПО
|    Владелец");


а как обработать каждую запись - не понимаю.... помогите пожалуйста
1 mehfk
 
09.01.18
22:05
Запрос = Новый Запрос(
"ВЫБРАТЬ
|    MAX(КонтактныеЛицаПартнеров.Ссылка) КАК КонтактноеЛицоПартнера,
|    КонтактныеЛицаПартнеров.Владелец КАК Партнер
|ИЗ
|    Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
|ГДЕ
|    КонтактныеЛицаПартнеров.Владелец.CRMОсновноеКонтактноеЛицо = ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаПартнеров.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
|    КонтактныеЛицаПартнеров.Владелец
|");

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Спр = Выборка.Партнер.ПолучитьОбъект();
Спр.CRM
ОсновноеКонтактноеЛицо = Выборка.КонтактноеЛицоПартнера;
Спр.Записать();
КонецЦикла;


С тебя 1000 рублей в кассу Мисты.
2 fedotov_andrey
 
09.01.18
22:23
(1) )) огромное спасибо, но отрабатывает, если только у контрагента одно контактное лицо, там где два - основное не устанавливается.
3 fedotov_andrey
 
09.01.18
23:12
странно, а теперь выборка вообще не происходит. Закинул запрос в консоль, а там пусто. Ничего не понимаю =(
4 AlvlSpb
 
09.01.18
23:38
(0) Ваш запрос, только ВЫБРАТЬ ПЕРВЫЕ 1 Обработка запроса как в (1)
5 AlvlSpb
 
09.01.18
23:42
(4) нет у вас же для всех партнеров а не для конкретного. Ошибся
6 Borteg
 
09.01.18
23:44
(3) ну так обработка с пустыми значениями уже прошла, теперь там не пустые значения
7 fedotov_andrey
 
09.01.18
23:55
(6) а чего теперь сделать то?
8 mehfk
 
10.01.18
04:25
(7) Пригласите специалиста.
9 fedotov_andrey
 
10.01.18
09:16
(8) специалист конечно классно, но пытаюсь сам разобраться.
Я же не прошу с нуля все сделать за меня. Написал запрос и через консоль вижу, а точнее видел эти записи, но не умею их обработать. А теперь и не вижу и так и не научился обрабатывать)))
10 Lexey_
 
10.01.18
09:17
(9) тебе ответили в (6) почему не видишь
11 mehfk
 
10.01.18
09:19
(9) >> Я же не прошу с нуля все сделать за меня.

Ты именно это и просишь.
12 fedotov_andrey
 
10.01.18
09:23
(10) почему пустые?
13 Lexey_
 
10.01.18
09:24
(12) почему не видишь
14 fedotov_andrey
 
10.01.18
09:39
(13) потому, чтА КонтактныеЛицаПартнеров.Владелец.CRM_ОсновноеКонтактноеЛицо <> ЗНАЧЕНИЕ(Справочник.КонтактныеЛицаПартнеров.ПустаяСсылка)
15 Lexey_
 
10.01.18
09:41
(14) вот ты и ответил на свой вопрос
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший