Имя: Пароль:
1C
1С v8
Не задано значение параметра "ТолькоНерезиденты"
,
0 мистер игрек
 
31.10.13
08:09
Вот текст запроса:
"ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Физлицо КАК Физлицо
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
            &НаДату,
            ВЫБОР
                КОГДА &ТолькоНерезиденты = ЛОЖЬ
                    ТОГДА ИСТИНА
                ИНАЧЕ Физлицо.Резидентство = ЗНАЧЕНИЕ(Перечисление.РезидентНерезидент.Нерезидент)
            КОНЕЦ) КАК РаботникиОрганизацийСрезПоследних"

    Запрос.УстановитьПараметр("ТолькоНерезиденты",Истина);

При выполенении запросе пишеть ошибку:
"Не задано значение параметра "ТолькоНерезиденты"
КОГДА <<?>>&ТолькоНерезиденты = ЛОЖЬ"
1 Wobland
 
31.10.13
08:10
что планируешь делать?
2 butterbean
 
31.10.13
08:10
надо задать
3 мистер игрек
 
31.10.13
08:11
Если значение параметра истина, тогда получит только нерезидентов
4 мистер игрек
 
31.10.13
08:11
иначе получить всех
5 butterbean
 
31.10.13
08:12
(3)(4) у тебя либо только рез либо только нерез
6 Wobland
 
31.10.13
08:12
>Физлицо.Резидентство
интересно, а по смыслу это булевский реквизит?
7 butterbean
 
31.10.13
08:14
(5) тьфу, сорри
8 мистер игрек
 
31.10.13
08:14
(6) это перечисление
9 1dvd
 
31.10.13
08:15

КОГДА НЕ &ТолькоНерезиденты
    ТОГДА ИСТИНА


А так?
10 Wobland
 
31.10.13
08:15
(8) я вижу. а по смыслу?
11 Wobland
 
31.10.13
08:15
(9) он параметр не задаёт
12 1dvd
 
31.10.13
08:16
(11) вот, мне тоже так кажется
(0) Мало кода
13 мистер игрек
 
31.10.13
08:17
(11) Читай внимательно первый пост, там есть параметр
14 Wobland
 
31.10.13
08:18
(13) читал внимательно. ты у себя в коде параметр не задаёшь
15 shuhard
 
31.10.13
08:18
(13) читай внимательно ответ 1С - "Не задано значение параметра "ТолькоНерезиденты"
16 мистер игрек
 
31.10.13
08:19
а это чо тогда?

Запрос.УстановитьПараметр("ТолькоНерезиденты",Истина);
17 Wobland
 
31.10.13
08:21
(16) это установка параметра у запроса
18 Wobland
 
31.10.13
08:22
+(17) внезапно, правда?
19 мистер игрек
 
31.10.13
08:23
(17) Просвети.
Как правильно написать?
20 anaed
 
31.10.13
08:24
(16) а можно полностью код? где ты одному и тому же запросу даешь текст, параметры и выполняешь его же.
21 Wobland
 
31.10.13
08:25
(19) так вполне себе подойдёт. пусть и некрасиво
22 1dvd
 
31.10.13
08:25
так:


РегистрСведений.РаботникиОрганизаций.СрезПоследних(
            &НаДату,"+?(ТолькоНерезиденты, "
            Физлицо.Резидентство = ЗНАЧЕНИЕ(Перечисление.РезидентНерезидент.Нерезидент)", "")+"
            ) КАК РаботникиОрганизацийСрезПоследних"

23 мистер игрек
 
31.10.13
08:26
Запрос = Новый Запрос;
    ТекстЗапроса = "ВЫБРАТЬ
                   |    РаботникиОрганизацийСрезПоследних.Физлицо КАК Физлицо,
                   |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                   |    РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
                   |    ВЫБОР
                   |        КОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации ЕСТЬ NULL
                   |                ИЛИ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                   |            ТОГДА ЛОЖЬ
                   |        ИНАЧЕ ИСТИНА
                   |    КОНЕЦ КАК Работает
                   |ПОМЕСТИТЬ ВТ
                   |ИЗ
                   |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
                   |            &НаДату,
                   |            Организация = &Организация
                   |                И ВЫБОР
                   |                    КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                   |                        ТОГДА ИСТИНА
                   |                    ИНАЧЕ ПодразделениеОрганизации = &Подразделение
                   |                КОНЕЦ
                   |                И ВЫБОР
                   |                    КОГДА НЕ &ТолькоНерезиденты
                   |                        ТОГДА Физлицо.Резидентство = ЗНАЧЕНИЕ(Перечисление.РезидентНерезидент.Нерезидент)
                   |                    ИНАЧЕ ИСТИНА
                   |                КОНЕЦ) КАК РаботникиОрганизацийСрезПоследних
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ПодразделениеОрганизации,
                   |    Должность,
                   |    Физлицо
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ВТ.Физлицо,
                   |    ВТ.Должность
                   |ИЗ
                   |    ВТ КАК ВТ
                   |ГДЕ
                   |    ВТ.Работает = ИСТИНА
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ВТ.Физлицо.Наименование";
                  
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("НаДату",НачалоМесяца(Объект.Месяц));
    Запрос.УстановитьПараметр("Организация",Объект.Организация);
    Запрос.УстановитьПараметр("Подразделение",Объект.Подразделение);
    Запрос.УстановитьПараметр("ТолькоНерезиденты",Истина);
    
    ТЗ = Запрос.Выполнить().Выгрузить();
24 Wobland
 
31.10.13
08:30
а теперь текст ошибки
25 мистер игрек
 
31.10.13
08:33
(22) Спасибо! Получилось
Не думал что с булевами будет такой геморрой
26 Wobland
 
31.10.13
09:34
(25) а геморроев нет, это как-то по-другому называется

ВЫБРАТЬ
ВЫБОР КОГДА &ТолькоНерезиденты = ЛОЖЬ ТОГДА 20 ИНАЧЕ 40 КОНЕЦ
2 + 2 = 3.9999999999999999999999999999999...