Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Выбор записи из регистра сведений.

Выбор записи из регистра сведений.
Я
   Ly_Alena
 
14.09.16 - 05:18
Доброе утро! Какой-то тупняк!
Нужно выбрать из регистра сведений последнюю запись удовлетворяющую усовиям: регистратор документ поступления, контрагент регистратора не ИП "Пупкин" и период меньше 01.09.
Если брать РС срез последних, и последняя запись с контрагентом ИП Пупкин - то он возвращает пусто.
Т.е. с документом регистратором и с датой прокатывает - он отбирает как положено, но как только дело касается контрагента - выводит пусто.
Текст запроса:
ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоПоступления,
    ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент КАК ПоследнийПоставщик,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЦеныНоменклатурыСрезПоследних.Регистратор
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
    ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
    И ЦеныНоменклатурыСрезПоследних.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    И НЕ ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент = &Организация
 
 
   AneJIbcuH
 
1 - 14.09.16 - 05:49
Доброе утро!
"ЦеныНоменклатурыСрезПоследних.Регистратор.Контрагент КАК ПоследнийПоставщик"
Явно же Регистратор - составной тип, значит так в запросе писать нельзя!

 "РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
    ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура"

И как такое писать можно?? Вы только учитесь?

По делу: Может все цены только по контрагенту ИП "Пупкин"?
   Ly_Alena
 
2 - 14.09.16 - 06:09
(1) А как можно писать? Да регистратор составной. Цены не только по Пупкину.
   Ly_Alena
 
3 - 14.09.16 - 06:11
(2) если не срез последних брать, просто РС - то регистратор.контрагент берет. По мне если в регистраторе нет контрагента, то запрос 0. Проблема не ясна с составным регистратором.
   AneJIbcuH
 
4 - 14.09.16 - 06:12
А так задачка немного сложнее, вам необходимо получить список периодов с ценами (по вашим условиям) и я бы сделал это так:

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура, 
    ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоПоступления,
    ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследних.Регистратор Как Документ.ПоступлениеТоваровУслуг).Контрагент КАК ПоследнийПоставщик,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ЦеныНоменклатурыСрезПоследних.Регистратор 
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период,Номенклатура = &Номенклатура И  ВЫРАЗИТЬ(Регистратор Как Документ.ПоступлениеТоваровУслуг).Контрагент <> &Организация) КАК ЦеныНоменклатурыСрезПоследних

Помещаем во временную таблицу, следующим пакетом из этой ВТ получим максимальный период, опять помещаем в ВТ и окончательный пакет: Левое соединение второй ВТ с первой ВТ по периоду.
   Ly_Alena
 
5 - 14.09.16 - 06:29
(4) Попробую - спасибо!
   Ly_Alena
 
6 - 14.09.16 - 06:34
(4) Это просто божественно! Спасибо, все работает как надо.
   AneJIbcuH
 
7 - 14.09.16 - 06:40
Надеюсь ошибки написания запроса на будущее свои учли ;)
   Ly_Alena
 
8 - 14.09.16 - 06:43
(7) Учту

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует