• Почему array.length возвращает 0?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Я использовал фрагмент кода и дополнил его (чтобы не ругался на неизвестные массивы). У меня получился фрагмент:

    all = {
    	"2017-08-10": 10,
    	"2017-08-11": 11,
    	"2017-08-12": 12,
    	"2017-08-13": 13,
    	"2017-08-14": 14
    };
    
    register = {
    	"2017-08-10": 10,
    	"2017-08-11": 11,
    	"2017-08-12": 12,
    	"2017-08-13": 13,
    	"2017-08-14": 14
    };
    
    percent = {
    	"2017-08-10": 10,
    	"2017-08-11": 11,
    	"2017-08-12": 12,
    	"2017-08-13": 13,
    	"2017-08-14": 14
    };
    
    result = ["2017-08-10","2017-08-11","2017-08-12","2017-08-13","2017-08-14"];
    compact = [];
    for (var i = 0; i < result.length; i++)
    {
    	compact.push([i+1,all[result[i]],register[result[i]], percent[result[i]] ]);
    }

    При выполнении указанных Вами комманд:
    console.log(Object.keys(compact).length)
    console.log(compact.length)


    В обох случаях возвращается 5.
    Что я делаю не так? и чем мой код отличается от Вашего?
    Ответ написан
    Комментировать
  • Как грамотней добавить лендинг на страницу 1с bitrix?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Есть пряморукое, но сомнительное решение: поработать через urlrewriter

    Если, как было выяснено в комментариях,

    /akcii/ - базовая страница компонента
    /akcii/skidka/ - страница, где выводится список элементов из инфоблока с кодом "skidka"
    /akcii/nacenka/ - страница, где выводится список элементов из инфоблока с кодом "nacenka"

    Тогда в urlrewrite.php можно внести правило:

    array(
    "CONDITION" => "#^/akcii/skidka/\\?#",
    "RULE" => "",
    "ID" => "",
    "PATH" => "/beginners/skidka/index.php",
    ),

    И проконтролировать, чтобы оно было выше обработчика самого /akcii/
    Тогда должно сработать и по адресу /akcii/skidka/ показывать директорию лендинга
    Ответ написан
    Комментировать
  • Как настроить права доступа на группу пользователей?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Предположим, что обе группы имеют доступ в административную панель.
    Проблем с группой 2 быть не должно, все настраивается в рамках стандартных прав.

    А вот с группой 1 будет интересный вопрос: Вам на событиях придется отлавливать добавление и изменение элемента инфоблока (я бы посоветовал принудительно ставить флаг активности в N состояние).

    Или у Вас проблемы с непосредственным написанием кода?
    Ответ написан
  • Как правильно начинать новый проект на битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если Вы работаете с 1С-Битрикс и вы делаете "шаблонки", то бОльшая часть всего уже есть.
    Вообще вопрос сильно отличается от содержания и не очень понятно что изначально вы имеете ввиду.
    Вы хотите узнать можно ли решить данный кейс без написания собственного кода (т.е. без написания компонентов, а только правками шаблона)? Да можно.
    Можно ли сделать какие-либо сложные вещи без написания кода? Зависит от того что именно. Многие решения уже сделаны, а реализация других потребует сильного или значительного изменения кода.

    Можете уточнить вопрос?
    Ответ написан
  • Как привязать сайт к учету?

    gromdron
    @gromdron
    Работаю с Bitrix24
    В меня конечно сейчас попытаются запустить камнем, но - 1С-Битрикс имеет штатную интеграцию + модули для о...

    Правда выйдет недешево и если 1С-ка пиленая придется попотеть, но в целом документация по обмену хорошая.
    Ответ написан
    Комментировать
  • Как надежно выполнить несколько запросов mysql (mysqli)?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Ответ - нет. Функция mysqli_multi_query выполнит все запросы так, как если бы Вы использовали обычное query.
    К тому же, она вернет FALSE, только если ПЕРВОЕ выражение вызвало ошибку.

    Для реализации обхода, как Вам уже указали используйте Транзакции через begin_transaction
    Ответ написан
    Комментировать
  • Есть php скрипт, надо записать его в крон. как сделать?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Для начала, ознакомьтесь с имеющийся документацией: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Внизу странице (по ссылке выше) есть код агента, исполняющегося под cron. Он подойдет.

    Первое на что нужно обратить внимание: константа SITE_ID. Если предполагается работа из админ панели, то это константа языка, иначе - константа сайта (лучше задать вручную)
    Второе: проверьте $_SERVER["DOCUMENT_ROOT"] (если у Вас bitrix vm то это скорее всего тот же путь)
    И третье - вместо echo в cli режиме лучше использовать: fwrite( STDOUT, 'Строка' );
    Ответ написан
    Комментировать
  • Ограничение просмотров через сессию или куки?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Для ограничения просмотров наиболее подходящим образом будет:
    1) Разрешения просмотра только для зарегистрированных пользователей
    2) Хранение факта проссмотра в отдельной таблице.

    Почему?
    1) Сессия сбрасывается со временем
    2) Куки можно подделать
    3) Отображение истории просмотра можно потом выводить для "автора" резюме
    Ответ написан
    Комментировать
  • Что нужно сделать чтобы убрать дублирование h1 тайтла?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Во-первых, в данный момент title и h1 у Вас различаются. Т.е. скорее всего Вы либо решили вопрос, либо "зашили" его в код страницы.
    Во-вторых, согласно документации и примечаниям, в месте вывода h1 вы можете прописать: $APPLICATION->ShowTitle(), а в title: $APPLICATION->ShowTitle(false)
    Тогда у Вас получить отложенный механизм и стандартный. (можете поменять местами как Вам нужно)
    Ответ написан
    Комментировать
  • Что лучше выбрать для интеграции интернет-магазина на 1С Битрикс с Amocrm и c Roistat?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Прежде всего давайте разберемся зачем Вам это нужно и что это такое.

    Что такое '1С-Битрикс Управление сайтом (ред. "Малый Бизнес")' - это интернет магазин. Витрина товаров с их оформлением.
    Пользователь создает заказ, видит его в кабинете, оплачивает и ждет доставку. Может ознакомиться с ассортиментом и т.п.
    По факту в Вашем случае это поставщик данных для CRM.

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

    Roistat - это система аналитики для бизнеса. Работает она на основе полученных из других источников данных.

    Соответственно, для корректной и полной работы Вам нужно сделать следующее:

    1) Интеграция Битрикса -> AmoCRM. Передавать данные маркера (см ниже), сделках, клиентах. (можно двухстороннюю)
    2) Интеграция AmoCRM -> Roistat (передача маркера, данных сделки, статусов и т.п.)
    3) Интеграция Битрикса -> Roistat (передача маркеров, отслеживание событий и аналитики)

    Только при такой интеграции у вас получиться:
    1) Полная картина в Roistat (вы сможете отследить покупателя от момента захода на сайт, до финальных покупок)
    2) Получить необходимые данные в CRM системе
    3) Не нарушить стандартных механизмов работы системы.
    Ответ написан
    Комментировать
  • Вопрос по ролям в mvc?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если рассматривать указанный выше код, то по паттерну MVC, тут есть только V и C.

    Код который является View:
    "You asked for blog entry {$id}."

    Код который является контроллером ( без view):

    $id = (int) $request->getAttribute('id');
    $response = new Zend\Diactoros\Response();
    $response->getBody()->write(  );
    return $response;


    По факту Model части тут нет.
    Ответ написан
    2 комментария
  • Где посмотреть файл XML, который импортировался c 1С (УТ11) в Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если Вы выгружали пачкой сразу на сайт и больше выгрузок не делали, то смотрите в /upload/1c_exchange/ там будут и xml и картинки и все что нужно.
    Но только с последней выгрузки.
    Ответ написан
    Комментировать
  • Как сортировать по дату?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Код в читаемом виде
    $sql = "SELECT
    			p.product_id,
    			(
    				SELECT AVG(rating) AS total 
    				FROM " . DB_PREFIX . "review r1 
    				WHERE r1.product_id = p.product_id AND r1.status = '1' 
    				GROUP BY r1.product_id
    			) AS rating,
    			(
    				SELECT price 
    				FROM " . DB_PREFIX . "product_discount pd2 
    				WHERE 
    					pd2.product_id = p.product_id 
    					AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' 
    					AND pd2.quantity = '1' 
    					AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) 
    				ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1
    			) AS discount,
    			(
    				SELECT price 
    				FROM " . DB_PREFIX . "product_special ps 
    				WHERE 
    					ps.product_id = p.product_id 
    					AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' 
    					AND (
    						(ps.date_start = '0000-00-00' OR ps.date_start < NOW()) 
    						AND 
    						(ps.date_end = '0000-00-00' OR ps.date_end > NOW())
    					)
    				ORDER BY ps.priority ASC, ps.price ASC LIMIT 1
    			) AS special";


    И встает вопрос: а что такое дата продукта?
    Предположим, у вас в таблице p (или как она у вас, главное что p - таблица или alias), есть поле "created_at", которая и хранит ту самую "дату продукта"
    Тогда после запроса можно добавить:

    ORDER BY p.created_at DESC

    И тогда он будет выдавать те же данные, но сортированные по убыванию "даты продукта"
    Ответ написан
    Комментировать
  • Как найти фрагмент кода в Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Универсальный алгоритм поиска:

    1) Открываем urlrewrite.php, смотрим есть ли правило для данной страницы. Если есть - открываем страницу из правила, если нет - ищем физическую страницу
    2) Смотрим наличие кода компонентов на данной странице, проверяем включаемые области. Если проект тестовый, то можно по одному убирать компоненты, пока не найдете.
    Если убрали все компоненты, а надпись выводится, то идем дальше
    3) Открываем настройки сайта и смотрим какой шаблон выводится на данной странице. Открываем его по ssh (как header.php так и footer.php) смотрим компоненты, включаемые области, области с отложенными функциями (ShowViewContent)
    4) Если надпись все еще не выводится, смотрим события страницы

    Делая все 3 шага Вы сможете найти что угодно в Битриксе.
    Как пример, данная область может быть:
    1) Физическим тестом на странице
    2) Включаемой обастью подключаемой на странице
    3) Результатом работы компонента
    4) Отложенным результатом компонента
    5) Физическим текстом в шаблоне
    6) Результатом работы компонента в шаблоне
    7) Результатом работы отложенной функции в footer.php
    8) Результатом работы отложенной функции на событиях страницы
    Ответ написан
    2 комментария
  • Google PageSpeed показывает низкий коэффициент на оптимизированный сайт почему?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Все просто: открываем https://developers.google.com/speed/pagespeed/insi...
    И смотрим.

    Навскидку:
    1) Переместить JS+CSS вниз страницы (есть опция)
    2) Оптимизировать изображения (фотошоп в помощь)
    3) Объединять css в один файл
    4) Поработайте с версткой, чтобы она проходила легче (может кое-где подчистить стоит, от лишних узлов)
    Ответ написан
  • Арендуем сервер, на нем стоит VM Bitrix, как можно найти и скачать резервные копии БД?

    gromdron
    @gromdron
    Работаю с Bitrix24
    В BitrixVM по-умолчанию не создаются резервные копии.
    Т.е. чтобы они были, нужно настроить автоматическое создание.
    Резеврная копия штатно создается двумя способами:
    1) Средствами bitrixVM
    2) Средствами битрикса (бекапится то что в настройках).

    Сделать резервную копию можно зайдя по пути: Настройки -> Настройки сайта -> Резервное копирование

    На всякий случай:
    https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Ответ написан
    Комментировать
  • Почему не отправляется сообщение на почту из формы заявки???

    gromdron
    @gromdron
    Работаю с Bitrix24
    Только сегодня уже отвечал на подобный вопрос
    Ответ написан
    Комментировать
  • Как правильно настроить индексацию товаров в интернет магазине Bitrix + sphinx?

    gromdron
    @gromdron
    Работаю с Bitrix24
    *htm (как это сделано в админке битрикса),


    Вы можете настроить маски включения именно тех файлов, которые хотите индексировать.
    Кстати, после изменения списка форматов и файлов нужно сделать полную переиндексацию.
    Ответ написан
    Комментировать
  • Импорт товаров битрикс из 1с, совет?

    gromdron
    @gromdron
    Работаю с Bitrix24
    может у битрикса есть какие стандартные инструменты по импорту или может вы знаете адекватные бесплатные модули.


    Есть, стандартные средства, но насколько я помню, минимальная редакция "Малый Бизнес" (сам модуль называется "Интернет-магазин").
    Алгоритмы и форматы описаны в документации: https://dev.1c-bitrix.ru/api_help/sale/algorithms/...
    Кстати, там можно получить сведения о форматах, содержимом файлов и вообще много интересно. Учитывая что сам модуль для 1С бесплатный, то вы всегда можете реализовать свою реализацию по данному алгоритму

    Либо писать свой парсер, тогда какой - csv или xml?
    Подскажите, как лучше поступить?


    Лучше - используйте штатные механизмы.
    Потому что:
    1) Всегда можно обратиться в ТП за решением проблемы
    2) Проще найти специалиста и диагностировать проблему
    3) Если поддерживать все в актуальном состоянии и не сильно усердствовать с кастомизациями - получается лучшее решение практически без вложений
    Ответ написан
    Комментировать