Имя: Пароль:
1C
1С v8
Запрос для отчета (СКД) по количеству сотрудников по месяцам рождения и по возрастному диапазону.
,
0 Kitttt
 
18.01.22
22:31
Возможно ли в запросе убрать год от даты? именно в запросе. К примеру 15.10.1980 привести к виду 15.10?
1 RomanYS
 
18.01.22
22:33
(0) 15.10 - это число 15.1? Так можно
2 palsergeich
 
18.01.22
22:34
(0) Дата в том что работает с 1с - это всегда ДатаВремя.
А вот преобразодвать дату к чему то можно при помощи функций языка запроса Месяц и день
3 palsergeich
 
18.01.22
22:35
(0) Вам нужно год не видеть или что?
какая конечная цель?
4 Kitttt
 
18.01.22
22:49
(3) у меня отчет из-за этого некорректно считает, мне нужно по колонкам выводить наименование месяца, а так как года идут в разнобой, т.е от 1980 до 2000 к примеру, группировка срабатывает неверно в самом запросе.. В общем у меня некоторые месяца задваиваются
5 Сергиус
 
18.01.22
22:50
Интересно, ПОДСТРОКА сработает?
6 pechkin
 
18.01.22
22:52
Формат поля нужно задать
7 acht
 
18.01.22
22:54
(5) Планируется в версии 8.3.20
8 Kitttt
 
18.01.22
22:54
(5) но при этом мне нужно в СКД получить дату с запроса, а в дальнейшем применить формат ММММ, пусть хоть к примеру такую 15.10.0001, чтобы смог сгруппировать
Пытался использовать ДобавитьКДате(..,ГОД,2000), чтоб вернул, но при этом он еще и месяц обнуляет, типо 15.01.0001, вместо 15.10.0001
9 Kitttt
 
18.01.22
22:55
(8) ДобавитьКДате(..,ГОД,-2000), минус пропустил
10 Ненавижу 1С
 
гуру
18.01.22
23:18
ДобавитьКДате(Х,ГОД,-ГОД(Х))

будут все одного года
11 Kitttt
 
18.01.22
23:26
(10) Спасибо, только теперь и месяца все **.01.0001, хмм
12 b_ru
 
18.01.22
23:41
Функция Месяц

МЕСЯЦ(<Дата>)

Принимает параметр типа ДАТА. Возвращает номер месяца даты (целочисленное значение от 1 до 12).
13 Kitttt
 
18.01.22
23:41
ДОБАВИТЬКДАТЕ(X,ГОД,-ГОД(ДОБАВИТЬКДАТЕ(X,ГОД,-1)))
Так срабатывает нормально, может пригодится кому
14 osa1C
 
19.01.22
06:25
ВЫБОР
КОГДА МЕСЯЦ(<Дата>) = 1
    ТОГДА "Январь"
КОНЕЦ КАК Месяц
15 Ryzeman
 
19.01.22
07:00
(0) Нет.
(8) ДАТАВРЕМЯ(1, МЕСЯЦ(ТвояДата), ДЕНЬ(ТвояДата))
16 Ненавижу 1С
 
гуру
19.01.22
07:33
(13) достаточно например так:
ДОБАВИТЬКДАТЕ(X,ГОД,2000-ГОД(X))

или на любой другой год сдвинуть
17 Жан Пердежон
 
19.01.22
08:40
(13) это тоже самое, что
ДОБАВИТЬКДАТЕ(Х, ГОД, 1-ГОД(Х))
18 НЕА123
 
19.01.22
09:45
(0) без точки типа так
ДЕНЬ(X)*100 + ВЫБОР КОГДА МЕСЯЦ(Х)<10 ТОГДА МЕСЯЦ(Х)*10 ИНАЧЕ МЕСЯЦ(Х) КОНЕЦ
19 Serg_1960
 
19.01.22
09:51
[пессимист] Кому и для чего нужен помесячный отчет многолетних данным без учета года?
Правильно поставленный вопрос — это уже половина ответа, а чтобы правильно задать вопрос - нужно знать большую часть ответа.
20 Kassern
 
19.01.22
09:53
(0) Речь про СКД, или просто отчет?
21 Ryzeman
 
19.01.22
09:54
(19) Абстрактные тестовые задания. У автора задача сгруппировать по дням рождения пользователей.
22 Serg_1960
 
19.01.22
09:56
(21) Вы - автор задачи топикстартера?
23 Kassern
 
19.01.22
09:57
(21) тестовые задания надо самому решать, в крайнем случае обращаться к наставнику. Если уже совсем тупик, тогда уже показывать тут, что наработал и почему не вырос каменный цветок
24 Ryzeman
 
19.01.22
09:58
(22) неа, просто вчера от автора уже была другая ветка)
25 Serg_1960
 
19.01.22
10:01
(24) Ок, уже увидел.
26 Kitttt
 
19.01.22
10:05
(20) Ну отчет на СКД, мне нужно было у поля период получить в запросе даты вида: 01.05.0001, 01.07.0001,...., 01.10.0001, это помогло сгруппировать сотрудников по месяцам, и в дальнейшем вывести в отчет, потому что до этого из-за того что года разные, группировать не срабатывала, и месяца с разными годами задваивались, сейчас отрабатывает все хорошо..
27 Serg_1960
 
19.01.22
10:06
Предыдущая ветка автора - Отчет в 1С
28 Kassern
 
19.01.22
10:10
(26) Надеюсь переписали конструкцию с месяцами на формат поля скд?
29 Kitttt
 
19.01.22
10:15
(28) Не совсем понял вопрос, конструкцию Выбор Когда 1 Тогда "Январь" ...? Если про нее, то нет. Сделал период в запросе вида: 01.05.0001 и т.п, а в дальнейшем группировка по колонкам по полю Период, формат у Периода  "ММММ", и все красиво выводит
30 Kassern
 
19.01.22
10:18
(29) я это и имел в виду
31 Dmitrii
 
гуру
19.01.22
10:23
(19) >> Кому и для чего нужен помесячный отчет многолетних данным без учета года?

Банальный отчет о количестве именинников в каждом месяце, разбитых по возрастным группам.
Практическая ценность не сильно велика. Но если в компании принята практика премирования ко дню рождения, то при значительном количестве сотрудников такая информация может быть полезной. К тому же может ещё какие-то ценные подарки заранее закупают.
Например.
32 Serg_1960
 
19.01.22
10:28
(31) Sorry, дочитайте ветку до конца :( я уже получил ответ и даже указал ссылку на предыдущее обсуждение темы :)
33 Dmitrii
 
гуру
19.01.22
10:31
По теме ветки в упор не понимаю чем не устраивает функция языка запроса МЕСЯЦ(ФизическиеЛица.ДатаРождения), которая вернёт месяц вне зависимости от года и дня.
Нахрена приводить дату рождения к виду вместе с датой, если нужна группировка именно по месяцам - это вообще загадка загадок.
Для приведения к одному году в конце концов можно тупо прибавить месяц к началу года. Типа ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(2022, 1, 1), МЕСЯЦ, МЕСЯЦ(ФизическиеЛица.ДатаРождения) - 1). Тогда получатся дни рождения по месяцам 2022-го года.
34 Kitttt
 
19.01.22
10:35
(33) МЕСЯЦ(ФизическиеЛица.ДатаРождения) возвращает числовое значение от 1 до 12, и эти значения я не могу привести к формату, ибо это уже не Дата.
35 Serg_1960
 
19.01.22
10:36
(33) Вот, сами видите, как знание контекста вопроса изменяет ответы :))
36 Kassern
 
19.01.22
10:44
(33) а как вы потом из колонки с месяцами 1,2,3,4-12 получите требуемый январь, февраль-декабрь? Будете писать портянку Выбор когда Месяц=1 Тогда "Январь" Иначе...?
37 lodger
 
19.01.22
10:49
(34) выражение представления приделай в настройках полей и делов то.
38 DrShad
 
19.01.22
10:50
(36) элементарно ДобавитьКДате(, Месяц, Месяц(ФизическиеЛица.ДатаРождения))
39 Kassern
 
19.01.22
10:56
(38) (37) Ну и чем это лучше преобразования периода для группировки и форматной строкой периода ДФ=ММММ?
40 lodger
 
19.01.22
11:14
(39) ну будет у него
"август, апрель, декабрь, июль, июнь, май, март, ноябрь, октябрь, сентябрь, февраль, январь" хорошо?
41 Kassern
 
19.01.22
11:18
(40) так по этому полю сортировку можно сделать, по факту поле Дата и сортируется как дата, но отображается как Январь, Февраль...
42 Serg_1960
 
19.01.22
11:32
[уже уходя] "... получить в запросе даты вида: 01.05.0001, 01.07.0001..."

НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(Сотрудники.ДатаРождения, ГОД), Сотрудники.ДатаРождения, СЕКУНДА)), ДЕНЬ) КАК ВашаДатаГдеДеньМесяц_ИЗДатыРождения
43 DrShad
 
19.01.22
12:05
(39) у него не будет сотни январей, а будет всего один
44 ИС-2
 
naïve
19.01.22
12:08
(0) можно сделать формат в условном оформлении и на 1-закладке (где запрос) в макете СКД
45 Kassern
 
19.01.22
12:47
(43) не понял вашей фразы. У него и не должно быть сотни январей. В итоговой таблице максимум 12 дат периода (по одной на каждый месяц) и сумма ДР на каждый месяц. Разница подхода лишь в том, что вы предлагаете группировать Месяц(Дата) и на выходе иметь число, он же группирует Дату обнулив год, на выходе имеет Дату без года. По ней же сделана сортировка, как у вас по порядку месяца. Только вам потом нужно будет как-то преобразить полученное число в название месяца, а ему в этом деле помогает типовая возможность "формат" для поля СКД.
46 SleepyHead
 
гуру
19.01.22
12:59
(0) Если делаете отчет в ЗУП 3.1, не занимайтесь ерундой, возьмите отчет по личным данным сотрудников и сделайте свою настройку в виде таблицы - по горизонтали месяцы, по вертикали сотрудники.
47 SleepyHead
 
гуру
19.01.22
12:59
А если и не в ЗУП 3.1, так тоже не занимайтесь, месяц легко вытащить из даты рождения прямо в настройках группировок.
48 Kitttt
 
19.01.22
13:02
(46) Пустая конфигурация, учебная