Имя: Пароль:
1C
1С v8
Даты первых/последних документов в запросе
0 SergTheGreat
 
13.11.13
10:41
Добрый день!
Задача вроде бы тривиальная: получить в БП отчет из 3х столбцов:
- контрагент;
- текущее сальдо его взаиморасчетов;
- дата последнего документа, повлиявшего на взаиморасчеты.

Сделал в виде 2х запросов: сальдо из Остатки, а даты из ДвиженияССубконто; а потом программный обход одной выборки внутри др. через Выборка2.НайтиСледующий(Выборка1.Контрагент, "Контрагент").
Подскажите пож-та можно ли сделать тоже самое только через язык запросов? Во-первых, мой вариант явно не оптимален по производительности, а, во-вторых, хотелось бы отказаться от доп. кода (например, только СКД).

P.S. Если у кого есть вариант получения подобного из регистров накопления, также поделитесь пож-та.
1 Поросенок Петр
 
13.11.13
10:44
Обороты с детализацией "период" группируешь по контру, в "функцию" макс по периоду и фсё. А движенияССубконто это люто тормозная таблица, не нужна она здесь.
2 Нуф-Нуф
 
13.11.13
10:45
получаешь таблицу ТаблицаДокументов:
Контрагент    ДокументРегистратор Дата

Из нее получаешь таблицу ТаблицаМаксимальныхДат;

Контрагент Максимум(Дата)

К ТаблицеМаксимальныхДат присоединяешь ТаблицуДокументов по Контрагенту и Дате:

Контрагент Максимум(ДокументРегистратор)
3 Поросенок Петр
 
13.11.13
10:47
(2) Ему нужна как раз "дата последнего документа", так что с соединением можно не париться.
4 SergTheGreat
 
13.11.13
16:18
(1) Супер, спасибо за помощь! Все получилось легко и просто:

ВЫБРАТЬ
    БухОстатки.Субконто1 КАК Контрагент,
    БухОстатки.СуммаРазвернутыйОстатокКт КАК СуммаДолга,
    МАКСИМУМ(БухОбороты.Период) КАК ДатаДолга
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счета), , Организация = &Фирма) КАК БухОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ
        РегистрБухгалтерии.Хозрасчетный.Обороты(, &Период, День, Счет В ИЕРАРХИИ (&Счета), , Организация = &Фирма, , ) КАК БухОбороты
        ПО БухОстатки.Субконто1 = БухОбороты.Субконто1
СГРУППИРОВАТЬ ПО
    БухОстатки.Субконто1,
    БухОстатки.СуммаРазвернутыйОстатокКт