|
Накопительный итог в запросе | ☑ | ||
---|---|---|---|---|
0
Frantaser
17.05.11
✎
04:50
|
Подскажите плиз как получить накопительный итог при запросе по регистру накопления, например нужно получить из регистра Взаиморасчеты с контрагентами таблицу типа
Документ продажи Сумма Сумма нараст. итогом док1 1000 1000 док2 2000 3000 док3 150 3150... как подключить к основному запросу получающему выборку документов запрос выдающий накопительный итог по этим докам? //Текст сформирован автоматически обработкой Универсальная консоль отчетов 2.7.8 Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентами.ПериодСекунда КАК Период, | ВзаиморасчетыСКонтрагентами.Регистратор КАК Документ, | ВзаиморасчетыСКонтрагентами.СуммаУпрПриход КАК Сумма |ПОМЕСТИТЬ Взаиморасчеты |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, Движения, ) КАК ВзаиморасчетыСКонтрагентами |ГДЕ | ВзаиморасчетыСКонтрагентами.СуммаУпрПриход > 0 |{УПОРЯДОЧИТЬ ПО | Период} |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | Взаиморасчеты.Период, | Взаиморасчеты.Документ, | Взаиморасчеты.Сумма |ИЗ | Взаиморасчеты КАК Взаиморасчеты"; //Параметры запроса Запрос.УстановитьПараметр("КонецПериода",КонецПериода);// Дата Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);// Дата Результат = Запрос.Выполнить(); |
|||
1
Frantaser
17.05.11
✎
04:51
|
как к этому обычному запросу можно подключить накопительную выборку показателя СуммаУпрПриход?
|
|||
2
Frantaser
17.05.11
✎
05:00
|
всем спасибо что прочитали, разобрался...
|
|||
3
Нуф-Нуф
17.05.11
✎
05:03
|
делал полгода назад что-то подобное. тоже ветку заводил здесь, тогда подсказали. сейчас если найду ту обработку - скину идею
|
|||
4
Мизантроп
17.05.11
✎
05:07
|
(2) напиши как сделал, многим интересно будет
|
|||
5
catena
17.05.11
✎
05:08
|
Ну, почти то же самое же:
v8: Запрос Вывод ПоступленияТМЦ по остаткам |
|||
6
catena
17.05.11
✎
05:09
|
На работу приду, кину еще ссылку на тему, где несколько способов обсуждали.
|
|||
7
guitar_player
17.05.11
✎
05:11
|
(0) Итоговую таблицу объединить саму с собой по уникальному условию (например Дата > Дата)
|
|||
8
Frantaser
17.05.11
✎
05:55
|
в этом запросе к типовому регистру ВзаиморасчетыСКонтрагентами есть соединения по измерению Подразделение, его нет в типовых конфигурациях, удалите если что...
//Текст сформирован автоматически обработкой Универсальная консоль отчетов 2.7.8 Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВзаиморасчетыСКонтрагентами.ПериодСекунда КАК Период, | ВзаиморасчетыСКонтрагентами.Регистратор КАК Документ, | ВзаиморасчетыСКонтрагентами.СуммаУпрПриход КАК Сумма, | СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход) КАК СуммаУпрПриход, | ВзаиморасчетыСКонтрагентами.Организация, | ВзаиморасчетыСКонтрагентами.Подразделение, | ВзаиморасчетыСКонтрагентами.Контрагент, | ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента |ПОМЕСТИТЬ Вз1 |ИЗ | РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, Движения, ) КАК ВзаиморасчетыСКонтрагентами | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ВзаиморасчетыСКонтрагентамиОбороты | ПО (ВЫБОР | КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Организация = ВзаиморасчетыСКонтрагентами.Организация | И ВзаиморасчетыСКонтрагентамиОбороты.Подразделение = ВзаиморасчетыСКонтрагентамиОбороты.Подразделение | И ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = ВзаиморасчетыСКонтрагентамиОбороты.Контрагент | И ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента | И (ВзаиморасчетыСКонтрагентамиОбороты.ПериодСекунда МЕЖДУ &НачалоПериода И ВзаиморасчетыСКонтрагентами.ПериодСекунда) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ) |ГДЕ | ВзаиморасчетыСКонтрагентами.СуммаУпрПриход > 0 | |СГРУППИРОВАТЬ ПО | ВзаиморасчетыСКонтрагентами.ПериодСекунда, | ВзаиморасчетыСКонтрагентами.Регистратор, | ВзаиморасчетыСКонтрагентами.СуммаУпрПриход, | ВзаиморасчетыСКонтрагентами.Организация, | ВзаиморасчетыСКонтрагентами.Подразделение, | ВзаиморасчетыСКонтрагентами.Контрагент, | ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента |{УПОРЯДОЧИТЬ ПО | Период} |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | Взаиморасчеты.Период, | Взаиморасчеты.Документ, | Взаиморасчеты.Сумма, | Взаиморасчеты.СуммаУпрПриход, | СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход) КАК итСуммаУпрРасход |ПОМЕСТИТЬ Вз2 |ИЗ | Вз1 КАК Взаиморасчеты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ВзаиморасчетыСКонтрагентамиОбороты | ПО (ВЫБОР | КОГДА ВзаиморасчетыСКонтрагентамиОбороты.Организация = Взаиморасчеты.Организация | И ВзаиморасчетыСКонтрагентамиОбороты.Подразделение = Взаиморасчеты.Подразделение | И ВзаиморасчетыСКонтрагентамиОбороты.Контрагент = Взаиморасчеты.Контрагент | И ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента = Взаиморасчеты.ДоговорКонтрагента | И (ВзаиморасчетыСКонтрагентамиОбороты.ПериодСекунда МЕЖДУ &НачалоПериода И &КонецПериода) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ) | |СГРУППИРОВАТЬ ПО | Взаиморасчеты.Период, | Взаиморасчеты.Документ, | Взаиморасчеты.Сумма, | Взаиморасчеты.СуммаУпрПриход |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | Вз2.Период, | Вз2.Документ, | Вз2.Сумма, | Вз2.СуммаУпрПриход, | Вз2.итСуммаУпрРасход, | ВЫБОР | КОГДА ВЫБОР | КОГДА Вз2.итСуммаУпрРасход - Вз2.СуммаУпрПриход < 0 | ТОГДА Вз2.СуммаУпрПриход - Вз2.итСуммаУпрРасход | ИНАЧЕ 0 | КОНЕЦ > Вз2.Сумма | ТОГДА Вз2.Сумма | ИНАЧЕ ВЫБОР | КОГДА Вз2.итСуммаУпрРасход - Вз2.СуммаУпрПриход < 0 | ТОГДА Вз2.СуммаУпрПриход - Вз2.итСуммаУпрРасход | ИНАЧЕ 0 | КОНЕЦ | КОНЕЦ КАК ДолгПоДоку |ИЗ | Вз2 КАК Вз2"; //Параметры запроса Запрос.УстановитьПараметр("КонецПериода",КонецПериода);// Дата Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);// Дата Результат = Запрос.Выполнить(); |
|||
9
Frantaser
17.05.11
✎
05:56
|
По сути этот запрос быстро рассчитывает сумму долга по документам отгрузки с учетом оплат по фифо.
|
|||
10
Frantaser
17.05.11
✎
05:57
|
но скажу сразу сырой еще, он сейчас не учитывает сальдо на начало периода запроса, мне для решения текущей задачи эта заготовка подошла и не более того :)
|
|||
11
mikeA
17.05.11
✎
07:10
|
(7) даты могут быть одинаковыми
|
|||
12
guitar_player
17.05.11
✎
08:07
|
(11) нужны уникальные поля.
Вот мой вариант: |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ИтоговаяТаблица.ПериодС КАК ПериодС, | ИтоговаяТаблица.Сотрудник КАК Сотрудник, | ИтоговаяТаблица.Регистратор КАК Регистратор, | ИтоговаяТаблица.НомерСтроки КАК НомерСтроки, | ИтоговаяТаблица.ЗанимаемыхСтавок КАК ЗанимаемыхСтавок, | ИтоговаяТаблица.ПериодПо КАК ПериодПо, | ИтоговаяТаблица.МоментВремени КАК МоментВремени, | ИтоговаяТаблица.ВсегоСтавок - ИтоговаяТаблица.ЗанимаемыхСтавок КАК КоличествоСвободныхСтавок, | ИтоговаяТаблица.ВсегоСтавок КАК ВсегоСтавок, | ПРЕДСТАВЛЕНИЕ(ИтоговаяТаблица.Регистратор) КАК РегистраторПредставление, | ПРЕДСТАВЛЕНИЕ(ИтоговаяТаблица.Сотрудник) КАК СотрудникПредставление, | ИтоговаяТаблица.ТипДвижения |ИЗ | (ВЫБРАТЬ | ВТ_ИсторияДвиженияСтавок.ПериодС КАК ПериодС, | ВТ_ИсторияДвиженияСтавок.Сотрудник КАК Сотрудник, | ВТ_ИсторияДвиженияСтавок.Регистратор КАК Регистратор, | ВТ_ИсторияДвиженияСтавок.НомерСтроки КАК НомерСтроки, | СУММА(ВТ_ИсторияДвиженияСтавокДополнение.ЗанимаемыхСтавок) КАК ЗанимаемыхСтавок, | ВТ_ИсторияДвиженияСтавок.ПериодПо КАК ПериодПо, | ВТ_ИсторияДвиженияСтавок.ВсегоСтавок КАК ВсегоСтавок, | ВТ_ИсторияДвиженияСтавок.МоментВремени КАК МоментВремени, | ВТ_ИсторияДвиженияСтавок.ПервоначальныйПериодЗавершения КАК ПервоначальныйПериодЗавершения, | ВТ_ИсторияДвиженияСтавок.ТипДвижения КАК ТипДвижения | ИЗ | ВТ_ИсторияДвиженияСтавок КАК ВТ_ИсторияДвиженияСтавок | ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИсторияДвиженияСтавок КАК ВТ_ИсторияДвиженияСтавокДополнение | ПО (ВЫБОР | КОГДА ВТ_ИсторияДвиженияСтавок.ПериодС > ВТ_ИсторияДвиженияСтавокДополнение.ПериодС | ТОГДА ИСТИНА | КОГДА ВТ_ИсторияДвиженияСтавок.ПериодС = ВТ_ИсторияДвиженияСтавокДополнение.ПериодС | И ВТ_ИсторияДвиженияСтавок.МоментВремени > ВТ_ИсторияДвиженияСтавокДополнение.МоментВремени | ТОГДА ИСТИНА | КОГДА ВТ_ИсторияДвиженияСтавок.ПериодС = ВТ_ИсторияДвиженияСтавокДополнение.ПериодС | И ВТ_ИсторияДвиженияСтавок.МоментВремени = ВТ_ИсторияДвиженияСтавокДополнение.МоментВремени | И ВТ_ИсторияДвиженияСтавок.НомерСтроки > ВТ_ИсторияДвиженияСтавокДополнение.НомерСтроки | ТОГДА ИСТИНА | КОГДА ВТ_ИсторияДвиженияСтавок.ПериодС = ВТ_ИсторияДвиженияСтавокДополнение.ПериодС | И ВТ_ИсторияДвиженияСтавок.МоментВремени = ВТ_ИсторияДвиженияСтавокДополнение.МоментВремени | И ВТ_ИсторияДвиженияСтавок.НомерСтроки = ВТ_ИсторияДвиженияСтавокДополнение.НомерСтроки | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ) | | СГРУППИРОВАТЬ ПО | ВТ_ИсторияДвиженияСтавок.ПериодС, | ВТ_ИсторияДвиженияСтавок.Сотрудник, | ВТ_ИсторияДвиженияСтавок.Регистратор, | ВТ_ИсторияДвиженияСтавок.НомерСтроки, | ВТ_ИсторияДвиженияСтавок.ПериодПо, | ВТ_ИсторияДвиженияСтавок.ВсегоСтавок, | ВТ_ИсторияДвиженияСтавок.МоментВремени, | ВТ_ИсторияДвиженияСтавок.ПервоначальныйПериодЗавершения, | ВТ_ИсторияДвиженияСтавок.ТипДвижения) КАК ИтоговаяТаблица |
|||
13
catena
17.05.11
✎
08:26
|
(11)Прям до секунды?
|
|||
14
catena
17.05.11
✎
08:27
|
Вот тема: v8: Накопительный итог 1С
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |