Переменную список для ознакомления сделать множественной.
$arUsers = ["user_374", "user_1"];
$rootActivity->SetVariable("VARIABLE_LIST", $arUsers);
$arUsers = ["user_374", "user_1"];
$rootActivity->SetVariable("VARIABLE_LIST", $arUsers);
|
Подскажите, как добавить свой провайдер печати для смарт процесса id=144
Код провайдера
Подписка на событие
В шаблоне поле {OrderNumberMy} поле пустое |
|||||
|
|
|
|
Подскажите как совершить действие в бизнес процессе с помощью API? $arSelectFields = array( "ID", "WORKFLOW_ID", "WORKFLOW_STATE", "ACTIVITY", "ACTIVITY_NAME", "MODIFIED", "OVERDUE_DATE", "NAME", "DESCRIPTION", "PARAMETERS", "STATUS", "USER_STATUS", "DOCUMENT_ID", "USER_ID", "STATE", "IS_INLINE", "DELEGATION_TYPE", "DOCUMENT_NAME" ); // Список БП по документу $dbRecordsList = \CBPTaskService::GetList(array( "ID" => "DESC" ), array( 'DOCUMENT_ID' => $item->getFactory()->getEntityName() . "_" . $item->getId() ), false, false, $arSelectFields); $act = null; $workflowId = null; $userTaskList = []; $bpTaskId = null; $arRecord = $dbRecordsList->getNext(); $act = $arRecord["ACTIVITY_NAME"]; $workflowId = $arRecord["WORKFLOW_ID"]; $bpTaskId = $arRecord["ID"]; $userTaskList = \CBPAllTaskService::getTaskUserIds($bpTaskId); $approve_USER_ID = Service\Container::getInstance()->getContext()->getUserId(); // пользователь к которому привязали процесс // Как "нажать" в бп кнопку принять? |
|
|
|
|
Сам документ уже генерируется и отлажен провайдер данных. Я хочу прикрепить сгенерированный документ (pdf) в список документов. И что бы запись о документе была на постоянно. Повторить тот же путь, что делается при стандартном создании документа по шаблону. И когда нажимаешь список документов и открывается окно списка документов, что бы там был мой документ. Ахат Баязи, правильно направил на перехват событий генератора документов. Но хотелось бы знать методы с помощью которых можно получить список документов, которые сгенерированы, что бы ссылки на них использовать в БП внутри смарт процессов. Сейчас сгенерированный файлы прикрепляется к полю типа файл смарт процесса. Такое решение не нравится. Хочу печатные формы документов хранить в разделе документы смарт-процесса |
|||||
|
|
|
|
|||||
|
|
|
|
Подскажите что делаю не так
Добавляю с помощью ORM значения в MORE_PHOTO $element = $iblock->getEntityDataClass()::getByPrimary($iblockElementId, [ 'select' => [ 'ID', 'NAME', 'DETAIL_PICTURE', 'MORE_PHOTO', ], 'filter' => [ 'ID' => $iblockElementId ] ])->fetchObject(); $imageObjects = $element->getMorePhoto(); try { $newImageItem = new Bitrix\Iblock\Elements\EO_IblockProperty127(); $newImageItem->setIblockElementId($iblockElementId); $newImageItem->setIblockPropertyId(127); $newImageItem->setValue(CFILE::SaveFile($arImageFile, 'iblock')); // В значение пишу id файла $newImageItem->setDescription("123"); $imageObjects->add($newImageItem); $imageObjects->save(true); } catch (Throwable $e) { echo $e->getMessage(); } Инфоблок 2,0 В таблице свойств инфоблока появляется запись, но с пустым значением Value. Значение попадает в поле VALUE_NUM |
|
|
|
|
|
В бизнеспроцессе написан код PHP Автоутверждение документа. При выполнении выдает в лог ошибку Результат автоутверждения: CanNotResumeInstance
Помогите поправить код что бы завершить процесс по API Думаю что проблема в строке $workflowEvent = "Task_approval_head"; Сейчас это мнемокод этого задания. По инструкции надо прописать имя, но не догадываюсь как его получить, подсмотреть... ![]() // Автоутверждение документа CModule::IncludeModule("workflow"); CModule::IncludeModule("bizproc"); $rootActivity = $this->GetRootActivity(); $workflowId = $rootActivity->GetWorkflowInstanceId(); $arApprove_USER = $this->GetConstant("Manager"); $approve_USER_ID = current($arApprove_USER); $workflowEvent = "Task_approval_head"; try { $arErrorsTmp = array(); CBPDocument::SendExternalEvent($workflowId, $workflowEvent, array( "USER_ID" => $approve_USER_ID, "APPROVE" => true ), $arErrorsTmp); if (count($arErrorsTmp) > 0) { $error_mes = "Результат автоутверждения: "; foreach ($arErrorsTmp as $e) { $error_mes = $error_mes . " " . $e["message"]; } $this->WriteToTrackingService($error_mes); } } catch (Exception $e) { $arErrors[] = array( "code" => $e->getCode(), "message" => $e->getMessage(), "file" => $e->getFile() . " [" . $e->getLine() . "]" ); $this->WriteToTrackingService(serialize($arErrors)); } |
|
|
|
|
|
Здравствуйте.
Есть следующая страница html (упрощенно): <div id="MY_ID"> // здесь пользователь работает с Аякс данными через jquery // при определенном запросе на сервере устанавливается и изменяется массив фильтра для стандартного компонета "bitrix:catalog.section" см // div id="MY_BITRIX_ID" </div> <div id="MY_BITRIX_ID"> // типовой "bitrix:catalog.section" <?$APPLICATION->IncludeComponent( "bitrix:catalog.section", </div> Помогите с javascript кодом функции, которая динамически вызовет обновление в области <div id="MY_BITRIX_ID"> без перезагрузки страницы. |
|
|
|
|
Под условия отбора попадают SKU со свойством =PROPERTY_926 id (24072), но цена у этого предложения выходит за диапазон отбора фильтра. А в результат они включаются потому что у них, есть другие свойства =PROPERTY_926 и с ценами в диапазоне отбора, Вот эти позиции и надо исключить. |
|||||
|
|
|
|
Подскажите пожалуйста по фильтру для отбора
Есть фильтр написал его руками $arMyFilter = array ( "LOGIC" => "AND", array('><CATALOG_PRICE_9' => array('0'=>1000, '1'=>5000)), array( 'OFFERS' => Array ( '=PROPERTY_926' => Array ( '0' => 24072 ) ) ) ); // Изменяю глобальный массив фильтра $GLOBALS['arrFilter'] = $arMyFilter; Проблема в том, что мне нужно выбрать только торговые предложения в диапазоне цен и имеющие свойство с неким ид (24072) из торгового предложения Но отбор работает только по диапазону цен и часть фильтра отмеченная синим игнорируется. |
|
|
|
|