Имя: Пароль:
1C
 
Почему не срабатывает период в запросе?
,
0 Мисти
 
01.03.17
23:13
Запрос = Новый Запрос;
            Запрос.УстановитьПараметр("ВыбПериод", НачалоГода(Источник.Дата));
            Запрос.УстановитьПараметр("ВыбСобственник", Источник.Кос_Собственник);
            Запрос.УстановитьПараметр("ВыбУдаленный", Ложь);
            Запрос.Текст =
            "ВЫБРАТЬ ПЕРВЫЕ 1
            |    Кос_НомераСчетовСрезПоследних.НомерЧислом
            |ИЗ
            |    РегистрСведений.Кос_НомераСчетов.СрезПоследних(
            |            &ВыбПериод,
            |            Собственник = &ВыбСобственник
            |                И Удаленный = &ВыбУдаленный) КАК Кос_НомераСчетовСрезПоследних
            |
            |УПОРЯДОЧИТЬ ПО
            |    Кос_НомераСчетовСрезПоследних.НомерЧислом УБЫВ";
У меня там есть запись от прошлого года.
Я задаю период - этот год, по идее результат запроса должен быть пустой.
Почему мне выдают прошлогоднюю  запись?
Мне нужно было завести какой-то специальный реквизит для периода? Период, который образовался от периодического реквизита - не отбирает?
1 Lexey_
 
01.03.17
23:14
(0) "Почему мне выдают прошлогоднюю  запись?" потому что она является последней на дату &ВыбПериод
2 Мисти
 
01.03.17
23:21
А почему она вообще в результат запроса попала, если я задала период - этот год?
Как мне тогда отобрать только за этот год?
Завести еще реквизит?
Или проверить дату? Если прошлогодняя, считай, что нет ее.
А если в регистре будет НомерЧислом 99 от прошлого года и 1 - от этого, то что даст запрос?
3 Lexey_
 
01.03.17
23:26
(2) почитай про срез последних, если не знаешь, зачем используешь? Обращайся к физической таблице регистра, а не к срезу последних
4 Мисти
 
01.03.17
23:29
А вроде как из такого быстрее данные выбираются?
5 Lexey_
 
01.03.17
23:34
(4) задача как звучит?
6 Мисти
 
01.03.17
23:36
Надо найти самый большой номер с отбором по собственнику, периоду (год) и "Удаленный". Имитируем нумератор.
7 Мисти
 
01.03.17
23:39
"ВЫБРАТЬ ПЕРВЫЕ 1
            |    Кос_НомераСчетов.НомерЧислом
            |ИЗ
            |    РегистрСведений.Кос_НомераСчетов КАК Кос_НомераСчетов
            |ГДЕ
            |    Кос_НомераСчетов.Период = &ВыбПериод
            |    И Кос_НомераСчетов.Собственник = &ВыбСобственник
            |    И Кос_НомераСчетов.Удаленный = &ВыбУдаленный
            |
            |УПОРЯДОЧИТЬ ПО
            |    Кос_НомераСчетов.НомерЧислом УБЫВ";
так выдал пустой результат
8 mkalimulin
 
01.03.17
23:51
(6) Самый большой в запросе называется словом МАКСИМУМ.
9 Mankubus
 
02.03.17
06:54
не нужен тебе период в запросе
10 Mankubus
 
02.03.17
06:54
(9) или только Год сравнивай, если нумерация в пределах года
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.