Ответы пользователя по тегу Битрикс24
  • Как скачать все компании с битркс24 по api, имея crest, запросом через batch, если их больше 2500?

    ILX
    @ILX Автор вопроса
    Соединяю дорожки, и умы людей немножко.
    В продолжении темы...
    Универсальная функция которая вернёт все компании сколько их бы не было, не кидайтесь помидорами за говнокод...
    function call_all_company ()//функция которая вернет все комапнии из bitrix24
    		{
    			$total = CRest::call('crm.company.list')["total"];
    		
    			$list_N=(int)($total/50)+1; //Количество необходимых листов +1 тк от нуля
    			for($i=0; $i < $list_N; $i++)
    			{
    				$cmd_arr_cach[(int)($i/49)]["list_".$i] = 'crm.company.list?start='.($i*50);
    			}
    			foreach ($cmd_arr_cach as $key => $cmd_arr)
    			{
    				sleep(1);//Щадяший режим лучше ставить 2 секунды
    				
    				$local = CRest::call('batch',
    										array(
    												'halt' => 0,
    												'cmd'=> $cmd_arr
    											)
    										);
    										
    				$result[]= call_user_func_array('array_merge', $local['result']['result']);
    			}
    			return $result[0];
    		}
    		 print_r (call_all_company ());
    Ответ написан
    2 комментария
  • Crest получить список лидов?

    ILX
    @ILX
    Соединяю дорожки, и умы людей немножко.
    У меня была похожая проблема когда получал компании делал все через пакетный запрос.
    В место crm.company.list , вы подставляете то что у вас выводит больше чем 50 результатов и постранично запрашиваете через batch
    $result = CRest::call('batch',
                array(
                    'halt' => 0,
                    'cmd'=> array(
                    'list_0' => 'crm.company.list',
                    'list_1' =>'crm.company.list?start=50',
                    'list_2' =>'crm.company.list?start=100',
                          )
                   )
              );
    Ответ написан
    Комментировать