Имя: Пароль:
1C
1С v8
8.1. Взаиморасчеты с контрагентами. Что не так в запросе?
0 Надежда25
 
20.04.16
14:19
Помогите, пожалуйста, найти ошибку в следующем запросе:
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор КАК Документ,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодСекунда КАК Дата,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодМесяц КАК Месяц,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодГод КАК Год,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрНачальныйОстаток) КАК НачальныйОстаток,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрПриход) КАК СтоимостьРеализации,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрРасход) КАК СуммаОплаты,
    СУММА(ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрКонечныйОстаток) КАК КонечныйОстаток,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.ДокументОснование.Ссылка КАК ОснованиеПлатежа,
    СчетНаОплатуПокупателю.СуммаДокумента КАК СуммаСчета
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, {(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), СЕКУНДА, 1))}, Авто, , Контрагент.Родитель.Код = "000000005") КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор = СчетНаОплатуПокупателю.Ссылка
ГДЕ
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора.Ссылка = &ВидДоговора

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодСекунда,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодМесяц,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ПериодГод,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент,
    ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.ДокументОснование.Ссылка,
    СчетНаОплатуПокупателю.СуммаДокумента
&ВидДоговора - СПокупателем.

В отчете на СКД вида:
Год
   Месяц
     ДетальныеЗаписи (Дата, Контрагент, НачальныйОстаток, СтоимостьРеализации, СуммаОплаты, КонечныйОстаток, Документ, СуммаСчета, ОснованиеПлатежа)

конечный остаток предыдущего месяца не равен начальному остатку последующего месяца. Где ошибка?
1 asady
 
20.04.16
14:28
(0) остатки по регистратору гугли
2 lxndr
 
20.04.16
14:28
проверь роли полей СКД
3 Надежда25
 
20.04.16
14:56
(2) Роли полей:
Период 1 - Документ,
Период 2 - Дата,
Период 3 - Месяц,
Период 4 - Год.
Дело в том, что если убрать условие
ГДЕ   ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.ДоговорКонтрагента.ВидДоговора.Ссылка = &ВидДоговора
все работает нормально. Но мне нужны взаиморасчеты с контрагентами только по виду договаров "С покупателем".
4 alle68
 
20.04.16
15:00
(0) Во 2-м параметре ВТ.
5 Надежда25
 
20.04.16
15:11
(4)Во 2-м параметре ВТ - поясните, пожалуйста.
6 Timon1405
 
20.04.16
15:18
Нужно в запросе вытащить договор, вид договора и правильно настроить роли полей, подробности на ИТС http://its.1c.ru/db/metod8dev#content:3093:hdoc:_top
7 Ващета
 
20.04.16
15:21
Странно, что не написали ещё, что условие надо перенести в параметры виртуальной таблицы
8 Timon1405
 
20.04.16
15:22
(7) это еще нормально по сравнению с  ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор.ДокументОснование.Ссылка
9 Михаил Козлов
 
20.04.16
15:30
Странно, что счет на оплату делает движения по РН ВзаиморасчетыСКонтрагентами:
"ПО ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Регистратор = СчетНаОплатуПокупателю.Ссылка".
10 Надежда25
 
20.04.16
15:32
Спасибо, почитаю, и временную таблицу попробую.
11 alle68
 
20.04.16
15:41
(5) Не следует добавлять секунду (ДОБАВИТЬКДАТЕ) во 2-м параметре.
12 Надежда25
 
21.04.16
10:14
Ващета (7), большое спасибо!
Так все заработало правильно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший