#0
by Антиквар
Всем привет! Требуется получить все подразделения сотрудника, в которых он работал за квартал. Не получается красивый запрос. Сделал так: ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода Но тут получается, что если в регистре сведений РаботникиОрганизаций нет записей за период МЕЖДУ &НачалоПериода И &КонецПериода, но есть запись за предыдущий период, в которой ПериодЗавершения находится МЕЖДУ &НачалоПериода И &КонецПериода, то нужно взять ПодразделениеЗавершения, т.к. оно в этот период попадает. Но запрос это не выбирает. Если сделать ещё одно объединение, но уже по условию: РаботникиОрганизаций.ПериодЗавершения МЕЖДУ &НачалоПериода И &КонецПериода то тут может попасть ненужная информация, т.к. в предыдущем запросе по обычному периоду могли быть записи и они перекрывают данные. Короче запутался я что-то, помогите с запросом :) Или может в стандарте ЗУПа есть аналогичное, я бы там посмотрел. Но сам не нашел такого отчета.
#3
by Dmitry1c
Вот за что я не люблю ЗУП. Чтобы получить какую-то типичную инфу, нужно из((ебну(ться
#5
by Антиквар
Спасибо огромное, вот 3-ий запрос у меня никак и не получался, но понимал, что без него никак. Честно говоря я и сейчас, глядя на него, пока смысл не понял :)
#6
by SeraFim
ПериодЗавершения - для временных переводов. То есть по окончании перевода - человек вернется на старое место. Но возможны ситуации, когда по окончании перевода будет новый приказ. В таком случае, данные ПериодаЗавершения нам не нужны. Вот для этого и используется соединение в этом запросе
#7
by Антиквар
да, я в курсе про период завершения. >> Но возможны ситуации, когда по окончании перевода будет новый приказ. >> В таком случае, данные ПериодаЗавершения нам не нужны. Вот про это я и писал в первом посте, что не знаю как сделать 3-ий запрос в объединении, чтобы учесть данный момент. Вы мне прислали пример, но я пока не разобрался. Т.е. я понимаю, что этот запрос наверное делает то что нужно, но код для меня пока не читаемый :) Сейчас тут дергают по разным мелочам, подразгребу проблемы и вдумчиво буду читать код 3-го запроса :)
#8
by Антиквар
>> Но возможны ситуации, когда по окончании перевода будет новый приказ. В таком случае, данные ПериодаЗавершения нам не нужны. >>Вот для этого и используется соединение в этом запросе По-моему не совсем так. Если была запись в регистре до &НачалоМесяца, а период завершения у неё МЕЖДУ &НачалоМесяца И &КонецМесяца, и больше за отчетный период записей нет, то вот для этого и нужен 3-ий запрос, чтобы учесть подразделение завершения. А если есть записи перекрытия, т.е. если в отчетном периоде есть другие записи в регистре, то мы ничего не берем этим запросом, т.к. эти записи перекрывают и выбраны вторым запросом.
#9
by Антиквар
>> хотя и тут косяк Почему? Мне кажется всё верно. Во 2-м запросе мы должны учесть &НачалоМесяца, т.к. в первом запросе срез нам не даст движение регистра в дате начала месяца. В дате начала месяца он даст информацию лишь в том случае, если на эту дату есть период завершения. И вот тут проблема мне кажется, если период завершения - 1-ый день месяца, и в этот же день есть другая запись. Мы получим два подразделения, а нужно одно. Поэтому мне кажется в первом запросе в полях запроса надо делать не "<=", а строго "<":
#11
by Антиквар
Всё-таки что-то не так. Допустим делаем отчет за июнь. У сотрудника было кадровое перемещение с 15 по 31 мая из подразделения Подр1 в Подр2. Затем оформили кадровое перемещение сотрудника с 1 июня в подразделение Подр3, т.е. сотруднику не надо в июне возвращаться в Подр1. А что имеем: В регистре будет запись: Период = 15 мая, ПериодЗавершения = 1 июня. Первый запрос нам вернет ПодразделениеЗавершения = Подр1. Следующая запись в регистре: Период = 1 июня, и Подразделение = Подр3. Второй запрос нам вернет единственно правильное подразделение для месяца июнь: Подр3. Но Подр1 в выборке первого запроса лишнее. А если исправить второй запрос как ты пишешь, то и Подр3 не вернет, только Подр1. Совсем плохо :(
#12
by Антиквар
И даже если упростить задачу: имеем всего одно кадровое перемещение с 1 июня из подразделения Подр1 в Подр2, без всяких периодов завершения. Первый запрос вернет Подр1, второй запрос либо Подр2, либо в твоем варианте ничего не вернет. А должно вернуть только Подр2, Подр1 остается в мае.
#13
by Антиквар
Т.е. этот запрос видимо не дает готовый вариант. Нужно с его результатом работать, анализировать полученные периоды и исключать какие-то строки... Зашибись, вроде хотелка то элементарная на первый взгляд, получить список подразделений, в которых работал, а как сложно сделать.
#18
by SeraFim
У тебя путаница со срезом последних - неправильно понимаешь, как он работает. Из справки: СрезПоследних Предназначена для получения наиболее поздних записей регистра сведений на указанную дату (включительно) То есть если есть движения на дату среза (на 1 июня), то это движение и будет в срезе последних. Именно поэтому я и сделал поправочку в . Движения с датой = началу периода уже учтены в первом запросе
#19
by Антиквар
Да, ребят, извиняюсь, думал что не "включительно". Перепутал с сальдо регистра накопления. Дубли мне не важны, их отсею, главное чтобы попало только то что надо. Спасибо ещё раз, сейчас взгляну на эти запросы правильно :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- при обновлении с ЗУП 2.1.10.2 на ЗУП 2.5 выдаётся сообщение "Недостаточно п
- ЗУП: Оклад одного сотрудника равен проценту от оклада другого сотрудника
- v7: ЗУП Не могу обновить ЗУП 2.1,13.1 до 2.1.14.3
- Расчет среднего при суммированом ЗУП 257 против ЗУП 259
- Как перенести данные из ЗУП 80 в ЗУП 81?
- ЗУП 2.5.14.3 ЗУП 2.5.14.3 после обновления кто-нибудь пользовался обработкой
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- ЗУП какая разница между спр Подразделения и Подразделения орг
- Получить подразделение сотрудника, зная физ.лицо (ЗУП)
- ЗУП переход с досовской программы на 1с ЗУП
- У кого нибудь есть правила обмена между ЗУП 8 проф и бюджетной ЗУП 8 проф?
- ЗУП, бухгалтерия переименование подразделения
В этой группе 1С
- УПП Регистр налогового учета "Учет расходов по оплате труда"
- Экзамен "1С:Специалист" по платформе": можно ли пользоваться консолью запросов?
- Где в УПП настраивается возможность работать с комитентами
- 1С криво сохраняет табличные документы в PDF
- БП 3.0 нет Способа учета в документах по НДС
- Права для запуска 3.0
- Реквизит от ссылки в динамическом списке управляемой формы
- Запросом получаю ТЧ документа
- ЗУП 3.0 Табель сводно за период.
- ЗБУ (ЗУП) Сотрудница вышла на 2 дня с отпуска по уходу за ребенком. Как оформить
- Можно ли в БП_2.0 вместо ввода нач.остатков по товарам использ-ть оприходование?
- как программно вывести группировку в макет отчета ? не скд 1с82
- Обращение к стороннему Web сервису из 1с
- V8: Учет серийных номеров
- Конертация кд2 независимый регистр сведений в независиый рег сведений
- Списке документов можно ставить галочки (флажки)??
- Обновление регламентированной отчетности в 1с 8.2 БП
- Просроченная задолженность в ут11
- Красное сальдо на счете 62.01
- v8: Как программно замедлить отдельному пользователю работу ?