[CODE]$usersCollection = \Bitrix\Main\UserTable::query()
->setSelect(['ID'])
->whereNotNull('PERSONAL_BIRTHDAY')
->where('ACTIVE', 'Y')
->registerRuntimeField(new ExpressionField('BIRTHDAY_MONTH', 'MONTH(%s)', ['PERSONAL_BIRTHDAY']))
->registerRuntimeField(new ExpressionField('BIRTHDAY_DAY', 'DAY(%s)', ['PERSONAL_BIRTHDAY']))
->where(
Query::filter()
->logic('or')
->where(
Query::filter()
->where('BIRTHDAY_MONTH', '=', $currentMonth)
->where('BIRTHDAY_DAY', '>=', $currentDay)
)
->where('BIRTHDAY_MONTH', '>', $currentMonth)
)
->addOrder('BIRTHDAY_MONTH', 'ASC')
->addOrder('BIRTHDAY_DAY', 'ASC')
->fetchCollection();[/CODE]Вот так можно получить пользователей у которых день рождения будет идти последовательно)
Просто создайте два новых field на Runtime, отфильтруйте и задайте сортировку)
->setSelect(['ID'])
->whereNotNull('PERSONAL_BIRTHDAY')
->where('ACTIVE', 'Y')
->registerRuntimeField(new ExpressionField('BIRTHDAY_MONTH', 'MONTH(%s)', ['PERSONAL_BIRTHDAY']))
->registerRuntimeField(new ExpressionField('BIRTHDAY_DAY', 'DAY(%s)', ['PERSONAL_BIRTHDAY']))
->where(
Query::filter()
->logic('or')
->where(
Query::filter()
->where('BIRTHDAY_MONTH', '=', $currentMonth)
->where('BIRTHDAY_DAY', '>=', $currentDay)
)
->where('BIRTHDAY_MONTH', '>', $currentMonth)
)
->addOrder('BIRTHDAY_MONTH', 'ASC')
->addOrder('BIRTHDAY_DAY', 'ASC')
->fetchCollection();[/CODE]Вот так можно получить пользователей у которых день рождения будет идти последовательно)
Просто создайте два новых field на Runtime, отфильтруйте и задайте сортировку)