120 $checkPermissionResponse = $this->accessService->canUserReadCatalog();
121 $response->fillFromResponse($checkPermissionResponse);
123 if ($response->isSuccess())
129 ->setCheckPermission(!$this->accessService->isAdminPermission($response->getPermission()))
135 ->disableCheckPermissions()
138 $iBlockListResult = $this->iBlockService->getIBlockList($iBlockToGet);
140 ->addErrors($iBlockListResult->getErrors())
141 ->setCatalog($iBlockListResult->getIBlocks())
154 $checkPermissionResult = $this->accessService->canUserGetElementList();
155 $response->fillFromResponse($checkPermissionResult);
157 if ($response->isSuccess())
160 (IBlockElementFilter::initializeFromArray($request->filter->getOrmFilter()))
162 ->setCheckPermission(!$this->accessService->isCanReadPermission($response->getPermission()))
166 $iBlockElementsToGet =
172 $request->additionalSelectFields
174 ->disableCheckPermissions()
175 ->setIsNeedLoadWorkflowStateInfo()
178 $getIBlockElementListResult = $this->iBlockService->getIBlockElementList($iBlockElementsToGet);
180 ->addErrors($getIBlockElementListResult->getErrors())
181 ->setElements($getIBlockElementListResult->getElements())
194 if ($request->iBlockId <= 0)
196 return $response->addError($this->dataService::getWrongIBlockError());
199 if ($request->needCheckPermissions)
201 $checkPermissionResult = $this->accessService->canUserReadIBlock($request->iBlockId);
202 $response->fillFromResponse($checkPermissionResult);
205 if ($response->isSuccess())
209 ->disableCheckPermissions()
212 $iBlockResponse = $this->iBlockService->getIBlockById($iBlockToGetById);
213 $response->addErrors($iBlockResponse->getErrors());
215 if ($iBlockResponse->isSuccess())
217 $response->setIBlock($iBlockResponse->getIBlock());
228 $elementToGetDetailInfo = $this->dataService->getElementToGetDetailInfoObject($request, $response);
229 if ($elementToGetDetailInfo)
231 $elementId = $elementToGetDetailInfo->getElementId();
233 if ($elementToGetDetailInfo->isNeedCheckPermissions())
235 $sectionId = $elementToGetDetailInfo->getSectionId();
236 $checkElementPermission = $this->accessService->canUserReadElement($elementId, $sectionId);
237 $response->fillFromResponse($checkElementPermission);
240 if ($response->isSuccess())
245 ->setIBlockId($elementToGetDetailInfo->getIBlockId())
251 $iBlockElementsToGet =
255 additionalSelectFields: $elementToGetDetailInfo->getAdditionalSelectFields()
257 ->disableCheckPermissions()
258 ->setIsNeedLoadWorkflowStateInfo(
false)
261 $elementListResponse = $this->iBlockService->getElementDetailInfo($iBlockElementsToGet);
262 $response->addErrors($elementListResponse->getErrors());
264 if ($response->isSuccess())
267 ->setInfo($elementListResponse->hasElements() ? $elementListResponse->getElements()[0] : [])
281 $iBlockId = $request->iBlockId;
285 return $response->addError($this->dataService::getWrongIBlockError());
288 if ($request->needCheckPermissions)
290 $checkPermissionsResponse = $this->accessService->canUserReadIBlock($iBlockId);
291 $response->fillFromResponse($checkPermissionsResponse);
294 if ($response->isSuccess())
296 $iBlockFieldsResponse = $this->iBlockService->getIBlockFields(
299 $request->loadEnumValues
301 $response->addErrors($iBlockFieldsResponse->getErrors());
303 $fields = $iBlockFieldsResponse->getFields();
304 if ($request->loadDefaultFields)
307 $defaultFieldsRequest = $this->iBlockService->getIBlockDefaultFields($iBlockDefaultFieldsRequest);
308 $response->addErrors($defaultFieldsRequest->getErrors());
310 $defaultFields = $defaultFieldsRequest->getDefaultFields();
313 $fields = array_merge($fields, $defaultFields);
317 $response->setFields($fields);
318 $response->setProps($iBlockFieldsResponse->getProps());
328 $elementToAdd = $this->dataService->getElementToAddObject($request, $response);
331 if ($request->needCheckPermission)
333 $checkPermissionsResponse = $this->accessService->canUserAddElement(
334 $elementToAdd->getSectionId(),
335 $elementToAdd->getIBlockId()
337 $response->fillFromResponse($checkPermissionsResponse);
340 if ($response->isSuccess())
343 $elementToAdd->getIBlockId(),
344 $elementToAdd->getSectionId(),
345 $elementToAdd->getValues(),
346 $elementToAdd->getCreatedBy(),
347 $request->needStartWorkflows,
349 $request->wfParameterValues,
350 $request->timeToStart,
353 $addResponse = $this->iBlockService->addIBlockElement($addRequest);
355 ->addErrors($addResponse->getErrors())
356 ->setId((
int)$addResponse->getId())
374 if (!\CLists::isBpFeatureEnabled($this->
getInnerIBlockTypeId()) || !Loader::includeModule(
'bizproc'))
377 return $response->addError(
new Error(
'not supported'));
380 $timeToGet = $this->dataService->getAverageTemplateDurationToGetObject($request, $response);
386 $templates = $this->getTemplatesByIBlockId($timeToGet->getIBlockId(), $timeToGet->getAutoExecuteType());
390 return $response->addError(
new Error(
'no templates'));
394 $averageTimeResult = $workflowStateService->getAverageWorkflowDuration(
398 $response->addErrors($averageTimeResult->getErrors());
399 if ($averageTimeResult->isSuccess() && $averageTimeResult->getAverageDuration())
401 $response->setAverageDuration($averageTimeResult->getAverageDuration());