|
Произвольный запрос к динамическому списку регистра сведений | ☑ | ||
---|---|---|---|---|
0
AlexeyVM
01.06.17
✎
04:00
|
Добрый день.
Не работает запрос. Есть регистр сведений (измерения - Кошелек, Отправитель, УИД(уникальный идентификатор); ресурс - сумма) и есть регистр накопления (измерения Кошелек, источник, УИД; ресурс - сумма). У регистра сведений есть произвольная форма выбора, в которой к динамическом списке пишу произвольный запрос. Также есть форма документа приизменении даты которой открывается эта произвольная форма регистра сведений. В динамический список мне надо отобрать все записи из регистра сведений, у которых УИД не равен УИД в регистре накопления и день периода = дню введенной даты. Пишу вот так: ВЫБРАТЬ РегистрСведенийПериодическийПриходСрезПоследних.Период КАК Период, РегистрСведенийПериодическийПриходСрезПоследних.Регистратор КАК Регистратор, РегистрСведенийПериодическийПриходСрезПоследних.НомерСтроки КАК НомерСтроки, РегистрСведенийПериодическийПриходСрезПоследних.Активность КАК Активность, РегистрСведенийПериодическийПриходСрезПоследних.Кошелек КАК Кошелек, РегистрСведенийПериодическийПриходСрезПоследних.Отправитель КАК Отправитель, РегистрСведенийПериодическийПриходСрезПоследних.Сумма КАК Сумма, РегистрСведенийПериодическийПриходСрезПоследних.УИД КАК УИД ИЗ РегистрСведений.ПериодическийПриход.СрезПоследних КАК РегистрСведенийПериодическийПриходСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РегистрПоступления КАК РегистрПоступления ПО РегистрСведенийПериодическийПриходСрезПоследних.УИД <> РегистрПоступления.УИД ГДЕ ДЕНЬ(РегистрСведенийПериодическийПриходСрезПоследних.Период) = &ТекДата Выдает ошибку: Обнаружено дублирование ключевых значений в колонках: "...." и перечислены все колонки. Не пойму как исправить, помогите пожалуйста |
|||
1
DmVl76
01.06.17
✎
04:11
|
(0)В консоли гляньте что выдает запрос-у вас тут написано по сути полное соединение регистров сведений и накоплений (за исключением равных уидов). Понятно, что дубли возникают-в динамическом списе не должно такого быть, записи должны быть уникальны.
|
|||
2
DmVl76
01.06.17
✎
04:14
|
И задача не совсем понятна. Допустим есть РС с УИД 1, 2, 3, 4 и РН с уид 1,2,3 должен выдаваться только уид=4?
|
|||
3
AlexeyVM
01.06.17
✎
04:23
|
(2)
Да, должна выдаваться только уид = 4 |
|||
4
AlexeyVM
01.06.17
✎
04:27
|
запрос выдает 20 строк, по 5 на каждый не совпадающий УИД
|
|||
5
DmVl76
01.06.17
✎
04:33
|
(4) Ну все верно, выдает в моем примере
1 (с 2) 1 (с 3) 2 2 3 3 4 4 4 Попробуйте вместо ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.РегистрПоступления КАК РегистрПоступления ПО РегистрСведенийПериодическийПриходСрезПоследних.УИД <> РегистрПоступления.УИД ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РегистрПоступления КАК РегистрПоступления ПО РегистрСведенийПериодическийПриходСрезПоследних.УИД = РегистрПоступления.УИД ГДЕ РегистрПоступления.УИД ЕСТЬ NULL |
|||
6
AlexeyVM
01.06.17
✎
10:52
|
(5) Ну да, пишу теперь вот так. Только регистр накопления поменял на регистр сведений, записи туда закидываю.
"ВЫБРАТЬ | ПериодическийПриходСрезПоследних.Период КАК Период, | ПериодическийПриходСрезПоследних.Регистратор КАК Регистратор, | ПериодическийПриходСрезПоследних.НомерСтроки КАК НомерСтроки, | ПериодическийПриходСрезПоследних.Активность КАК Активность, | ПериодическийПриходСрезПоследних.Кошелек КАК Кошелек, | ПериодическийПриходСрезПоследних.Отправитель КАК Отправитель, | ПериодическийПриходСрезПоследних.Сумма КАК Сумма, | ПериодическийПриходСрезПоследних.УИД КАК УИД |ИЗ | РегистрСведений.ПериодическийПриход.СрезПоследних КАК ПериодическийПриходСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодическиеПроведенные.СрезПоследних КАК ПериодическиеПроведенные | ПО ПериодическийПриходСрезПоследних.УИД = ПериодическиеПроведенные.УИД |ГДЕ | ДЕНЬ(ПериодическийПриходСрезПоследних.Период) = ДЕНЬ(&ТекДата) | И МЕСЯЦ(ПериодическийПриходСрезПоследних.Период) <= МЕСЯЦ(&ТекДата) | И ПериодическиеПроведенные.УИД ЕСТЬ NULL"; Как бы в целом это хорошо, но забыл упомянуть вначале, что эти документы должны отображаться например в следующем месяце. Т.е. смысл такой - (в РС ПериодическийПриход записываются запланированные поступления на какие-то конкретные дни, когда в этом месяце я провожу это поступление, то сегодня оно больше не отображается, а в следующем месяце заново отображаются все поступления, пока их не проведешь). А в этом запросе, если 1 раз провел, то больше она не будет отбираться |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |