8.х Запрос по отработанным часам

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Evgenya, 25 июн 2010.

  1. TopicStarter Overlay
    Evgenya
    Offline

    Evgenya

    Регистрация:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Помогите, пожалуйста, разобраться пишу Запрос в ЗУПе: подсчет отработанных часов по категориям статистического учета(служашие, рабочие, специалисты, руководители), общая сумма получается правильной, а вот по категория считает не правильно. В чём может быть ошибка?

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


    Запрос.УстановитьПараметр("НачДата", НачалоДня(мДатаНачалаПериода));
    Запрос.УстановитьПараметр("КонДата", КонецДня(мДатаОкончанияПериода));
    Запрос.УстановитьПараметр("Организация", мОрганизация);
    Запрос.УстановитьПараметр("ОсновноеМестоРаботы", Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы);
    Запрос.УстановитьПараметр("Подразделение", ВосстановитьЗначение("Подразделение"));
    Запрос.УстановитьПараметр("Категория",Категория);



    Категории передаются следующим образом

    Категория = Перечисления.КатегорииДолжностейДляСтатистическогоУчета.Рабочие;
    (-//-.ДругиеСлужащие) и т.д.
  2. TopicStarter Overlay
    Evgenya
    Offline

    Evgenya

    Регистрация:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    проверила выборкой получается, что сотрудника выбирает правильно, а должность не правильно, почему понять не могу, может я не правильно условие задаю?
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Возможно у какого-то сотрудника не заполнена "Категория", поэтому когда вы выполняете запрос без отбора по категориям (убрав в запросе строку "| И ОсновныеНачисленияРаботниковОрганизаций.Сотрудник.Должность.КатегорияСтатистическогоУчета = &Категория") то сумма одна, когда же вы подставляете значения "Перечисления.КатегорииДолжностейДляСтатистическогоУчета." то естественно в итоге у вас не будет то же самое число потому что вы наверняка не учитываете пустое значение.


    Вставьте в запрос Итоги по категориям служащих и посмотрите в консоли запросов результат. Если я правильно понял ваш вопрос.
  4. TopicStarter Overlay
    Evgenya
    Offline

    Evgenya

    Регистрация:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Суть в том, что получается, если считать по категориям, а потом сложить, то общая сумма будет правильной, но если смотреть по категориям, то не правильно получается.Например
    Должно быть: Рабочие - 0
    Служащие - 7
    Специаллисты - 6
    Руководители - 15
    Всего - 28

    А получается Рабочие - 0
    Служащие - 4
    Специаллисты - 7
    Руководители - 17
    Всего - 28
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Почему вы на вид занятости проверяете в Выбор Когда, а не ставите в условие что вид занятости должне быть Основное место работы.
  6. TopicStarter Overlay
    Evgenya
    Offline

    Evgenya

    Регистрация:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    в любом случае результат один
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    а как вы сравниваете правильно или нет? откуда данные по должностям для проверки берете? из этого же регистра Основные начисления? ил вы просто смотрите на каких должностях кто числиться?
  8. TopicStarter Overlay
    Evgenya
    Offline

    Evgenya

    Регистрация:
    16 апр 2008
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Спасибо всем большое справилась с этим вопросом. Здесь нужно проверять на какой должности числится сотрудник на конкретную дату.

Поделиться этой страницей