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

Выводит ошибку. А в консоли все нормально. Куда копать?
1 Обработка
 
03.09.14
13:00
Пробовал так:

    ОрганизацииТранспортныхСредствСрезПоследних.ТранспортноеСредство,
    ОрганизацииТранспортныхСредствСрезПоследних.Подразделение
ИЗ
    РегистрСведений.ОрганизацииТранспортныхСредств.СрезПоследних(&Период, ВЫБОР
        КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
        ТОГДА ИСТИНА
        ИНАЧЕ ОрганизацииТранспортныхСредствСрезПоследних.Подразделение = &Подразделение
    КОНЕЦ) КАК ОрганизацииТранспортныхСредствСрезПоследних

ошибка такая же =

Не задано значение параметра "Подразделение"
ИНАЧЕ ОрганизацииТранспортныхСредствСрезПоследних.Подразделение = <<?>>&Подразделение
2 Легат
 
03.09.14
13:03
О_О
3 Godofsin
 
03.09.14
13:03
У меня что-то в голове сломалось...
4 barrgand
 
03.09.14
13:04
(0) Зачем так сложно? Отбор не подходит?
5 Godofsin
 
03.09.14
13:04
Особенно поразило "А в консоли все нормально"...
6 Легат
 
03.09.14
13:05
"Запрос.УстановитьПараметр" пробовал?
7 Godofsin
 
03.09.14
13:05
(6) Это скд, зачем?
8 Timon1405
 
03.09.14
13:06
ОрганизацииТранспортныхСредствСрезПоследних.ТранспортноеСредство,
    ОрганизацииТранспортныхСредствСрезПоследних.Подразделение
ИЗ
    РегистрСведений.ОрганизацииТранспортныхСредств.СрезПоследних(&Период,{(&Подразделение)})
9 Легат
 
03.09.14
13:07
(7) Аа.. А параметр то задаешь вообще?
10 Defender aka LINN
 
03.09.14
13:08
(4) Это явно секта какая-то, мазохистского толка. У них использование отбора - второй по тяжести грех после неиспользования автозаполнения в СКД.
11 Легат
 
03.09.14
13:11
Может стандартный отбор не красиво выглядит..бывает такое..
12 Godofsin
 
03.09.14
13:12
(11) Ну отбор можно и программно установить легко
13 чувак
 
03.09.14
13:23
(0) А в параметрах ввел значение?
14 Обработка
 
03.09.14
13:28
Я хотел либо выбирать либо не выбирать по подразделению.

Приведенный пример всего лишь кусок от запроса.
15 Обработка
 
03.09.14
13:29
Т е если Подразделение не выбрано то выводим по всем если выбрано то по указанному подразделению.
16 Обработка
 
03.09.14
13:31
Вот весь запрос Который работает если выбрано подразделение.

ВЫБРАТЬ
    ДатыЗаменМаселСрезПоследних.ТС КАК ТС,
    ДатыЗаменМаселСрезПоследних.ДатаЗамены,
    ПодрыТС.Подразделение
ПОМЕСТИТЬ ВТ_ДатаЗамены
ИЗ
    РегистрСведений.ДатыЗаменМасел.СрезПоследних(&НаДату, ПоказательПробега = &Показатель) КАК ДатыЗаменМаселСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОрганизацииТранспортныхСредств.СрезПоследних(
                &НаДату,
                ВЫБОР
                    КОГДА &Подразделение = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
                        ТОГДА ИСТИНА
                    ИНАЧЕ Подразделение = &Подразделение
                КОНЕЦ) КАК ПодрыТС
        ПО ДатыЗаменМаселСрезПоследних.ТС = ПодрыТС.ТранспортноеСредство
ГДЕ
    ДатыЗаменМаселСрезПоследних.ТС.ВидТС = &ВидТС

ИНДЕКСИРОВАТЬ ПО
    ТС
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(ПробегПоСпидометруОбороты.ПробегПриход) КАК ПробегПЛ,
    СУММА(ПробегПоСпидометруОбороты.ПробегПоGPSПриход) КАК ПробегПоGPS,
    ВТ_ДатаЗамены.ТС КАК ТС,
    ПробегиОстатки.ПробегОстаток КАК Пробег
ПОМЕСТИТЬ ВТ_Пробеги
ИЗ
    ВТ_ДатаЗамены КАК ВТ_ДатаЗамены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПробегПоСпидометру.Обороты(, &НаДату, Регистратор, ) КАК ПробегПоСпидометруОбороты
        ПО ВТ_ДатаЗамены.ТС = ПробегПоСпидометруОбороты.ТС
            И ВТ_ДатаЗамены.ДатаЗамены <= ПробегПоСпидометруОбороты.Период
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Пробеги.Остатки(&НаДату, ПоказательПробега = &Показатель) КАК ПробегиОстатки
        ПО ВТ_ДатаЗамены.ТС = ПробегиОстатки.ТС

СГРУППИРОВАТЬ ПО
    ВТ_ДатаЗамены.ТС,
    ПробегиОстатки.ПробегОстаток

ИНДЕКСИРОВАТЬ ПО
    ТС
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ДатаЗамены.ТС КАК ТС,
    СУММА(НормыРасходаПоПоказателямСрезПоследних.НормаПробега) КАК НормаПробега,
    НормыРасходаПоПоказателямСрезПоследних.Объем КАК НормаЗамены
ПОМЕСТИТЬ ВТ_ГСМ
ИЗ
    ВТ_ДатаЗамены КАК ВТ_ДатаЗамены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НормыРасходаПоПоказателям.СрезПоследних(&НаДату, Показатель = &Показатель) КАК НормыРасходаПоПоказателямСрезПоследних
        ПО ВТ_ДатаЗамены.ТС.ТипМашины = НормыРасходаПоПоказателямСрезПоследних.ТипТехники

СГРУППИРОВАТЬ ПО
    ВТ_ДатаЗамены.ТС,
    НормыРасходаПоПоказателямСрезПоследних.Объем

ИНДЕКСИРОВАТЬ ПО
    ТС
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УчетМаселОбороты.ТС КАК ТС,
    СУММА(УчетМаселОбороты.КоличествоОборот) КАК Замена
ПОМЕСТИТЬ ВТ_Масла
ИЗ
    ВТ_ДатаЗамены КАК ВТ_ДатаЗамены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетМасел.Обороты(, &НаДату, Регистратор, ПризнакДвижения = ЗНАЧЕНИЕ(Перечисление.ПризнакДвижения.Замена)) КАК УчетМаселОбороты
        ПО ВТ_ДатаЗамены.ТС = УчетМаселОбороты.ТС
            И ВТ_ДатаЗамены.ДатаЗамены <= УчетМаселОбороты.Период
            И (УчетМаселОбороты.Показатель = &Показатель)

СГРУППИРОВАТЬ ПО
    УчетМаселОбороты.ТС
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ДатаЗамены.ТС,
    ВТ_ДатаЗамены.ДатаЗамены,
    ВТ_ДатаЗамены.Подразделение,
    ВТ_Пробеги.Пробег,
    ВТ_Пробеги.ПробегПоGPS,
    ВТ_ГСМ.НормаПробега,
    ЕСТЬNULL(ВТ_ГСМ.НормаПробега, 0) - ЕСТЬNULL(ВТ_Пробеги.Пробег, 0) КАК ОтклонениеПробег,
    ВТ_Масла.Замена КАК Замена,
    ВТ_ГСМ.НормаЗамены КАК НормаЗамены,
    ЕСТЬNULL(ВТ_ГСМ.НормаЗамены, 0) - ЕСТЬNULL(ВТ_Масла.Замена, 0) КАК ОтклонениеЗамена
ИЗ
    ВТ_ДатаЗамены КАК ВТ_ДатаЗамены
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ГСМ КАК ВТ_ГСМ
        ПО ВТ_ДатаЗамены.ТС = ВТ_ГСМ.ТС
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Масла КАК ВТ_Масла
        ПО ВТ_ДатаЗамены.ТС = ВТ_Масла.ТС
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Пробеги КАК ВТ_Пробеги
        ПО ВТ_ДатаЗамены.ТС = ВТ_Пробеги.ТС
17 чувак
 
03.09.14
13:31
(15) Марат, не парься. Убери это условие и параметр. Выводи в форму отбор
18 Обработка
 
03.09.14
13:31
Но хотел сделать так что б работал отчет и с отбором по конкртному подру и без отбора.
19 Зойч
 
03.09.14
13:32
Параметр.Использование = Истина;
20 чувак
 
03.09.14
13:33
(18) Как раз отбор это дкелает
21 Обработка
 
03.09.14
13:34
(17) Все вопрос снят! Спасибо, Санжар!
И что я сразу не подумал об этом? :(