|
Срез последних (виртуальная таблица) | ☑ | ||
|---|---|---|---|---|
|
0
LamerSuper
02.12.08
✎
17:03
|
Возможно напишу глупость но такой вопрос. Платформа 8.1.11.67.
1 Случай: Если есть регистр сведений в котором периодичность в пределах регистратора и режим записи подчинение регистратору но регистраторами может быть несколько документов то срез последних на дату берется в разрезе по типу документа регистратора. 2 Случай: Есть регистр сведених периодичность в пределах секунды и запись независимо от регистратора. Срез последних на дату не работает. Не берется 1 запись. Не ругайте сильно но я всегда считал что срез последних это виртуальная таблица именно на дату среза независимо от всякой другой бойды. Я не прав? |
|||
|
1
Маркетолог
02.12.08
✎
17:05
|
(0) срез последних это виртуальная таблица именно на дату среза
|
|||
|
2
LamerSuper
02.12.08
✎
17:06
|
В жизни оказалось что не так
|
|||
|
3
Маркетолог
02.12.08
✎
17:10
|
(2) Покажи запрос
|
|||
|
4
LamerSuper
02.12.08
✎
17:13
|
:))))))
ЗапросОбъектовМВТ = Новый Запрос; ЗапросОбъектовМВТ.МенеджерВременныхТаблиц = НОВЫЙ МенеджерВременныхТаблиц; ЗапросОбъектовМВТ.Текст = "ВЫБРАТЬ | НоменклатурныеГруппы.Ссылка КАК Объект, | НоменклатурныеГруппы.ВидНаправленияРСУ КАК ВидНаправления, | НоменклатурныеГруппы.НомерНаправленияРСУ КАК НомерНаправления, | НоменклатурныеГруппы.Проект.ПриобъектныйСклад КАК ПриобъектныйСклад, | НоменклатурныеГруппы.Проект КАК Проект, | ВЫБОР | КОГДА СостояниеОбъектаОНОФСрезПоследних.РазрешенаОтгрузка = ИСТИНА | И СостояниеОбъектаОНОФСрезПоследних.ДатаОкончания >= &ДатаАктуальности И СостояниеОбъектаОНОФСрезПоследних.ДатаНачала <= &ДатаАктуальности | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ОтгрузкаРазрешена, | СостояниеОбъектаОНОФСрезПоследних.ДатаОкончания, | СостояниеОбъектаОНОФСрезПоследних.ДатаНачала"; Если Таблица = ОбъектыМБП тогда ЗапросОбъектовМВТ.Текст = ЗапросОбъектовМВТ.Текст + ",ЕСТЬNULL(ДопЗатратыПроектаОбороты.ОбъемОборот, 0) КАК Всего, | ЕСТЬNULL(НезавершенноеПроизводствоОстатки.СтоимостьОстаток, 0) КАК Израсходовано"; КонецЕсли; ЗапросОбъектовМВТ.Текст = ЗапросОбъектовМВТ.Текст + " ПОМЕСТИТЬ Объекты ИЗ | РегистрСведений.СостояниеОбъектаОНОФ.СрезПоследних( | &ДатаАктуальности,"+?(ВсеОбъекты,"","РазрешенаОтгрузка = ИСТИНА И ДатаОкончания >= &ДатаАктуальности И ДатаНачала <= &ДатаАктуальности")+") КАК СостояниеОбъектаОНОФСрезПоследних | "+?(ВсеОбъекты,"ЛЕВОЕ ","ВНУТРЕННЕЕ ")+"СОЕДИНЕНИЕ Справочник.НоменклатурныеГруппы КАК НоменклатурныеГруппы | ПО СостояниеОбъектаОНОФСрезПоследних.Объект = НоменклатурныеГруппы.Ссылка"; Если Таблица = ОбъектыМБП тогда ЗапросОбъектовМВТ.Текст = ЗапросОбъектовМВТ.Текст + " ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДопЗатратыПроекта.Обороты(, &ДатаАктуальности, , Статья = &СтатьяМБП) КАК ДопЗатратыПроектаОбороты | ПО НоменклатурныеГруппы.Проект = ДопЗатратыПроектаОбороты.Проект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НезавершенноеПроизводство.Остатки(&ДатаАктуальности, СтатьяЗатрат = &СтатьяМБП) КАК НезавершенноеПроизводствоОстатки | ПО НоменклатурныеГруппы.Ссылка = НезавершенноеПроизводствоОстатки.НоменклатурнаяГруппа.Ссылка"; КонецЕсли; ЗапросОбъектовМВТ.УстановитьПараметр("ДатаАктуальности", ДатаАктуальности); ЗапросОбъектовМВТ.УстановитьПараметр("СтатьяМБП",константы.СтатьяЗатратМБП.Получить()); Результат = ЗапросОбъектовМВТ.Выполнить(); ЗапросОбъектов=Новый Запрос("ВЫБРАТЬ * ИЗ Объекты"); ЗапросОбъектов.МенеджерВременныхТаблиц=ЗапросОбъектовМВТ.МенеджерВременныхТаблиц; Результат=ЗапросОбъектов.Выполнить().Выгрузить(); |
|||
|
5
LamerSuper
02.12.08
✎
17:15
|
бщий смысл есть Регистр сведений состояние объектов в нем ДатаНачала проекта и Дата окончания. В регистре несколько записей.
Кусок кода: вроде правильный: ЗапросОбъектовМВТ.Текст = ЗапросОбъектовМВТ.Текст + " ПОМЕСТИТЬ Объекты ИЗ | РегистрСведений.СостояниеОбъектаОНОФ.СрезПоследних( | &ДатаАктуальности,"+?(ВсеОбъекты,"","РазрешенаОтгрузка = ИСТИНА И ДатаОкончания >= &ДатаАктуальности И ДатаНачала <= &ДатаАктуальности")+") КАК СостояниеОбъектаОНОФСрезПоследних Но он не вернет 1 запись последнюю. |
|||
|
6
v_rtex
02.12.08
✎
17:16
|
а если убрать ПОМЕСТИТЬ, выборка какая-нибудь возвращается?..
|
|||
|
7
Маркетолог
модератор
02.12.08
✎
17:21
|
(5) Попробуй убрать условие:
"+?(ВсеОбъекты,"","РазрешенаОтгрузка = ИСТИНА И ДатаОкончания >= &ДатаАктуальности И ДатаНачала <= &ДатаАктуальности")+" |
|||
|
8
LamerSuper
02.12.08
✎
17:23
|
Выборка и с поместить возвращается и помещается
|
|||
|
9
LamerSuper
02.12.08
✎
17:27
|
(7) Этот как раз нужное условие. Все из за него. Понимаю что запрос не для типовой но прошлые разы когда писал вопросы все писали выложи типа запрос. Я отвечал что не типовая. Все равно не понять надо вникать в конфу. Народ обижался. Вот и выкладываю запрос.
|
|||
|
10
hhhh
02.12.08
✎
17:30
|
(2) там еще зависит от измерений. Для каждого набора значений измерений свой срез. Например, если у тебя измерение номенклатура и в справочнике номенклатуре 100000 элементов, то существует 100000 различных срезов на требуемую дату.
|
|||
|
11
Маркетолог
02.12.08
✎
17:34
|
(9)Тогда утверждение в (0) неверно:))
Есть лиуверенность что это условие выполняется для строки которая не попадает ? |
|||
|
12
LamerSuper
02.12.08
✎
17:41
|
Грубо говоря:
счас 02/12/08 в Регистре сведений записи Дата Записи ДатаНачала ДатаКонца 1 02/12/08 16:00 01/10/08 02/10/08 2 02/12/08 16:01 10/12/08 12/12/08 3 02/12/08 16:02 01/12/08 05/12/08 4 02/12/08 16:03 01/10/08 02/10/08 Дык срез последних этого запроса должен вернуть 4 запись а он еще и на 3 запись смотрит. |
|||
|
13
НЕА123
02.12.08
✎
17:42
|
а зачем, если в условии уже все есть?
| ВЫБОР | КОГДА СостояниеОбъектаОНОФСрезПоследних.РазрешенаОтгрузка = ИСТИНА | И СостояниеОбъектаОНОФСрезПоследних.ДатаОкончания >= &ДатаАктуальности И СостояниеОбъектаОНОФСрезПоследних.ДатаНачала <= &ДатаАктуальности | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ОтгрузкаРазрешена, |
|||
|
14
LamerSuper
02.12.08
✎
17:43
|
(13) Чтоб уменьшить виртуальную таблицу.
|
|||
|
15
hhhh
02.12.08
✎
17:44
|
(12) измерения регистра какие? Если в 3 и 4 записях разные значения измерений, то они обе должны вернуться.
|
|||
|
16
LamerSuper
02.12.08
✎
17:46
|
Измерение 1 Объект(Номенклатурная группа)
|
|||
|
17
НЕА123
02.12.08
✎
17:46
|
(14) я, в смысле почему не просто
| Истина КАК ОтгрузкаРазрешена, |
|||
|
18
НЕА123
02.12.08
✎
17:48
|
(12) 02/12/08 между 01/10/08 02/10/08 ?
|
|||
|
19
hhhh
02.12.08
✎
17:48
|
(16) Объекты по 3й и 4й записи в студию.
|
|||
|
20
LamerSuper
02.12.08
✎
17:52
|
Это один и тот же объект. Смысл в том что если в регисстре вдруг появились записи что сроки объекта в прошлом то сам объект не должен попадать в выборку. Но он попадает.
(17) Дык левое соединение. Записей может и не быть. А значение должно быть. Это разными цветами потом выводится на форме. |
|||
|
21
hhhh
02.12.08
✎
17:59
|
(20) но у тебя 3я запись как раз в настоящем. Вот она и попала
|
|||
|
22
НЕА123
02.12.08
✎
17:59
|
(20) хммм... видно, я уже ниего не понимаю. пойду, полечусь пивком.
|
|||
|
23
LamerSuper
02.12.08
✎
17:59
|
(21) Дык срез последних на 02/12/08 16:03
|
|||
|
24
LamerSuper
02.12.08
✎
18:00
|
а это запись четвертая
|
|||
|
25
hhhh
02.12.08
✎
18:01
|
(23) все понял. Сначала идет проверка твоего условия. Запись 4 отсеивается. А потом берется срез последних. Естественно попадает запись 3.
|
|||
|
26
LamerSuper
02.12.08
✎
18:07
|
(25) Гениально спасибо
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |