Имя: Пароль:
1C
 
Помогите разобраться со срезомПоследних в запросе
0 asder117
 
09.07.18
22:11
Есть такой запрос
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    АрендуемыеПлощади.Помещение КАК Помещение,
        |    АрендуемыеПлощади.ВидПлощади КАК ВидПлощади,
        |    АрендуемыеПлощади.Площадь,
        |    АрендуемыеПлощади.Ставка,
        // 1CBiT_ABoltovich 15.07.2011 Начало{                    
        //|    АрендуемыеПлощади.ДатаНачала,
        //|    АрендуемыеПлощади.ДатаОкончания,
        //|    АрендуемыеПлощади.Статус,
        // 1CBiT_ABoltovich 15.07.2011 }Конец        
        |    АрендуемыеПлощади.Помещение.Владелец КАК Объект
        |ИЗ
        |    РегистрСведений.бит_АрендуемыеПлощади.СрезПоследних(&Дата, ДоговорКонтрагента = &ДоговорКонтрагента) КАК АрендуемыеПлощади
        |ИТОГИ ПО
        |    Помещение
        |АВТОУПОРЯДОЧИВАНИЕ";
Датой задаю текущую дату. В итоге запрос после выполнения выводит все записи вплоть до 2013 года.
хотя на сегодняшнюю дату к примеру запрос вообще должен дать 0.
В чем проблема, помогите разобраться. Заранее спасибо
1 RomanYS
 
09.07.18
22:19
"запрос вообще должен дать 0." это лишь твое мнение. Его надо подкрепить структурой регистра, исходными записями (можно по договору) и результатом запроса.
2 asder117
 
09.07.18
22:33
3 asder117
 
09.07.18
22:37
(1) что просили
4 PR
 
09.07.18
22:39
Еще один неуч
5 asder117
 
09.07.18
22:41
(4) я не неуч, а голову сломал. конфу писал 1 бит запрос их и претензии к ним..и неуч тоже
6 PR
 
09.07.18
22:42
(5) Так БИТ молодцы, написали правильно, а ты неуч
7 RomanYS
 
09.07.18
22:44
(5) (2) Запрос возвращает последнюю запись по каждой комбинации измерений. Не вижу противоречий.
8 asder117
 
09.07.18
22:48
(7) я это допетрил. но не хочется менять код и писать запрос из регистра накоплений(кстати возвращает то что надо)хочется сделать что-то из этого.
9 asder117
 
09.07.18
22:49
(7) и с Вами я согласен. Как я понимаю надо добавить в запрос еще какое-то отличающее измерение...но его нет просто..водить значит все перепроводить...
10 PR
 
09.07.18
22:49
(8) Ну так тогда допиши
ГДЕ ЛОЖЬ
Будет как раз ноль записей возвращать, как ты хочешь
11 Fram
 
09.07.18
22:54
(2) нечетные (пустые) записи это попытка "обнулить" помещение? это твоя придумка или БИТа?
12 asder117
 
09.07.18
22:55
(11) моего тут нет. это все бит
13 Fram
 
09.07.18
22:55
(6) Рома, и это по твоему нормально?
14 asder117
 
09.07.18
22:57
(13) Вот и я не догоняю просто..Чувствую придется процедуру переписывать а неохота
15 PR
 
09.07.18
22:58
(11) LOL
Нечетные записи — это группировка запроса :))
16 PR
 
09.07.18
22:59
(14) Ты бы хоть для начала картинки выложил не на говноресурс, а то не видно ни хрена, чувствительный ты наш :))
17 asder117
 
09.07.18
22:59
(15) блин все спать..я и не догнал о чем он говорил..скрин глянул..
18 asder117
 
09.07.18
23:02
(16) (7) Так Уважаемые..кто всетаки что посоветует с этим добром сделать...сжечь и переписать не предлагать
19 PR
 
09.07.18
23:02
(17) Завтра выспишься, по статусу фильтруй :))
В ГДЕ естественно :))
20 PR
 
09.07.18
23:03
(18) Как только скажешь, что тебе надо, так сразу и посоветуем
21 Fram
 
09.07.18
23:03
(15) тьфу ты.. пардонте
22 PR
 
09.07.18
23:05
+(19) А вот по договору надо в ПВТ фильтровать, кстати, ибо измерение
23 asder117
 
09.07.18
23:06
(19) статус у них один - "договор" у всех. так что бесполезно (20) я хочу в результате увидеть что у арендатора осталось в конце после перемещений и движений..а после расторжения (как на скрине) вообще 0 показывать должен был
24 asder117
 
09.07.18
23:07
по договору отбор идет
25 PR
 
09.07.18
23:09
(23) Ты вот точно не выспался
Или вообще не соображаешь, как РС работает
Записи в РС не обнуляются, как сказано в (11), обнулить их можно только вещами типа 0 или каким-нить статусом типа "Не действует" в ресурсе
26 asder117
 
09.07.18
23:10
Можно сделать так
ВЫБРАТЬ
    бит_ЗанятостьПомещенийОстатки.Договор,
    бит_ЗанятостьПомещенийОстатки.Помещение,
    бит_ЗанятостьПомещенийОстатки.ВидПлощади,
    бит_ЗанятостьПомещенийОстатки.Организация,
    бит_ЗанятостьПомещенийОстатки.ПлощадьОстаток,
    бит_ЗанятостьПомещенийОстатки.Договор.Владелец
ИЗ
    РегистрНакопления.бит_ЗанятостьПомещений.Остатки(&Период, Договор = &ДоговорК) КАК бит_ЗанятостьПомещенийОстатки
плюс объеднить с запросом который в (0) чтобы получить ставку
но что-то не кривова-то ли
27 PR
 
09.07.18
23:10
(24) Тяжело вздохнул
Иди выспись
Я говорю, отбор надо делать в _ПВТ_, а не в ГДЕ
28 PR
 
09.07.18
23:11
(26) Прочитай утром (19)
29 asder117
 
09.07.18
23:12
а это что тады РегистрСведений.бит_АрендуемыеПлощади.СрезПоследних(&Дата, ДоговорКонтрагента = &ДоговорКонтрагента)
30 asder117
 
09.07.18
23:13
(28) еще раз говорю по статусу бесполезно т.к. он один единственный
31 PR
 
09.07.18
23:14
(29) Это список текущих (на &Дата) арендуемых площадей, включая те, которые уже сто лет как разрушены землятрясениями и у которых статус "Да нихрена это говно уже не действует"
32 PR
 
09.07.18
23:15
(30) Ну так и что ты хочешь от программы, если вы ей ничего не говорите про закончившиеся договоры?
33 PR
 
09.07.18
23:16
Тупизм какой-то
Вы в 17 году до нашей эры заключили договор, он, блеать, действует до сих пор, почему он не должен попадать в твой запрос?
34 asder117
 
09.07.18
23:24
(33) он расторгнут и не должен поподать
35 Fram
 
09.07.18
23:27
(34) а как вы зафиксировали в программе факт расторжения?
36 PR
 
09.07.18
23:29
(34) Рукалицо
Перечитай ветку завтра
37 asder117
 
10.07.18
06:47
(35) документ расторжения есть (36) хорошо
38 Fram
 
10.07.18
07:42
(37) и этот документ не делает запись в тот регистр с новым состоянием?
39 fgaabbb
 
10.07.18
07:45
(38) 100% не делает, иначе б не выводило все
40 Малыш Джон
 
10.07.18
07:45
(38) но он же есть) как ты не понимаешь)
41 asder117
 
