|
Выбор записи из регистра сведений. | ☑ | ||
---|---|---|---|---|
0
Ly_Alena
14.09.16
✎
05:18
|
Доброе утро! Какой-то тупняк!
Нужно выбрать из регистра сведений последнюю запись удовлетворяющую усовиям: регистратор документ поступления, контрагент регистратора не ИП "Пупкин" и период меньше 01.09. Если брать РС срез последних, и последняя запись с контрагентом ИП Пупкин - то он возвращает пусто. Т.е. с документом регистратором и с датой прокатывает - он отбирает как положено, но как только дело касается контрагента - выводит пусто. Текст запроса: ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоПоступления, ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент КАК ПоследнийПоставщик, ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.Регистратор ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних ГДЕ ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура И ЦеныНоменклатурыСрезПоследних.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг И НЕ ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент = &Организация |
|||
1
AneJIbcuH
14.09.16
✎
05:49
|
Доброе утро!
"ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент КАК ПоследнийПоставщик" Явно же Регистратор - составной тип, значит так в запросе писать нельзя! "РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних ГДЕ ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура" И как такое писать можно?? Вы только учитесь? По делу: Может все цены только по контрагенту ИП "Пупкин"? |
|||
2
Ly_Alena
14.09.16
✎
06:09
|
(1) А как можно писать? Да регистратор составной. Цены не только по Пупкину.
|
|||
3
Ly_Alena
14.09.16
✎
06:11
|
(2) если не срез последних брать, просто РС - то регистратор.контрагент берет. По мне если в регистраторе нет контрагента, то запрос 0. Проблема не ясна с составным регистратором.
|
|||
4
AneJIbcuH
14.09.16
✎
06:12
|
А так задачка немного сложнее, вам необходимо получить список периодов с ценами (по вашим условиям) и я бы сделал это так:
ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоПоступления, ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследних.Регистратор Как Документ.ПоступлениеТоваровУслуг).Контрагент КАК ПоследнийПоставщик, ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.Регистратор ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период,Номенклатура = &Номенклатура И ВЫРАЗИТЬ(Регистратор Как Документ.ПоступлениеТоваровУслуг).Контрагент <> &Организация) КАК ЦеныНоменклатурыСрезПоследних Помещаем во временную таблицу, следующим пакетом из этой ВТ получим максимальный период, опять помещаем в ВТ и окончательный пакет: Левое соединение второй ВТ с первой ВТ по периоду. |
|||
5
Ly_Alena
14.09.16
✎
06:29
|
(4) Попробую - спасибо!
|
|||
6
Ly_Alena
14.09.16
✎
06:34
|
(4) Это просто божественно! Спасибо, все работает как надо.
|
|||
7
AneJIbcuH
14.09.16
✎
06:40
|
Надеюсь ошибки написания запроса на будущее свои учли ;)
|
|||
8
Ly_Alena
14.09.16
✎
06:43
|
(7) Учту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |