Имя: Пароль:
1C
1С v8
как правильно составить запрос?помогите
0 dreamoff
 
05.06.13
15:13
необходимо собрать счета на оплату,у которых есть частичная оплата через пко или вообще не оплачены.я дошел только вот до этого и дальше фантазии не доходит

ВЫБРАТЬ
   |    СчетНаОплату.Ссылка,
   |    СчетНаОплату.Контрагент,
   |    МАКСИМУМ(СчетНаОплату.СуммаДокумента),
   |    ВЫБОР
   |        КОГДА МАКСИМУМ(СчетНаОплату.СуммаДокумента) < Сумма(ПриходныйКассовыйОрдер.СуммаДокумента)
   |            ТОГДА Сумма(ПриходныйКассовыйОрдер.СуммаДокумента) - МАКСИМУМ(СчетНаОплату.СуммаДокумента)
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК Остаток
   |ИЗ
   |    Документ.СчетНаОплату КАК СчетНаОплату
   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
   |        ПО СчетНаОплату.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование
   |ГДЕ
   |      &УсловиеОтвет
   |    И СчетНаОплату.Дата <= &Дата
   |СГРУППИРОВАТЬ ПО
   |     СчетНаОплату.Ссылка,
   |     СчетНаОплату.Контрагент
1 viktor_vv
 
05.06.13
15:15
Может таки подходящий регистр поискать, типа взаиморасчетов или расчетов с контрагентами.
2 Никулин Леонид
 
05.06.13
15:17
и че пишет?
3 YouAreEmpty
 
05.06.13
15:17
(0) Ты просишь разобраться с запросом или решить за тебя задачу?
4 Rovan
 
гуру
05.06.13
15:19
в ЛЕВОЕ СОЕДИНЕНИЕ надо стыковать таблицу сумм оплат сгруппированную по ДокументОсвнование
5 YouAreEmpty
 
05.06.13
15:21
(4) Те же яйца только в профиль
6 dreamoff
 
05.06.13
15:26
(3) разобраться и научить.для меня это сложноватый запрос,не отрицаю
7 dreamoff
 
05.06.13
15:26
(2)я не уверен,что он пишет то что надо
8 toypaul
 
гуру
05.06.13
15:32
надо делать объединение. в первой части счета на оплату, во второй части данные по счетам из документам оплаты (свернутые по счету). после объединения сравнишь сумму счета и сумму оплаты
9 Никулин Леонид
 
05.06.13
15:33
создай тестовый документ, котор будет попадать в твой период (только он один, чтоб остальные не мешались) и тестируй запрос по этому документу. А вообще присоединюсь к (1) пожалуй более правильно будет выбирать из регистра
10 Infsams654
 
05.06.13
15:37
(0) а точно уверен что только по счетам на оплату? Могут оплаты производиться и без них, в рамках длинного договора
11 dreamoff
 
05.06.13
15:45
(10)необходимо выбирать именно неоплаченные счета
12 пыхтачокк
 
05.06.13
15:45
запрос к документу = моветон.
13 dreamoff
 
05.06.13
15:46
(9)а как по регистрам,если счет на оплату не делает в них движения?
14 пыхтачокк
 
05.06.13
15:48
(13) выбирай из регистров ПКО, документ-основание есть
15 пыхтачокк
 
05.06.13
15:49
а, ну только если "вообще не оплачены"... не проканает
16 dreamoff
 
05.06.13
15:54
это еще пол беды.оплата еще происходит и по банковской выписке,которая связана только договором со счетом(
17 YouAreEmpty
 
05.06.13
15:56
(12) Счета на оплату движений не делают - поэтому допустимо. Но все же лучше по регистру.
18 YouAreEmpty
 
05.06.13
16:06
(0) Счет на оплату у тебя на основании чего выписывается? заказа покупателю?
19 Никулин Леонид
 
05.06.13
16:12
какая конфигурация? Ты можешь сам посмотреть по каким регистрам делает движения документ. Находишь его в Конфигураторе в дереве объектов. открываешь. Переходишь на закладку Движения. Или попробуй в режиме Предприятие в панели инструментов найди "Движения документов по регистрам", но это не во всех конфигурациях есть
20 пыхтачокк
 
05.06.13
16:14
делай то, что советовали в (4)
ВЫБРАТЬ
ПКО.ДокументОснование,
СУММА(ПКО.Сумма) КАК СуммаДока
ПОМЕСТИТЬ ВТ_ПКО
ИЗ Документ.ПриходныйКассовыйОрдер КАК ПКО
СГРУППИРОВАТЬ ПО
ПКО.ДокументОснование
;

далее левое соединение основной таблицы с ВТ_ПКО по условию СчетНаОплату.Ссылка = ВТ_ПКО.ДокументОснование
в результирующую таблицу идут 3 поля: ссылка на док "счет на оплату", сумма счета на оплату и сумма оплаченная по ПКО, после на всю таблицу кидаешь условие вида ГДЕ сумма счета на оплату < сумма оплаты по ПКО ИЛИ сумма счета на оплату = 0. остаются счета неоплаченные совсем или оплаченные частично.
21 Infsams654
 
05.06.13
17:26
(20) и чти, что оплат может быть не только по ПКО, но и через р/сч (я уж не говорю про взаиморасчеты), кроме того, в ПКО или в ПП могут быть включены и совершенно другие оплаты, не связанные именно с этим счетом на оплату. Так что задача нетривиальная