Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Добавить в исключение одного сотрудника в запросе

Добавить в исключение одного сотрудника в запросе
Я
   VID1234
 
11.08.21 - 13:04
Здравствуйте. Есть такой запрос!
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Начисления.Сотрудник КАК Сотрудник,
        |    ЕСТЬNULL(Начисления.ОтработаноЧасов, 0) КАК ОтработаноЧасов,
        |    Начисления.Регистратор КАК Регистратор,
        |    Начисления.ВидРасчета КАК ВидРасчета
        |ПОМЕСТИТЬ ВТ_Часы
        |ИЗ
        |    РегистрРасчета.Начисления КАК Начисления
        |ГДЕ
        |    Начисления.ВидРасчета.ВидВремени = &ВидВремени
        |;
        |
        |////////////////////////////////////////////////////////////­////////////////////
        |ВЫБРАТЬ
        |    БухучетРаспределениеОсновногоЗаработка.Сотрудник КАК Сотрудник,
        |    БухучетРаспределениеОсновногоЗаработка.СтатьяФинансирования КАК СтатьяФинансирования,
        |    БухучетРаспределениеОсновногоЗаработка.СпособОтраженияЗарплатыВБухучете КАК СпособОтраженияЗарплатыВБухучете,
        |    БухучетРаспределениеОсновногоЗаработка.ДоляРаспределения КАК ДоляРаспределения
        |ПОМЕСТИТЬ ВТ_Доля
        |ИЗ
        |    РегистрСведений.БухучетРаспределениеОсновногоЗаработка КАК БухучетРаспределениеОсновногоЗаработка
        |ГДЕ
        |    БухучетРаспределениеОсновногоЗаработка.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
        |;
        |
        |////////////////////////////////////////////////////////////­////////////////////
        |ВЫБРАТЬ
        |    БухучетНачисленияУдержанияПоСотрудникам.Сотрудник КАК Сотрудник,
        |    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете КАК СпособОтраженияЗарплатыВБухучете,
        |    БухучетНачисленияУдержанияПоСотрудникам.СтатьяФинансирования КАК СтатьяФинансирования,
        |    БухучетНачисленияУдержанияПоСотрудникам.Сумма КАК Сумма,
        |    ЕСТЬNULL(ВТ_Часы.ОтработаноЧасов * ВТ_Доля.ДоляРаспределения / 100, 0) КАК Часы
        |ИЗ
        |    РегистрНакопления.БухучетНачисленияУдержанияПоСотрудникам КАК БухучетНачисленияУдержанияПоСотрудникам
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Часы КАК ВТ_Часы
        |        ПО БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = ВТ_Часы.Сотрудник
        |            И БухучетНачисленияУдержанияПоСотрудникам.Регистратор = ВТ_Часы.Регистратор
        |            И БухучетНачисленияУдержанияПоСотрудникам.НачислениеУдержание = ВТ_Часы.ВидРасчета
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Доля КАК ВТ_Доля
        |        ПО БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = ВТ_Доля.Сотрудник
        |            И БухучетНачисленияУдержанияПоСотрудникам.СтатьяФинансирования = ВТ_Доля.СтатьяФинансирования
        |            И БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = ВТ_Доля.СпособОтраженияЗарплатыВБухучете
        |ГДЕ
        |   ВЫБОР
        |    КОГДА БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = &Сотрудник ТОГДА
        |    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете.Наименование ПОДОБНО ""%Способ2%""
        |    ИНАЧЕ
        |    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ
        |КОНЕЦ
        |    И БухучетНачисленияУдержанияПоСотрудникам.Период МЕЖДУ &НачПериода И &КонПериода
        |    И БухучетНачисленияУдержанияПоСотрудникам.НачислениеУдержание.ВклВРаспределениеПЭО";
    Запрос.УстановитьПараметр("Способ", Объект.Проект);
    Запрос.УстановитьПараметр("НачПериода",НачалоМесяца(Объект.Дата));
    Запрос.УстановитьПараметр("КонПериода",КонецМесяца(Объект.Дата));
    Запрос.УстановитьПараметр("ВидВремени",Перечисления.ВидыРабочегоВремениСотрудников.ОтработанноеВПределахНормы);
    Запрос.УстановитьПараметр("Сотрудник",Справочники.Сотрудники.НайтиПоКоду("ПА2"));
    
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выгрузить();
    
    Объект.ФОТ.Загрузить(ВыборкаДетальныеЗаписи);

Показать

Как работает этот запрос, есть самописный документ, в этом документе выведены сотрудники, СпособОтраженияЗарплатыВБухучете и доля в том или ином способе. Запрос в целом работает как нужно, но мне нужно добавить еще одного сотрудника, у которого СпособОтраженияЗарплатыВБухучете не тот который отображен в поле Объект.Проект.
В этом документе 35 человек имеет СпособОтраженияЗарплатыВБухучет - Способ, и еще 10 со Способ2, в их числе и сотрудник с кодом ПА2. Если у меня код написан так
БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ
, то выводится 35 сотрудников, если так:
ВЫБОР
        |    КОГДА БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = &Сотрудник ТОГДА
        |    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете.Наименование ПОДОБНО ""%Способ2%""
        |    ИНАЧЕ
        |    БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ
        |КОНЕЦ
то тоже 35, а должно быть 36, должен добавиться Сотрудник с кодом ПА2. Вопрос, что я делаю не так, почему условие не срабатывает? Как можно решить задачу?
   Жан Пердежон
 
1 - 11.08.21 - 13:20
трешовенько

...
ГДЕ
(СпособОтраженияЗарплатыВБухучете = &Способ ИЛИ Сотрудник = &Сотрудник)
...
   VID1234
 
2 - 11.08.21 - 13:27
(1) Здравствуйте. Теперь попало, но только теперь их несколько?, т.е. тот сотрудник разбился на несколько частей, видимо сколько способов отражения, столько он и вывел, а должен только по способу 2
   Жан Пердежон
 
3 - 11.08.21 - 13:29
(2) ты программист или где?
ГДЕ
(СпособОтраженияЗарплатыВБухучете = &Способ ИЛИ (Сотрудник = &Сотрудник И СпособОтраженияЗарплатыВБухучете = &Способ2)
...
   VID1234
 
4 - 11.08.21 - 13:37
(3) Только учусь! А задачу делать нужно! Не выводит, хотя я для теста взял и вывел реквизит на форму Способ2 и явно его заполнил, но толку нет, этот сотрудник не попал в список.
(БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ ИЛИ БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = &Сотрудник И БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ2)
Запрос.УстановитьПараметр("Способ2",Объект.ПроектДляАУП);
   VID1234
 
5 - 11.08.21 - 13:40
(3) скобку наверное забыл поставить, сейчас пробую
   VID1234
 
6 - 11.08.21 - 13:43
(3) нет, скобка не помогла
(БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ ИЛИ (БухучетНачисленияУдержанияПоСотрудникам.Сотрудник = &Сотрудник И БухучетНачисленияУдержанияПоСотрудникам.СпособОтраженияЗарплатыВБухучете = &Способ2)
   VID1234
 
7 - 11.08.21 - 13:44
в конце 2 скобки!
   VID1234
 
8 - 11.08.21 - 14:27
(3) все разобрался, спасибо. Начал шерстить регистры и понял что второй способ там не прописан, поэтому и не отображается, зашел в регистратор изменил способ отражения на правильный , соответственно в регистре тоже поменялось и все сразу заработало!

Список тем форума
 
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.