Имя: Пароль:
1C
1С v8
Полные остатки по периоду во вложенном запросе. ЧЯДНТ?
,
0 simol
 
13.10.11
10:44
Вот статья Книга знаний: v8: Полные остатки по периоду во вложенном запросе;

Первый запрос у меня не выводит на каждый день конечный остаток. Что я делаю не так?


ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, День, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ИТОГИ
   СУММА(СуммаУпрКонечныйОстаток)
ПО
   ОБЩИЕ,
   Период ПЕРИОДАМИ(ДЕНЬ, &Дата1, &Дата2),
   Контрагент,
   ДоговорКонтрагента
1 БибиГон
 
13.10.11
10:48
а если условие по контрагенту убрать?
И что в Дата2
2 simol
 
13.10.11
10:54
Да, без отбора вывело, но мне по всем не нужно, нужно по конкретному контрагенту. А с отбором что на весь запрос, что в параметрах виртуальной таблицы не выводит каждый день
3 simol
 
13.10.11
10:55
А вот есть день ,в который ни по кому взаиморасчеты не менялись и он не вывелся
4 simol
 
13.10.11
10:57
Дата1 1.08.2010
Дата2 1.09.2010
5 simol
 
13.10.11
10:58
8.2.13.202
6 БибиГон
 
13.10.11
11:01
КонецДня(Дата2) ?
7 simol
 
13.10.11
11:02
(6)не помогло, но дата, описанная в (3) это 7.08.2010
8 ДемонМаксвелла
 
13.10.11
11:15
Я бы с регистром сведений РегламентированныйПроизводственныйКалендарь (если он есть в конфе)
9 ДемонМаксвелла
 
13.10.11
11:15
соединил
10 simol
 
13.10.11
11:20
(8)Если так:

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

То не помогло
11 dimaldinho
 
13.10.11
11:23
Указать ДвиженияИГраницыПериода?
12 simol
 
13.10.11
11:25
(11)

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

не сработало
13 ДемонМаксвелла
 
13.10.11
11:38
ВЫБРАТЬ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период
ПОМЕСТИТЬ Дни
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &Дата1 И &Дата2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток,
   Дни.Период КАК Период
ИЗ
   Дни КАК Дни,
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, День, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
ИТОГИ
   СУММА(СуммаУпрКонечныйОстаток)
ПО
   ОБЩИЕ,
   Контрагент,
   ДоговорКонтрагента,
   Период
14 ДемонМаксвелла
 
13.10.11
11:42
(13) это фигня, щас
15 ДемонМаксвелла
 
13.10.11
12:22
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток
ПОМЕСТИТЬ Данные
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Дата1, &Дата2, День, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК Период
ПОМЕСТИТЬ Дни
ИЗ
   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &Дата1 И &Дата2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Данные.Период КАК ПериодОстатков,
   Данные.Контрагент,
   Данные.ДоговорКонтрагента,
   Дни.Период КАК ПериодКалендарь
ПОМЕСТИТЬ ТаблицаСДублями
ИЗ
   Данные КАК Данные
       ЛЕВОЕ СОЕДИНЕНИЕ Дни КАК Дни
       ПО Данные.Период <= Дни.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТаблицаСДублями.Контрагент,
   ТаблицаСДублями.ДоговорКонтрагента,
   ТаблицаСДублями.ПериодКалендарь,
   МАКСИМУМ(ТаблицаСДублями.ПериодОстатков) КАК ПериодОстатков
ПОМЕСТИТЬ ТаблицаБезДублей
ИЗ
   ТаблицаСДублями КАК ТаблицаСДублями

СГРУППИРОВАТЬ ПО
   ТаблицаСДублями.Контрагент,
   ТаблицаСДублями.ДоговорКонтрагента,
   ТаблицаСДублями.ПериодКалендарь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТаблицаБезДублей.ПериодКалендарь КАК Период,
   ТаблицаБезДублей.Контрагент КАК Контрагент,
   ТаблицаБезДублей.ДоговорКонтрагента КАК ДоговорКонтрагента,
   Данные.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток
ИЗ
   ТаблицаБезДублей КАК ТаблицаБезДублей
       ЛЕВОЕ СОЕДИНЕНИЕ Данные КАК Данные
       ПО ТаблицаБезДублей.Контрагент = Данные.Контрагент
           И ТаблицаБезДублей.ДоговорКонтрагента = Данные.ДоговорКонтрагента
           И ТаблицаБезДублей.ПериодОстатков = Данные.Период
ИТОГИ
   СУММА(СуммаУпрКонечныйОстаток)
ПО
   Контрагент,
   ДоговорКонтрагента,
   Период
16 simol
 
13.10.11
13:12
(15)Да, так работает, спасибо
Независимо от того, куда вы едете — это в гору и против ветра!