|
РН Остатки И обороты исключить один вид документа | ☑ | ||
---|---|---|---|---|
0
RailWayCat777
naïve
18.06.24
✎
06:18
|
Необходимо исключить один вид документа в РН Остатки и обороты.
Периодичность уже задана как "День". Прошу помочь. Текст запроса : ВЫБРАТЬ РАЗРЕШЕННЫЕ ОбъектыРасчетов.Документ КАК Документ, РасчетыСПоставщиками.ОбъектРасчетов.Объект КАК ОбъектРасчетов, ОбъектыРасчетов.ПорядокРасчетов КАК ПорядокРасчетов, РасчетыСПоставщиками.Валюта КАК Валюта, ОбъектыРасчетов.ТребуетсяГрафик КАК ТребуетсяГрафик, ВЫБОР КОГДА ДанныПоРасчетамПоХО.ОплатаПлан > 0 ТОГДА ВЫРАЗИТЬ("ОплатаПоГрафику" КАК СТРОКА(150)) КОГДА ДанныПоРасчетамПоХО.ОплатаПлан < 0 ТОГДА ВЫРАЗИТЬ("ПереносАванса" КАК СТРОКА(150)) ИНАЧЕ ВЫБОР КОГДА ДанныПоРасчетамПоХО.ОплатаФакт <> 0 ТОГДА ВЫРАЗИТЬ("ОплатаНеПоГрафику" КАК СТРОКА(150)) ИНАЧЕ ВЫРАЗИТЬ("Поступление" КАК СТРОКА(150)) КОНЕЦ КОНЕЦ КАК ЭтапОплатыОтгрузки, РасчетыСПоставщиками.Период КАК ДатаПлатежа, ЕСТЬNULL(ДанныПоРасчетамПоХО.ОплатаПлан, 0) КАК ОплатаПлан, ЕСТЬNULL(ДанныПоРасчетамПоХО.ОплатаФакт, 0) КАК ОплатаФакт, ВЫБОР КОГДА РасчетыСПоставщиками.Период < &ТекущаяДата И РасчетыСПоставщиками.КОплатеКонечныйОстаток < 0 ТОГДА -РасчетыСПоставщиками.КОплатеКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ОплатаПросрочено, ВЫБОР КОГДА ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КОплатеПриход, 0) + ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеОстаток, 0) < 0 ТОГДА -(ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КОплатеПриход, 0) + ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеОстаток, 0)) ИНАЧЕ 0 КОНЕЦ КАК ОплатаПросроченоИтого, РасчетыСПоставщиками.КПоступлениюРасход КАК ОтгрузкаФакт, РасчетыСПоставщиками.КПоступлениюПриход КАК ОтгрузкаПлан, ВЫБОР КОГДА РасчетыСПоставщиками.Период < &ТекущаяДата И РасчетыСПоставщиками.КПоступлениюКонечныйОстаток > 0 ТОГДА РасчетыСПоставщиками.КПоступлениюКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ОтгрузкаПросрочено, ВЫБОР КОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КПоступлениюОстаток, 0) - ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КПоступлениюРасход, 0) > 0 ТОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КПоступлениюОстаток, 0) - ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КПоступлениюРасход, 0) ИНАЧЕ 0 КОНЕЦ КАК ОтгрузкаПросроченоИтого ИЗ РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты( , , День, , ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщиками ЛЕВОЕ СОЕДИНЕНИЕ ОбъектыРасчетов КАК ОбъектыРасчетов ПО (ОбъектыРасчетов.ОбъектРасчетов = РасчетыСПоставщиками.ОбъектРасчетов.Объект) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Остатки( &ТекущаяДата, ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщикамиОстатки ПО (РасчетыСПоставщиками.ОбъектРасчетов = РасчетыСПоставщикамиОстатки.ОбъектРасчетов) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Обороты( &ТекущаяДата, , , ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщикамиОбороты ПО (РасчетыСПоставщиками.ОбъектРасчетов = РасчетыСПоставщикамиОстатки.ОбъектРасчетов) ЛЕВОЕ СОЕДИНЕНИЕ ВтДанныеПоРасчетамСПоставщиками КАК ДанныПоРасчетамПоХО ПО (РасчетыСПоставщиками.ОбъектРасчетов = ДанныПоРасчетамПоХО.ОбъектРасчетов) И (РасчетыСПоставщиками.Период = ДанныПоРасчетамПоХО.Период) УПОРЯДОЧИТЬ ПО РасчетыСПоставщиками.Период ИТОГИ МАКСИМУМ(ПорядокРасчетов), МАКСИМУМ(Валюта), МАКСИМУМ(ТребуетсяГрафик), СУММА(ОплатаПлан), СУММА(ОплатаФакт), МАКСИМУМ(ОплатаПросроченоИтого), СУММА(ОтгрузкаФакт), СУММА(ОтгрузкаПлан), МАКСИМУМ(ОтгрузкаПросроченоИтого) ПО Документ, ОбъектРасчетов ; |
|||
1
vde69
18.06.24
✎
06:23
|
ставишь периодичность = регистратор и условие "регистратор ссылка документы.РКО"
но вообще это не верный подход, верный поход - или добавить реквизит в регистр или вообще сделать новый регистр без этого бокумента |
|||
2
RailWayCat777
naïve
18.06.24
✎
06:58
|
(1) Если ставлю периодичность = регистратор, вместо периодичность = день, то тогда результаты неверные выдает
|
|||
3
vde69
18.06.24
✎
07:02
|
так ты результат потом сверни по дням
|
|||
4
RailWayCat777
naïve
18.06.24
✎
07:15
|
(3) Сделал вложенный запрос, там сейчас всё делаю.
Не понимаю что дальше. ВЫБРАТЬ РАЗРЕШЕННЫЕ ОбъектыРасчетов.Документ КАК Документ, РасчетыСПоставщиками.ОбъектРасчетов.Объект КАК ОбъектРасчетов, ОбъектыРасчетов.ПорядокРасчетов КАК ПорядокРасчетов, РасчетыСПоставщиками.Валюта КАК Валюта, ОбъектыРасчетов.ТребуетсяГрафик КАК ТребуетсяГрафик, ВЫБОР КОГДА ДанныПоРасчетамПоХО.ОплатаПлан > 0 ТОГДА ВЫРАЗИТЬ("ОплатаПоГрафику" КАК СТРОКА(150)) КОГДА ДанныПоРасчетамПоХО.ОплатаПлан < 0 ТОГДА ВЫРАЗИТЬ("ПереносАванса" КАК СТРОКА(150)) ИНАЧЕ ВЫБОР КОГДА ДанныПоРасчетамПоХО.ОплатаФакт <> 0 ТОГДА ВЫРАЗИТЬ("ОплатаНеПоГрафику" КАК СТРОКА(150)) ИНАЧЕ ВЫРАЗИТЬ("Поступление" КАК СТРОКА(150)) КОНЕЦ КОНЕЦ КАК ЭтапОплатыОтгрузки, РасчетыСПоставщиками.Период КАК ДатаПлатежа, ЕСТЬNULL(ДанныПоРасчетамПоХО.ОплатаПлан, 0) КАК ОплатаПлан, ЕСТЬNULL(ДанныПоРасчетамПоХО.ОплатаФакт, 0) КАК ОплатаФакт, ВЫБОР КОГДА РасчетыСПоставщиками.Период < &ТекущаяДата И РасчетыСПоставщиками.КОплатеКонечныйОстаток < 0 ТОГДА -РасчетыСПоставщиками.КОплатеКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ОплатаПросрочено, ВЫБОР КОГДА ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КОплатеПриход, 0) + ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеОстаток, 0) < 0 ТОГДА -(ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КОплатеПриход, 0) + ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КОплатеОстаток, 0)) ИНАЧЕ 0 КОНЕЦ КАК ОплатаПросроченоИтого, РасчетыСПоставщиками.КПоступлениюРасход КАК ОтгрузкаФакт1, РасчетыСПоставщиками.КПоступлениюПриход КАК ОтгрузкаПлан1, ВЫБОР КОГДА РасчетыСПоставщиками.Период < &ТекущаяДата И РасчетыСПоставщиками.КПоступлениюКонечныйОстаток > 0 ТОГДА РасчетыСПоставщиками.КПоступлениюКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ОтгрузкаПросрочено, ВЫБОР КОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КПоступлениюОстаток, 0) - ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КПоступлениюРасход, 0) > 0 ТОГДА ЕСТЬNULL(РасчетыСПоставщикамиОстатки.КПоступлениюОстаток, 0) - ЕСТЬNULL(РасчетыСПоставщикамиОбороты.КПоступлениюРасход, 0) ИНАЧЕ 0 КОНЕЦ КАК ОтгрузкаПросроченоИтого, ВложенныйЗапрос.КПоступлениюРасход КАК КПоступлениюРасход, ВложенныйЗапрос.КПоступлениюПриход КАК КПоступлениюПриход ИЗ РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты( , , День, , ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщиками ЛЕВОЕ СОЕДИНЕНИЕ ОбъектыРасчетов КАК ОбъектыРасчетов ПО (ОбъектыРасчетов.ОбъектРасчетов = РасчетыСПоставщиками.ОбъектРасчетов.Объект) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Остатки( &ТекущаяДата, ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщикамиОстатки ПО (РасчетыСПоставщиками.ОбъектРасчетов = РасчетыСПоставщикамиОстатки.ОбъектРасчетов) ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСПоставщиками.Обороты( &ТекущаяДата, , , ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщикамиОбороты ПО (РасчетыСПоставщиками.ОбъектРасчетов = РасчетыСПоставщикамиОстатки.ОбъектРасчетов) ЛЕВОЕ СОЕДИНЕНИЕ ВтДанныеПоРасчетамСПоставщиками КАК ДанныПоРасчетамПоХО ПО (РасчетыСПоставщиками.ОбъектРасчетов = ДанныПоРасчетамПоХО.ОбъектРасчетов) И (РасчетыСПоставщиками.Период = ДанныПоРасчетамПоХО.Период) ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РасчетыСПоставщикамиОстаткиИОбороты.ОбъектРасчетов КАК ОбъектРасчетов1, РасчетыСПоставщикамиОстаткиИОбороты.КПоступлениюПриход КАК КПоступлениюПриход, РасчетыСПоставщикамиОстаткиИОбороты.КПоступлениюРасход КАК КПоступлениюРасход, РасчетыСПоставщикамиОстаткиИОбороты.ПериодДень КАК ПериодДень ИЗ РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты( , , Авто, , ОбъектРасчетов.Объект В (ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщикамиОстаткиИОбороты ГДЕ РасчетыСПоставщикамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.РасходныйКассовыйОрдер) КАК ВложенныйЗапрос ПО (РасчетыСПоставщиками.ОбъектРасчетов = ВложенныйЗапрос.ОбъектРасчетов1) УПОРЯДОЧИТЬ ПО РасчетыСПоставщиками.Период ИТОГИ МАКСИМУМ(ПорядокРасчетов), МАКСИМУМ(Валюта), МАКСИМУМ(ТребуетсяГрафик), СУММА(ОплатаПлан), СУММА(ОплатаФакт), МАКСИМУМ(ОплатаПросроченоИтого), СУММА(ОтгрузкаФакт1), СУММА(ОтгрузкаПлан1), МАКСИМУМ(ОтгрузкаПросроченоИтого), СУММА(КПоступлениюРасход), СУММА(КПоступлениюПриход) ПО Документ, ОбъектРасчетов ; |
|||
5
arsik
гуру
18.06.24
✎
08:25
|
Может вы не туда воюете? Как вы из остатков это документ уберете?
Проще брать все движения с начала времен и самому строить остатки и обороты. |
|||
6
Ненавижу 1С
гуру
18.06.24
✎
08:48
|
какой документ собираетесь убирать-то?
|
|||
7
RailWayCat777
naïve
18.06.24
✎
09:42
|
Остатки иОбороты.
|
|||
8
RailWayCat777
naïve
18.06.24
✎
09:44
|
Документ ВзаимозачетЗадолжности, в РН РасчетыСПоставщиками он проходит как регистратор, его и надо убрать, отчет должен строиться без него
|
|||
9
2S
18.06.24
✎
09:46
|
(8) Соберите общие данные, потом соберите данные по исключаемому виду регистратора и отнимите в конце.
|
|||
10
lEvGl
гуру
18.06.24
✎
09:49
|
ВЫБОР
КОГДА ДанныПоРасчетамПоХО.ОплатаПлан > 0 ТОГДА ВЫРАЗИТЬ("ОплатаПоГрафику" КАК СТРОКА(150)) КОГДА ДанныПоРасчетамПоХО.ОплатаПлан < 0 ТОГДА ВЫРАЗИТЬ("ПереносАванса" КАК СТРОКА(150)) ИНАЧЕ ВЫБОР КОГДА ДанныПоРасчетамПоХО.ОплатаФакт <> 0 ТОГДА ВЫРАЗИТЬ("ОплатаНеПоГрафику" КАК СТРОКА(150)) ИНАЧЕ ВЫРАЗИТЬ("Поступление" КАК СТРОКА(150)) КОНЕЦ КОНЕЦ КАК ЭтапОплатыОтгрузки что это за хрень |
|||
11
АНДР
18.06.24
✎
09:52
|
(8) исходя из типичного соотношения данных в базе, отчёт надо строить по регистру (с учётом этого документа), потом из него вычитать взаимозачеты (откуда их брать - документ или его движения - однозначного ответа не будет).
|
|||
12
АНДР
18.06.24
✎
09:53
|
(9) +1. Я долго набирал ;)
|
|||
13
RailWayCat777
naïve
18.06.24
✎
11:22
|
(10) Эта хрень была до меня.
Сам не в восторге |
|||
14
RailWayCat777
naïve
18.06.24
✎
11:51
|
Вот я собрал данные, если я для отображения реквизита Регистр заменяю РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(,,День,,ОбъектРасчетов.Объект В(ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщиками
на РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(,,Регистр,,ОбъектРасчетов.Объект В(ВЫБРАТЬ ОбъектыРасчетов.ОбъектРасчетов ИЗ ОбъектыРасчетов КАК ОбъектыРасчетов)) КАК РасчетыСПоставщиками То тогда у меня коряво отображаются данные. Неужели надо всё переписывать? |
|||
15
Ненавижу 1С
гуру
18.06.24
✎
11:56
|
А ничего, что ваш "ВзаимозачетЗадолжности", который вы хотите "удалить", меняет остатки регистра по измерению "ОбъектРасчетов", например?
Мне кажется, более правильным создать параллельный учет расчетов, в котором не будут учитываться такие "мелочи жизни" как объекты расчетов (возможно договоры и даже контрагенты). Был опыт создания таких управленческих расчетов грубо по Партнерам |
|||
16
lEvGl
гуру
18.06.24
✎
12:09
|
(14) а как он обороты или остатки даст, это итоговые таблицы, которые получились в результате движения от многих регистраторов. то есть в "законном" варианте, регистраторы совсем использоваться не должны, можно получить итоговые обороты или остатки, все. но дали вариант их раскладывать по позиции регистратора, отсюда и плясать надо, это по сути бага, которую превратили в фичу. тут как бы еще посмотреть надо, что за цифры будут, когда ненужный регистратор выкинете, скорее всего остатки придется самому считать на основе оборотов. но это не беда, люди которые работают не с 1с каждый день это делают) то есть считают остатки сами, а у вас Такой механизм есть. Это как бэ принципиальное отличие 1С от не один С. Тру языки, такие тру.. В них так Много возможностей, что аж глаза вянут, когда понимаешь, что остатки придется самому считать, но инструментов в этих языках для этого просто масса, какие хочешь, педальноприводные только все. Берешь и вперед
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |