Если необходимо заменить поле NAME элемента на PREVIEW_TEXT при добавлении или изменении = или например при выгрузке товаров из 1с
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "DropPreviewText");
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "DropPreviewText");
function DropPreviewText($arFields){
if (@$_REQUEST['mode']=='import'){
if (!is_array($arFields['NAME'])){
$arFields['NAME'] = $arFields['PREVIEW_TEXT'];
}
unset($arFields['PREVIEW_TEXT']);
unset($arFields['PREVIEW_TEXT_TYPE']);
unset($arFields['DETAIL_TEXT']);
unset($arFields['DETAIL_TEXT_TYPE']);
}
}
Зайдите в Рабочий стол / Настройки / Инструменты / Командная PHP-строка
и выполните
$needCollation = 'utf8_general_ci'; // укажите здесь нужную кодировку
$res = $DB->Query('SHOW TABLE STATUS');
while($ts = $res->fetch()) {
if ($ts['Collation'] != $needCollation) $DB->Query('ALTER TABLE `' . $ts['Name'] . '` DEFAULT CHARACTER SET utf8 COLLATE ' . $needCollation);
$r2 = $DB->Query('SHOW FULL COLUMNS FROM ' . $ts['Name'] . ' WHERE Collation IS NOT NULL');
while($col = $r2->fetch()) {
if ($col['Collation'] != $needCollation) $DB->Query('ALTER TABLE `' . $ts['Name'] . '` CHANGE `' . $col['Field'] . '` `' . $col['Field'] . '` ' . $col['Type'] . ' CHARACTER SET utf8 COLLATE ' . $needCollation . ($col['Null'] == 'NO' ? ' NOT' : '') . ' NULL');
}
}
Вычитаем из конкретной даты день
$date = new DateTime('2000-01-01');
$date->modify('-1 day');
echo $date->format('d.m.Y H:i:s');
Вычитаем месяц
$date = new DateTime();
$date->modify('-1 month');
echo $date->format('Y-m-d H:i:s');
Вычитаем год
$date = new DateTime();
$date->modify('-1 year');
echo $date->format('Y-m-d H:i:s');
PHP Добавить в начале числа ноли
$number = 5;
$number = sprintf('%04d',$number);
print $number;
// outputs 0005
?>
Часто возникает ситуация когда необходимо встроить в массив элементы в определенном порядке, как раз для этого подойдет следующая реализация
Читать далее Как поменять ключи массива местами →
Блог об 1с и Битрикс для пользователей и программистов