1С 8.2 ЗУП Список работающих в заданный период сотрудников
Здравствуйте! Есть у меня проблема. Нужно запросом получить список работающих сотрудников в рамках определенного периода( т.е. которые были уволены в период, приняты в период и уже работали в этот период) вот мой запрос:
Но он как-то неправильно отрабатывает, например не показывает принятых в течении периода на работу людей...и т.д.
Запрос.Текст="ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник.Ссылка КАК Сотрудник,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо.Ссылка КАК ФизЛицо,
| РаботникиОрганизацийСрезПоследних.Организация.Ссылка КАК Организация,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния.Ссылка,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Должность.Наименование КАК Должность
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачПериода, ) КАК РаботникиОрганизацийСрезПоследних
|ГДЕ
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния.Ссылка <> &Увольнение
| И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния.Ссылка = &Прием";
ПоказатьНо он как-то неправильно отрабатывает, например не показывает принятых в течении периода на работу людей...и т.д.
По теме из базы знаний
- Проверка не попавших в табель сотрудников. ЗУП
- Перенос документов по зарплате из ЗУП 3.1 в УНФ 3.0
- Защита объектов от изменения обменом
- Форма-подтверждение (csv) для отсрочки от мобилизации для сотрудников IT-компаний и операторов связи. Групповое формирование. Для ЗУП (3.1 + КОРП) / БП (3.0 + КОРП) / ЗГУ (3.1 + КОРП) / ERP / КА 2
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) M.Flint, Проблема в том, что я запросы недавно ковырять начал, и 1С вообще не моя основная специальность, но сделать надо...Я даже не предстваляю как делается двойной запрос :) Все что могу это в конструкторе простенький вот такой накидать (( Если сделать СрезПоследних на конец периода, то выпадут уволенные в ТЕЧЕНИЕ ЭТОГО ПЕРИОДА при этом запросе
Можно так:
ВЫБРАТЬ
РаботникиОрганизацийСрезПоследних.Сотрудник
ПОМЕСТИТЬ РаботающиеНаНачало
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачалоПериода, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
РаботникиОрганизаций.Сотрудник
ПОМЕСТИТЬ ПринятыеВПериоде
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
И РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
РаботающиеНаНачало.Сотрудник
ИЗ
РаботающиеНаНачало КАК РаботающиеНаНачало
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПринятыеВПериоде.Сотрудник
ИЗ
ПринятыеВПериоде КАК ПринятыеВПериоде
Показать
Уже, наверное, поздно, но сама искала такой запрос. В результате накропала сама:
Проверила, работает.
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("НачалоПериода", НачПериода);
Запрос.УстановитьПараметр("КонецПериода", КонПериода);
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Запрос.УстановитьПараметр("ПустаяДата", Дата(1,1,1,0,0,0));
Запрос.Текст =
"ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник КАК Сотрудник,
| РаботникиОрганизацийСрезПоследних.Период,
| РаботникиОрганизацийСрезПоследних.Должность,
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния,
| РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода, ПодразделениеОрганизации В ИЕРАРХИИ (&Подразделение)) КАК РаботникиОрганизацийСрезПоследних
|ГДЕ
| (РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения = &ПустаяДата
| ИЛИ РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения >= &НачалоПериода)
|
|УПОРЯДОЧИТЬ ПО
| Сотрудник
|АВТОУПОРЯДОЧИВАНИЕ";
ТаблЗапрос = Запрос.Выполнить().Выгрузить();
ПоказатьПроверила, работает.
(20) odin-7610, неправильный запрос. Нельзя ориентироваться на Сотрудник.ДатаУвольнения. В коде стандартных конфигураций разработчики ориентируются на РаботникиОрганизаций.ПериодЗавершения.
Для примера разберите Функцию Автозаполнение() в модуле документа "Табель учета рабочего времени организации"
А дата увольнения относиться к трудовому договору. У меня не всегда корректно работал запрос при отборе по данному реквизиту.
Для примера разберите Функцию Автозаполнение() в модуле документа "Табель учета рабочего времени организации"
А дата увольнения относиться к трудовому договору. У меня не всегда корректно работал запрос при отборе по данному реквизиту.
(13) ZergKRSK, я и не знаю какой реквизит поместить на форму диалога отчета (внешний отчет), чтобы добавлять нужные подразделения по условию "или", как в отчетах на СКД.
Для отбора по одному подразделению я просто вывела на форму поле ввода для выбора из справочника подразделений.
Для отбора по одному подразделению я просто вывела на форму поле ввода для выбора из справочника подразделений.
Дамы и господа. А стандартными отчетами воспользоваться не пробовали? Список сотрудников на пример
Правый нижний угол. Зырим на гаечный ключ. Там и настройка структуры и вывод пользовательских полей на форму, а если на дискетку нажать, то о боже. Оно на верхней панели отобразится. Если речь идет о ЗУП 2.5
Правый нижний угол. Зырим на гаечный ключ. Там и настройка структуры и вывод пользовательских полей на форму, а если на дискетку нажать, то о боже. Оно на верхней панели отобразится. Если речь идет о ЗУП 2.5
(26) , забирайте в прикрепленном файле. Он немного видоизменился за последнее время. Работает вроде нормально.
Прикрепленные файлы:
СписокСотрудниковЗаПериод.erf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот