Имя: Пароль:
1C
1С v8
Помогите понять запрос...
0 v_clim
 
16.07.13
16:32
Есть в УТ документ "Корректировка долга". У клиента по регистру взаиморасчетов долга нет а по регистру ДокументыВзаиморасчетов есть документы с плюсом и минусом на одну и ту же сумму. Мне надо закрыть эти документы, нов корретировку они не выводятся так как общего долга нет. Как перделать это запрос из корретировки долга, чтобы он вывел незакрытые локументы из регистра Взаиморасчеты по документам

ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента,
   ВзаиморасчетыСКонтрагентами.Сделка,
   ЕСТЬNULL(ВзаиморасчетыПоДокументам.ДокументРасчетовСКонтрагентом, НЕОПРЕДЕЛЕНО) КАК ДокументРасчетовСКонтрагентом,
   ЕСТЬNULL(ВзаиморасчетыПоДокументам.СуммаВзаиморасчетовОстаток, ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетовОстаток) КАК СуммаВзаиморасчетовОстаток,
   ВЫБОР
       КОГДА ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента.ВалютаВзаиморасчетов = &ВалютаРегламентированногоУчета
           ТОГДА ЕСТЬNULL(ВзаиморасчетыПоДокументам.СуммаВзаиморасчетовОстаток, ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетовОстаток)
       ИНАЧЕ ВЫБОР
               КОГДА КурсыВалютСрезПоследних.Кратность ЕСТЬ NULL
                       ИЛИ КурсыВалютСрезПоследних.Кратность = 0
                   ТОГДА ЕСТЬNULL(ВзаиморасчетыПоДокументам.СуммаВзаиморасчетовОстаток, ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетовОстаток) * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0)
               ИНАЧЕ ЕСТЬNULL(ВзаиморасчетыПоДокументам.СуммаВзаиморасчетовОстаток, ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетовОстаток) * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) / КурсыВалютСрезПоследних.Кратность
           КОНЕЦ
   КОНЕЦ КАК СуммаРеглОстаток,
   ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента.ВалютаВзаиморасчетов,
   ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК КурсВзаиморасчетов,
   ЕСТЬNULL(КурсыВалютСрезПоследних.Кратность, 0) КАК КратностьВзаиморасчетов
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
           ,
           Контрагент = &Контрагент
               И Организация = &Организация
               И ДоговорКонтрагента.ВалютаВзаиморасчетов = &ВалютаДокумента) КАК ВзаиморасчетыСКонтрагентами
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, ) КАК КурсыВалютСрезПоследних
       ПО ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента.ВалютаВзаиморасчетов = КурсыВалютСрезПоследних.Валюта
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
               ,
               Контрагент = &Контрагент
                   И Организация = &Организация
                   И ДоговорКонтрагента.ВалютаВзаиморасчетов = &ВалютаДокумента) КАК ВзаиморасчетыПоДокументам
       ПО ВзаиморасчетыСКонтрагентами.Сделка = ВзаиморасчетыПоДокументам.Сделка
           И ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента = ВзаиморасчетыПоДокументам.ДоговорКонтрагента
ГДЕ
   ЕСТЬNULL(ВзаиморасчетыПоДокументам.СуммаВзаиморасчетовОстаток, ВзаиморасчетыСКонтрагентами.СуммаВзаиморасчетовОстаток) = 0
1 v_clim
 
16.07.13
16:48
up-up
2 v_clim
 
16.07.13
17:21
up-up-up
3 v_clim
 
16.07.13
17:37
Ладно... буду сам копать...
4 Trainee
 
16.07.13
17:42
Запрос как запрос ... Показывает долг/переплату по Контрагенту, Организации, Валюте, за одно сразу находят курс для этой валюты. В чем вопрос?

Зачем 2 регистра взаиморасчетов? Читай справку.
5 Trainee
 
16.07.13
17:44
Все, нашел вопрос)) Переделывать надо начинать с "РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки". Потому что Остатки = 0(есть документ и в + и в -)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс