1.
Гость
20.04.21 10:15
Пожалуйста помогите, во внешнем отчете нужно, чтобы выводились стажи, как представлено на первой картинки (стаж и дата отчета), нашла в регистре сведений СтажиФизическихЛиц, там есть вид и дата отчета. Вопрос состоит в том, что нужно прописать условие, чтобы выводились стажи. Как это сделать не понимаю. Прошу объяснить, чтобы раз и навсегда с ними разобраться.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Можно сделать ВТ (временные таблицы) для каждого вида стажа (условие), потом их собрать для сотрудника. На дату отчета стаж будет считаться по формуле (к дням и месяцам из регистра прибавить разницу в днях и месяцев между датой отчета и ДатойОтсчета из вашего регистра)
Это решение
(5) Из моего запроса (использую РС НакопленныеСтажиФизическихЛиц):
1) для месяцев
2) для дней
1) для месяцев
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), МЕСЯЦ, РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)) <= &Дата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)
ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ) - 1
КОНЕЦ
2) для дней
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), МЕСЯЦ, РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)) <= &Дата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), МЕСЯЦ, РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)), &Дата, ДЕНЬ)
ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), МЕСЯЦ, ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), МЕСЯЦ, РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)) <= &Дата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ)
ИНАЧЕ РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(НакопленныеСтажиФизическихЛиц.ДатаНачала, МЕСЯЦ, -НакопленныеСтажиФизическихЛиц.РазмерМесяцев), ДЕНЬ, -НакопленныеСтажиФизическихЛиц.РазмерДней), &Дата, МЕСЯЦ) - 1
КОНЕЦ), &Дата, ДЕНЬ)
КОНЕЦ
Показать
Это решение
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот