Ответы пользователя по тегу 1С-Битрикс
  • Как сделать одно свойство с несколькими полями в 1с битрикс?

    Так сделать нельзя, да и не нужно.

    У вас должен быть 1 элемент Услуга в одном ИБ и у него множественное поле привязки к элементам ИБ.
    Во втором ИБ вы сделаете нужные вам элементы и привяжете их к Услуге через это поле привязки.

    Всё.
    Ответ написан
    Комментировать
  • Как конвертировать валюту в script.js bitrix?

    Сконвертируйте ее на стороне сайта в mutator.php.
    Не нужно одну и ту же задачу выполнять в двух разных местах. Тем более по разные стороны от сети.
    Ответ написан
  • Как реализовать уникальную сортировку для всех разделов?

    @smilingcheater
    получается при просмотре любого раздела товар может иметь любую позицию в списке (из вашего же примера, Платье 1 было на 1 позиции в разделе Платья было на 1м месте перед Платьем 2, а стало на позиции 4 в разделе Офисные модели, и поменялось порядком с Платьем 2).

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

    цель именно увеличить кол-во свойств для ускорения работы сайта.

    Вы наверное хотели сказать уменьшить количество свойств для ускорения работы сайта?
    Но на самом деле количество свойств не сильно влияет на скорость или вы боритесь за сотые секунды во время выборки? Сомневаюсь.

    Рискну предположить, что вы копаете не в ту сторону и что проблема с производительностью где-то в другом месте.

    Покажите как именно вы используете сортирку и как переключаете ее для разделов.
    Ответ написан
  • Битрикс, скидки для разных пользователей + сортировка?

    Так как мы ничего не дождались, вот мой ответ:

    Так как скидки вычисляются в рантайме PHP, вы никак не можете упорядочить товары по цене со скидкой в запросе и сортировку необходимо выполнять ПОСЛЕ того как вычислена цена скидки.

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

    Это очень дорогая операция которую никак не возможно обойти. Всё будет неплохо, пока у вас не много товаров или очень редкие изменения в них, но как только товаров станет много - все эти ваши расчеты положат сервер выжирая всю память и процессор.

    Следовательно нам нужен кэш. И было неплохо этот кэш сделать максимально узким чтобы как можно реже его обновлять. А лучше вычислять прямо при добавлении нового товара и желательно только для него.

    Что хранить в этом кэше? Выходит только что предвычисленные цены со скидкой...

    И вот мы вернулись ровно сюда:
    Как сделать, если у меня становится несколько групп?
    Не создавать на каждую группу новое свойство и по нему сортировать?

    Именно так и делать. Если групп относительно не много. Скажем до 2-3х десятков такое решение все равно будет оптимальным и самым быстрым.

    Обновление значений вешайте на апдейт товара/элемента на события.

    Если групп много - делайте то же самое но заводите отдельну таблицу и делайте джойны при выборке.
    И сравнивайте скорость работы обоих решений - с определенного момента при росте свойств второе станет чуть быстрее мне кажется.
    Ответ написан
    Комментировать
  • Как использовать JavaScript с Bitrix?

    Flipflap, затем что вы делаете утверждения не соотвествующие действительности.
    Зачем вот это вот:
    там меню свёрстано не списком на html, а выводится массивом на php

    ?
    Если не понимаете как формируется меню лучше спросить как это происходит.

    На основе массива php компонентом menu по шаблону указанному для этого компонента, генерируется html блок представления меню.

    Вы можете добавить нужные вам классы как непосредственно в шаблоне (для всех пунктов) так и изменить шаблон так, чтобы он мог управляться параметрами из массива PHP, чтобы устанавливать различные классы для разных пунктов.

    Вам нужно найти шаблон на базе которого генерируется меню.

    Рискну предположить что он где-то там: /local/.default/components/bitrix/menu/...
    Но вомзожно и по другому пути - все зависит от того кто и как кастомизировал сайт.
    Ответ написан
    4 комментария
  • Как избавиться от дублей в sitemap Bitrix?

    Вот и ответ. Скорее всего в каком-то инфоблоке так прописан URL детальки элемента и этот ИБ в индексе. Для каждого элемент генерируется УРЛ детальной страницы. Уберите либо ИБ из генерациия карты, либо в настройках уберите шаблон URL
    Ответ написан
    Комментировать
  • Битрикс вопрос по лицензии?

    При установке выбрали Малый бизнес. Потом активировали ключом от старта.
    Ответ написан
    Комментировать
  • Как генерировать уникальную строку перед сохранение в БД (D7 bitrix)?

    Может быть только один случай когда вам нужно генерировать индентификатор до внесения в БД - это когда клиент вынужден выполнять операции связанные с записью не сделаной в БД с состоянии отсуствия связи.
    Пример - вы создаёте на клиенте скажем список дел и добавляете в этот новый список новые пункты. И вам нужно чтобы это всё работало, даже пока связи с БД нет, а синхронизируется оно потом. На этот случай придуманы UUID.
    В вашем случае ничего такого нет поэто правильно - автоинкрементируемое поле.

    В самом простом случае +1 в иных случаях (оптовый заказ, индивидуальная поставка, дальний склад) номера заказов могут принимать вид AA-02-1122, AA-02-1123, AA-02-1124.

    А это вообще никак не относится к делу. Совсем. Этот номер генерируется ПОСЛЕ добавления записии из ппрефиксов и ИД: {ТипЗаказ}{ТипДоставки}-{Номерсклада}-ИД
    Можете писать его в отдельное поле, которое можете назвать Номер заказа и радоваться.
    Ответ написан
  • Как в поиске сделать упор на заголовки элементов каталога?

    Переиндексация тут не нужна - это же параметр каталога.
    Нужно разбираться почему не срабатывает параметр USE_TITLE_RANK - такого быть не должно.
    catalog.search - стандартный?
    Попробуйте на не кастомизированном шаблоне.
    USE_SEARCH_RESULT_ORDER Включен?
    Ответ написан
  • Откуда берется переадресация с SEF_APPLICATION_CUR_PAGE_URL?

    Suntechnic
    @Suntechnic Автор вопроса
    Я так и не нашел откуда берется это (не сильно и искал), просто на событие OnBeforeProlog повесил обработчик:
    if ($_REQUEST['SEF_APPLICATION_CUR_PAGE_URL']
                    && $_REQUEST['AUTH_FORM'] == 'Y'
                    && $_REQUEST['TYPE'] == 'AUTH') {
                global $USER;
                if ($USER->IsAuthorized()) {
                    LocalRedirect($_REQUEST['SEF_APPLICATION_CUR_PAGE_URL']);
                }
            }

    Проблема вроде нет.
    Ответ написан
    Комментировать
  • Как определяете какую часть верстки выносить в header.php если много мелких различий в шапке?

    Если делать условия по урлу
    то будет не просто большая портянка, а еще в аду тебя будут варить в самом горячем котле.

    Пока я пришел к такому варианту, что буду использовать отложенные функции

    Все правильтно сделал - пусть страница сама управляет шаблоном над собой, если нельзя избежать такой верстки как ты описываешь.

    Причем на некоторых один вариант, на других второй, ещё на нескольких третий, а на главной четвертый. И таких мелочей где меняется один класс в шапке много, иногда добавляется новые теги(дивы), но это уже редко.

    В целом таких ситуацию лучше избегать, а при необходимости внесение различий в вид, управлять ими через css + классы на body типа .page-main, .page-inner, .page-blog (тире и подчеркивания можно расставить в зависимости от типа расстройства у верстальщика) и так далее, а вот эти классы вешать через отложенные функциию.
    Ответ написан
    Комментировать
  • Как передать в шаблон компонента данные?

    Смотрите содержимое $arParams. Оно будет таким:
    Array(
          ...
          "MENU_TITLE" => "О гостинице"
          "~MENU_TITLE" => "О гостинице"
          ...
        )
    Ответ написан
    Комментировать
  • Где лучше хранить изображения для статических страниц в bitrix?

    или в /local/img/ПутьКРазделу/pic.jpg

    Все варианты рабочие. У всех есть плюсы и минусы и практически все эти плюсы и минусы можно игнорировать если вы не используете систему контроля версий, вроде git.
    Ответ написан
    Комментировать
  • Может ли интернет-магазин на Битрикс быстро работать на виртуальном хостинге?

    Да - может. Хостинг любой.
    Лично я использую netangels (раз уж вы спросили).
    Ответ написан
    Комментировать
  • Как сделать сортировку товаров AJAX в Bitrix, не используя настройку ajax для компонента каталога?

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

    Проблема не в этом. Вот только вчера ругался с верстальщиком - проблема в том что вы используете jquery и ajax - не надо так. Точнее можно, но очень оккуратно, понимая что происходит.
    А в прниципе они противопоказаны друг-другу, потому что ajax обновляет DOM, а jquery работает с событиями которые навешиваются на элементы DOM.

    Решния такие:
    1 Самое простое - перевесить все события на document или body. Ну т.е. у вас есть скрпит какой-то который навешен на '.baybutton' скажем как-то так$('.baybutton').click Меняете его на $(document).on(.baybutton','click'' или как-то так. Соотвественно, когда вы заменете ajax'ом эту кнопку, событие на ней останется, так как висит на документе.

    2 Посложнее, но аккуратнее - добавляейте элементам отдельные селекторы и вешайте события на них через вызов специальной функции, удаляя после навешивания эти селекторы. Вызывайте функцию навешивания, после готовности страницы и после каждого обновления ajax. Для этого есть смысл написать отдельный диспетчер ajax, и пропускать все вызовы через него.

    И да - битрикс тут не при чем.
    Ответ написан
  • Как оставить некоторые js-скрипты в head?

    Использую перенос всех js-скриптов в подвал (Переместить весь Javascript в конец страницы).

    Уберите эту галку - это плохая идея. Она сводится к обработке на каждом хите страницы регулярками.


    Но счетчики Метрики, Google Analitics, Facebook должны быть в .

    Не должны, а хотят. Для них это хорошо, для вас это плохо. В том числе и потому что считать они будут даже не догруженные до конца страницы.

    Пробовал просто использовать в header.php, но все равно уносится все в подвал. Как быть? Как выборочно оставить скрипты в ?

    Как написал - снять все галки, а скрипты размещать вручную.
    Для вывода добавленных через ядро вы можете использовать $APPLICATION->ShowHeadScripts();
    Разместив это в подвале и или в шапке, а в альтернативной части страницы просто <script></script>
    Ответ написан
    2 комментария
  • Как объединить header у всех шаблонов 1C-Битрикс?

    До меня наконец дошло благодаря документации что в битрикс не один шаблон как обычно для всего сайта, а куча разных шаблонов для разных страниц.

    Это не совсем так. Как правило шаблон один. Но можно сделать и свой для каждой страницы.

    Но дело в том что большая часть этих страниц, особенно footer.php и header.php почти одинаковые. Отличие бывает в 1-2 .js, .css файла.

    Если отличия только в подключаемых файлах, то совершенно не правильно делать шаблоны различные для страниц. Шаблон должен быть один, а js и css классически должны подключаться компонентами которым они нужны или в крайнем случае на самих страницах.

    Это страдание разработчиков Битрикс или есть правильно решение?

    Есть. Описал выше.

    Есть какой-то общий файл header.php/footer.php куда я могу прописать все 1 раз.

    Ничто не мешает вам их сделать. Например многие размещают такие файлы в /local/layout и инклюдят внутри разных шаблонов в их header.php/footer.php
    Я еще иногда помещаю их в /local/templates/.default

    И как мне по условию id страницы или её типа может или еще какого параметра подгружать точечно нужные мне скрипты?

    Это не нужно. Подключайте в сами страницах с помощью Asset::getInstance()->addJs("/my_scripts.js");
    Ответ написан
    Комментировать
  • Как работать/проверять разные ветки в git нескольким пользователям в Битрикс:Управление сайтом?

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

    Создавать под каждую задачу тестовую площадку

    Ваши специалисты абсолютно правы.

    но это неоптимально по куче различных причин

    Можно услышать хотя бы две? Я не вижу таки причин, при использовании веток Git.

    P.S. Битрикс тут не при чем.
    Ответ написан
    4 комментария
  • Откуда взялась таинственная spam-регистрация на bitrix-сайте?

    Добавлю к посту Евгений, что для защиты можно снять галку "Позволять пользователям регистрироваться" (или как-то так) в настройках главного модуля. А "Запрашивать CAPTCHA при регистрации" наоборот - поставить.
    Ответ написан
    3 комментария