|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
Есть справочник Абоненты, абоненты производят оплату по нескольким пунктам(пункты заданы в Перечислении, их количество может меняться). Если произошла оплата хотя бы по 1 пункту - данные заносятся в РегистрСведений.ОплатаПроизведена. Если не по одному из пунктов не производилась оплата, то абоненты в РегистрСведений.ОплатаПроизведена не попадают. Надо: выбрать неплательщиков, у которых нет оплаты вообще и в разрезе пунктов (из Перечисления) - т.е. по какому из пунктов нет оплаты...Причем эта информация ведется несколько месяцев и в каком-то из месяцев абонент платил, а каком-то нет, т.е. еще нужно это как-то с учетом даты, но можно хотя бы без даты. пожалуйста... очень нужно... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 10:54 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
С одной стороны в РегистреСведений надо делать перебор по пунктам - по какому нет оплаты и плюс абоненты из справочника, которые вообще не платили, т.е. надо найти разницу между РегистормСведений и Справочником, в sql это функция Minus, а в 1С как мне грубо говоря из СправочникАбоненты вычесть РегистрСведений.ОплатаПроизведена? тогда можно сделать сцеплением 2-х запросов - один минусовки будет брать, а другой из РегистраСведений пункты оплат ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 13:39 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
Что то типа такого должно быть: ВЫБРАТЬ Абоненты.Ссылка КАК Абоненты, ВЫБОР КОГДА ОплатаПроизведена.БылаОплата ЕСТЬ NULL ТОГДА "Неплательщик" ИНАЧЕ "Плательщик" КОНЕЦ КАК СтатусКонтрАгента, Контрагенты.ПеречислениеПунктОплаты КАК ПунктОплаты ИЗ Справочник.Абоненты КАК Абоненты ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОплатаПроизведена КАК ОплатаПроизведена ПО (ОплатаПроизведена.Абоненты = Абоненты.Ссылка И ОплатаПроизведена.ПеречислениеПунктОплаты = Абонент.ПунктОплаты) УПОРЯДОЧИТЬ ПО СтатусКонтрАгента Т.е. ты выбираешь всех абонентов, а потом у тех, в которых не находит соотв. записи в регистре сведений (связь через Абонента и твое перечисление), тех будет выводить как неплательщиков, у тех, кто есть - плательщики. Добавь группировки по Реквизиту и абоненту потом, чтобы можно было итоги оплат выводить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 13:43 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
Если хочешь только по неплательщикам, засунь запрос в подзапрос, а в основном запросе ставь условие "Подзапрос.СтатусКонтрАгента=""Неплательщик"". ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 13:51 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
svaroha! Спасибо! Буду дерзать!!! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 13:56 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
не подойдет... признака "ОплатаПроизведена" нет и поэтому Выбор Когда.....То... не подходит, если была хоть какая-нибудь оплата - то в регистре уже есть запись, а если не было, то никаких пометок насчет оплаты нет... да и то не галочка Оплачен-Неоплачен, а по пустому значению надо проверять... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 14:01 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
Ну я же не знаю полностью структуру твоего регистра и справочника. Смысл вот в чем:выбираешь все записи номенклатуры в разрезе твоего перечисления ВидыОплаты (т.е. у тебя будут все возможные варианты видовОплаты по Абоненту). По каким есть запись в регистре сведений, те оплачены, а по которым нету записи (null )- те без оплаты болтаются. Связь происх. через элемент спр. Абоненты и реквизит ВидОплаты (ну или как они у тебя называются). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 14:39 |
|
Хитрый запрос, Помогите!!!
|
|||
---|---|---|---|
#18+
svarohaНу я же не знаю полностью структуру твоего регистра и справочника. Смысл вот в чем:выбираешь все записи номенклатуры в разрезе твоего перечисления ВидыОплаты (т.е. у тебя будут все возможные варианты видовОплаты по Абоненту). По каким есть запись в регистре сведений, те оплачены, а по которым нету записи (null )- те без оплаты болтаются. Связь происх. через элемент спр. Абоненты и реквизит ВидОплаты (ну или как они у тебя называются). Дошло! Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 14:52 |
|
|
start [/forum/topic.php?fid=28&msg=35419585&tid=1524615]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 140ms |
0 / 0 |