• D7. Выборка разделов с подсчетом количества элементов?

    @Firsov36 Автор вопроса
    full-stack web developer
    Вопрос закрыт. Нашел у себя ошибку.
    Кому интересно, делается так:

    $iBlockId = 10;
    $sectionId = 53;
    
    $filter = [
        'IBLOCK_ID' => $iBlockId,
        'ACTIVE' => 'Y',
        'IBLOCK_SECTION_ID' => $sectionId
    ];
    
    $select = [
        'ID', 'IBLOCK_ID', 'countElements'
    ];
    
    $runtime = [
        'elements' => [
            'data_type' =>"Bitrix\Iblock\ElementTable",
            'reference' => [
                '=this.IBLOCK_ID' => 'ref.IBLOCK_ID',
                '=this.ID' => 'ref.IBLOCK_SECTION_ID',
                '=this.ACTIVE' => 'ref.ACTIVE',
            ],
            //'join_type' => "LEFT"
        ],
        'countElements' => [
            'data_type' => 'integer',
            'expression' => ['count(%s)', 'elements.ID']
        ]
    ];
    
    $res = Bitrix\Iblock\SectionTable::getList(
        [
            'filter' => $filter,
            'select' => $select,
            'runtime' => $runtime
        ]
    );
    
    while($section = $res->fetch())
    {
        \Bitrix\Main\Diag\Debug::dump($section, $section['ID']);
    }
    Ответ написан
    2 комментария
  • Как PhpSpreadsheet писать в другие листы?

    Работает

    $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); 
    $spreadsheet->setActiveSheetIndex(0);
    $activeSheet = $spreadsheet->getActiveSheet();
    Ответ написан
    2 комментария
  • Почему метод crm.item.update не обновляет поле?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Вы запутались в терминологии: пытаетесь обновить элемент, смотрите список доступных полей.

    Давайте попробую обьяснить:
    - Есть смарт-процесс. Это верхнеуровневая сущность подсистемы смарт-процессов. За работу с ними отвечают crm.type.* методы.
    - У каждого смарт-процесса есть элементы, которые состоят из фиксированных полей и пользовательских полей.
    - Когда вы создаете элемент сп вы заполняется фиксированные поля + пользовательские поля элемента.

    Таким образом, метод crm.item.update обновляет значения полей у элементов смарт-процесса.
    И на вход вы должны подавать ID элемента смарт-процесса, а не ID самого смарт-процесса.
    Ответ написан
    Комментировать
  • Битрикс почему get параметр logout=yes не разлогинивает?

    @prgrant
    Такая же ерунда и у меня, похоже прилетело после обновления ядра.

    Решил добавлением идентификатора сессии в get-параметр ссылки: bitrix_sessid_get()
    <?=$APPLICATION->GetCurPageParam("logout=yes&".bitrix_sessid_get(), array(
    			"login",
    			"logout",
    			"register",
    			"forgot_password",
    			"change_password"));?>"><?=GetMessage("AUTH_LOGOUT_BUTTON")?>
    Ответ написан
    1 комментарий