Имя: Пароль:
1C
1С v8
Добавить в запрос еще одно условие.
0 progaoff
 
26.08.15
14:03
Запрос =  Новый Запрос;
        Запрос.Текст="ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ФактическиеГрафикиСпециалистов.Период КАК Период
        |ИЗ
        |    РегистрСведений.ФактическиеГрафикиСпециалистов КАК ФактическиеГрафикиСпециалистов
        |ГДЕ
        |    ФактическиеГрафикиСпециалистов.Период МЕЖДУ &НачПериода И &КонПериода
        |    И ФактическиеГрафикиСпециалистов.Специалист = &Специалист
        |    И ФактическиеГрафикиСпециалистов.Организация = &Организация
        |
        |УПОРЯДОЧИТЬ ПО
        |    Период";
        Запрос.УстановитьПараметр("Специалист", Специалист);
        Запрос.УстановитьПараметр("НачПериода",НачалоМесяца(ТекДата));
        Запрос.УстановитьПараметр("КонПериода",КонецМесяца(ТекДата));
        Запрос.УстановитьПараметр("Организация", Организация);
        СписокСмен=Новый СписокЗначений;
        СписокСмен.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Период"));
        
        Запрос.Текст="ВЫБРАТЬ
        |    ПланГрафикСрезПоследних.Специалист,
        |    ПланГрафикСрезПоследних.Оклад
        |ИЗ
        |    РегистрСведений.ПланГрафик.СрезПоследних(&КонПериода, ) КАК ПланГрафикСрезПоследних
        |ГДЕ
        |    ПланГрафикСрезПоследних.Организация = &Организация
        |    И ПланГрафикСрезПоследних.Должность = &Должность
        |    И ПланГрафикСрезПоследних.Специалист = &Специалист";
        
        Запрос.УстановитьПараметр("Должность",Справочники.Должности.Уборщица);
        Запрос.УстановитьПараметр("Организация", Организация);                
        Запрос.УстановитьПараметр("Специалист",Специалист);
        
        Выборка=Запрос.Выполнить().Выбрать();
        Если Выборка.Количество()>0 Тогда
            Выборка.Следующий();
            ОкладнаяЧасть = Выборка.Оклад;
            ИтогЗП = ОкладнаяЧасть*СписокСмен.Количество();
            Уборщица=Выборка.Специалист;
            ОбластьДанные.Параметры.СписокСмен = СписокСмен.Количество();
            ОбластьДанные.Параметры.ОкладнаяЧасть = ОкладнаяЧасть;
            ОбластьДанные.Параметры.ИтогЗП = ИтогЗП;
        Иначе
            Уборщица=Справочники.ФизическиеЛица.ПустаяСсылка();
        КонецЕсли;
Добрый день. Подскажите что еще сюда нужно добавить что бы вываливался весь список сотрудников? В данный момент только по организации а нужно еще что бы по всем разрешенным организациям выпадал список.
1 Gunner
 
26.08.15
14:11
Изменить условия:
1) ФактическиеГрафикиСпециалистов.Организация = &Организация
на
ФактическиеГрафикиСпециалистов.Организация в (&Организации)
2) ПланГрафикСрезПоследних.Организация = &Организация
на ПланГрафикСрезПоследних.Организация в (&Организации)
Установить параметр:
Запрос.УстановитьПараметр("Организации", Организации);
//это отбор по нужным организациям
2 magicSan
 
26.08.15
14:13
(1) Как ты тока понял что человеку надо ....
3 Кир Пластелинин
 
26.08.15
14:13
отдельный модуль для уборщиц?)
4 Апош
 
26.08.15
14:15
>Уборщица=Справочники.ФизическиеЛица.ПустаяСсылка();
так уборщиц ещё никто не унижал
5 progaoff
 
26.08.15
14:16
))))
6 Gunner
 
26.08.15
14:17
(2) Ну у человека отбор по одной организации идет, а он хочет по всем разрешенным. Я так и подумал, что где-то устанавливается отбор по этим организациям
7 magicSan
 
26.08.15
14:19
(6) Ему нужен какой-то список. Если по разрешенным то RLS отработает и без отбора.
8 progaoff
 
26.08.15
14:24
Отбор должен остатся, думал поставить флаг, что если он нажат то вываливается весь список РАЗРЕШЕННЫХ
9 Gunner
 
26.08.15
14:31
Не совсем понятна задача! Вам что нужно в итоге получить? Список сотрудников по ВСЕМ организациям?
10 progaoff
 
26.08.15
14:33
Да.
11 Gunner
 
26.08.15
14:39
(10) Тогда в чем проблема убрать отбор по организации?
12 progaoff
 
26.08.15
14:50
Не помогает
13 Gunner
 
26.08.15
14:50
Т.е., а что не так?
14 progaoff
 
26.08.15
14:54
Выдает одного сотрудника
15 Gunner
 
26.08.15
15:04
Правильно, у вас же отбор по специалисту есть. Я так понимаю, что специалист - это и есть сотрудник
16 progaoff
 
26.08.15
15:04
и специалиста убрал
17 Gunner
 
26.08.15
15:07
Вы берете вирт таблица "срез последних"! Запрос вернет вам послед. запись
18 Gunner
 
26.08.15
15:18
В РС "ПланГрафик" должность и специалист - это что есть? специалист-измерение, а должность-ресурс?
19 progaoff
 
26.08.15
15:20
Тоже измерение
20 Gunner
 
26.08.15
15:33
Запрос.Текст="ВЫБРАТЬ
        |    ПланГрафикСрезПоследних.Специалист,
        |    ПланГрафикСрезПоследних.Оклад
        |ИЗ
        |    РегистрСведений.ПланГрафик.СрезПоследних(&КонПериода, Должность = &Должность) КАК ПланГрафикСрезПоследних";

А если вот так?
21 progaoff
 
26.08.15
16:34
ВЫБРАТЬ
    ФактическиеГрафикиСпециалистовСрезПоследних.Должность,
    КОЛИЧЕСТВО(ФактическиеГрафикиСпециалистовСрезПоследних.Работает) КАК Смен,
    ФактическиеГрафикиСпециалистовСрезПоследних.Специалист,
    ПланГрафик.Оклад
ИЗ
    РегистрСведений.ФактическиеГрафикиСпециалистов.СрезПоследних КАК ФактическиеГрафикиСпециалистовСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланГрафик КАК ПланГрафик
        ПО ПланГрафик.Оклад >= ФактическиеГрафикиСпециалистовСрезПоследних.Специалист
ГДЕ
    ФактическиеГрафикиСпециалистовСрезПоследних.Должность = &Должность
    И ФактическиеГрафикиСпециалистовСрезПоследних.Период МЕЖДУ &НачПериода И &КонПериода

СГРУППИРОВАТЬ ПО
    ФактическиеГрафикиСпециалистовСрезПоследних.Должность,
    ФактическиеГрафикиСпециалистовСрезПоследних.Специалист
Делаю отдельную процедуру, но не могу отсюда оклад получить, выдает NULL
22 progaoff
 
26.08.15
16:37
Количество смен и сотрудники в одном регистре, а оклад в другом, количество выходов вывелось по сотрудникам а оклад не могу прицепить
23 Gunner
 
26.08.15
16:52
ПО ПланГрафик.Оклад >= ФактическиеГрафикиСпециалистовСрезПоследних.Специалист - это что за "бяка"))
24 progaoff
 
26.08.15
16:57
Да там = стоит....то просто испытываю судьбу...
25 hhhh
 
26.08.15
16:57
(24) да, как оклад может быть равен специалисту? Оклад в рублях, а специалист в килограммах.
26 progaoff
 
26.08.15
16:59
а что нужно выставить?
27 hhhh
 
26.08.15
17:02
как это, выставить?
28 progaoff
 
26.08.15
17:03
нет не так, сравнить во...
29 hhhh
 
26.08.15
17:05
ну по какому полю из РегистрСведений.ПланГрафик вы привязываетесь?
30 progaoff
 
26.08.15
17:05
По сотруднику ищу его оклад
31 hhhh
 
26.08.15
17:07
может так?

ВЫБРАТЬ

    ФактическиеГрафикиСпециалистовСрезПоследних.Должность,
    КОЛИЧЕСТВО(ФактическиеГрафикиСпециалистовСрезПоследних.Работает) КАК Смен,
    ФактическиеГрафикиСпециалистовСрезПоследних.Специалист,
    ФактическиеГрафикиСпециалистовСрезПоследних.Специалист.Оклад КАК Оклад
ИЗ
    РегистрСведений.ФактическиеГрафикиСпециалистов.СрезПоследних КАК ФактическиеГрафикиСпециалистовСрезПоследних

ГДЕ

    ФактическиеГрафикиСпециалистовСрезПоследних.Должность = &Должность
    И ФактическиеГрафикиСпециалистовСрезПоследних.Период МЕЖДУ &НачПериода И &КонПериода

СГРУППИРОВАТЬ ПО
    ФактическиеГрафикиСпециалистовСрезПоследних.Должность,
    ФактическиеГрафикиСпециалистовСрезПоследних.Специалист


???
32 progaoff
 
26.08.15
17:09
В том то и дело что оклад у специалиста отсутствует, это поле находится в документе кадровый приказ. и заносится в регистр с этого поля