Имя: Пароль:
1C
1С v8
В запросе проблема
0 AnisaL
 
12.11.13
08:07
Доброе утро!
Есть запрос, который до вчерашнего момента работал исправно, пока вечером замдиректора не сформировал отчет за период с 01.11.2013 по 11.11.2013, и увидел что цена и сумма рабочей смены не посчиталась.
ВЫБРАТЬ
    ТЧ.Ссылка.ДатаСоздания КАК ДатаСоздания,
    ТЧ.Ссылка.Клиент КАК Клиент,
    ТЧ.Ссылка.Проведен КАК Проведен,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ТЧ.Количество
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоРабочаяСмена,
    ВЫБОР
        КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ТЧ.Количество
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоДопРаботы,
    0 КАК КоличествоПитание,
    0 КАК КоличествоТранспорт,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ВЫБОР
                    КОГДА ТЧ.ЦенаВнутренная = 1
                        ТОГДА РаботникиОрганизацийСрезПоследних.Стоимость1часа
                    ИНАЧЕ ТЧ.ЦенаВнутренная
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК ЦенаРабочаяСмена,
    ВЫБОР
        КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ТЧ.ЦенаВнутренная
        ИНАЧЕ 0
    КОНЕЦ КАК ЦенаДопРаботы,
    0 КАК ЦенаПитание,
    0 КАК ЦенаТранспорт,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ВЫБОР
                    КОГДА ТЧ.ЦенаВнутренная = 1
                        ТОГДА РаботникиОрганизацийСрезПоследних.Стоимость1часа * ТЧ.Количество
                    ИНАЧЕ ТЧ.ЦенаВнутренная * ТЧ.Количество
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаРабочаяСмена,
    ВЫБОР
        КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаДопРаботы,
    0 КАК СуммаПитание,
    0 КАК СуммаТранспорт
ИЗ
    Документ.ЗаявкаНаряд.Работы КАК ТЧ
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РаботникиОрганизацийСрезПоследнихВнутр.ФизЛицо КАК ФизЛицо,
            РегистрЦенПоВидамСметСрезПоследних.Стоимость1часа КАК Стоимость1часа,
            РегистрЦенПоВидамСметСрезПоследних.ВидСметы КАК ВидСметы
        ИЗ
            РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних
                ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение
                    И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность) КАК РаботникиОрганизацийСрезПоследних
        ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы
ГДЕ
    ТЧ.Исполнитель = &Исполнитель
    И ТЧ.Ссылка.ДатаСоздания МЕЖДУ &Начало И &Конец

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    ТЧ.Ссылка.ДатаСоздания,
    ТЧ.Ссылка.Клиент,
    ТЧ.Ссылка.Проведен,
    0,
    0,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание
            ТОГДА ТЧ.Количество
    КОНЕЦ,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт
            ТОГДА ТЧ.Количество
    КОНЕЦ,
    0,
    0,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание
            ТОГДА ТЧ.ЦенаВнутренная
    КОНЕЦ,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт
            ТОГДА ТЧ.ЦенаВнутренная
    КОНЕЦ,
    0,
    0,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание
            ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт
            ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная
        ИНАЧЕ 0
    КОНЕЦ
ИЗ
    Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РаботникиОрганизацийСрезПоследнихВнутр.ФизЛицо КАК ФизЛицо,
            РегистрЦенПоВидамСметСрезПоследних.Стоимость1часа КАК Стоимость1часа,
            РегистрЦенПоВидамСметСрезПоследних.ВидСметы КАК ВидСметы
        ИЗ
            РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних
                ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение
                    И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность) КАК РаботникиОрганизацийСрезПоследних
        ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы
ГДЕ
    ТЧ.Исполнитель = &Исполнитель
    И ТЧ.Ссылка.ДатаСоздания МЕЖДУ &Начало И &Конец
ИТОГИ
    СУММА(СуммаРабочаяСмена),
    СУММА(СуммаДопРаботы),
    СУММА(СуммаПитание),
    СУММА(СуммаТранспорт)
ПО
    ОБЩИЕ,
    ДатаСоздания
1 AnisaL
 
12.11.13
08:09
ЦенаРабочаяСмена и СуммаРАбочаяСмена оказались равной Null
2 Feunoir
 
12.11.13
08:09
(0) Вчера только тему тёрли про границу и дату.

Как передаешь &Конец в запрос?
3 AnisaL
 
12.11.13
08:11
(2) через параметр
Запрос.УстановитьПараметр("Конец",    Конец);
4 Feunoir
 
12.11.13
08:13
(3) клёво :)

А что такое Конец?
5 AnisaL
 
12.11.13
08:14
(4) Конец - реквизит формы типа Дата
6 Feunoir
 
12.11.13
08:22
(5) Ты не партизана тренируешься что-ли?

Значение какое передается в параметр, с точностью до секунды?

Попадает ли хоть один документ по условию ТЧ.Ссылка.ДатаСоздания МЕЖДУ &Начало И &Конец
в интервал 01.11.2013 0:00:00 по 11.11.2013 0:00:00?
7 AnisaL
 
12.11.13
08:33
(6) Документы попадают, количество считается, цена только не считается:
ВЫБОР
        КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена
            ТОГДА ВЫБОР
                    КОГДА ТЧ.ЦенаВнутренная = 1
                        ТОГДА РаботникиОрганизацийСрезПоследних.Стоимость1часа
                    ИНАЧЕ ТЧ.ЦенаВнутренная
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК ЦенаРабочаяСмена,
8 AnisaL
 
12.11.13
08:33
(7) причем дата документа - 07.11.2013
9 1dvd
 
12.11.13
08:34
(7) Значит РС твой не соединяется
10 AnisaL
 
12.11.13
08:35
(9) ага, вот это не считается: РаботникиОрганизацийСрезПоследних.Стоимость1часа
11 1dvd
 
12.11.13
08:37
(10) вот над этим медитируй

            РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних
                ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение
                    И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность) КАК РаботникиОрганизацийСрезПоследних
        ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы
12 AnisaL
 
12.11.13
08:39
(11) когда я этот запрос отдельно запускаю, то он все считает
13 AnisaL
 
12.11.13
08:40
(12) +
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних
                ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение
                    И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность
14 1dvd
 
12.11.13
08:42
(12) а это?

ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы
15 AnisaL
 
12.11.13
08:43
(13) ой, ошиблась..
вот так:
ВЫБРАТЬ
            РаботникиОрганизацийСрезПоследнихВнутр.ФизЛицо КАК ФизЛицо,
            РегистрЦенПоВидамСметСрезПоследних.Стоимость1часа КАК Стоимость1часа,
            РегистрЦенПоВидамСметСрезПоследних.ВидСметы КАК ВидСметы
        ИЗ
            РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних
                ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение
                    И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность
16 AnisaL
 
12.11.13
08:44
(14) а это условие соединения с первым запросом
17 1dvd
 
12.11.13
08:47
(16) Спасибо КЭП. Но, это я знаю. Оно выполняется?
18 AnisaL
 
12.11.13
08:51
(17) для других видов смет - выполняется, а когда вид сметы "Обычные" почему-то цену не считает, а как определить что условие сработало?
19 1dvd
 
12.11.13
08:58
(18) посмотреть что в ТЧ.Ссылка.Смета.ВидСметы  и что в РаботникиОрганизацийСрезПоследних.ВидСметы
20 AnisaL
 
12.11.13
09:02
(19) поняла
21 AnisaL
 
12.11.13
09:07
(19) нашла причину! этот документ Смета у нас создается автоматом каждый месяц 1-го числа, ВидСметы - это его реквизит, и он не записался в смете! я просто зашла в смету, на которую ссылается эта Заявка и записала ее - и запрос сработал!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший