Имя: Пароль:
1C
1С v8
как построить такой вот запрос
,
0 olo_lo1
 
30.10.11
22:15
не могу вкурить как построить такой вот запрос
нужно построить запрос на вхождения клиентов в выбранный список Проектов(где клиент был участником), т.е. как бы отчет по лояльности клиента

Заранее неизвестно сколько проектов выберет пользователь в список

запрос В списке в данном случае не подойдет, так как нужно вытащить данные где клиент участвовал во всех выбранных проектах.

есть документ Событие, у него есть реквизит Клиент, Проект
1 Конфигуратор1с
 
30.10.11
22:35
что есть проект ???
2 olo_lo1
 
30.10.11
22:39
типовой реквизит справочник.проекты
3 Конфигуратор1с
 
30.10.11
22:40
и как контрагенты связаны с проектами?
4 olo_lo1
 
30.10.11
22:40
через документ Событие
5 Михей
 
30.10.11
22:41
ВЫБРАТЬ
Клиент, Проект
Из Документ.Событие
СГРУППИРОВАТЬ ПО
Клиент, Проект
6 Конфигуратор1с
 
30.10.11
22:42
+ где проект в списке проектов
7 SoftIce
 
30.10.11
22:44
а что мешает просто выбрать
ВЫБРАТЬ
 ДокСобытие.Клиент
ИЗ
 Документ.Событие КАК ДокСобытие
ГДЕ
 Документ.Событие.Проект В (&СписокПроектов)
 И (НЕ Документ.Событие.ПометкаУдаления)
8 Diabolicum 1C
 
30.10.11
22:46
(5), (6) не пройдет. Из условия задачи нужно узнать во всех ли событиях участвовал клиент. Но если он не участвовал, то документа Событие не будет и соответственно все клиенты всегда будут удовлетворять условию.
Если я правильно понял автора
9 olo_lo1
 
30.10.11
22:47
(7) если было бы так просто..
здесь фишка в том что бы выявить что клиент был на всех выбранных проектах.. да еще хочется на СКД это дело написать
10 olo_lo1
 
30.10.11
22:47
(8) да, все верно
11 Diabolicum 1C
 
30.10.11
22:48
Тут только полное соединение списка всех прошедших событий со списком документов событие, отобранных по клиенту
12 olo_lo1
 
30.10.11
22:49
(11) согласен с вами, а как это динамически в СКД в момент нажатии кнопки сформировать сделать ?
13 Diabolicum 1C
 
30.10.11
22:59
Выбрать
  СпрКлиент.Ссылка как клиент,
  СпрСобытия.ссылка как событие
Поместить СобытияКлиентов
Из
   Справочник.контрагент как СпрКлиент,
   Справочник.события как СпрСобытия
Где .......
;
Выбрать
    СК.Клиент,
    СК.Событие,
    Выбор когда док.клиент есть null тогда ложь иначе истина конец как участие
Из
   СобытияКлиентов как СК
Левое соединение документ.Событие как док
По док.событие = СК.событие и Док.клиент = СК.клиент

Вот примерно как то так. Запрос вернет список акций каждого клиента с признаком участия в них. Ну а дальше можно сгруппировать по клиенту и агрегировать поле участие по минимуму. Это в том случае, если нужно определить только участие клиента.

Идея ясна?)))
14 olo_lo1
 
30.10.11
23:12
запрос построил по-другому, все получилось, но я уперся как всегда в плохие знания СКД
каким образом в момент нажатия кнопки сформировтаь в компоновщик передать параметр ?
15 Diabolicum 1C
 
30.10.11
23:23
(14) а зачем тебе строить запрос динамически? Тот подход, который я тебе предлагаю не требует динамического построения. Он будет работать всегда. Нужно только расставить параметры и фильтры.
С СКД я тебе не смогу помочь. Динамической работой с ней занимаюсь очень редко с книгой под рукой. А сейчас "звиняйте, бананьев немае" :)