Имя: Пароль:
1C
1С v8
поможите с запросом
,
0 fleant
 
06.04.13
21:03
Помогите!
Можно ли сделать запрос вида - список контрагентов и последний документ продажи этого контрагента (если была хоть одна).
Что-то собственным мозгом у меня не получается.
1 DirecTwiX
 
06.04.13
21:05
Группируй по контрагенту, используя МАКСИМУМ(ДокументПродажи.Дата), а потом соединяй с документами продажи по дате
2 Armando
 
06.04.13
21:05
Вы там контрагентов продаете?
3 fleant
 
06.04.13
21:07
(1) вот, идея.
4 Wobland
 
06.04.13
21:09
Максимум(Документ) что даст?
5 fleant
 
06.04.13
21:17
(4) попробовал. отдает последний введенный по этому контрагенту документ.
6 fleant
 
06.04.13
21:19
(5) получился запрос вида:
ВЫБРАТЬ
   Контрагенты.Наименование,
   МАКСИМУМ(Продажи.Регистратор) КАК Регистратор
ИЗ
   РегистрНакопления.Продажи КАК Продажи
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
       ПО Продажи.Контрагент = Контрагенты.Ссылка

СГРУППИРОВАТЬ ПО
   Контрагенты.Наименование
7 EvgeniuXP
 
06.04.13
21:31
(6) это ты по ссылке последнюю взял, а вобьют наоборот и получишь кривой результат.
8 EvgeniuXP
 
06.04.13
21:32
т.е. первый документ ссылка = 1, второй ввел - ссылка = 2, а ввел задним числом ссылка = 3 - он тебе его и вернет - но он же задним числом введен :)
9 fleant
 
06.04.13
21:39
(8) да, точно. Тогда счас повожусь со сцепкой по датам :(
10 fleant
 
06.04.13
21:41
вот такая теперь дич:
ВЫБРАТЬ
   ЗАПРОС.Контрагент,
   ЗАПРОС.РегистраторДата,
   Продажи.Регистратор
ИЗ
   (ВЫБРАТЬ
       ЕСТЬNULL(Контрагенты.Ссылка, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) КАК Контрагент,
       МАКСИМУМ(Продажи.Регистратор.Дата) КАК РегистраторДата
   ИЗ
       РегистрНакопления.Продажи КАК Продажи
           ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
           ПО Продажи.Контрагент = Контрагенты.Ссылка
   
   СГРУППИРОВАТЬ ПО
       Контрагенты.Ссылка) КАК ЗАПРОС
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           Продажи.Контрагент КАК Контрагент,
           Продажи.Регистратор КАК Регистратор
       ИЗ
           РегистрНакопления.Продажи КАК Продажи
       
       СГРУППИРОВАТЬ ПО
           Продажи.Контрагент,
           Продажи.Регистратор) КАК Продажи
       ПО ЗАПРОС.Контрагент = Продажи.Контрагент
           И ЗАПРОС.РегистраторДата = Продажи.Регистратор.Дата

покритикуйте пожалуйста :)
11 Зойч
 
06.04.13
21:45
если в 1 дате будет 2 документа, то ...?
12 Зойч
 
06.04.13
21:50
13 fleant
 
06.04.13
21:52
(11) только если одного контрагента. как-то маловероятно.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.