Ответы пользователя по тегу 1С-Битрикс
  • Bitrix ORM: Как реализовать импорт в инфоблок нескольких тысяч элементов?

    gromdron
    @gromdron
    Bitrix developer
    Но ведь почему-то разработчики Битрикса решили от него отказаться?


    Они не "решили отказаться", они его архитектурно еще не сделали. Элементы инфоблоков это не только запись в таблице это еще и свойства, которые могут хранится в двух вариантах, так что это вовсе не так просто.

    Выходит нужно использовать старый CIBlockElement::Add() без вариантов?

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

    Есть какой-то аналог Batch Processing от Doctrine?

    Аналогов нет, но и операция не такая уж частая. Есть потребность в таких объемах - обычно либо это сторонние каталоги (цены, наличие, свойства и т.п.) и тут без CIblockElement::add не обойтись, либо своя таблица (а там уже что хочешь, хоть sql)
    Ответ написан
  • Правильно ли я пониманию, что архитектура "битрикс управление сайтом" несколько кривая?

    gromdron
    @gromdron
    Bitrix developer
    Если смотреть на вещи реальнее скорее это ошибка в документации. По сути архитектура битрикса это не MVC, это некий набор из конкретных архитектур и стоит рассматривать их независимо. Если говорить о Компонентах, Моделях и Шаблонах, то битрикс скорее это MVVM модель, где компонент - ViewModel, шаблон это View, а Model это фундаментальная часть данных без бизнес-логики.

    Означает ли это что данная архитектура кривая? Нет, вовсе не означает. Просто она реализует совершенно иной подход, который чужд многим разработчикам из мира фреймворков и моно-проекта.
    Ответ написан
  • Как сохранить картинку через CCrmDeal->update?

    gromdron
    @gromdron
    Bitrix developer
    ередаю id картинки, полученной через CFile->SaveFile

    Вам нужно передавать туда не id, а массив полученный через CFile::MakeFileArray, т.к. все методы работают именно с этим массивом.
    Ответ написан
  • Где лежат PDF-файлы формируемые стандартным генератором документов Битрикс?

    gromdron
    @gromdron
    Bitrix developer
    Можно ли дать доступ к папке с этими файлами, как к Сетевому диску и настроить права, чтоб скачивать и закачивать файлы обратно в Битрикс?


    Нет, так как можно подключить только логические диски пользователей и/или других сущностей.
    Физические пути вы никогда не получите.
    Ответ написан
  • Установка онлайн чата на cms 1c-Bitrix?

    gromdron
    @gromdron
    Bitrix developer
    Чат необходимо сделать как на платформе Twitch или Youtube

    Уверены что речь идет именно о чате, а не о системе комментариев? Потому как это две разные подсистемы.

    В купленном пакете Битрикс нет модуля чата, программисты советуют докупить (оно и понятно, им так проще)

    Вы конечно можете написать свой. Все зависит от квалификации программистов и от прямоты их рук.
    Есть на этот счет два аргумента:
    - Если задача уже решена в системе, то зачем изобретать велосипед? Уже за вас люди подумали и реализовали множество вещей, начиная от socket/long polling и заканчивая обменом сообщений между пользователями
    - С другой стороны это не заточено под ваши нужды, так что все равно придется дорабатывать и если не знаешь что и как, то это обернется в кошмар и проще написать свой.

    но денег нет

    А платить все равно придется: либо за редакцию, либо за труд разработчиков, либо за сторонний сервис.
    Бесплатно только сыр в мышеловке.

    Как вариант можно ли установить AJAX Chat в код сайта на 1С-битрикс?

    Да, это возможно.
    Ответ написан
  • Как исправить проблему с отключением стилей шаблона компонента?

    gromdron
    @gromdron
    Bitrix developer
    Проблему в целом можно решить перенеся CSS в основной файл, но не хотелось бы в лишний раз нагружать основной CSS. Есть какие-то способы как это можно исправить?


    Конечно есть!
    Вы можете создать свой css файл для нишевого отображения и в result_modifier.php подключать его к стилям страницы через тот же addCss.
    Получается что вы в одном месте его правите, а во всех остальных он меняется автоматически.

    Что касается:
    Собственно именно этот CSS и отваливается.

    Так как вносили изменения через публичную часть, возможно изменения были внесены не совсем туда, куда хотели. Проверьте пожалуйста чтобы он был добавлен в нужный css файл нужного шаблона и что именно он подключается на странице
    Ответ написан
  • Как сделать свой Main UI Filter в своём приложении Bitrix24?

    gromdron
    @gromdron
    Bitrix developer
    Увы, но подобного решения для облачных приложений нет. Разве что вы возьмете уже готовые классы и строительство в свое приложение, но опять же - придется все делать самому
    Ответ написан
  • Bitrix CEvent::Send &CFile::MakeFileArray в письме 2 одинаковых файла?

    gromdron
    @gromdron
    Bitrix developer
    1) В $arEventField не нужно указывать ключ FILE, он сам будет задан из 6 параметра метода CEvent::Send
    2) \CFile::MakeFileArray вовсе не нужно делать. На последнем битриксе это делают за вас.

    Т.е. в вашем случае код должен выглядеть как-то так:
    $fileName = $_SERVER["DOCUMENT_ROOT"]."/temp/".$MGR_ID.'_'.date("dmYHi").'.xlsx';
    
    $files = [
    	$fileName
    ];
    
    $arEventField = [
    	"EMAIL_TO"  => $USER->GetEmail(),
    	"USER_NAME" => $USER->GetFullName(),
    ];
    
    if ( \CEvent::Send("MGR_INFORMER", "s1", $arEventField, "Y", '', $files ) )
    {
    	@unlink($fileName);
    }


    Если после проделанного файлов все же прикрепляется 2, то необходимо:
    1) Проверить шаблон MGR_INFORMER возможно в самом шаблоне прописана вставка файла. Если файл вставлен в тело письма, то он может быть продублирован 2 раза.
    2) Проверить события OnBeforeEventAdd модуля main. Возможно там есть дублирование файла.
    3) Проверить функцию custom_mail (если таковая существует). Возможно дополнительно работа с файлами находится там.
    Ответ написан
  • Как убрать верхнее меню в CRM Битрикс24?

    gromdron
    @gromdron
    Bitrix developer
    Это bitrix:menu с шаблоном top_horizontal, расположен в header.php (выше него стоит область: above_pagetitle)
    Ответ написан
  • BitrixVM. Push and Pull не работает. Сообщения не приходят в реальном времени. В чем проблема?

    gromdron
    @gromdron
    Bitrix developer
    Не туда смотрите: сначала в консоль браузера, затем в случае nodejs (а у вас именно такой случай) - /var/log/push-server/ и там уже смотрите логи :)
    Ответ написан
  • Битрикс. Где лежат веб формы?

    gromdron
    @gromdron
    Bitrix developer
    Если спрашиваете концептуально: Админа - Сервисы - Веб-формы.

    Рекомендую так же ознакомиться с курсом, но делать это на примере указанном в официальной документации
    Ответ написан
  • Как перенести сайт на 1С-Битрикс с минимальной недоступностью и потерей информации?

    gromdron
    @gromdron
    Bitrix developer
    Переезжать нужно резко (вот прям 1-2 дня)? Или можно растянуть на 1-2 месяца?

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

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

    2) Купил сервер чисто под веб (т.е. без базы данных).
    Далее вы знаете - rsync, dns и т.п.

    Таким образом у тебя 2 новых сервера (если все сделал правильно, то цена сильно не выросла), но появился еще и запас куда расти дальше
    Ответ написан
  • Bitrix CMS важен ли модуль "проактивная защита"?

    gromdron
    @gromdron
    Bitrix developer
    Только ради этого модуля покупать редакцию Стандарт вместо Старта не имеет смысла.
    Если вы хотите быть более защищенным, то да, но это имеет смысл только для интернет-магазинов и больших новостных сайтов. Вряд ли кто-то будет пытаться сломать маленький неизвестный блог/галерею. В любом случае - на сканер найдеся, но и сам следи.

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

    gromdron
    @gromdron
    Bitrix developer
    В файле .parameters.php Есть такой фрагмент кода для подключения кеша.


    То о чем вы пишите - это параметры компонента по-умолчанию. Т.е. это шаблон для параметров.
    Реальные параметры кеширования настраиваются на странице где используется компонент. Изучите как происходит настройка компонента.

    А сам факт того, что компонент с включенным кешированием выполняет запросы это нормально: возможно используются преобразования до/после кеширующей области. Ну и конечно же не стоит забывать, что компонент может быть кастомным и кеширования там может быть не предусмотрено.
    Ответ написан
  • Есть ли для программиста 1с битрикс разница в работе с битрикс 24?

    gromdron
    @gromdron
    Bitrix developer
    Да, будут.

    С чем придется столкнуться за время работы:

    1) Компонентный подход не всегда применим.
    В БУС вы могли копировать компонент поработать, обновиться и продолжать использовать существующий старый компонент.
    В Б24 он в лучшем случае продолжит работать, но в реальности компоненты CRM просто будут отваливаться в зависимости от апдейта. Каждый раз придется перепроверять настройки.

    2) Документация отсутствует примерно на 60-70%.
    То есть в документации конечно же есть какие-то классы или описания, но в действительности хорошо описан только REST (и то бывают большие проблемы).
    К некоторым модулям или частям системы придется забираться внутрь (т.е. лезть прямо в /bitrix/modules/*)

    3) Добрые 30% выполняются на стороне клиента
    Придется подтянуть JS, узнать что такое асинхроннные запросы и замыкания и съесть не одну порцию счастья в процессеработы.
    Зачастую правки будут вноситься именно на JS.

    4) Придется расширить кругозор
    Это значит что нужно будет узнать что такое маршрутизация, nginx, apache, active directory (ad/ldap), ms exchange (+ ms outook), soap, webdav и т.п.

    5) Нужно будет перестраиваться из парадигмы "дают задачу -> делаю" в "дают задачу -> уточняем условия -> думаем -> уточняем условия -> делаем -> уточняем условия -> доделываем".
    Зачастую требования которые озвучивают "в лоб" можно сделать попроще или иначе, но если не задумываться потом будут большие проблемы с поддержкой
    Ответ написан
  • Как перенести часть заказов с битрикса на битрикс?

    gromdron
    @gromdron
    Bitrix developer
    В 2019 году переносить новые заказы в интернет-магазине с подключенной ККМ нельзя.
    На практике придется учесть слишком много тонкостей, а в итоге все равной придете к тому, что перенести ваши наработки (инфоблоки, код, правила корзины и т.п.) будет на порядок быстрее чем перенести информацию с одного сайта на другой.

    Что касается переноса: категорически нельзя переносить отдельные записи из таблица - либо всю таблицу, либо ничего. Особенно если не знаете архитектуру 1С-Битрикс
    Ответ написан
  • Почему у неавторизованного пользователя нету 404 ошибки?

    gromdron
    @gromdron
    Bitrix developer
    Почему у не авторизованного пользователя нету 404 ошибки?


    Скорее всего, потому что вы открыли раздел только для авторизированых пользователей. В Битрикс сначала проверяется права доступа к странице, а потом уже действия на странице.
    Ответ написан
  • С чем связанно такое поведение, Fetch() сломался, в чем трабл?

    gromdron
    @gromdron
    Bitrix developer
    Добрый день, Автор.

    Во-первых: прекратите использовать print_r для вывода результатов, смотрите хотя бы через var_dump() (ибо у битрикс есть обьекты ссылающиемся так или иначе на самого себя и можете попасть в рекурсию).

    Во-вторых: если выв вошли в while, значит данные есть, если вы в него не вошли, значит их нет.

    В-третьих: с 18 версии, можно больше не фетчить, а использовать foreach.

    Попробуйте следующий код:
    \ob_start();
    echo PHP_EOL."<pre>".PHP_EOL;
    
    $highloadItems = $HLDataClass::getList(array(
    	"select" => ["*"],
    	"filter" => $arFilter
    ));
    
    var_dump([
    	'filter' => $arFilter,
    	'rowsCount' => $highloadItems->getSelectedRowsCount()
    ]);
    
    foreach ($highloadItems as $highloadItem)
    {
    	var_dump( (array) $highloadItem );
    }
    
    \file_put_contents($_SERVER['DOCUMENT_ROOT'].'/uplod/testlog.log', \ob_get_clean(), FILE_APPEND);

    Собственно код попытается получить все данные по фильтру arFilter, выведет в лог этот массив и количество найденных элементов. Затем каждый найденный элемент в виде ассоциативного массива.

    Вывод перенаправит в файл /upload/testlog.log от корня вашего сайта.
    Ответ написан
  • Как оформляются статические страницы сайта?

    gromdron
    @gromdron
    Bitrix developer
    Правильная структура выглядит так:

    1) Шапка (все что ДО контентной части) - в header.php шаблона
    2) Подвал (все что ПОСЛЕ контентной части) в footer.php шаблона
    3) Контентная часть:
    - Полностью динамическая - вызов компонента с настройками
    - Статичная. В таком случае вы должны разместить в коде страницы компонент включаемой области и вынести в отдельную папку непосредственно саму включаемую область.

    Т.е. у вас в коде контентной части вообще не должно быть html тегов - только компоненты.
    Ответ написан