Метод этот удобен тем, что он находит код значения свойства заказа и либо добавляет его либо обновляет. Это насчет примечания из доки "если при оформлении заказа не были заполнены какие-то свойства, то эти свойства обновить потом не получится, т.к. их нет в базе данных (незаполненные свойства не имеют пустых значений в базе)."
Так же он сохраняет файлы в системе.
Основное что нужно : array $orderId - id заказа array $personTypeId - id типа плательщика array $arOrderProps - массив значений свойств заказа
Свойство тип "Файл" у заказов может быть одиночным или множественным.
Значения свойства в заказе хранит id зарегистрированных в системе файлов.
Массив для одиночного файла $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFile)); Для множественного $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFileN, $arFileN1, $arFileN2, ...));
Простое добавление файла:
$arFile = CFile::MakeFileArray(...);
$arFile['description'] = 'Счет';//описание для файла, т.к. в свойстве заказа не храниться
Посмотрите на код функции, там в конце идет удаление (foreach ($arIDs as $id)). Передавать надо все свойства, если вы хотите их сохранить. Можно скопировать в свое пространство имен и убрать удаление.
Недавно возникла необходимость в фоновом режиме на кроне обновлять файлы sitemap.xml, при этом что бы генерация из админки тоже работала. Например: - если вам надо добавить дополнительный файл xml, с чпу урлами страниц результатов умного фильтра - если у вас чпу элементов строиться посложнее, чем позволяют настройки инфоблоков - если вам надо управлять датой последней модификации(lastmod) как-то иначе, чем фактическая дата модификации файлов xml.
Может кому пригодиться...
1) копируем себе файл seo_sitemap_run.php из /bitrix/modules/seo/admin/ 2) в файле /bitrix/admin/seo_sitemap_run.php подключаем свой скопированный. (да это косяк, но что делать если вам надо что то добавить, если просто автогенерация, то можно не делать этот пункт и другие упростить) 3) в скопированном файле добавляем подключение пролога, например так
4) создаем новый файл, например get_sitemap.php, который будет опрашивать ранее скопированный, для пошаговой работы. В этом файле, после подключения пролога добавляем простой цикл, например:
Только что решал похожую задачу, только сделал немного топорнее - 1. убрал проверку check_bitrix_sessid() 2. Ниже большой блок условий elseif - я заменил и на if. В результате получили последовательное выполнение всех шагов. 3. $stepDuration = 100; везде 4. внизу убрал вывод
5. Такой модифицированный скрипт повесил на крон. Я сделал так - добавил его в bitrix/php_interface/include/catalog_export (нужно только чтобы он заканчивался на _run). Дополнительно он требует чтобы в папке был seo_sitemap.php - копируем из исходного местоположения. 6. Тут /bitrix/admin/cat_export_setup.php настроил расписание 7. Не забываем отключить автогенерацию для инфоблоков!
Если использовать BX_RESIZE_IMAGE_PROPORTIONAL_ALT параметр width подставляет как ширину картинки.
'height'=>$arSize[1]-2
указываем что бы пройти через условия в методе, подробней здесь http://dev.1c-bitrix.ru/community/web...watermark/ картинка на выходе получается тех же размеров что и исходная, следовательно без искажения.
что бы задать для функции imagecopy координаты для расположения водяного знака по центру, можно вычислить так - берем ширину картинки водяного знака и делим ее по палам, потом берем ширину картинки на которую надо положить водяной знак и делим ее тоже по палам, потом от половины исходника отнимаем половину ширины водяного знака - это координата x . координата y рассчитывается также.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».