10.07.18
10:36
(38) (39) (40) Вот что по регистрам идет
Процедура ДвиженияПоРегистрам(СтруктураШапкиДокумента, ТаблицаТекущихНачислений, Отказ, Заголовок)
    
    // бит_СостоянияДоговоровАренды
    Движение = Движения.бит_СостоянияДоговоровАренды.Добавить();
    Движение.ДоговорКонтрагента = СтруктураШапкиДокумента.ДоговорКонтрагента;
    Движение.Состояние          = Перечисления.бит_СостоянияДоговоровАренды.Расторгнут;
    Движение.ДатаСостояния      = СтруктураШапкиДокумента.Дата;
    
    Для каждого СтрокаТаблицы Из ТаблицаТекущихНачислений Цикл
        Движение = Движения.бит_ПлановыеНачисленияПоАренде.Добавить();
        
        ЗаполнитьЗначенияСвойств(Движение, СтрокаТаблицы);
        
        //bt_buld_240913_N
        Движение.ДатаОкончания = МИН(СтрокаТаблицы.ДатаОкончания, СтруктураШапкиДокумента.Дата);
        //bt_buld_240913_K
        
        // Общие реквизиты
        Движение.Период                = СтруктураШапкиДокумента.Дата;
        Движение.Регистратор        = СтруктураШапкиДокумента.Ссылка;
        
        // Ресурсы
        Движение.Активно            = ЛОЖЬ;
    КонецЦикла;
    
    // 1CBiT_ABoltovich 11.08.2011 Начало{            
    Если Основание.ВидОперации = Перечисления.бит_ВидыОперацийУсловияДоговораАренды.РезервПодАрендатора Тогда
        ЗначСтатус = Перечисления.бит_СтатусыРезервирования.РезервПодАрендатора;
    Иначе
        ЗначСтатус = Перечисления.бит_СтатусыРезервирования.Договор;
    КонецЕсли;
    // 1CBiT_ABoltovich 11.08.2011 }Конец
    
    // 1CBiT_ABoltovich 15.07.2011 Начало{            
    //бит_АрендуемыеПлощади    
    Для каждого СтрокаТаблицы Из Основание.Площади Цикл
        Движение = Движения.бит_АрендуемыеПлощади.Добавить();
        
        ЗаполнитьЗначенияСвойств(Движение, СтрокаТаблицы);
        
        Движение.ДоговорКонтрагента = СтруктураШапкиДокумента.ДоговорКонтрагента;
        //bt_dbulavka__01.08.2012_N
        //Движение.Помещение            = Основание.Помещения[СтрокаТаблицы.КлючСтроки - 1].Помещение;
        Для Каждого СтрПомещения из Основание.Помещения Цикл
             Если СтрПомещения.КлючСтроки = СтрокаТаблицы.КлючСтроки Тогда
                Движение.Помещение   = СтрПомещения.Помещение;
              КонецЕсли;
        КонецЦикла;
        //bt_dbulavka__01.08.2012_K
        Движение.ДатаНачала            = Основание.Период;
        Движение.ДатаОкончания        = СтруктураШапкиДокумента.Дата;
        // 1CBiT_ABoltovich 11.08.2011 Начало{            
        //Движение.Статус                = Перечисления.бит_СтатусыРезервирования.Договор;
        Движение.Статус                = ЗначСтатус;
        // 1CBiT_ABoltovich 11.08.2011 }Конец
        
        // Общие реквизиты
        Движение.Период                = СтруктураШапкиДокумента.Дата;
        Движение.Регистратор        = СтруктураШапкиДокумента.Ссылка;
        
    КонецЦикла;
    // 1CBiT_ABoltovich 15.07.2011 }Конец

    //bt_dbulavka_24.07.2012_003_N Изменим дату окончания расторгаемого договора
    Набор = РегистрыСведений.бит_АрендуемыеПлощади.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Основание);
    Набор.Прочитать();
    Для Каждого СтрокаНабора Из Набор Цикл
        СтрокаНабора.ДатаОкончания = СтруктураШапкиДокумента.Дата;
    КонецЦикла;
    Набор.Записать();
    //bt_dbulavka_24.07.2012_003_K
    
    ЗавершитьДействиеДополнительныхУслуг(СтруктураШапкиДокумента);
42 Fram
 
10.07.18
10:47
(41) так есть запись в регистре или нет? если нет, перепроведи
43 hhhh
 
10.07.18
10:49
(41) измерения у регистра какие?
44 asder117
 
10.07.18
10:52
(43) (2) смотри выше
45 asder117
 
10.07.18
10:52
(42) статус -договор у всех
46 Sayan_mi
 
10.07.18
10:53
А если в этом регистре нет, то делай соединение по ТД с тем где есть дата окончания и проверяй если она больше твоей даты или пустая тогда истина.
47 arsik
 
гуру
10.07.18
10:55
Просто добавь условие "ДатаОкончания непустое и больше датызапроса"
48 Fram
 
10.07.18
10:55
(45) это был ответ на мой вопрос?
49 arsik
 
гуру
10.07.18
10:55
+ (47) Вру. Дата окончания пустая или больше или равно даты запроса
50 asder117
 
10.07.18
11:03
(49) попробую (48) да.Запись есть статус у всех одинаковый - договор
51 arsik
 
гуру
10.07.18
11:14
(50) Только условие устанавливай не в параметры виртуальной таблицы среза, а в сам запрос.
52 asder117
 
10.07.18
11:55
(51) СПС. Попробую поживем увидим как будет работать
53 Fram
 
10.07.18
13:13
(50) Документ Расторжение делает запись с состоянием Договор?!!!
54 Fram
 
10.07.18
13:14
(50) а как же в (41)

Движение.Состояние          = Перечисления.бит_СостоянияДоговоровАренды.Расторгнут;
55 asder117
 
10.07.18
22:15
(53) (54) Другой регистр вообще-то
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший