Имя: Пароль:
1C
1С v8
Разные результаты запроса и СКД на этом запросе
0 fantomrik
 
16.12.14
14:50
Добрый день!
Столкнулся с проблемой разности результатов запроса и отчета на СКД с этим запросом. Запрос не сложный, но много ВТ, поэтому код его тут http://zalil.su/845049
Помогите, ни чего не могу понять, как "выровнять" данные отчета.
Спасибо!
1 Адский плющ
 
16.12.14
14:50
Не буду качать. Сюда выкладывай.
2 fantomrik
 
16.12.14
14:52
В частности кривые на "количестве проданных часов", они в отчете меньше, чем в запросе.
3 vicof
 
16.12.14
14:52
(0) Сегодня уже раза три то же самое спрашивали. Вы принципиально поиском не пользуетесь?
4 fantomrik
 
16.12.14
14:52
ВЫБРАТЬ
    РабочееВремяМехаников.ВремяПредСобытия КАК НачалаПериодаПростоя,
    РабочееВремяМехаников.Период КАК ОкончаниеПериодаПростоя,
    РабочееВремяМехаников.Механик,
    РабочееВремяМехаников.Событие,
    РабочееВремяМехаников.ЗаказНаряд,
    РабочееВремяМехаников.ЗаказНаряд.Ответственный КАК ОтветственныйЗаЗН,
    ЕСТЬNULL(РабочееВремяМехаников.ОбщееВремя, 0) КАК Время,
    РабочееВремяМехаников.РабочееМесто,
    ВЫБОР
        КОГДА РабочееВремяМехаников.Событие <> ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ОжиданиеЗЧ)
                И РабочееВремяМехаников.Событие <> ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.РаботаПоЗН)
                И РабочееВремяМехаников.ПричинаПростоя = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ПустаяСсылка)
            ТОГДА "Отсутствие загрузки"
        КОГДА РабочееВремяМехаников.Событие = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.РаботаПоЗН)
            ТОГДА ""
        КОГДА РабочееВремяМехаников.Событие = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ОжиданиеЗЧ)
            ТОГДА "Ожидание запчастей"
        ИНАЧЕ РабочееВремяМехаников.ПричинаПростоя
    КОНЕЦ КАК ПричинаПростоя,
    НАЧАЛОПЕРИОДА(РабочееВремяМехаников.Период, ДЕНЬ) КАК Дата
ПОМЕСТИТЬ ВТ_ОбщиеДанные
ИЗ
    РегистрСведений.РабочееВремяМехаников КАК РабочееВремяМехаников
ГДЕ
    РабочееВремяМехаников.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И РабочееВремяМехаников.ОбщееВремя > 0

СГРУППИРОВАТЬ ПО
    РабочееВремяМехаников.ВремяПредСобытия,
    РабочееВремяМехаников.Период,
    РабочееВремяМехаников.Событие,
    РабочееВремяМехаников.Механик,
    РабочееВремяМехаников.ЗаказНаряд,
    РабочееВремяМехаников.РабочееМесто,
    ВЫБОР
        КОГДА РабочееВремяМехаников.Событие <> ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ОжиданиеЗЧ)
                И РабочееВремяМехаников.Событие <> ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.РаботаПоЗН)
                И РабочееВремяМехаников.ПричинаПростоя = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ПустаяСсылка)
            ТОГДА "Отсутствие загрузки"
        КОГДА РабочееВремяМехаников.Событие = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.РаботаПоЗН)
            ТОГДА ""
        КОГДА РабочееВремяМехаников.Событие = ЗНАЧЕНИЕ(Справочник.ВидыСобытийРабочегоВремениМехаников.ОжиданиеЗЧ)
            ТОГДА "Ожидание запчастей"
        ИНАЧЕ РабочееВремяМехаников.ПричинаПростоя
    КОНЕЦ,
    РабочееВремяМехаников.ЗаказНаряд.Ответственный,
    ЕСТЬNULL(РабочееВремяМехаников.ОбщееВремя, 0),
    НАЧАЛОПЕРИОДА(РабочееВремяМехаников.Период, ДЕНЬ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ОбщиеДанные.Механик,
    СУММА(ВТ_ОбщиеДанные.Время / 60) КАК Время,
    ВТ_ОбщиеДанные.Дата
ПОМЕСТИТЬ ВТ_ВремяПрисутствия
ИЗ
    ВТ_ОбщиеДанные КАК ВТ_ОбщиеДанные

СГРУППИРОВАТЬ ПО
    ВТ_ОбщиеДанные.Механик,
    ВТ_ОбщиеДанные.Дата
;

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

СГРУППИРОВАТЬ ПО
    ВТ_ОбщиеДанные.Механик,
    ВТ_ОбщиеДанные.Дата
;

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

СГРУППИРОВАТЬ ПО
    ВТ_ОбщиеДанные.Механик,
    ВТ_ОбщиеДанные.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ВремяПрисутствия.Механик,
    СУММА(ВТ_ВремяПрисутствия.Время * 100 / 12) КАК Время,
    ВТ_ВремяПрисутствия.Дата
ПОМЕСТИТЬ ВТ_КоэффициентПрисутствия
ИЗ
    ВТ_ВремяПрисутствия КАК ВТ_ВремяПрисутствия

СГРУППИРОВАТЬ ПО
    ВТ_ВремяПрисутствия.Механик,
    ВТ_ВремяПрисутствия.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ВремяРаботыПоЗН.Механик,
    СУММА(ВТ_ВремяРаботыПоЗН.Время / 11 * 100) КАК Время,
    ВТ_ВремяРаботыПоЗН.Дата
ПОМЕСТИТЬ ВТ_Загрузка
ИЗ
    ВТ_ВремяРаботыПоЗН КАК ВТ_ВремяРаботыПоЗН

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

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

СГРУППИРОВАТЬ ПО
    ВТ_ОбщиеДанные.Механик,
    ЗаказПокупателяУслуги.Ссылка,
    ЗаказПокупателяУслуги.Количество,
    ЗаказПокупателяУслуги.Номенклатура,
    ВТ_ОбщиеДанные.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ПодИтогПроданных.Механик,
    СУММА(ВТ_ПодИтогПроданных.КоличествоПроданныхЧасов) КАК КоличествоПроданныхЧасов,
    ВТ_ПодИтогПроданных.Дата
ПОМЕСТИТЬ ВТ_ПроданныеЧасы
ИЗ
    ВТ_ПодИтогПроданных КАК ВТ_ПодИтогПроданных

СГРУППИРОВАТЬ ПО
    ВТ_ПодИтогПроданных.Механик,
    ВТ_ПодИтогПроданных.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ВремяРаботыПоЗН.Механик,
    ВЫБОР
        КОГДА ВТ_ПроданныеЧасы.КоличествоПроданныхЧасов > 0
            ТОГДА ВТ_ПроданныеЧасы.КоличествоПроданныхЧасов / ВТ_ВремяРаботыПоЗН.Время * 100
        ИНАЧЕ 0
    КОНЕЦ КАК Производительность,
    ВТ_ВремяРаботыПоЗН.Дата
ПОМЕСТИТЬ ВТ_Производительность
ИЗ
    ВТ_ВремяРаботыПоЗН КАК ВТ_ВремяРаботыПоЗН
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПроданныеЧасы КАК ВТ_ПроданныеЧасы
        ПО ВТ_ВремяРаботыПоЗН.Механик = ВТ_ПроданныеЧасы.Механик
            И ВТ_ВремяРаботыПоЗН.Дата = ВТ_ПроданныеЧасы.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ВремяРаботыПоЗН.Механик,
    СУММА(ВЫБОР
            КОГДА ВТ_ПроданныеЧасы.КоличествоПроданныхЧасов > 0
                ТОГДА ВТ_ПроданныеЧасы.КоличествоПроданныхЧасов / 11 * 100
            ИНАЧЕ 0
        КОНЕЦ) КАК Продуктивность,
    ВТ_ВремяРаботыПоЗН.Дата
ПОМЕСТИТЬ ВТ_Продуктивность
ИЗ
    ВТ_ВремяРаботыПоЗН КАК ВТ_ВремяРаботыПоЗН
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПроданныеЧасы КАК ВТ_ПроданныеЧасы
        ПО ВТ_ВремяРаботыПоЗН.Механик = ВТ_ПроданныеЧасы.Механик
            И ВТ_ВремяРаботыПоЗН.Дата = ВТ_ПроданныеЧасы.Дата

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ВремяПрисутствия.Механик,
    ЕСТЬNULL(ВТ_ВремяПрисутствия.Время, 0) КАК ВремяПрисутствия,
    ЕСТЬNULL(ВТ_ВремяПростоя.Время, 0) КАК ВремяПростоя,
    ЕСТЬNULL(ВТ_ВремяРаботыПоЗН.Время, 0) КАК ВремяРаботыПоЗН,
    ЕСТЬNULL(ВТ_Загрузка.Время, 0) КАК ЗагрузкаПроценты,
    ЕСТЬNULL(ВТ_КоэффициентПрисутствия.Время, 0) КАК КоэффициентПрисутствия,
    ЕСТЬNULL(ВТ_ПроданныеЧасы.КоличествоПроданныхЧасов, 0) КАК КоличествоПроданныхЧасов,
    ЕСТЬNULL(ВТ_Продуктивность.Продуктивность, 0) КАК Продуктивность,
    ЕСТЬNULL(ВТ_Производительность.Производительность, 0) КАК Производительность,
    ВТ_ВремяПрисутствия.Дата
ПОМЕСТИТЬ ВТ_Итоги
ИЗ
    ВТ_ВремяПрисутствия КАК ВТ_ВремяПрисутствия
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяРаботыПоЗН КАК ВТ_ВремяРаботыПоЗН
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_ВремяРаботыПоЗН.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВремяПростоя КАК ВТ_ВремяПростоя
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_ВремяПростоя.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КоэффициентПрисутствия КАК ВТ_КоэффициентПрисутствия
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_КоэффициентПрисутствия.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Загрузка КАК ВТ_Загрузка
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_Загрузка.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПроданныеЧасы КАК ВТ_ПроданныеЧасы
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_ПроданныеЧасы.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Производительность КАК ВТ_Производительность
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_Производительность.Механик
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Продуктивность КАК ВТ_Продуктивность
        ПО ВТ_ВремяПрисутствия.Механик = ВТ_Продуктивность.Механик
;

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

СГРУППИРОВАТЬ ПО
    ФизическиеЛица.Ссылка,
    СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Итоги.Механик,
    ВТ_Итоги.ВремяПрисутствия,
    ВТ_Итоги.ВремяПростоя - 1 КАК ВремяПростоя,
    ВТ_Итоги.ВремяРаботыПоЗН,
    ВТ_Итоги.ЗагрузкаПроценты,
    ВТ_Итоги.КоэффициентПрисутствия,
    ВТ_Итоги.КоличествоПроданныхЧасов,
    ВТ_Итоги.Продуктивность,
    ВТ_Итоги.Производительность,
    ВТ_ФизЛицоПодразделение.Подразделение КАК Подразделение,
    ВТ_Итоги.Дата
ИЗ
    ВТ_Итоги КАК ВТ_Итоги
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ФизЛицоПодразделение КАК ВТ_ФизЛицоПодразделение
        ПО ВТ_Итоги.Механик = ВТ_ФизЛицоПодразделение.Ссылка
5 mikecool
 
16.12.14
14:54
(3) миста - победитель в конкурсе "самый быстрый поиск"
6 su_mai
 
16.12.14
14:58
(0) Сначала сам выяви в чем конкретно разность заключается
7 fantomrik
 
16.12.14
15:32
(6) В отчете число меньше в запросе. На сколько меньше в разные дни - зависимости не увидел, по разному.
8 mzelensky
 
16.12.14
15:46
(0) Если запрос одинаковый (в консоли и СКД), а результат на выходе разный - в первую очередь проверяй корректность заполнения параметров.
9 mzelensky
 
16.12.14
15:47
(8) И вот это что за херь:

И ЗаказПокупателяУслуги.Номенклатура.Артикул <> "00999997"
10 ИС-2
 
naïve
16.12.14
15:53
СКД преобразует запрос по своему усмотреть. Чтобы увидеть разницу между исходным запросом и СКД используй zaprosnik.skd
11 KrivosheevE V163rus
 
16.12.14
16:46
(9)
Открытое пренебрежение услугой.
12 fantomrik
 
16.12.14
18:14
(8) параметры одинаковы
(9) Исключение определенной номенклатуры из строк результата
(10) Поделитесь ссылкой пожалуйста, не инфостар! Гуглил и яндексел, не нашел где скачать такое(
13 TormozIT
 
гуру
16.12.14
18:17
Используй "Инструменты разработчика" http://devtool1c.ucoz.ru/index/konsol_komponovki_dannykh/0-20
14 fantomrik
 
16.12.14
18:22
(13) Спасибо! не подскажите как в консоли ИР посмотреть как изменяется запрос мой в СКД? не могу понять где это
15 Мимохожий Однако
 
16.12.14
18:28
(13)ОФФ: Ты попал. "Теперь он и тебя посчитает"