Имя: Пароль:
1C
1С v8
не те данные попадают попадают в результат запроса
0 dron4ikkk
 
15.07.14
18:12
Есть запрос, который ищет путевой лист по номеру. Дело в том что есть путевки прошлого года и нынешнего год(естественно номера путевок прошлого и нынешнего совпадают)проблема в том что необходимо чтоб в результат запрос попалась  путевка нынешнего года. (т.е. в списке есть путевки 001 2013 И 001 2014) запрос зараза получает ту которая 2013 а мне надо 2014 Как это сделать?


запрос = новый запрос();
    запрос.Текст =
     "ВЫБРАТЬ
     |    уатПутевойЛист.Ссылка,
     |    уатПутевойЛист.ВидПЛ.Ссылка КАК ВидПЛ
     |ИЗ
     |    Документ.уатПутевойЛист КАК уатПутевойЛист
     |ГДЕ
     |    уатПутевойЛист.ПометкаУдаления = ЛОЖЬ
     |    И уатПутевойЛист.Номер = &Номер";
     Запрос.УстановитьПараметр("Номер",Номер);
     Результат = Запрос.Выполнить().Выбрать();
    если Результат.Следующий() тогда
            ВидПЛ = Результат.ВидПЛ;
            если ВидПЛ =Перечисления.уатВидыПЛ._3 тогда
                возврат 74;
            иначеесли ВидПЛ =Перечисления.уатВидыПЛ._3спец тогда
                возврат 100;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._4П  тогда
                возврат 95;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._6С  тогда
                возврат 95;
            иначе
                возврат 95;
                
            конецесли;
    иначе
           возврат("не найден путевой лист");
    конецесли;
1 dj_serega
 
15.07.14
18:13
так он 2 получает. Первая просто идет 2013, вторая будет 2014.
2 dron4ikkk
 
15.07.14
18:14
(1) мне надо чтоб именно 2014 получал он, не понимаю как откорректрировать это
3 ale-sarin
 
15.07.14
18:15
Т.е. условие на уатПутевойЛист.Номер Вы поставить можете, а на уатПутевойЛист.Дата не можете?
4 dron4ikkk
 
15.07.14
18:15
(1) как тогда извлекать постоянно вторую?
5 tixis
 
15.07.14
18:16
(4) Условие на дату путевого листа
6 tixis
 
15.07.14
18:17
ДатаПутевоголиста>= 20140101
7 dron4ikkk
 
15.07.14
18:17
(5) тоже выход.
8 dron4ikkk
 
15.07.14
18:19
(3) можно ведь еще по УБЫВ сделать да? тогда 2014 можно будет путевки получать
9 ale-sarin
 
15.07.14
18:19
Например
НачалоПериода(уатПутевойЛист.Дата, Год) = ДатаВремя(2014,1,1)

Ну год, конечно, лучше через параметр устанавливать.
10 Wobland
 
15.07.14
18:22
а зачем нужен первый попавшийся вид путевого листа?
11 dj_serega
 
15.07.14
18:25
(9) так еще можно

|УПОРЯДОЧИТЬ ПО
|    ГОД(АктСверкиОборудования.Дата) УБЫВ"
12 Enders
 
15.07.14
18:29
(0) а ещё можно найтиПоНомеру(Номер,ТекущаяДата());
Если у вас нумерация в пределах года, то будет искать только доки этого года. В общем курить СП найтиПоНомеру().
13 dron4ikkk
 
15.07.14
18:33
(12) имеешь ввиду :

Результат= Документы.ПутевойЛист.НайтиПоНомеру(Номер,ТекущаяДата());

так чтоли? без запроса?
14 Enders
 
15.07.14
18:37
(13) Как пример да, вместо ТекущаяДата() подставляешь твою, если такова имеется.
И вообще предлагаю почитать СП по поводу НайтиПоНомеру().
15 dron4ikkk
 
15.07.14
18:42
(14) такой не имеется к сожалению
16 dron4ikkk
 
15.07.14
18:42
мне изветсен только номер путевки и все.
17 Enders
 
15.07.14
18:46
(16) ну вы же знаете что она должна быть текущего года. Тогда текущаяДата() вам подходит. (если нумерация в пределах года)
18 dron4ikkk
 
15.07.14
18:52
(17) да нумерация в пределах года.

Блин жаль щас под рукой нету УАТ(и вообще 1с нету)попробую руками тут написать код:

Результат = Документы.ПутевойЛист.НайтиПоНомеру(Номер, ТекущаяДата());
    если Результат.Следующий() тогда
            ВидПЛ = Результат.ВидПЛ;
            если ВидПЛ =Перечисления.уатВидыПЛ._3 тогда
                возврат 74;
            иначеесли ВидПЛ =Перечисления.уатВидыПЛ._3спец тогда
                возврат 100;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._4П  тогда
                возврат 95;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._6С  тогда
                возврат 95;
            иначе
                возврат 95;
                
            конецесли;
    иначе
           возврат("не найден путевой лист");
    конецесли;
19 dron4ikkk
 
15.07.14
18:52
все верно да?
20 Wobland
 
15.07.14
18:56
держи, болезный

Возвращаемое значение:

Тип: ДокументСсылка.<Имя документа>; Неопределено.
Ссылка на найденный документ. Если документ не найден, возвращается пустая ссылка на документ.
Если номер не задан (длина = 0), то будет возвращено Неопределено.
21 dron4ikkk
 
15.07.14
19:01
(20) Если Результат.Пустая() Тогда
  Сообщить("Документ не найден");
Иначе
  ДокументОбъект = Результат.ПолучитьОбъект();
ВидПЛ = ДокументОбъект.ВидПЛ;
            если ВидПЛ =Перечисления.уатВидыПЛ._3 тогда
                возврат 74;
            иначеесли ВидПЛ =Перечисления.уатВидыПЛ._3спец тогда
                возврат 100;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._4П  тогда
                возврат 95;
            иначеесли ВидПЛ = Перечисления.уатВидыПЛ._6С  тогда
                возврат 95;
            иначе
                возврат 95;
КонецЕсли;
22 dron4ikkk
 
15.07.14
19:02
выходит так тогда
23 Wobland
 
15.07.14
19:02
>ДокументОбъект = Результат.ПолучитьОбъект();
на зачем?
24 dron4ikkk
 
15.07.14
19:03
а как правильно?
25 Wobland
 
15.07.14
19:05
(24) //ДокументОбъект = Результат.ПолучитьОбъект();
26 Wobland
 
15.07.14
19:05
и всё-таки. на кой нужен первый попавшийся вид?
27 dron4ikkk
 
15.07.14
19:09
(26) что значит первый попавшийся?
28 dron4ikkk
 
15.07.14
19:10
смотрит ккой вид путевого листа у петвки указан
29 Мимохожий Однако
 
15.07.14
19:24
(15)Ctrl-F1,Shift-F1