Добрый день, подскажите, пожалуйста решение.
Существует справочник сотрудников с указанием даты рождения сотрудника (тип "дата"). Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле), чтобы получить за указанный период таблицу распределения сотрудников по возрасту следующего вида:
Существует справочник сотрудников с указанием даты рождения сотрудника (тип "дата"). Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле), чтобы получить за указанный период таблицу распределения сотрудников по возрасту следующего вида:
Прикрепленные файлы:
По теме из базы знаний
- Пример решения расчетной задачи с табелем (для 1С:Специалист)
- Консультация для сдачи экзамена "1С:Специалист" по конфигурированию платформы
- Как сдать экзамен 1С:Специалист по платформе?
- Решение задачи 5.2 из Сборника задач для подготовки к экзамену 1С:Специалист по платформе
- Решение задач на Управляемые формы из Сборника задач для подготовки к экзамену 1С:Специалист по платформе
Найденные решения
Ну вот я тут накидал, запрос крайне кривой, с условностями, но как отправная точка - сойдет
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.ДатаРождения КАК ДатаРождения,
РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) КАК Год,
МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК Месяц
ПОМЕСТИТЬ ВозрастИМесяц
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
НЕ ФизическиеЛица.ЭтоГруппа
И НЕ ФизическиеЛица.ПометкаУдаления
И НЕ ФизическиеЛица.ДатаРождения = &ПустаяДата
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР КОГДА ВозрастИМесяц.Год МЕЖДУ 0 И 10
ТОГДА "Группа 0"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 11 И 20
ТОГДА "Группа 1"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 21 И 30
ТОГДА "Группа 2"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 31 И 40
ТОГДА "Группа 3"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 41 И 50
ТОГДА "Группа 4"
ИНАЧЕ "Группа 5"
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Группа,
ВозрастИМесяц.Месяц КАК Месяц,
СУММА(1) КАК Количество
ПОМЕСТИТЬ КоличествоИМесяц
ИЗ
ВозрастИМесяц КАК ВозрастИМесяц
СГРУППИРОВАТЬ ПО
ВозрастИМесяц.Месяц,
ВозрастИМесяц.Год
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
КоличествоИМесяц.Группа КАК Группа,
СУММА(КоличествоИМесяц.Количество) КАК Январь,
0 КАК Февраль,
0 КАК Март,
0 КАК Апрель,
0 КАК Май,
0 КАК Июнь,
0 КАК Июль,
0 КАК Август,
0 КАК Сентябрь,
0 КАК Октябрь,
0 КАК Ноябрь,
0 КАК Декабрь
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 1
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 2
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 3
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 4
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 5
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 6
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 7
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 8
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 9
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 10
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 11
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество)
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 12
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Группа КАК Группа,
СУММА(ВременнаяТаблица.Январь) КАК Январь,
СУММА(ВременнаяТаблица.Февраль) КАК Февраль,
СУММА(ВременнаяТаблица.Март) КАК Март,
СУММА(ВременнаяТаблица.Апрель) КАК Апрель,
СУММА(ВременнаяТаблица.Май) КАК Май,
СУММА(ВременнаяТаблица.Июнь) КАК Июнь,
СУММА(ВременнаяТаблица.Июль) КАК Июль,
СУММА(ВременнаяТаблица.Август) КАК Август,
СУММА(ВременнаяТаблица.Сентябрь) КАК Сентябрь,
СУММА(ВременнаяТаблица.Октябрь) КАК Октябрь,
СУММА(ВременнаяТаблица.Ноябрь) КАК Ноябрь,
СУММА(ВременнаяТаблица.Декабрь) КАК Декабрь
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
СГРУППИРОВАТЬ ПО
ВременнаяТаблица.Группа
УПОРЯДОЧИТЬ ПО ГРУППА
ПоказатьИ РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
это все условия задачи. примерный вариант я смог накидать только так, но это за один месяц
ВЫБРАТЬ
СУММА(ВЫБОР
КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) < 20
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК Меньше20,
СУММА(ВЫБОР
КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 20
И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 30
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ВозрастОт20До30,
СУММА(ВЫБОР
КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 31
И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 40
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ВозрастОт31До40,
СУММА(ВЫБОР
КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 41
И РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) <= 50
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК ВозрастОт41До50,
СУММА(ВЫБОР
КОГДА РАЗНОСТЬДАТ(Сотрудники.ДатаРождения, НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ), ГОД) >= 51
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК Больше50,
НАЧАЛОПЕРИОДА(&КонДата, МЕСЯЦ) КАК Период
ИЗ
Справочник.Сотрудники КАК Сотрудники,
ВТ_Период КАК ВТ_Период
Показать
Ну вот я тут накидал, запрос крайне кривой, с условностями, но как отправная точка - сойдет
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
ФизическиеЛица.ДатаРождения КАК ДатаРождения,
РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) КАК Год,
МЕСЯЦ(ФизическиеЛица.ДатаРождения) КАК Месяц
ПОМЕСТИТЬ ВозрастИМесяц
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
НЕ ФизическиеЛица.ЭтоГруппа
И НЕ ФизическиеЛица.ПометкаУдаления
И НЕ ФизическиеЛица.ДатаРождения = &ПустаяДата
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР КОГДА ВозрастИМесяц.Год МЕЖДУ 0 И 10
ТОГДА "Группа 0"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 11 И 20
ТОГДА "Группа 1"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 21 И 30
ТОГДА "Группа 2"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 31 И 40
ТОГДА "Группа 3"
ИНАЧЕ ВЫБОР
КОГДА ВозрастИМесяц.Год МЕЖДУ 41 И 50
ТОГДА "Группа 4"
ИНАЧЕ "Группа 5"
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК Группа,
ВозрастИМесяц.Месяц КАК Месяц,
СУММА(1) КАК Количество
ПОМЕСТИТЬ КоличествоИМесяц
ИЗ
ВозрастИМесяц КАК ВозрастИМесяц
СГРУППИРОВАТЬ ПО
ВозрастИМесяц.Месяц,
ВозрастИМесяц.Год
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
КоличествоИМесяц.Группа КАК Группа,
СУММА(КоличествоИМесяц.Количество) КАК Январь,
0 КАК Февраль,
0 КАК Март,
0 КАК Апрель,
0 КАК Май,
0 КАК Июнь,
0 КАК Июль,
0 КАК Август,
0 КАК Сентябрь,
0 КАК Октябрь,
0 КАК Ноябрь,
0 КАК Декабрь
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 1
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 2
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 3
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 4
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 5
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 6
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 7
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 8
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 9
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0,
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 10
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество),
0
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 11
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
КоличествоИМесяц.Группа,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
СУММА(КоличествоИМесяц.Количество)
ИЗ
КоличествоИМесяц КАК КоличествоИМесяц
ГДЕ
КоличествоИМесяц.Месяц = 12
СГРУППИРОВАТЬ ПО
КоличествоИМесяц.Группа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Группа КАК Группа,
СУММА(ВременнаяТаблица.Январь) КАК Январь,
СУММА(ВременнаяТаблица.Февраль) КАК Февраль,
СУММА(ВременнаяТаблица.Март) КАК Март,
СУММА(ВременнаяТаблица.Апрель) КАК Апрель,
СУММА(ВременнаяТаблица.Май) КАК Май,
СУММА(ВременнаяТаблица.Июнь) КАК Июнь,
СУММА(ВременнаяТаблица.Июль) КАК Июль,
СУММА(ВременнаяТаблица.Август) КАК Август,
СУММА(ВременнаяТаблица.Сентябрь) КАК Сентябрь,
СУММА(ВременнаяТаблица.Октябрь) КАК Октябрь,
СУММА(ВременнаяТаблица.Ноябрь) КАК Ноябрь,
СУММА(ВременнаяТаблица.Декабрь) КАК Декабрь
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
СГРУППИРОВАТЬ ПО
ВременнаяТаблица.Группа
УПОРЯДОЧИТЬ ПО ГРУППА
ПоказатьИ РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0 - Потому что у меня затесался сотрудник из будущего
Прикрепленные файлы:
эх, если бы еще экзамен и степень го..нокодости проверял, было бы здорово!!
вот например такой код делает тоже что и выше, но гораздо понятнее/читабельнее
вот например такой код делает тоже что и выше, но гораздо понятнее/читабельнее
Выбор
Когда ВозрастИМесяц <= 10 Тогда "Группа 0"
Когда ВозрастИМесяц <= 20 Тогда "Группа 1"
Когда ВозрастИМесяц <= 30 Тогда "Группа 2"
Когда ВозрастИМесяц <= 40 Тогда "Группа 3"
Когда ВозрастИМесяц <= 50 Тогда "Группа 4"
Иначе "Группа 5"
КОНЕЦ КАК Группа,
Показать
(16) ну извиняюсь, просто в типовых базах часто вижу такие же конструкции,
все время удивляюсь почему именно так пишут с большой вложенностью?
а по поводу оптимизации, что то вообще меня клинит, зачем вообще вся эта длинная кишка из объединений?
всего один запрос и поместить его в СКД, оно все посчитает и количество и по месяцам сгруппирует.
все время удивляюсь почему именно так пишут с большой вложенностью?
а по поводу оптимизации, что то вообще меня клинит, зачем вообще вся эта длинная кишка из объединений?
всего один запрос и поместить его в СКД, оно все посчитает и количество и по месяцам сгруппирует.
(19) эээ, читаем внимательно
написать отчет - все видят?
используя только один запрос без обработки результата запроса в модуле - чем не СКД?
один запрос и ни строчки кода в модуле!!!
(20)
- может вы его просто не умеете готовить?
Необходимо написать отчет (используя только один запрос без обработки результата запроса в модуле),
написать отчет - все видят?
используя только один запрос без обработки результата запроса в модуле - чем не СКД?
один запрос и ни строчки кода в модуле!!!
(20)
СКД -зло.
- может вы его просто не умеете готовить?
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ФизическиеЛица.Ссылка) КАК КоличествоСотрудников,
ВЫБОР
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 20
ТОГДА "Моложе 20 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 20
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 30
ТОГДА "От 20 до 30 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 30
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 40
ТОГДА "От 30 до 40 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 40
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 50
ТОГДА "От 40 до 50 лет"
ИНАЧЕ "Старше 50 лет"
КОНЕЦ КАК Возраст,
НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, -1 * ГОД(ФизическиеЛица.ДатаРождения) + 2), МЕСЯЦ) КАК МесяцРождения
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
НЕ ФизическиеЛица.ЭтоГруппа
И НЕ ФизическиеЛица.ПометкаУдаления
И НЕ ФизическиеЛица.ДатаРождения = ДАТАВРЕМЯ(1, 1, 1)
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) > 0
СГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 20
ТОГДА "Моложе 20 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 20
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 30
ТОГДА "От 20 до 30 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 30
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 40
ТОГДА "От 30 до 40 лет"
КОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) >= 40
И РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ТекущаяДата, ГОД) < 50
ТОГДА "От 40 до 50 лет"
ИНАЧЕ "Старше 50 лет"
КОНЕЦ,
НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, -1 * ГОД(ФизическиеЛица.ДатаРождения) + 2), МЕСЯЦ)
ПоказатьДаже написал.
У поля МесяцРождения поставил формат "ДФ=MMMM".
С помощью СКД собрал отчёт.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот