Так как комментарии уже закрыты к мему предыдущему вопросу напишу его снова и постараюсь уточнить, что именно вызывает трудности:
«Добрый день! На основе базового отчета 1С Кадры-Численность и текучесть я настроила себе отчет по подсчету среднесписочной численности , численность в нем может считаться по выбранному подразделению в разрезе категорий воинского учета. в данный момент мне нужно чтоб я могла посчитать среднесписочную численность в разрезе образования и возраста, скажите возможно ли это как то это сделать без доп. обработок в данной версии базового отчета, поискала , но не нашла и если да, то подскажите как через пользовательское поле новое или какие отдельные настройки.»
Прошу пояснить с помощью какой формулы я могу рассчитать пользовательское поле возраст. Мне нужно чтоб возраст не на текущую дату считался. а на дату окончания периода заданного в параметрах. Заранее благодарна за ответ
Здравствуйте!
Мы получили Ваш вопрос. Прошу чуть больше времени на подготовку ответа для Вас ❤️
Добрый вечер! Для расчета Возраста я использовала такое выражение:
Выбор
Когда Месяц([Параметры.Конец периода]) = Месяц([Сотрудник.Физическое лицо.Дата рождения]) И День([Параметры.Конец периода]) < День([Сотрудник.Физическое лицо.Дата рождения]) Тогда Год([Параметры.Конец периода]) - Год([Сотрудник.Физическое лицо.Дата рождения]) - 1 Когда Месяц([Параметры.Конец периода]) = Месяц([Сотрудник.Физическое лицо.Дата рождения]) И День([Параметры.Конец периода]) >= День([Сотрудник.Физическое лицо.Дата рождения])
Тогда Год([Параметры.Конец периода]) — Год([Сотрудник.Физическое лицо.Дата рождения])
Когда Месяц([Параметры.Конец периода]) < Месяц([Сотрудник.Физическое лицо.Дата рождения]) Тогда Год([Параметры.Конец периода]) - Год([Сотрудник.Физическое лицо.Дата рождения]) - 1 Иначе Год([Параметры.Конец периода]) - Год([Сотрудник.Физическое лицо.Дата рождения]) Конец Считается на дату окончания периода из параметров отчета.
Огромное спасибо, помогли, параметр я этот вчера нашла который за конечную дату отвечает «Параметры. Конец периода», но в пользовательском поле в выражении менее обширную формулу прописала, хотя возраст стал корректно считаться, но сейчас изменю на вашу всё-таки.
И еще можете еще подсказать: изначально стояла задача не только в отчете завести поле Возраст, но и чтобы группировалась среднесписочная численность по этому полю по категории «До 30 лет»(не включая 30) , «от 30 до 50 лет»(не включая 30) , «свыше 50 лет»….вот тут я совсем не понимаю как реализовать это можно, если сможете помочь буду очень благодарна, а то придется вручную через эксель по формуле «если» считать, что конечно не хочется(
Попробовала вставить вашу формулу : Пишет исправьте синтаксические ошибки, я особо е понимаю чего от меня хочет система, поэтому оставила свою формулу, которую удалось поставить без ошибок, проверила по некоторым людям вроде корректно всем считает возраст на конечную дату отчета. Посмотрите пожалуйста, это же тоже нормальная формула, по ней нет ошибок и он считает как надо:
Год([Параметры.Конец периода]) — Год([Сотрудник.Физическое лицо.Дата рождения]) — Выбор
Когда Месяц([Параметры.Конец периода]) Месяц([Сотрудник.Физическое лицо.Дата рождения])
Тогда 1
Иначе Выбор
Когда Месяц([Параметры.Конец периода]) = Месяц([Сотрудник.Физическое лицо.Дата рождения]) И День([Параметры.Конец периода]) < День([Сотрудник.Физическое лицо.Дата рождения])
Тогда 1
Иначе 0
Конец
Конец
При копировании скорее всего не верно копируются знаки «минус», попробуйте их с клавиатуры заменить. Ваша формула мне тоже нравится!
В Вашей формуле не хватает одного знака вот тут: Когда Месяц([Параметры.Конец периода]) Месяц([Сотрудник.Физическое лицо.Дата рождения])
Тут полагаю стоит «меньше», просто не скопировалось. По-моему все хорошо, не вижу подводных камней. Она даже короче и понятнее!
изначально стояла задача не только в отчете завести поле Возраст, но и чтобы группировалась среднесписочная численность по этому полю по категории «До 30 лет»(не включая 30) , «от 30 до 50 лет»(не включая 30) , «свыше 50 лет»….
Я так и поняла в исходном отчете, поэтому уточнила, как еще надо возврат сгруппировать. Пользовательское поле нельзя использовать для создания другого пользовательского поля, поэтому в такой группировке придется прописать полный алгоритм. Основала на Вашем расчете возраста:
Выбор
Когда Год([Параметры.Конец периода]) — Год([Сотрудник.Физическое лицо.Дата рождения]) — Выбор
Когда Месяц([Параметры.Конец периода]) < Месяц([Сотрудник.Физическое лицо.Дата рождения]) Тогда 1 Иначе Выбор Когда Месяц([Параметры.Конец периода]) = Месяц([Сотрудник.Физическое лицо.Дата рождения]) И День([Параметры.Конец периода]) < День([Сотрудник.Физическое лицо.Дата рождения]) Тогда 1 Иначе 0 Конец Конец < 30 Тогда "До 30" Иначе Выбор Когда Год([Параметры.Конец периода]) - Год([Сотрудник.Физическое лицо.Дата рождения]) - Выбор Когда Месяц([Параметры.Конец периода]) < Месяц([Сотрудник.Физическое лицо.Дата рождения]) Тогда 1 Иначе Выбор Когда Месяц([Параметры.Конец периода]) = Месяц([Сотрудник.Физическое лицо.Дата рождения]) И День([Параметры.Конец периода]) < День([Сотрудник.Физическое лицо.Дата рождения]) Тогда 1 Иначе 0 Конец Конец < 50 Тогда "От 30 до 50 лет" Иначе "От 50" Конец Конец
Единственное, не получилось вывести это поле как группировку над сотрудником. Я так понимаю, что это происходит потому что в самом поле используется Сотрудник, поэтому «под» сотрудником это отрабатывает нормально, а «над» сотрудником — нет. :((


Под сотрудником:
«Над» сотрудником:


Извините за опечатку в названии поля, у меня на них слепота. Увидела сейчас, когда уже отправила.
Огромное Вам спасибо, вы очень помогли в решении поставленной задачи передо мной, формула работающая, я ее спокойно выставила в группировку над сотрудником, и теперь вся среднесписочная красиво делится по возрасту на три категории. И да, Вы правы, нужно в синтаксисе менять некоторые минусы вручную, они при копировании как «тире» вставляются. Вот можно еще последний интересующий по этому отчету вопрос: теперь все интересующие группировки настроены, но так как организаций несколько приходится по каждой организации формировать отчет и суммировать между собой группировки, чтоб получить единый показатель в разрезе возраста, одной цифрой, пыталась в параметрах отчета заменить поле «Организация» на поле «Организация. Головная организация», но система пишет : «поле Организация не может быть использовано в группировке «Организация. Головная организация»….Я сделала вывод , что конкретно этот отчет может формироваться только в разрезе одной организациии, а если их несколько то сформировать общий отчет по головной организации не получится. Так ли это или я просто не нашла правильных настроек?
Видимо шапка этого отчета зашита в макет.
Можно попробовать настроить новую группировку по Головной организации и перетащить туда все группировки подчиненные организации. Но в отчёте не будет такой шапки
Спасибо, помогло
Отлично! Рада была помочь! 🤗