• 301 редирект битрикс?

    Ответ написан
    Комментировать
  • 301 редирект битрикс?

    @dodo512
    /path?query
    Директива Redirect работает только с /path

    Для работы с query нужен RewriteCond + RewriteRule.
    RewriteCond %{QUERY_STRING} ^(ID=6992&PRODUCT)=6905$
    RewriteRule ^collections_qr/collection_detail\.php$ /$0?%1=6856 [R=301,L]


    Или так
    RewriteCond %{THE_REQUEST} " (/collections_qr/collection_detail\.php\?ID=6992&PRODUCT)=6905 "
    RewriteRule ^ %1=6856 [R=301,L]

    Ставить выше правил Битрикс.
    Ответ написан
    5 комментариев
  • Как Окрасить ячейку табличной части документа по условию?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    Смотри ЗаказКлиента - ФормаСпискаДокументов

    &НаСервере
    Процедура УстановитьУсловноеОформление()

    там программно задается для Динамического списка, раскраска строк в зависимости от Расчетного реквизита.
    Ответ написан
    Комментировать
  • 1С УТ 11.4 Договор, тип взаимоотношений, поле доступность истина?

    Sgr_A
    @Sgr_A
    Вам нужно изучить работу подсистемы БСП - "Запрет редактирования реквизитов объектов".
    В вашем случае посмотрите функцию ПолучитьБлокируемыеРеквизитыОбъекта() в модуле менеджера справочника. Поставьте точку останова в ней и откройте стек вызовов.

    63747ff568bc5871901100.jpeg
    Ответ написан
    2 комментария
  • УТ 11.4 Список документов, добавить отборы в командную панель?

    @Dementor
    программист, архитектор, аналитик
    Да, можно добавить свою кнопку "Настроить список" и программно, и перетащив мышкой стандартную команду на панель команд с явным указанием отображения на панели (а не только во всех действиях).

    Но при этом у вас будут две кнопки "Настроить список" - стандартная и ваша. Одна на панели команд и две в меню "Все действия". Если хотите полное управление списком команд, то вам нужно будет отключить автозаполнение командами для панели. Но в этом случае вам прийдется точно так же "перетянуть" все другие стандартные кнопки, которые теперь пропадут.
    Ответ написан
  • Отследить фоновое задание 1С УТ 11.5?

    @Dementor
    программист, архитектор, аналитик
    Фоновое задание, 7 173 ,пользователь не определен, документ.изменение...

    Сделать фильтр в ЖР по номеру сеанса = 7173 и посмотреть что это вообще было и что оно изменяет кроме номенклатуры.
    Ответ написан
    1 комментарий
  • Редирект с станицы поддомена на страницу домена nginx?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Если у вас один конфиг для всех поддоменов, то достаточно добавить location = /test { } с нужной обработкой.
    Ответ написан
    8 комментариев
  • Вывод нескольких значений из запроса через запятую?

    Sgr_A
    @Sgr_A
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	СвязанныеДокументы.Ссылка КАК ДокументСсылка,
    |	ПРЕДСТАВЛЕНИЕ(СвязанныеДокументы.Ссылка) КАК ПредставлениеДокумента
    |ИЗ
    |	КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
    |ГДЕ
    |	СвязанныеДокументы.Ссылка.Проведен";
    
    Запрос.УстановитьПараметр("Документ", Ссылка);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    ДокументыТекстом = "";
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    	
    	Если ТипЗнч(ВыборкаДетальныеЗаписи.ДокументСсылка) = Тип("ДокументСсылка.СчетНаОплату") Тогда
    		ДокументыТекстом = ДокументыТекстом + ВыборкаДетальныеЗаписи.ПредставлениеДокумента + ", ";
    	КонецЕсли;
    	
    КонецЦикла;
    
    Макет.Параметры.СвязанныеДокументы = ДокументыТекстом;
    Ответ написан
    5 комментариев
  • Дописать в файл json и прочесть его php?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    Вместо
    file_put_contents($filename,$json,FILE_APPEND | LOCK_EX);


    ... пишите так:
    $payload = file_exists($filename) ? ",{$json}]" : "[{$json}]"; 
    $fileHandler = fopen($filename, "c");
    fseek($fileHandler, -1, SEEK_END);
    fwrite($fileHandler, $payload);
    fclose($fileHandler);
    Ответ написан
  • Dial Patterns для FreePBX?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    от 4760000 до 4809999
    _893047[6-9]XXXX
    _8930480XXXX

    6500000 до 8999999
    _89306[5-9]XXXXX
    _8930[78]XXXXXX

    Вот скрипт, который у меня периодически генерирует новый список экстеншинов региональных операторов для Asterisk в ael-формате.
    https://github.com/Rsa97/Other/blob/main/asterisk/...
    Ответ написан
  • Выбрать одно из совпадений на php?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Вопрос не очень понятен. Но возможно preg_match:
    $asr_res = "первое";
    
    if (preg_match('/(первое|первае|первуе)/', $asr_res)) {
        $ress = 1;
    }


    Share PHP code
    Ответ написан
    Комментировать
  • Crest получить список лидов?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Что касается постранички, попробуйте так:
    $result = CRest::call(
        'crm.lead.list',
        [
            'filter' => [
                ...
            ],
            'select' => [
                ...
            ],
            'start' => 50
        ]
    );


    В иделале бы вообще выводить не порциями а заданым числов

    Максимальное количество элементов в списочных методах - 50, можно меньше (см. limit-ключ), но больше нельзя.

    а еще более идеальный случай получать сразу csv файл

    Так можно только через веб-интерфейс
    Ответ написан
    4 комментария
  • Как выбрать номера телефонов из строки?

    @dodo512
    https://regex101.com/r/qVEDaP/1
    PJSIP/(\d+)\S+ Up ([\d:]+).+?<(\d+)>

    $str = '
    Channel: Exten: CLCID: ========================================================================================== Channel: PJSIP/739-00009cf3/Dial Up 00:01:15 Exten: s CLCID: "CID:9622088888" <79379853222> 
    Channel: PJSIP/814-00009cf5/Dial Up 00:00:25 Exten: s CLCID: "CID:9622088888" <89119120799> 
    Channel: PJSIP/BEELINE_9622088888-00009cf4/AppDial Up 00:01:13 Exten: CLCID: "" <9622088888> 
    Channel: PJSIP/BEELINE_9622088888-00009cf6/AppDial Up 00:00:25 Exten: CLCID: "" <9622088888> 
    Objects found: 4
    ';
    
    preg_match_all('~PJSIP/(\d+)\S+ Up ([\d:]+).+?<\K\d+~s', $str, $m, PREG_SET_ORDER);
    
    print_r($m);
    Ответ написан
    3 комментария
  • Разная сортировка при нажатии?

    @PetrPo
    1. Атрибут href в ссылке лучше заменить на битриксовую функцию, это позволит сохранить другие GET параметры, если они есть
    <?=$APPLICATION->GetCurPageParam('sort=указываешь поле для сортировки, в твоем случае catalog_PRICE_1&method=указываешь направление сортировки (ASC, DESC)', array('sort', 'method'))?>

    !! method лучше замени на order, логичнее будет)

    2. Если компонент комплексный:
    идешь в файл где подключаешь простой компонент и подставляешь параметры из $_GET
    $sort = !empty($_GET['sort']) ? $_GET['sort'] : $arParams['SORT_BY1'];
    $method = !empty($_GET['method']) ? $_GET['method'] : $arParams['SORT_ORDER1'];

    компонент news:
    "SORT_BY1" => $sort,
    "SORT_ORDER1" => $method,

    компонент catalog:
    "ELEMENT_SORT_FIELD" => $sort,
    "ELEMENT_SORT_ORDER" =>	$method,

    P.S. лучше добавить массив возможных полей для сортировки и проверять что параметр из $_GET соответствует тому что есть в этом массиве, чтобы даже если подставить ручками в адресную строку фигню какую-нибудь, то сработала сортировка по умолчанию
    Ответ написан
    6 комментариев
  • Битрикс умный фильтр мультивалютность?

    @topuserman
    Умный фильтр фильтрует только заданным по значениям полей.
    Т.е. если фильтр по свойству цены с рублевой валютой, то фильтрация будет только по рублю, и кастомизировать компонент, а тем более шаблон, очень трудозатратно.

    На много проще будет добавить дополнительные типы цены - Цена USD, Цена EUR и т.д.

    Повесить обработчик на изменение/добавление товара, в котором автоматически будут заполняться эти типы цен с пересчета с рубля по внутреннему курсу валют.

    Далее в умный фильтр выводите все нужные типы цен стандартными средствами, и немного кастомизируете шаблон таким образом, чтобы по умолчанию показывалось только Рубль, далее по селекту показывается нужные типы цен.

    UPD

    Если у вас редакция Малый бизнес, то там многоценовости не будет.
    В этом случае придется кастомизировать компонент фильтра:

    1. Выносите компонент в отдельное пространство
    2. В куда-нибудь заводите курс валют
    3. В шаблоне компонента, где выводится блок для фильтрации по цене, добавляете селект, с выбором нужной валюты, при изменении валюты, через ajax, пересчитываете цены по курсу, а выводите в этом же месте.
    + добавляете input:hidden с выбранный валютой
    4. В компоненте, проверяете пришедший курс, и переводите в рубли.

    В итоге все будет работать поверх стандартного функционала.
    Ответ написан
    6 комментариев
  • Цикл в JavaScript как правильно реализовать Chart.js?

    @Evanescing
    В первую очередь использование глобальных переменных в битрикс очень часто говорит о некорректной структуре. Передачу данных между разными страницами лучше оганизовывать запросами. Если выборка и построение графика находятся на одной странице, то можно использовать обычные переменные.
    Чтобы в массиве накапливались элементы, необходимо к переменной массива добавлять квадратные скобки [] $GLOBALS['DATE_NEW_PRICE'][]
    www.php.su/articles/?cat=vars&page=014
    Дополнительно, необходимо сконвертировать массив php в скриптовый, метод битрикс:
    var arr = <?=CUtil::PhpToJSObject($array, false, true)?>;
    Ответ написан
    3 комментария
  • Вывести имя элемента "привязка к элементам" Битрикс?

    udjin123
    @udjin123
    PHP, Golang, React
    Имя элемента в свойстве не храниться, храниться только его ID.

    По этому вы сначала получаете его ID как и сделал и делаете второй запрос CIBlockElement::GetByID или еще лучше CIBlockElement::GetList то есть получаете данные уже самого элемента.

    $res = CIBlockElement::GetProperty($IBLOCK_ID, $ELEMENT_ID, array("sort" => "asc"), Array("CODE"=>"TOVAR"));
    while ($ob = $res->GetNext()) {
    	$id = $ob['VALUE'];
    	$element = CIBlockElement::GetList([], ['=ID' => $id], false, false, ['ID', 'NAME'])->Fetch();
    }

    Соответственно в $element['NAME'] будет ваше имя.

    Еще можно вот так

    $element = CIBlockElement::GetList(
    	[],
    	[
    		'IBLOCK_ID' => $IBLOCK_ID,
    		'=ID' => $ELEMENT_ID
    	],
    	false,
    	false,
    	['ID', 'PROPERTY_TOVAR.NAME']
    )->Fetch();


    В таком виде имя элемента будет $elemen['PROPERTY_TOVAR_NAME']

    Если свойство множественное, данные способы тоже применимы, но не правильные. Тогда лучше собрать все ID элементов в массив и сделать только один запрос в базу вместо запросов в цикле.
    Ответ написан
    3 комментария
  • AGI в исходящий маршрут?

    @dronmaxman
    VoIP Administrator
    exten => h,n,AGI(agi.php,${ANSWEREDTIME},${DIALSTATUS})

    При исходящем звонке эта конструкция отработает если трубку первым положит абонент "В". Если первым кладет трубку абонент "А", то канал закрывается и до этого пункта dialplan астериск вообще не доходит.
    Вторая рекомендация, использовать таймауты в скрипте, что бы он не зависал в памяти по какой либо причине.

    Что бы это обойти, лучше использовать handler.
    https://wiki.asterisk.org/wiki/display/AST/Hangup+...
    Ответ написан