|
Обращение к предыдущей строке в запросе | ☑ | ||
---|---|---|---|---|
0
GodCratOs
12.03.20
✎
17:07
|
Здравствуйте, столкнулся с проблемой при создании запроса.
Нужно продублировать отсрочку с предыдущей строки, если она равна нулю. У меня сейчас Период Регистратор ОтсрочкаКоДню 14.01.2016 11:44:10 Реализация товаров и услуг 1 09.10.2018 11:44:10 16.01.2016 16:25:01 Платежное поручение входящее 1 22.01.2016 11:44:10 Платежное поручение входящее 2 01.03.2016 11:42:44 Реализация товаров и услуг 2 25.11.2018 11:42:44 08.03.2016 11:44:10 Платежное поручение входящее 3 15.03.2016 11:44:10 Платежное поручение входящее 4 06.04.2016 11:44:10 Реализация товаров и услуг 2 31.12.2018 9:34:43 08.04.2016 11:44:10 Платежное поручение входящее 5 Хочу чтобы было вот так... Период Регистратор ОтсрочкаКоДню 14.01.2016 11:44:10 Реализация товаров и услуг 1 09.10.2018 11:44:10 16.01.2016 16:25:01 Платежное поручение входящее 1 09.10.2018 11:44:10 22.01.2016 11:44:10 Платежное поручение входящее 2 09.10.2018 11:44:10 01.03.2016 11:42:44 Реализация товаров и услуг 2 25.11.2018 11:42:44 08.03.2016 11:44:10 Платежное поручение входящее 3 25.11.2018 11:42:44 15.03.2016 11:44:10 Платежное поручение входящее 4 25.11.2018 11:42:44 06.04.2016 11:44:10 Реализация товаров и услуг 2 31.12.2018 9:34:43 08.04.2016 11:44:10 Платежное поручение входящее 5 31.12.2018 9:34:43 ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК ОстатокДолгаНаНачалоПериода, СУММА(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0)) КАК Отгружено, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОстатокДолгаНаКонецПериода, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ДопустимоеЧислоДнейЗадолженности, СУММА(ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > 0 ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК ОстатокДолга, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ОтсрочкаПлатежаКоДню, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплачено ПОМЕСТИТЬ ВтВзаиморасчеты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), Регистратор, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты СГРУППИРОВАТЬ ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню ИЗ ВтВзаиморасчеты КАК ВтВзаиморасчеты |
|||
1
patria0muerte
12.03.20
✎
17:25
|
(0) В случае, если период уникален, т.е. нет двух строк с одинаковым периодом - то примерно так:
ВЫБРАТЬ Т.Период КАК Период, Т.ОтгрузкаКоДню КАК ОтгрузкаКоДню ПОМЕСТИТЬ ВТПериоды ИЗ &Данные КАК Т ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПериоды.Период КАК Период, ВТПериоды.ОтгрузкаКоДню КАК ОтгрузкаКоДню, МАКСИМУМ(ВТПериоды1.Период) КАК ПериодСДатойОтгрузки ПОМЕСТИТЬ ВТДатыОтгрузок ИЗ ВТПериоды КАК ВТПериоды ЛЕВОЕ СОЕДИНЕНИЕ ВТПериоды КАК ВТПериоды1 ПО ВТПериоды.Период > ВТПериоды1.Период И (ВТПериоды1.ОтгрузкаКоДню <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) И (ВТПериоды.ОтгрузкаКоДню = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) СГРУППИРОВАТЬ ПО ВТПериоды.Период, ВТПериоды.ОтгрузкаКоДню ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТДатыОтгрузок.Период КАК Период, ЕСТЬNULL(ВТПериоды.ОтгрузкаКоДню, ВТДатыОтгрузок.ОтгрузкаКоДню) КАК ОтгрузкаКоДню ИЗ ВТДатыОтгрузок КАК ВТДатыОтгрузок ЛЕВОЕ СОЕДИНЕНИЕ ВТПериоды КАК ВТПериоды ПО ВТДатыОтгрузок.ПериодСДатойОтгрузки = ВТПериоды.Период |
|||
2
dka80
12.03.20
✎
17:41
|
Пронумеровать строки, найти максимальный номер предыдущей строки, где заполнена отсрочка, заполнить в нужной строке
|
|||
3
Жан Пердежон
12.03.20
✎
18:04
|
имхо,
не нужна тебе предыдущая строка и даже срез последних на каждую дату особо не поможет |
|||
4
GodCratOs
12.03.20
✎
18:09
|
Спасибо что откликнулись)
Вот решение... ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК ОстатокДолгаНаНачалоПериода, СУММА(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0)) КАК Отгружено, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОстатокДолгаНаКонецПериода, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ДопустимоеЧислоДнейЗадолженности, СУММА(ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > 0 ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК ОстатокДолга, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ОтсрочкаПлатежаКоДню, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплачено ПОМЕСТИТЬ ВтВзаиморасчеты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), Регистратор, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты СГРУППИРОВАТЬ ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВЫБОР КОГДА ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню = 0 ТОГДА МАКСИМУМ(ЕСТЬNULL(ВтВзаиморасчеты1.ОтсрочкаПлатежаКоДню, 0)) ИНАЧЕ ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню КОНЕЦ КАК ОтсрочкаПлатежаКоДню ПОМЕСТИТЬ ВтОтрочка ИЗ ВтВзаиморасчеты КАК ВтВзаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ ВтВзаиморасчеты КАК ВтВзаиморасчеты1 ПО ВтВзаиморасчеты.Период > ВтВзаиморасчеты1.Период И (ВтВзаиморасчеты1.ОтсрочкаПлатежаКоДню <> 0) СГРУППИРОВАТЬ ПО ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВтВзаиморасчеты.ОстатокДолгаНаНачалоПериода, ВтВзаиморасчеты.Отгружено, ВтВзаиморасчеты.Оплачено, ВтВзаиморасчеты.ОстатокДолгаНаКонецПериода, ВтВзаиморасчеты.ДопустимоеЧислоДнейЗадолженности, ВтОтрочка.ОтсрочкаПлатежаКоДню, РАЗНОСТЬДАТ(ВтВзаиморасчеты.Период, ВЫРАЗИТЬ(ВтОтрочка.ОтсрочкаПлатежаКоДню КАК ДАТА), ДЕНЬ) КАК Поле1 ИЗ ВтВзаиморасчеты КАК ВтВзаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ ВтОтрочка КАК ВтОтрочка ПО ВтВзаиморасчеты.Регистратор = ВтОтрочка.Регистратор |
|||
5
GodCratOs
12.03.20
✎
18:10
|
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК ОстатокДолгаНаНачалоПериода, СУММА(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0)) КАК Отгружено, СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК ОстатокДолгаНаКонецПериода, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ДопустимоеЧислоДнейЗадолженности, СУММА(ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) > 0 ТОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток, 0) - ЕСТЬNULL(ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0), 0) ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК ОстатокДолга, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ОтсрочкаПлатежаКоДню, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход КАК Оплачено ПОМЕСТИТЬ ВтВзаиморасчеты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(, КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), Регистратор, , Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты СГРУППИРОВАТЬ ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Организация, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, 0) > 0 ТОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период, ДЕНЬ, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты) ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход > 0 ТОГДА ВЫБОР КОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты > 0 ТОГДА ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ОтсрочкаОплаты ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВЫБОР КОГДА ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню = 0 ТОГДА МАКСИМУМ(ЕСТЬNULL(ВтВзаиморасчеты1.ОтсрочкаПлатежаКоДню, 0)) ИНАЧЕ ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню КОНЕЦ КАК ОтсрочкаПлатежаКоДню ПОМЕСТИТЬ ВтОтрочка ИЗ ВтВзаиморасчеты КАК ВтВзаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ ВтВзаиморасчеты КАК ВтВзаиморасчеты1 ПО ВтВзаиморасчеты.Период > ВтВзаиморасчеты1.Период И (ВтВзаиморасчеты1.ОтсрочкаПлатежаКоДню <> 0) СГРУППИРОВАТЬ ПО ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВтВзаиморасчеты.ОтсрочкаПлатежаКоДню ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтВзаиморасчеты.Период, ВтВзаиморасчеты.Регистратор, ВтВзаиморасчеты.ОстатокДолгаНаНачалоПериода, ВтВзаиморасчеты.Отгружено, ВтВзаиморасчеты.Оплачено, ВтВзаиморасчеты.ОстатокДолгаНаКонецПериода, ВтВзаиморасчеты.ДопустимоеЧислоДнейЗадолженности, ВтОтрочка.ОтсрочкаПлатежаКоДню, РАЗНОСТЬДАТ(ВтВзаиморасчеты.Период, ВЫРАЗИТЬ(ВтОтрочка.ОтсрочкаПлатежаКоДню КАК ДАТА), ДЕНЬ) КАК Поле1 ИЗ ВтВзаиморасчеты КАК ВтВзаиморасчеты ЛЕВОЕ СОЕДИНЕНИЕ ВтОтрочка КАК ВтОтрочка ПО ВтВзаиморасчеты.Регистратор = ВтОтрочка.Регистратор |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |