|
Помогите починить запрос | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
20.04.22
✎
14:48
|
Всем доброго дня. УПП.
Есть часть запроса. Беру исходную таблицу, соединяю её с нужными полями и получаю кол-во дней между двумя датами. Но проблема в том, что я должен получать эти числа, только если СуммаРегРасход и СуммаУпрРасход пустые (т.е не было оплат). Если я ставлю условие, оно не отрабатывает как нужно, только через раз. |
|||
1
MAPATNK2
naïve
20.04.22
✎
14:48
|
ВЫБРАТЬ
ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Сделка, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДатаКалендаря ИЗ ТаблицаСДанными КАК ТаблицаСДанными ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ НАЧАЛОПЕРИОДА(ТаблицаСДанными.Регистратор.Дата, ДЕНЬ) И НАЧАЛОПЕРИОДА(ТаблицаСДанными.ДатаДобавленыРабочиеДни, ДЕНЬ)) ГДЕ РегламентированныйПроизводственныйКалендарь.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) СГРУППИРОВАТЬ ПО ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.Сделка, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход |
|||
2
MAPATNK2
naïve
20.04.22
✎
14:51
|
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Сделка, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ТаблицаСДанными.СуммаРегРасход = 0 И ТаблицаСДанными.СуммаУпрРасход = 0 ТОГДА 0 ИНАЧЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КОНЕЦ) КАК ДатаКалендаря ИЗ ТаблицаСДанными КАК ТаблицаСДанными ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ НАЧАЛОПЕРИОДА(ТаблицаСДанными.Регистратор.Дата, ДЕНЬ) И НАЧАЛОПЕРИОДА(ТаблицаСДанными.ДатаДобавленыРабочиеДни, ДЕНЬ)) ГДЕ РегламентированныйПроизводственныйКалендарь.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) СГРУППИРОВАТЬ ПО ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.Сделка, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход |
|||
3
MAPATNK2
naïve
20.04.22
✎
14:52
|
Т.е если я делаю так, то результат не корректен. Он должен проставить 1 там, где оплат нет, а он ставит где хочет.
Делаю на СКД. Я могу конечно условным оформлением исправить проблему, но я использую ресурсы с расчетами Максимум и в итоговое поле попадает цифры, которые не должны выводится. |
|||
4
MAPATNK2
naïve
20.04.22
✎
14:56
|
Мне нужно получать РегламентированныйПроизводственныйКалендарь.ДатаКалендаря только для тех полей, где СуммаРегРасход и СуммаУпрРасход = 0.
|
|||
5
MAPATNK2
naïve
20.04.22
✎
15:02
|
Либо может на скд есть функционал, который позволит не участвовать, скрытым с помощью условного оформления, полям в расчете итогов?
|
|||
6
Ryzeman
20.04.22
✎
15:03
|
(2) ты считаешь количество нулей.
(1) Сам подход к решению задачи... Интересный. Я бы в отдельной ВТ посчитал бы количество прошедших рабочих дней, а потом привязывал бы по условию без группировки 100500 полей. Но дело твоё. ВЫБОР КОГДА ТаблицаСДанными.СуммаРегРасход = 0 И ТаблицаСДанными.СуммаУпрРасход = 0 Тогда 1 ИНАЧЕ КОЛИЧЕСТВО(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КОНЕЦ КАК ДатаКалендаря |
|||
7
asady
20.04.22
✎
15:05
|
лень по всем делать но как-то так -
там надо по остальным ресурсам правильно агрегатные функции подобрать для группировки ВЫБРАТЬ ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Сделка, ТаблицаСДанными.Регистратор, 0 КАК СуммаРегРасход, 0 КАК СуммаУпрРасход, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря) КАК ДатаКалендаря ИЗ ТаблицаСДанными КАК ТаблицаСДанными ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ НАЧАЛОПЕРИОДА(ТаблицаСДанными.Регистратор.Дата, ДЕНЬ) И НАЧАЛОПЕРИОДА(ТаблицаСДанными.ДатаДобавленыРабочиеДни, ДЕНЬ)) ГДЕ РегламентированныйПроизводственныйКалендарь.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) И ТаблицаСДанными.СуммаРегРасход = 0 И ТаблицаСДанными.СуммаУпрРасход = 0 СГРУППИРОВАТЬ ПО ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.Сделка, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Регистратор ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Сделка, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход, 0 КАК ДатаКалендаря ИЗ ТаблицаСДанными КАК ТаблицаСДанными |
|||
8
MAPATNK2
naïve
20.04.22
✎
15:07
|
(6) я ведь писал, что отбор не работает. Даже ручной отбор в отчете по этим двум полям выдает некооректную информацию. Только условное форматирование помогает, но его не могу использовать, т.к. нужны ресурсы и подсчет итогов по ним.
|
|||
9
MAPATNK2
naïve
20.04.22
✎
15:12
|
(7) Туда же. При использовании условия ТаблицаСДанными.СуммаРегРасход = 0 И ТаблицаСДанными.СуммаУпрРасход = 0
выдается некорректный результат. Скорей всего, СуммаРегРасход и СуммаУпрРасход, который пустые имеют значения отличные от 0. Но какие я так и не нашел. Использовал Неопределено, ЕстьNUll, 0. |
|||
10
MAPATNK2
naïve
20.04.22
✎
15:14
|
Полный текст запроса
//////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ВложенныйЗапрос.Организация КАК Организация, ВложенныйЗапрос.Контрагент КАК Контрагент, ВложенныйЗапрос.ДоговорКонтрагента КАК ДоговорКонтрагента, ВложенныйЗапрос.ДокументРасчетов КАК ДокументРасчетов, ВложенныйЗапрос.Сделка КАК Сделка, ВложенныйЗапрос.Регистратор КАК Регистратор, ВложенныйЗапрос.СуммаУпрНачальныйОстаток КАК СуммаУпрНачальныйОстаток, ВложенныйЗапрос.СуммаРегНачальныйОстаток КАК СуммаРегНачальныйОстаток, ВложенныйЗапрос.СуммаУпрПриход КАК СуммаУпрПриход, ВложенныйЗапрос.СуммаРегПриход КАК СуммаРегПриход, ВложенныйЗапрос.СуммаУпрРасход КАК СуммаУпрРасход, ВложенныйЗапрос.СуммаРегРасход КАК СуммаРегРасход, ВложенныйЗапрос.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток, ВложенныйЗапрос.СуммаРегКонечныйОстаток КАК СуммаРегКонечныйОстаток, ВложенныйЗапрос.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности + 1 КАК ПрибавитьРабочихДней, ВЫБОР КОГДА ВложенныйЗапрос.ДокументРасчетов ЕСТЬ NULL ТОГДА ВложенныйЗапрос.Регистратор.Дата ИНАЧЕ ВложенныйЗапрос.ДокументРасчетов.Дата КОНЕЦ КАК ДатаОтсчета ПОМЕСТИТЬ ИсходныеДаты {ВЫБРАТЬ Организация.*, Контрагент.*, ДоговорКонтрагента.*, Сделка.*, СуммаУпрНачальныйОстаток, СуммаУпрПриход, СуммаУпрРасход, СуммаУпрКонечныйОстаток, СуммаРегНачальныйОстаток, СуммаРегПриход, СуммаРегРасход, СуммаРегКонечныйОстаток, Регистратор.*, ДокументРасчетов.*} ИЗ (ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация КАК Организация, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Сделка КАК Сделка, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток КАК СуммаУпрНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход КАК СуммаУпрПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход КАК СуммаУпрРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток КАК СуммаУпрКонечныйОстаток, 0 КАК СуммаРегНачальныйОстаток, 0 КАК СуммаРегПриход, 0 КАК СуммаРегРасход, 0 КАК СуммаРегКонечныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор КАК Регистратор, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ИЛИ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ССЫЛКА Документ.АктОбОказанииПроизводственныхУслуг ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор ИНАЧЕ NULL КОНЕЦ КАК ДокументРасчетов ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор {(&Периодичность)}, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Организация, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Контрагент, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.ДоговорКонтрагента, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Сделка, 0, 0, 0, 0, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегНачальныйОстаток, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегРасход, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегПриход, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегКонечныйОстаток, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Регистратор, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Документ ИЗ РегистрНакопления.РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор {(&Периодичность)}, , ) КАК РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты ГДЕ РасчетыПоПриобретениюВУсловныхЕдиницахОрганизацииОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Организация, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Контрагент, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.ДоговорКонтрагента, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Сделка, 0, 0, 0, 0, -РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегНачальныйОстаток, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегПриход, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегРасход, -РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.СуммаРегКонечныйОстаток, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Регистратор, РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.Документ ИЗ РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор {(&Периодичность)}, , ) КАК РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты ГДЕ РасчетыПоРеализацииВУсловныхЕдиницахОрганизацииОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора <> ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком)) КАК ВложенныйЗапрос {ГДЕ ВложенныйЗапрос.Организация.*, ВложенныйЗапрос.Контрагент.*, ВложенныйЗапрос.ДоговорКонтрагента.*, ВложенныйЗапрос.ДокументРасчетов.*, ВложенныйЗапрос.Сделка.*, ВложенныйЗапрос.Регистратор.*} ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ИсходныеДаты.ДатаОтсчета, ИсходныеДаты.ПрибавитьРабочихДней, ДанныеПроизводственногоКалендаря.ДатаКалендаря КАК РабочийДень, ИсходныеДаты.Организация, ИсходныеДаты.Контрагент, ИсходныеДаты.ДоговорКонтрагента, ИсходныеДаты.ДокументРасчетов, ИсходныеДаты.Сделка, ИсходныеДаты.Регистратор, ИсходныеДаты.СуммаУпрНачальныйОстаток, ИсходныеДаты.СуммаРегНачальныйОстаток, ИсходныеДаты.СуммаУпрПриход, ИсходныеДаты.СуммаРегПриход, ИсходныеДаты.СуммаУпрРасход, ИсходныеДаты.СуммаРегРасход, ИсходныеДаты.СуммаУпрКонечныйОстаток, ИсходныеДаты.СуммаРегКонечныйОстаток ПОМЕСТИТЬ СоединениеСРабочими ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК ДанныеПроизводственногоКалендаря ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсходныеДаты КАК ИсходныеДаты ПО (ИсходныеДаты.ДатаОтсчета <= ДанныеПроизводственногоКалендаря.ДатаКалендаря) И (ДОБАВИТЬКДАТЕ(ИсходныеДаты.ДатаОтсчета, ДЕНЬ, ИсходныеДаты.ПрибавитьРабочихДней * 2 + 10) > ДанныеПроизводственногоКалендаря.ДатаКалендаря) ГДЕ ДанныеПроизводственногоКалендаря.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СоединениеСРабочими.Организация, СоединениеСРабочими.Контрагент, СоединениеСРабочими.ДоговорКонтрагента, СоединениеСРабочими.ДокументРасчетов, СоединениеСРабочими.Сделка, СоединениеСРабочими.Регистратор, СоединениеСРабочими.СуммаУпрНачальныйОстаток, СоединениеСРабочими.СуммаРегНачальныйОстаток, СоединениеСРабочими.СуммаУпрПриход, СоединениеСРабочими.СуммаРегПриход, ВЫБОР КОГДА НЕ СоединениеСРабочими.СуммаУпрРасход ЕСТЬ NULL И НЕ СоединениеСРабочими.СуммаУпрРасход = НЕОПРЕДЕЛЕНО ТОГДА СоединениеСРабочими.СуммаУпрРасход ИНАЧЕ 0 КОНЕЦ КАК СуммаУпрРасход, ВЫБОР КОГДА НЕ СоединениеСРабочими.СуммаРегРасход ЕСТЬ NULL И НЕ СоединениеСРабочими.СуммаРегРасход = НЕОПРЕДЕЛЕНО ТОГДА СоединениеСРабочими.СуммаРегРасход ИНАЧЕ 0 КОНЕЦ КАК СуммаРегРасход, СоединениеСРабочими.СуммаУпрКонечныйОстаток, СоединениеСРабочими.СуммаРегКонечныйОстаток, СоединениеСРабочими.ПрибавитьРабочихДней - 1 КАК ПрибавитьРабочихДней, СоединениеСРабочими1.РабочийДень КАК ДатаДобавленыРабочиеДни, СоединениеСРабочими.ДатаОтсчета ПОМЕСТИТЬ ТаблицаСДанными ИЗ СоединениеСРабочими КАК СоединениеСРабочими ВНУТРЕННЕЕ СОЕДИНЕНИЕ СоединениеСРабочими КАК СоединениеСРабочими1 ПО СоединениеСРабочими.РабочийДень <= СоединениеСРабочими1.РабочийДень СГРУППИРОВАТЬ ПО СоединениеСРабочими.ПрибавитьРабочихДней, СоединениеСРабочими1.РабочийДень, СоединениеСРабочими.Организация, СоединениеСРабочими.Контрагент, СоединениеСРабочими.ДоговорКонтрагента, СоединениеСРабочими.ДокументРасчетов, СоединениеСРабочими.Сделка, СоединениеСРабочими.Регистратор, СоединениеСРабочими.СуммаУпрНачальныйОстаток, СоединениеСРабочими.СуммаРегНачальныйОстаток, СоединениеСРабочими.СуммаУпрПриход, СоединениеСРабочими.СуммаРегПриход, СоединениеСРабочими.СуммаУпрКонечныйОстаток, СоединениеСРабочими.СуммаРегКонечныйОстаток, СоединениеСРабочими.ДатаОтсчета, ВЫБОР КОГДА НЕ СоединениеСРабочими.СуммаУпрРасход ЕСТЬ NULL И НЕ СоединениеСРабочими.СуммаУпрРасход = НЕОПРЕДЕЛЕНО ТОГДА СоединениеСРабочими.СуммаУпрРасход ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА НЕ СоединениеСРабочими.СуммаРегРасход ЕСТЬ NULL И НЕ СоединениеСРабочими.СуммаРегРасход = НЕОПРЕДЕЛЕНО ТОГДА СоединениеСРабочими.СуммаРегРасход ИНАЧЕ 0 КОНЕЦ ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СоединениеСРабочими.РабочийДень) = СоединениеСРабочими.ПрибавитьРабочихДней ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Сделка, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВЫБОР КОГДА ТаблицаСДанными.СуммаРегРасход = 0 И ТаблицаСДанными.СуммаУпрРасход = 0 ТОГДА 0 ИНАЧЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КОНЕЦ) КАК ДатаКалендаря ИЗ ТаблицаСДанными КАК ТаблицаСДанными ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ПО (РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ НАЧАЛОПЕРИОДА(ТаблицаСДанными.Регистратор.Дата, ДЕНЬ) И НАЧАЛОПЕРИОДА(ТаблицаСДанными.ДатаДобавленыРабочиеДни, ДЕНЬ)) ГДЕ РегламентированныйПроизводственныйКалендарь.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)) СГРУППИРОВАТЬ ПО ТаблицаСДанными.Организация, ТаблицаСДанными.Контрагент, ТаблицаСДанными.Сделка, ТаблицаСДанными.ДоговорКонтрагента, ТаблицаСДанными.ДокументРасчетов, ТаблицаСДанными.Регистратор, ТаблицаСДанными.СуммаУпрНачальныйОстаток, ТаблицаСДанными.СуммаРегНачальныйОстаток, ТаблицаСДанными.СуммаУпрПриход, ТаблицаСДанными.СуммаРегПриход, ТаблицаСДанными.СуммаУпрКонечныйОстаток, ТаблицаСДанными.СуммаРегКонечныйОстаток, ТаблицаСДанными.ПрибавитьРабочихДней, ТаблицаСДанными.СуммаРегРасход, ТаблицаСДанными.СуммаУпрРасход /////////////////////////////////////////// |
|||
11
Ryzeman
20.04.22
✎
15:15
|
(9) То есть у тебя в таблицие некорректные данные, которые ты не показываешь как получаешь, но просишь починить :)
Сделай запрос по одному контрагенту, по которому у тебя данные некорректны, и выведи без группировки. Выборку можешь в отладчике посмотреть, там наглядно видно типы данных. Некоторые консоли тоже позволяют. |
|||
12
MAPATNK2
naïve
20.04.22
✎
15:18
|
||||
13
MAPATNK2
naïve
20.04.22
✎
15:19
|
(11) Просто запрос длинный и не мой, не думаю, что кто то будет его смотреть, но выше скинул.
|
|||
14
MAPATNK2
naïve
20.04.22
✎
15:31
|
Видимо, проблема в группировках, которые отражаются в отчете. Если сформировать его на консоли без группировок, то отображает верно, а если в СКД, то показывает неверные данные.
Только не понятно куда именно тут копать. |
|||
15
Ryzeman
20.04.22
✎
15:33
|
(14) Это ресурсы или вычисляемые поля. Смотри в схеме СКД по каким формулам они там считаются.
|
|||
16
MAPATNK2
naïve
20.04.22
✎
15:35
|
(15) Вычисляемых полей нет. ресурсы максимально просты.
Все суммы суммируются по всем полям, кроме регистратора. Дата календаря просто как Дата календаря у Регистра. Чтобы я мог её впихнуть в нужно место в виде отдельно колонки. |
|||
17
MAPATNK2
naïve
20.04.22
✎
15:37
|
и Дата календаря в виде Максимум(Дата календаря) у остальных группировок.
|
|||
18
Ryzeman
20.04.22
✎
15:40
|
(17) Ну так ты сам ответил на этот вопрос. Дата календаря судя по всему это и есть Дней просрочки.
|
|||
19
MAPATNK2
naïve
20.04.22
✎
15:42
|
(18) Это и есть дней просрочки. Только я не допер XD
|
|||
20
MAPATNK2
naïve
20.04.22
✎
15:45
|
(18) Вот скрин. Тут есть пара строк, где СуммаРегРасход и УпрРасход = 0 и там 1 проставляется. Но внизу, где выделил, почему то это условие не выполняется.
https://disk.yandex.ru/i/aVrkrqeBlUq2cA |
|||
21
MAPATNK2
naïve
20.04.22
✎
15:57
|
Отбой. Ошибку нашел. Чуть позже положу инфу в чем была проблема. Всем спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |