Идеи для: Главный модуль

Рейтинг: 10.8902  
Новая
Предложил Коротаев Максим 18.10.2018 12:34:08

Авторизация/регистрация

Сделайте, пожалуйста, такой функционал.

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

Спасибо

ПС: В качестве развития, выбор, использовать в качестве логина эл. почта или телефон.
Рейтинг: 1.7804  
Новая
Предложил Алексеевич Андрей Алексеевич 16.10.2018 17:20:23

Транспортный раздел

Добрый день

Подскажите Ваша компания не рассматривает возможность интеграции в Битрикс 24 таких пунктов как Транспортный раздел? Мы бы и я думаю ещё как минимум 100 тысяч компаний были бы вам очень признательны если вы интегрировали в Битрикс24 Транспортный раздел с пунктами: заказы на перевозку(с указанием необходимого транспорта по стандартным критериям необходимого для перевозки груза) , Перевозчики( с видами различного по критериям  транспорта), Заказчики (КАРТА КОМПАНИИ ), необходимую документацию, Договор на перевозку автомобильным транспортом, Договор-заявку, товарно- накладная, товарно транспортная накладная, акт выполненных работ, счёт, счёт-фактура, и также по произвести интеграцию с АТИ(Авто Транс Инфо) по API.

p/s Битрикс24 / Корпоративный портал.

Рейтинг: 1  
Новая
Предложил Глухов Никита 16.10.2018 10:34:22

Ставить FOREIGN KEY по умолчанию

Добавить в таблицы внешние ключи для обеспечения целостности на стороне БД. Делать это для наглядного отображения, какие вещи маппятся на какие, избавив от необходимости гадать на кофейной гуще. Параллельно решая задачу обеспечения data integrity.
Рейтинг: 6  
Новая
Предложил Махонин Павел 31.08.2018 12:14:04

Пользовательское свойство "файл" с поддержкой drag'n'drop

Вы придумали очень удобный инструмент для работы с файлами (и особенно с изображениями). За это вам спасибо.

Правда есть одно "но". Работу по внедрению этого инструмента вы почему-то бросили на половине пути. Я бы мог понять это в начале, когда этот механизм только анонсировался и тестировался, но прошло уже очень значительное время с тех пор.

Сейчас нет возможности создать пользовательское свойство для раздела или HL элемента, который будет работать с drag'n'drop. Нам по прежнему предлагается использовать старые механизмы.

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

Собственно идея в том, чтобы довести до ума данный инструмент и внедрить его повсеместно.
Рейтинг: 5.8902  
Новая
Предложил Medved 19.08.2018 18:28:21

Правильное сжатие css и js. Google PageSpeed Insights должен быть 100%

Изучая систему 1С-Битрикс, я чаще стал понимать, что некоторые модули делаются не для результата, а для показа. Одно из правильного решения, но с ужасным подходом и без осмысления - оптимизация сайта.

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

Сжатие и объединение css и js. галочка добавлена уже не первый год, но я до сих пор не понимаю зачем разработчик сделал в сжатом файле комментарии с отступами?  Ты сжимаешь файл или ты хвастаешься? Ты для кого комментарии пишешь, мастер?
Сжатие и объединение файла должно убирать все лишнее, сжимать файлы в одну строку и убирать все что не нужно.
Писать комментарии вот так

/* /bitrix/js/main/core/css/core.min.css?15263820002854 */
/* /bitrix/js/main/core/css/core_popup.min.css?153051575715451 */
/* /bitrix/js/main/core/css/core_tooltip.min.css?15263820007772 */
/* /bitrix/js/main/core/css/core_date.min.css?15263820009658 */


/* Start:/bitrix/js/main/core/css/core.min.css?15263820002854*/
/* End */


/* Start:/bitrix/js/main/core/css/core_popup.min.css?153051575715451*/

https://opt-560835.ssl.1c-bitrix-cdn.ru/bitrix/cache/css/id/1c-bitrix-idea/kernel_main/kernel_main_v...

Это не верно, Google PageSpeed Insights такой файл не будет воспринимать. так для кого делалась эта функция? чтобы посмешить или  помочь?

2 пункт.
Почему же вы не можете собрать все скрипты со страницы и сжать их в одну строку, зачем вы их в конец страницы помещаете?
Забросить все скрипты страницы в файл и его подгружать - это правильное решение.
опять смотрим код сайта идей
view-source:https://idea.1c-bitrix.ru/edit/new/

Внизу свалка. Вы оптимизируете сайт или вы делаете свалку?

------------
3. Google PageSpeed Insights просит опустить стили css вниз страницы. Это тоже можно сделать, и тут проблема появляется с мельканием сайта. Кого-то это раздражает, а кого-то нет. Надо найти оптимальное решение.

Вообще надо 1С-битриксу уже сделать  настройку под требования гуугла.

4. Модуль сжатия картинок под требования 1С-Битрикс. Причем сжатия даже для ресайзнутых картинок.
Рейтинг: 5  
На голосовании
Предложил Неслуховский Иван 26.07.2018 08:30:37

В движке Битрикса заключать стили CSS в пространства имён Битрикса

Постоянно сталкиваюсь с двумя очень неправильными ситуациями, когда дизайнеры и программисты, создающие движок Битрикса, не изолируют свой код CSS от кода клиента.

Ситуация 1: Клиент прописывает стили для сайта. Ну, например, ссылки должны быть зелёными. Заходим в какое-нибудь окно редактирования административной панели (в публичке), а там - зелёные ссылки! Т.е. стили сайта повлияли на стили в интерфейсе движка. Такого быть не должно! Мало ли какие у клиента будут стили для инпутов, и они "поползут" в вёрстке. Может у клиента сайт на синем фоне, а ссылки белые. А в окне Битрикса выползут ссылки "белые на белом", т.е. "пропадут". И т.п.

Лечение: Битрикс должен заключать свой HTML в контейнер, а стили прописывать с директивой !important
Объяснить разработчикам, что служебные стили Битрикса начинаются с bx- и лучше их не использовать.
<div class="bx-admin-panel"> ......... </div>
.bx-admin-panel a !important { ............. }

Ситуация 2: Клиент прописывает стили для сайта. И использует где-то на странице стандартный компонент. Этот компонент внезапно перекрывает стили шаблона и получается каша. Например, пропадает элемент! Оказывается, в компоненте был прописан вот такой стиль в общем пространстве имён!!!

div.empty {width: 1px; height: 1px;}
Лечение: Опять же Битрикс все свои замечательные придумки должен заключать в пространство имён.
<div class="bx-super-component"> .... <div class="empty"></div> .... </div>

.bx-super-component div.empty {width: 1px; height: 1px;}
Научите своих дизайнеров, верстальщиков и программистов хорошему!
Это не проблема клиента! Это проблема некачественного неизолированного кода! Клиент должен быть свободен от таких раздумий "а не пришло ли в голову разработчикам Битрикса использовать такой-то стиль...."
Рейтинг: 1  
На голосовании
Предложил Falaleev Alexander 20.07.2018 09:12:29

brotli

Может быть стоит при  установленной галочке в "Создавать сжатую копию объединенных CSS и JS файлов" создавать не только gzip версию рядом но и brotli ?
Рейтинг: 6  
На голосовании
Предложил Зайцев Артемий 17.07.2018 15:50:35

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

Ранее я предлагал не делать бекап таблицы b_xml_tree, потому что ломается обмен с 1С
https://idea.1c-bitrix.ru/not-to-make-a-backup-copy-of-the-table-bxmltree/

Теперь возникла еще одна проблема: наш модуль "Журнал изменений товаров" содержит огромную таблицу, которую сохранять тоже необязательно.

http://marketplace.1c-bitrix.ru/solutions/askaron.productlog/

Табличка нашего модуля разрастается до многих гигабайт и существенно замедляет резервное копирование.

Было бы здорово отключать часть таблиц, чтобы сохранялась только структура, но без данных в таболице.

Как вариант можно сделать событие при резервном копировании, чтобы получать таблицы, данные которых не нужны.
Рейтинг: 1  
На голосовании
Предложил Никонов Дмитрий 05.07.2018 10:43:55

Настройка "отправлять пуш уведомления только на андроид или иос"

В настройках модуля есть только "Отправлять PUSH уведомления на мобильные телефоны". Но как быть когда надо отправлять пуши только на андроид (когда иос не корректно обрабатывает пуши)?
Хочется настройку позволяющую запретить отправку на какие-то устройства (apple или google). Ну или в метод CPushManager::SendMessage() - добавить атрибут, позволяющий указать на какие именно устройства отправлять пуши - array("GOOGLE"). Соответственно если параметр не передан - то отправлять на все устройства.
Рейтинг: 1  
На голосовании
Предложил Чернаков Константин 04.07.2018 15:39:36

Облегчение перевода агентов на cron

Сейчас в документации приводится большая инструкция по переводу агентов на cron в которой рекомендуется: выполнить пару "магических" команд в командной строке, отредактировать файл dbconn.php и создать файл /bitrix/php_interface/cron_events.php, (который большей частью повторяет файл /bitrix/modules/main/tools/cron_events.php) и "натравить" на него крон.
Было бы неплохо сократить эту инструкцию, обойтись без редактирования и создания файлов, а просто в файле /bitrix/modules/main/tools/cron_events.php предусмотреть логику, которая в зависимости от установленных параметров выполняла агенты либо по крону, либо на хитах. А уже крон натравить на исполнение файла - любой мало-мальский админ сможет.
Кстати, если мне не изменяет память в виртуальной машине Битрикс /bitrix/modules/main/tools/cron_events.php уже запускается по крону.
Рейтинг: 2  
На голосовании
Предложил Архипов Руслан 05.06.2018 13:33:32

Хранить LID сайта как число

