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

    gromdron
    @gromdron
    Bitrix developer
    Как я понял это связано с тем, что плагин должен сам создать эту таблицу и внести в нее нужные данные, а вариант "ручного" создания таблицы не уместен в данном случае, но как тогда сделать беспрепятственную установку данного плагина без самостоятельного создания данной таблицы?


    Это ошибка в партнерском модуле и наиболее правильный путь - обратиться в техническую поддержку решения.
    Однако временно (костыльное решение) можно исправит следующим образом: открыть консоль php-кода (в админке) и выполнить

    require_once('/home/bitrix/www/bitrix/modules/mcart.xls/lib/orm/profile.php');
    Mcart\Xls\ORM\ProfileTable::getEntity()->createDBTable();


    После чего перейти в список установленных решений и вызвать повторую установку.
    Ответ написан
  • Где найти бесплатную версию Bitrix CMS?

    gromdron
    @gromdron
    Bitrix developer
    Не существует бесплатной версии 1С-Битрикс которую вы сможете использовать в полной мере и без ограничений.
    Если Вы хотите освоить платформу вы можете сделать следующее:

    1) Оформить партнерство.
    При регистрации (не обязательно быть юр.лицом), вам будут предоставлен NFR ключ для редакции Бизнес.
    С этого вы можете начать свое изучение и нет необходимости ее обновлять.

    2) Использовать 30-дневный бесплатный период.
    В течении 30 дней (+ еще около 2 недель с сообщением об окончании поддержки) вы можете использовать ограниченные наборы возможностей Битрикса, однако это лучше чем ничего.

    Можно ли получить бесплатный битрикс?
    Нет, к сожалению получить полностью бесплатный битрикс нельзя. Можно конечно чуть-чуть его хакнуть и убрать некоторые ограничения, но вместе с ними частично отваляться облачные возможности. Вариант с NFR в данном случае предпочтительнее (вас никто не заставляет оформлять юр.лицо или платить какие-то деньги за оформление).
    Ответ написан
  • Можно ли использовать CIBlockSection::GetMixedList или GetList не в компоненте ,а в index.php страницы?

    gromdron
    @gromdron
    Bitrix developer
    Не стоит миксовать вопросы в одном.
    Если вы разделите их, то поймете что это не является проблемой.

    Можно ли использовать CIBlockSection::GetMixedList или GetList не в компоненте ,а в index.php страницы?


    Можно.
    Вам напрямую никто не запрещает использовать классы и вне компонентов. Главное чтобы были подклчюены необходимые модули и пролог.
    Однако подобное нарушает одну из идеологических концепций системы. Правильнее следует сделать компонент.

    у меня есть табы в index.php страницы содержимое которых сделано "bitrix:catalog.section", а название вкладок это название подразделов хочу взять их из админки ,как можно это сделать?

    Точно так же, как и в любом другом компоненте: через API который любезно поставляется компанией.
    Ответ написан
  • Как сделать табы такого вида?

    gromdron
    @gromdron
    Bitrix developer
    Я не вижу каких-то принципиальных сложностей в реализации подобной схемы.
    Предложенный вариант напоминает некий комбинированный вариант отображения инфоблоков и разделов в общем списке (см. настройки инфоблока).

    В целом можно просто написать свой компонент используя: CIBlockSection::GetMixedList
    Ну а если не хочется писать собственный компонент, то всегда можно обернуть элементы в разделы и воспользоваться традиционным bitrix:catalog.section.list
    Ответ написан
  • Как правильно обновить базу тестового сайта с боевого на битрикс?

    gromdron
    @gromdron
    Bitrix developer
    правильно ли будет просто в myAdmin залить базу с боевого?


    Нет, архитектура продукта не подразумевает копирование на уровне баз данных.
    Перенос базы может вызвать отказ в работе системы в целом.

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


    К сожалению в платформе не предусмотрен такой перенос. В зависимости от характера изменений нужно учитывать различные особенности разного бизнеса.
    Например мы практикуем:
    1) Вся разработка ведется только на тестовой версии, а на боевую переносится миграциями.
    Т.е. на бою можно только вводить новый контент, редактировать существующий.
    Совершенно нельзя: изменять поля, создавать новые инфоблоки и т.п.

    2) Один раз в квартал (или по условному событию) полный бекап боевого сервера.
    Т.е. берется полноценная копия сайта разворачивается вместо текущего тестового сервера.

    Собственно первый вариант не отменяет второй и наоборот.
    Ответ написан
  • Почему битрикс24 (коробка) может не проходить тест производительности?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    Пробовали несколько раз переустанавливать (на разные окружения).


    На какие окружения пробовали ставить? Родное Bitrix Env пробовали?

    Может в какую хоть сторону глянуть подскажите?


    1) Bitrix Server Test - сначала прогоните скрипт
    2) Проверка системы - затем исправить ошибки тут
    3) Проактивную защиту на время теста лучше отключить (можно попасть на самоблокировку)

    p/s влияет ли на эти тесты init.php? (его нету)

    Если его нет - влиять не может, а вот если он есть то в зависимости от того что в нем написано
    Ответ написан
  • Как заполнять поле в CRM-форме Автоматически?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    Для того чтобы отображалась правильная формат, необходимо чтобы она вызывалась из JS.
    Т.е. вы подписываетесь на событие нажатия, получаете название элемента и на JS открываете форму (выполняете код), подсовывая вместо php кода, js значение вашего товара
    Ответ написан
  • Как добавить пункт меню Битрикс24?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    Для конкретно этого пункта меню есть прекрасное событие OnAfterCrmControlPanelBuild

    Пример вызова:
    \Bitrix\Main\EventManager::getInstance()->addEventHandlerCompatible(
    	"crm",
    	"OnAfterCrmControlPanelBuild",
    	function( &$menuItems ){
    
    		// $menuItems - список элементов меню по ссылке. Можно даже удалить
    		$menuItems[] = [
    			/**
    			 * ID пункт меню. Нужен для подсветки на странице
    			 * @var string
    			 */
    			'ID'      => 'CUSTOM_REPORTS',
    
    			/**
    			 * ID js-пункта меню. Для счетчиков и action-комманд
    			 * @var string
    			 */
    			'MENU_ID' => 'menu_crm_custom_reports',
    
    			/**
    			 * Название и hover title
    			 * @var string
    			 */
    			'NAME'    => 'Пользовательские отчеты',
    			'TITLE'   => 'Пользовательские отчеты',
    
    			/**
    			 * Ссылка, куда вести по нажатию
    			 * @var string
    			 */
    			'URL'     => '/crm/_some_link_/',
    		];	
    	}
    );


    Ну и собственно на своей странице нужно вызвать доп.компонент:

    $APPLICATION->IncludeComponent(
    	'bitrix:crm.control_panel',
    	'',
    	array(
    		'ID'             => 'CUSTOM_REPORTS',
    		'ACTIVE_ITEM_ID' => 'CUSTOM_REPORTS',
    	)
    );
    Ответ написан
  • Как добавить новое свойство элемента инфоблока через скрипт, так чтобы оно было доступно только для определенного раздела?

    gromdron
    @gromdron
    Bitrix developer
    В коробке такого механизма не поставляется.
    Что имеется?

    1) Можно ли добавить особенности (feature) к свойству (property)?
    Можно. Для этого нужно дополнить их на событии OnPropertyFeatureBuildList. Документации нет, но вам поможет копание ядра в классе \Bitrix\Iblock\Model\PropertyFeature

    2) Можно ли сделать так, чтобы какие-то свойства отображались в зависимости от каких-то условий?
    И да и нет. В коробке такого механизма не присутствует, однако можно полностью переопределить форму для редактирования элемента.

    Но опять же, эти изменения не станут выводить данные в карточку товара (в публичную часть).
    Как это обычно делают? Делают общую карточку элемента, а дальше делают несколько вкладок под разные разделы.

    Кстати хорошим тоном (да и вообще очень полезно) не делать разделы в рамках одного инфоблока, а делать разные инфоблоки для разных типов товара. Это конечно усложняет обмен с 1С (придется выкинуть то что из коробки и заказать свой), но увеличивает производительность и сразу решает такие проблемы.
    Ответ написан
  • Bitrix файл обмена с заказами сохранять?

    gromdron
    @gromdron
    Bitrix developer
    Последний файл сохраняется автоматически в директории /upload/1c_*/
    Ответ написан
  • Будет ли работать сайт на Bitrix без ключа?

    gromdron
    @gromdron
    Bitrix developer
    Если вы купили лиценизонную версию, то в течении календарного года битрикс будет работать без ограничений по возможностям. По прошествии года все облачные сервисы используемые в вашем сайте перестанут работать, но сам сайт будет.

    Если вы не покупали лицензионную битрикс будет работать лишь 30 дней, потом сайт потребует ввода лицензионного ключа.
    Ответ написан
  • Не обновляется оргструктура и должности сотрудников в Битрикс24, в чём проблема?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    Для начала ответа на этот вопрос нужно понять: а как именно раньше обновлялась орг.структура?
    Возможные варианты:
    - Ручками силами HR
    - Интеграция с AD
    - Интеграция с 1С
    - Сторонние скрипты

    В случае "Ручками силами HR":
    - нанять нового HR который будет это делать или обучить текущего.

    В случае "Интеграция с AD":
    - проверить чтобы синхронизация работала
    - проверить чтобы настройки полей подразделений были установлены верно
    - Возможно разово нужно обновить провести синхронизацию заново.

    В случае "Интеграция с 1С":
    - проверить чтобы синхронизация работала
    - проверить чтобы в выгружаемом файле (можно найти в /upload/1c_intranet/) есть подразделения
    - проверить логи обмена со стороны 1С

    В случае "Сторонние скрипты":
    - найти документацию и обратиться к разработчикам
    Ответ написан
  • Как убрать в Битрикс наследование шаблонов метатегов?

    gromdron
    @gromdron
    Bitrix developer
    КАК УБРАТЬ В БИТРИКС НАСЛЕДОВАНИЕ ШАБЛОНОВ


    Убрать нельзя.
    Вы можете ЛИБО убрать их вообще (или написать свои) ЛИБО смириться и использовать то что есть.
    Еще вы можете для каждого раздела/элемента переопрелелять вручную.

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


    Все правильно. Вы же включаете "для раздела И ПОДРАЗДЕЛОВ", т.е. для всех вложенных структур.
    Ответ написан
  • Ошибка Cannot find 'widget' template with page. Как решить?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    В вашем случае я вижу 2 варианта:

    1) Если настраивалась многосайтовость, то сайты криво определяются и при открытии одного сайта, вы открываете этот сайт в шаблоне другого и наоборот. Таким образом шаблоны которые лежат в одном месте ищутся в другом. Проверьте найстройки многосайтовости.

    2) Если НЕ настраивалась многосайтовость, то скорее всего Заказчик просто накатил этот модуль на место главного портала чем положил все.
    К сожалению операция не откаткая и можно лишь попробовать собрать пенетавра для временной работы перед подготовкой нового сервера.
    Ответ написан
  • Что за модуль "Push and Pull" в битриксе?

    gromdron
    @gromdron
    Bitrix developer
    Модуль push'n'pull отвечает за "мгновенную" доставку "сообщений" на подписанный/активный клиент.
    "Мгновенность" зависит от того как именно он настроен, в каком окружении работает сайт/портал и какая нагрузка на сервер.
    "Сообщение" это любой пересылаемый набор unicode, который обрабатывает клиент сам (т.е. для мобильного приложения, и каждой страницы сайта может быть свой обработчик).

    Как работать с модулем есть в статье разработчика:
    https://dev.1c-bitrix.ru/community/blogs/hazz/work...

    К тому же в документации есть:
    https://dev.1c-bitrix.ru/api_help/push_pull/index.php
    кто подписался, с пользовательским содержимым (например, "В нашем магазине акция!") от браузера

    Все зависит от того что вы вкладываете в понятие "рассылать". Если вы имеете ввиду, вывести пользователю на открытую страницу - да.
    Для отправки в браузер напрямую нужно написать "Service worker".
    Для отправки пушей в мобильное приложение нужно написать мобильное приложение.
    Ответ написан
  • Как внедрить парсер в Bitrix?

    gromdron
    @gromdron
    Bitrix developer
    Написать агента достаточно просто, но без конкретных данных рассматривать вашу ситуацию довольно сложно.
    Я могу порекомендовать общие подходы для более глубокого изучения проблемы.

    1) Дописываем разработанный механизм логгирование.
    Принимая во внимание, что windows-путь и linux-путь это 2 разных способа написания путей, то путь к этому файлу лучше определить относительно $_SERVER['DOCUMENT_ROOT'] и с использованием функции realpath
    Парсер должен логгировать:
    - Время вызова
    - Путь до файла (откуда он собирается читать)
    - Наличие файла (есть ли этот файл вообще)
    - Корректность файла (правильное ли расширение, все ли столбцы есть и т.п.)
    - [все бизнес-моменты, как успех, так и провал, в том числе причину провала]
    - Время завершения вызова (когда работа закончена)

    2) Проверяем ТТХ парсера
    - Есть ли спец. требования (например bitrix ставит mb_string = 2, многие парсеры работают строго при mb_string = 0)
    - Версию php (миноры должны быть строго одинаковы)
    - Наличие php-модулей (а вдруг вы используете XMLReader, который на боевом выключен?)

    3) Если все выше "Ок", то проверяем - работает ли парсер без агентов (т.е. прямым вызовом c подключением ядра битрикса)
    Проверяем, чтобы это был не просто php код, а это был код оформленный по соответствующим агентам правилам. Смотрим чтобы лог-файл корректно отработал и записал нужную информацию!
    Особенно поможет документация: https://dev.1c-bitrix.ru/learning/course/index.php...

    4) Создаем агента и смотрим ход выполнения.
    Если что-то не работает - смотрим логи и правим.

    P.S. Если версия вашего php выше 7, то в работе очень поможет try-catch с Throwable, который поймает многие перехватываемые ошибки исполнения.
    Ответ написан
  • Как мне вывести к товару отзыв для этого товара?

    gromdron
    @gromdron
    Bitrix developer
    А в чем проблема вместо 125 использовать этот самый "$arResult["ID"]", который и так содержит ID товара который вы смотрите?

    Т.е. по факту вы пишете следующее:
    1) Разрабатываете компонент который на основе ID товара выведет его отзывы
    2) В шаблоне вывода компонента добавляете вызов своего компонента.
    Ответ написан
  • Сайт на bitrix раздувает таблицу b_event, как исправить?

    gromdron
    @gromdron
    Bitrix developer
    В b_event хранятся исходящие email сообщения и отключить ее нельзя.
    Вы можете сделать:
    1) Защитить форму обратной связи
    2) Уменьшить время хранения письма в b_event (настройки главного модуля).

    Для защиты формы обратной связи помимо капчи можно использовать:
    - Методы защиты от CSRF (https://habr.com/ru/post/318748/)
    - Потайные input'ы не заполняемые пользователем (зачастую роботы их заполняют)

    Эти методы защитят вас от большинства видов атак, но в случае целенаправленного спама это не решит проблему.
    Ответ написан
  • Как передать ссылку в поле сделки без перезаписи предыдущих ссылок методом crm.deal.update?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    Но эта ссылка все равно перезапишет и уничтожит все что содержалось в дополнительных полях.


    Метод crm.deal.update изменит не конкретный пункт, а все значения. Методов на точечную дозапись элементов нет, поэтому вам придется получить все значения, добавить свою ссылку и сохранить.
    Ответ написан
  • Возможно ли отформатировать поле со ссылками, и если да, то как?

    gromdron
    @gromdron Куратор тега Битрикс24
    Bitrix developer
    К сожалению для данного типа поля такое использовать нельзя, однако можно использовать какое-либо из полей типа HTML/BB и уже там выводить как вам хочется.
    Ответ написан