Имя: Пароль:
1C
1С v8
Нужен совет по запросу
0 Vadimugatu
 
13.08.12
11:52
Здравствуйте форумчане. В общем мне нужно сделать отчет в котором было бы видно док. РТиУ, сумму по этому документу, то есть это сумма и будет долгом, Также на основании этого документа создаются документы Приходный кассовый ордер, Платежное поручение входящее и Возврат товаров от покупателей. В общем отчет по оплате по документам реализации. Сейчас пишу запрос, проверяю в консоли, в идеале хочу получить к примеру 1 строку в которой видно все: долг по документу, оплату и возврат. Написал      запрос следующего вида: (заранее извиняюсь так как не понял как здесь писать текст в виде 1с-кода)
///////////////////////////
ВЫБРАТЬ
Реализации.Ссылка,
Реализации.СуммаДокумента,
Платежки.СуммаПлатежки,
Приходники.СуммаПриходников
ИЗ
(ВЫБРАТЬ
 РеализацияТоваровУслуг.Ссылка КАК Ссылка,
 РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента,
 СУММА(ВозвратТоваровОтПокупателя.СуммаДокумента) КАК СуммаВозврата
ИЗ
 Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг) КАК Реализации
   
 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
  ПлатежноеПоручениеВходящее.ДокументОснование КАК ДокументОснование,
  СУММА(ПлатежноеПоручениеВходящее.СуммаДокумента) КАК СуммаПлатежки
 ИЗ
  Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
 СГРУППИРОВАТЬ ПО
  ПлатежноеПоручениеВходящее.ДокументОснование) КАК Платежки
 ПО Реализации.Ссылка = Платежки.ДокументОснование

 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
  ПриходныйКассовыйОрдер.ДокументОснование КАК ДокументОснование,
  СУММА(ПриходныйКассовыйОрдер.СуммаДокумента) КАК СуммаПриходников
 ИЗ
  Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
 СГРУППИРОВАТЬ ПО
  ПриходныйКассовыйОрдер.ДокументОснование) КАК Приходники
 ПО Реализации.Ссылка = Приходники.ДокументОснование

//  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
//   ВозвратТоваровОтПокупателя.Товары.ДокументПартии КАК ДокументОснование,
//   СУММА(ВозвратТоваровОтПокупателя.СуммаДокумента) КАК СуммаВозврат
//  ИЗ
//   Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя,
//  СГРУППИРОВАТЬ ПО
//   ВозвратТоваровОтПокупателя.ДокументПартии) КАК Возврат
//  ПО Реализации.Ссылка = ВозвратТоваровОтПокупателя.ДокументПартии
 

ГДЕ
 Реализации.Ссылка.Контрагент = &Контрагент
 И Реализации.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

АВТОУПОРЯДОЧИВАНИЕ
///////////////////////////////////

Секции с приходниками и платежками работают, все высчитывается правильно, НО при добавлении секции с "возвратом" (Закоментированная секция)  появилась проблема. Дело в том что у документа Возврат нет реквизита на документ основание. Есть лишь табличная часть "Товары" в которой и есть ссылка на документ основание "документ партии". Соответственно я не могу сгруппировать по данным из табличной части, 1с ругается. Подскажите каким образом можно решить эту проблему.
1 Sasha_H
 
13.08.12
11:55
Есть еще и ТЧ где хранится реализация по возврату. Ну такую фигню желательно делать по регистру взаиморасчеты с контрагентом в разрезе регистратора, а если включен в договорах режим ведения взаиморасчетов по документам, так тогда лучше брать по регистру "ВзаиморасчетыСКонтрагентамиПоДокументахРасчетов"
2 Ksandr
 
13.08.12
11:56
Вместо вложенного запроса используй ВТ производительнее будет
3 Vadimugatu
 
13.08.12
11:58
Взаиморасчеты ведутся по договору. Про эту ТЧ я и говорю, только в ней и есть ссылка на документ реализации.
4 Vadimugatu
 
13.08.12
11:59
а что за ВТ не совсем понял, я недавно только начал программировать
5 Sasha_H
 
13.08.12
12:00
(4) это временная таблица. но в данном случае запрос вообще не верен даже если его и делать через временные таблицы. Запрос надо писать к регистру накопления в разрезе регистратора.
6 Sasha_H
 
13.08.12
12:01
(5) дополню, регистраторы нужны в том случае когда необходимо показать по каким документам ишли оплаты и возвраты, а если тупо посмотреть долг, дык просто к регистру накопления по взаиморасчетам (остаткиИОбороты)
7 Vadimugatu
 
13.08.12
12:02
Но если его делать к регистру то у последнего не видно на основании какого документа проводился возврат или платежка?
8 Sasha_H
 
13.08.12
12:03
как ведутся взаиморасчеты  договора? если есть флаг в разрезе документов?
9 Vadimugatu
 
13.08.12
12:05
(6) Это как? Открыл я этот регистр, там только документы и суммы в разрезе договоров, поле сделка пустая.
10 Vadimugatu
 
13.08.12
12:07
Я с этим запросом 2 дня мучился, не охота на этом его оставлять, думаю можно как то исхитрится и сделать, думаю в секции с возвратом необходимо вытаскивать ссылки на возврат, а потом сгруппировывать по ним, но как не пойму.
11 Sasha_H
 
13.08.12
12:10
Открываешь движение реализации и смотришь есть ли по регистру "Взаиморасчеты с контрагентами по документу расчетов" если есть. тогда данные с этого регистра берешь по измерению документРасчетов
12 Vadimugatu
 
13.08.12
12:16
Такого регистра там нет. Есть только "взаиморасчеты с контрагентами"
13 Sasha_H
 
13.08.12
12:25
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

  ВозвратТоваровОтПокупателя.Товары.ДокументПартии КАК ДокументОснование,

  СУММА(ВозвратТоваровОтПокупателя.СуммаДокумента) КАК СуммаВозврат

 ИЗ

  Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя,

 СГРУППИРОВАТЬ ПО

  ВозвратТоваровОтПокупателя.ДокументПартии) КАК Возврат

 ПО Реализации.Ссылка = Возврат.ДокументОснование
14 Vadimugatu
 
13.08.12
12:33
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
  ВозвратТоваровОтПокупателя.Товары.ДокументПартии КАК ДокументОснование,
  СУММА(ВозвратТоваровОтПокупателя.СуммаДокумента) КАК СуммаВозврат
 ИЗ
  Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
 СГРУППИРОВАТЬ ПО
  ВозвратТоваровОтПокупателя.Товары.ДокументПартии ) КАК Возврат
 ПО Реализации.Ссылка = Возврат.ДокументОснование

После СГРУППИРОВАТЬ ПО я думаю нужно указать Товары, если не указать то 1с ругается на ненахождения данного поля. Если указать то сообщение о группировках верхнего уровня и таблицам.
15 Vadimugatu
 
13.08.12
12:46
в первых двух вложенных запросах я группирую по реквизиту из документов, в случае с документом возврат реквизит на реализацию вытаскивается из табличной части возврата "Товары", по нему я не могу группировать.