Теперь, когда ограничение кол-ва сайтов на одной лицензии убрали, хотелось бы, чтобы его не было и со стороны софта. На данный момент LID сайта - 2хзначная строка из цифр и букв латинского алфавита, что дает ограничение в 1296 сайтов. Не скажу, что этого мало, но в некоторых случаях присвоение таких идентификаторов может доставлять неудобства.
Рейтинг: 3  
На голосовании
Предложил Tigpa 25.05.2018 12:40:43

Добавить поле в таблицу агентов

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

Так же вынести данное для редактирования в интерфейс.
Рейтинг: 0  
На голосовании
Предложил Архипов Руслан 16.04.2018 16:46:20

Фильтр пользователей по местоположению

Просьба сделать фильтрацию пользователей по полю типа "Местоположение" более удобной, с возможностью поиска по названию. Текущий фильтр по ID местоположения не очень удобен.
https://prnt.sc/j5yrd0
Рейтинг: 0  
На голосовании
Предложил Сергей Гладышев 10.04.2018 19:33:52

Узкое место Битрикса, связанное с тэгированным кэшем.

Кейс таков. У нас есть метод, который формирует ассоциативный массив из символьных кодов и id инфоблоков.
public static function getIBlocksCodeIDMap()
{
    if (!\Bitrix\Main\Loader::includeModule('iblock'))
        return;

    $arIBlocksIDsByCode = array();

    $cache = new CPHPCache();
    $cache_time = 86400;
    $cache_id = 'getIBlocksCodeIDMap' . SITE_ID;

    $cache_path = '/getIBlocksCodeIDMap/';

    if ($cache_time > 0 && $cache->InitCache($cache_time, $cache_id, $cache_path))
    {
        $res = $cache->GetVars();
        if (is_array($res["IBlocksCodeIDMap"]) && (count($res["IBlocksCodeIDMap"]) > 0))
            $arIBlocksCodeIDMap = $res["IBlocksCodeIDMap"];
    }

    if (empty($arIBlocksCodeIDMap))
    {

        $rsIBlocks = \CIBlock::GetList(
            Array(),
            Array(
                "SITE_ID" => SITE_ID
            )
        );

        global $CACHE_MANAGER;
        $CACHE_MANAGER->StartTagCache($cache_path);
        while ($arIBlock = $rsIBlocks->Fetch()) {
            $CACHE_MANAGER->RegisterTag("iblock_id_".$arIBlock["ID"]);
            $arIBlocksCodeIDMap[$arIBlock['CODE']] = $arIBlock['ID'];
        }
        $CACHE_MANAGER->RegisterTag("getIBlocksCodeIDMap");
        $CACHE_MANAGER->RegisterTag("iblock_id_new");
        $CACHE_MANAGER->RegisterTag("getIBlocksCodeIDMap");

        $CACHE_MANAGER->EndTagCache();

        if ($cache_time > 0) {
            $cache->StartDataCache($cache_time, $cache_id, $cache_path);
            $cache->EndDataCache(array("IBlocksCodeIDMap" => $arIBlocksCodeIDMap));
        } 
    }

    return $arIBlocksCodeIDMap;
}
В каких случаях нам нужно обновлять кэш в папке /getIBlocksCodeIDMap/ ?
1 - при добавлении инфоблока. Произведётся сброс по тэгу iblock_id_new в методе CIBlock::Add
2 - изменение символьного кода инфоблока (ну т.е. обновление инфоблока) и удаление инфоблока. Произведётся сброс по тэгу iblock_id_ в методах CIBlock::Delete и CIBlock::Update.

Т.е. всё хорошо, у нас всегда актуальные данные. Но есть один ньюанс:
Сброс по тэгу iblock_id_ будет производиться и при обновлении/удалении/добавлении элемента/секции этого инфоблока (CIBlockSection, CIBlockElement). Т.е. наш кэш будет сбрасываться вообще по каждому чиху, связанному с хотя бы одним из инфоблоков. Хотя нам, в данное методе, абсолютно не нужно реагировать на какие-бы то ни было изменения в элементах или секциях инфоблоков. Нас интересуют только само наличие инфоблоков и их символьные коды.
Получается избыточность.

Почему бы штатным методам не добавить более узкоспециализированные и сброс кэша по ним.
Т.е. , например , в методе  CIBlockElement::Update добавить ClearByTag("CIBlockElement") и ClearByTag("CIBlockElement_Update"), при этом оставив на месте ClearByTag("iblock_id_" . .... ).

И когда разработчик пишет свой метод, то он может более гибко управлять сбросом кэша с результатами работы своего метода. Т.е. если нужно, например, реагировать только на изменения в элементах, в метод добавляется $CACHE_MANAGER->RegisterTag("CIBlockElement"); и всё.

Или, в случае моего примера:
$CACHE_MANAGER->RegisterTag("CIBlock_Update");
$CACHE_MANAGER->RegisterTag("CIBlock_Add");