Ответы пользователя по тегу 1С-Битрикс
  • Не работают сессии в memcached?

    JastaFly
    @JastaFly Автор вопроса
    Решил проблему подправив конфиг php.ini под memcached:
    session.save_handler = "memcached"
    session.save_path="127.0.0.1:11212"
    memcached.sess_locking = Off
    Ответ написан
    Комментировать
  • Дополнительное поле для элементов инфоблока в Битрикс?

    JastaFly
    @JastaFly Автор вопроса
    В итоге остановился на варианте с созданием нового свойства для инфоблка, так как особых альтернатив нет, а все прочие варианты только усложняют логику
    Ответ написан
    Комментировать
  • После обновления Битрикс пропала фильтрация по свойству?

    JastaFly
    @JastaFly Автор вопроса
    Проблема была в отсутствующем поле UF_SORT у проблемного HighLoad блока. Написал миграцию добавляющую её:
    namespace Sprint\Migration;
    
    class AddSortFieldInHighloadBlock20240926165615 extends Version
    {
        protected $author = 'https://github.com/JastaFly';
        protected $description = 'Добавляет поле сортировки в Highload-блок';
        protected $moduleVersion = '4.12.6';
        private HelperManager $helperManager;
        private int $hlBlockManufacturersId;
    
        /**
         * @throws Exceptions\HelperException
         * @return bool|void
         */
        public function __construct()
        {
            $this->helperManager = $this->getHelperManager();
            $this->hlBlockManufacturersId = $this->helperManager->Hlblock()->getHlblockIdIfExists(
                'highloadBlockName'
            );
        }
    
        public function up()
        {
            $this->helperManager->Hlblock()->saveField(
                $this->hlBlockManufacturersId,
                [
                    'FIELD_NAME' => 'UF_SORT',
                    'USER_TYPE_ID' => 'double',
                    'XML_ID' => '',
                    'SORT' => '100',
                    'MULTIPLE' => 'N',
                    'MANDATORY' => 'N',
                    'SHOW_FILTER' => 'N',
                    'SHOW_IN_LIST' => 'Y',
                    'EDIT_IN_LIST' => 'Y',
                    'IS_SEARCHABLE' => 'N',
                    'SETTINGS' => [
                        'PRECISION' => 4,
                        'SIZE' => 20,
                        'MIN_VALUE' => 0.0,
                        'MAX_VALUE' => 0.0,
                        'DEFAULT_VALUE' => NULL,
                    ],
                    'EDIT_FORM_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'LIST_COLUMN_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'LIST_FILTER_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'ERROR_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                    'HELP_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка']
                ]
            );
        }
    
        public function down()
        {
            $deleteResult = $this->helperManager->Hlblock()->deleteField($this->hlBlockManufacturersId, 'UF_SORT');
    
            if ($deleteResult) {
                $this->outSuccess('Всё ok. Свойство сортировки добавлено');
            } else {
                $this->outError('Не ok. Свойство сортировки не добавлено');
            }
        }
    }
    Ответ написан
    Комментировать
  • Ошибка Mysql query error: (1062) Duplicate entry 'iblock-seometa_99_4062_063_99_1' for key 'UX_B_SEARCH_CONTENT' при переиндексации?

    JastaFly
    @JastaFly Автор вопроса
    В итоге это оказалось косяком разработчиков модуля Сотбит: SEO умного фильтра – мета-теги, заголовки, карта сайта. Пофиксилось удалением хуков на индексацию которые вешаем данный модуль при установке:
    65b9f9cee82d7255909341.jpeg
    Данные хуки нужны чтобы на сайте работал поиск по SEOшным тайтлам но эта фича нередко ломает индексацию на сайте и по сути является маловостребованной. Может в будущих версиях баг пофиксят, но пока только так
    Ответ написан
    Комментировать
  • Не меняется статус заказа после переезда на sberbank.ecom2?

    JastaFly
    @JastaFly Автор вопроса
    Решение оказалось до боли простым, статус заказа не менялся из-за базовой авторизации на сайте где тестировался новый модуль
    Ответ написан
    Комментировать
  • Ограничить доступ к кастомному модулю?

    JastaFly
    @JastaFly Автор вопроса
    В итоге я выбрал свой, хоть и костыльный но зато быстрый метод, а именно повесил обработчик на событие формирования меню:
    AddEventHandler('main', 'OnBuildGlobalMenu', 'deleteForbiddenMenuItems', 200);

    И тупо удалить всё ненужное из массива с элементами меню:
    function deleteForbiddenMenuItems(&$aGlobalMenu)
    {
        unset(
            $aGlobalMenu['global_menu_sitecore'],
            $aGlobalMenu['global_menu_custom_core'],
            $aGlobalMenu['global_menu_content'],
            $aGlobalMenu['global_menu_marketing'],
            $aGlobalMenu['global_menu_services'],
            $aGlobalMenu['global_menu_marketplace'],
            $aGlobalMenu['global_menu_crm_site_master']
        );
    }

    Правда тогда появляется сайд эффект в виде кнопок заглушек со стрелочками в главном меню. Их я скрыл добавив в админку следующий CSS:
    .adm- {
        display: none;
    }

    Спасибо всем за помощь)
    Ответ написан
    Комментировать
  • Модуль sberbank.ecom2 и страница возврата?

    JastaFly
    @JastaFly Автор вопроса
    Методом научного тыка удалось выяснить что по умолчанию редирект осуществляется на адрес: https://my_site/bitrix/tools/sale_ps_result.php
    проблема в том что она выглядит не слишком презентабельно:
    641c62c8263cf288666394.png
    Хотелось бы как-то привести её в соответствие с дизайном сайта. Кто нибудь занимался чем-то подобным?!
    Ответ написан
  • Mysql connect error [localhost]: (2002) No such file or directory (400)?

    JastaFly
    @JastaFly Автор вопроса
    Решил проблему поменяв localhost на 127.0.0.1. и создав нового пользователя, для 127.0.0.1.
    Ответ написан
    Комментировать
  • Битрикс ошибка Mysql connect error [localhost]: (2002) No such file or directory (400)?

    JastaFly
    @JastaFly Автор вопроса
    В итоге решил проблему. База данных не открывалась на localhost, добавил в .settings.php этот порт: 127.0.0.1:3306 и всё заработало
    Ответ написан
    2 комментария
  • Битрикс. Собит. Не хватает прав для генерации карты сайта?

    JastaFly
    @JastaFly Автор вопроса
    Оказалось что это баг и для его фикса нужно внести в модуль следующие правки:
    Правка №1:
    6299bc23808e5972627907.png
    Правка №2:
    6299bc423975a509746532.png
    Правка №3:
    6299bc5aa4f76976239289.png
    Правка №4:
    6299bc8778151302141534.png
    Ответ написан
    Комментировать
  • Битрикс неблокирующая сессия в memcached?!?

    JastaFly
    @JastaFly Автор вопроса
    Как удалось выяснить подобных настроек в .settings.php нет. Неблокирующую сессию можно включить только на отдельных страницах установив константу:
    define('BX_SECURITY_SESSION_READONLY', true);
    Ответ написан
    Комментировать
  • PHPunit и Битрикс?

    JastaFly
    @JastaFly Автор вопроса
    Я таки смог инициализировать ядро Битрикса в bootstrap.php:
    <?php
    
    define("NOT_CHECK_PERMISSIONS", true);
    define("NO_AGENT_CHECK", true);
    
    $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../");
    
    require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
    require_once($_SERVER["DOCUMENT_ROOT"] . "/vendor/autoload.php");
    
    function initBitrixCore()
    {
        global $DB;
        $app = \Bitrix\Main\Application::getInstance();
        $con = $app->getConnection();
        $DB->db_Conn = $con->getResource();
        $_SESSION["SESS_AUTH"]["USER_ID"] = 1;
    }

    Vamp спасибо за ответы))
    Ответ написан
    Комментировать
  • Битрикс ошибка json_failure?

    JastaFly
    @JastaFly Автор вопроса
    Вообщем-то дело было в реализации ajax в компоненте. С бека на фронт передавался целый готовый компонент с данным и потом через JS HTML компонента полностью перерисовывался. В новой версии метод BX.ajax был переделан таким образом, что такой подход приводил к ошибке. Поправить это удалось при помощи переписывания бека, так чтобы он возвращал на фронт не готовый компонент, а только данные для него и уже в дальнейшем JS раскидывал их по странице
    Ответ написан
    Комментировать
  • Авторизация под другим пользователем?

    JastaFly
    @JastaFly Автор вопроса
    В итоге реши проблему так:
    Скопировал уровень доступа который был у нужной мне группы и добавил в скопированном уровне галочку в чекбоксе Редактирование PHP-кода. Потом в настройки группы пользователей сменил Главный модуль на созданную копию и всё заработало
    Ответ написан
    Комментировать
  • Битрикс Undefined class constant 'COMMENTS_ENTITY_LIB_RECOMEND_NAME'?

    JastaFly
    @JastaFly Автор вопроса
    Сорян затупил. Просто не все файлы задеплоислись на виртуалку
    Ответ написан
    Комментировать