Pull to refresh

Comments 35

Дальше, в продолжении развития битрикс, стоит ждать статью: Мониторинг контроля за мониторингом качества битрикс проектов — превращает вашу работу в сплошное удовольствие.
Ну и новая линейка продуктов от битрикс 12 версии: Легкое создание сайта для контроля(ссылка) за сайтом контроля создания(ссылка) сайта в битрикс-корпоративное управление качеством (ссылка)…
Контроль качества – это правильное направление развития Битрикса, чек-листы хорошая вещь и будет полезна при сдаче новых проектов.

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

Я надеюсь, что на эти вопросы обратят внимание, т.к. без их решения сложно организовать поддержку сложных и динамично изменящихся проектов.
Отличный функционал, жаль только, что не допилен до конца (специально создавал сложный пароль к бд к запятой, но монитор выдал, что «Неправильно настроены политики безопасности БД (в пароле нет знаков препинания)». И ещё много подобных мелочей.

Самая неясный момент — это обязательность наличия модуля «Проактивная защита». Иначе монитор выдает ошибку. Получается, что ни один сайт на редакции «Старт» (где отстуствует данный модуль) не может пройти проверку собственным монитором качества. Как мне это клиенту объяснять, если он запустит тест?
Ошибка с проверкой пароля уже исправлена.

Что касается обязательных пунктов — их можно пропускать, если для данного проекта он не может быть выполнен в силу адекватных и обоснованных причин. В частности, про «Проактивную защиту

… Если модуль проактивной защиты не предусмотрен для вашей редакции — тест можно перевести в статус «Пропущен» — это описание к пункту. Т.е. про обязательность модуля никто не говорит.
Согласен. Но поставьте себя на место клиента: скорее всего он, увидев зеленькую кнопку «Зпустить автотест», запустит тест и увидит вот что: floomby.ru/content/akAbNDsESU.
Точка в конце к ссылке не относится.

Опять же к теме. Данный тест по умолчанию относится к обязательным, насколько я понял. Вам не кажется, что это по простой логике не очень правильно (не касаясь тонкостей): делать обязательный тест, который не может быть пройден?
Чеклист — не приговор. Обязательность означает, что данный пункт должен быть обязательно проштудирован, но перевод его в статус «Пройден» обязателен только в случае отсутствия веских причин, которые препятствуют этому (отсутствие модуля, особенности проекта и т.д.). В итоге клиент должен видеть результат по обязательному пункту + комментарии разработчика и может с ним согласится, либо не согласиться.
Изначально именно Вы сдаете проект клиенту, прогоняете все пункты и формируете отчет. У Вас есть возможность комментировать ситуацию. Вся информация для клиента должна быть именно в отчете. В комментариях можно подробно описать почему тот или иной пункт не выполняется. В будущем мы подумаем как избежать этой ситуации, возможно, реализуем зависимость показа пункта от наличия модуля или других условий.
Ну да, надо хотя бы сделать, чтобы в редакциях, где нет модуля, чтобы этот тест был бы необязательным.
Дефолтный дистриб Битрикс.Бизнес. Сразу после установки запускаю обновление системы и тест. На очередном шаге вылезает ошибка, мол модифицированы файлы ядра. При том, что файлы модифицировались самой же системой при апдейте.

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

Ну и мне кажется, в «идеальном» примере вы преувеличили. Чтобы сделать примитивный корпоративный сайт (что является, если не ошибаюсь, основной целью применения битрикс), никакие специалисты с 5 годам опыта (и тем более админы с 10 годами и сертификатом redhat) не нужны, тут хватит 2-3 студентов, у которых мозг присутствует на нужном месте.

Я постарался описать простой процесс разработки решения на платформ в разделе «Монитор качества — в 11 версии платформы Битрикс». Именно там можно обойтись без гуру.
У меня в редакции «Стандарт» контроль качества требует повысить уровень проактивной защиты, хотя в эту редакцию (по описанию) модуль проактивной защиты не включен. Недоработка?
В редакции «Стандарт» есть модуль проактивной защиты. Возможно, он у вас не установлен?
Ошибся в наименовании, извините. Редакция «Старт»
Что-то нестандартное (например, фильтр по всему каталогу товаров, от корня, случай из практики), и для решения задачи приходится отправлять патч для ядра разработчикам битрикса, ждать обновления, и после этого сдавать проект. Либо объясняя, почему у него тесты красненькие.
Зачем для «фильтра по всему каталогу товаров, от корня» править ядро? Ужасы какие-то рассказываете…
Из обращения в техподдержку:

Описание задачи
Возможно ли осуществить вывод всех элементов инфоблока, которые находятся в корне (сам список товаров), включая те, что в подкаталогах, тоесть, по сути, все элементы инфоблока, но отфильтровнные фильтром, тоесть фильтр+список товаров.
Технически, нужен фильтр, в котором, введя артикул товара/название, пользователь нашёл бы все соответствия, найденные в каталоге.
Допустим, имеем дерево
корень
-бизнес литература
-художественная
--классики
--современники
-методическая
Если мы находимся в разделехудожественаня, то стандартный фильтр решает проблему, но(!) если мы находимся в корне, и хотим искать не только по разделу «художественная литература, включая подразделы», а по корневому разделу, включая все элементы во вложенных разделах, фильтр не выводится, ему невозможно задать IP каталога, потомучто корень инфоблока не имеет ID, попытка задать нулевой ID просто скрывает фильтр.
Обращаю внимание, что в демонстрационной виртуальной лаборатории фильтр также появляется только при входе в подкаталог, отсутствуя на главной странице. например,
хххх.demo.1c-bitrix.ru/e-store/books/
в настройках компонента явно указано, «выводить фильтр», в общем, довольно странно.
Вообще, задача стоит следующая: вывести фильтр, стандартный с двумя полями: название и артикул, который бы искал/фильтровал по всем разделам. Переместить все разделы в один раздел, который бы находился в корне и искать по нему мы не можем.
Если это возмжно, то подскажите, пожалуйста, как и в какую сторону искать.
Какие источники использованы при решении проблемы
Форум разработчиков, справка, виртуальная лаборатория.

Ответ:

Добрый день!
Вам необходимо либо переносить все элементы в один раздел и фильтровать по этому разделу, либо кастомизировать компонент.
Кастомизировать компонент предпочтительней.
А что сложного кастомизировать или написать компонент с нуля на базе гибкого АПИ ядра инфоблоков? В ядро лезть разумеется не нужно.
Часть битрикса менять нежелательно, ибо перестанут корректно работать обновления.
Я же не шаблон меняю и не через API данные доставать предлагаю.
Вы правы в том, что речь идёт не о ядре. Но речь идёт о получении данных низкоуровневыми методами, через SQL или выше уровнем, и тут либо тест покажет красную лампочку, либо обновления не будут работать (при сменене структуры) даже при зелёной лампочке.
В итоге тогда получали список ID директорий в корне, получали данные через APIC и потом их склеивали до передачи шаблону, всё это без кастомизации.
Можете представить, сколько там было N+1, где N-количество директорий в корне, и какова была производительность.
Вот так и рождаются небылицы…

RTFM!

«Компоненты являются блоками, с помощью которых строится публичная часть сайта. Они в полной мере реализуют паттерн проектирования Carrier Rider Mapper. „
dev.1c-bitrix.ru/api_help/main/general/component20/01.components.php

“Ядро системы состоит из функций, событий и следующих классов»
dev.1c-bitrix.ru/api_help/main/reference/index.php
Ок.
Изменю компонент интернет-магазина на уровне модели (т.е. при получении данных, ибо АПИ привязано к директории), думаете, при обновлении ничего не отвалится?
Я компоненты рассматриваю как примеры работы с АПИ. Если вы можете использовать АПИ ядра более эффективно или нужна гибкость — всегда пишутся свои компоненты допустим со строгим ООП, юнит-тестами и т.д. При обновлении гарантируется полная обратная совместимость ядра по АПИ между версиями Битрикс.
Зато сколько понту «патч для ядра разработчикам битрикса» он отправил… и эту чушь порет «Старожил» хабра…
Я НЕ отправиил никакого патча. Речь идёт о том, как НАДО поступать для зелёного теста. Внимательнее.
Ну, тогда перейдём к конкретике. В битриксе фильтр прикручивается к любой директории, включая вложенные. В корне каталога — несколько директорий. Как сделать фильтр по каталогу (даже в демо-сайте этой элементарной штуки нет, в АПИ для привязки фильтра я обязан указывать директорию (её ID))? ID передаётся из GET, можно указать вручную или найти и потом указать. Не указывать ID директории нельзя.
Айда писать компонент каталога интернет-магазина и компонент фильтра (а это таблица, дерево с ценами, картинками, кнпокой купить и т.д.).
Патчи отправляют конторы, которые пишут на битриксе что-то серьёзное.
Кастомизировать компонент — переписывать какой-либо кусок самого битрикса, не контроллера и не лаунчера (функция с массивом параметров), и не шаблона. При этом забивая на возможность обновления компонента интернет-магазина.
Я не бесплатная ТП помогать вам тут, тем более после вашего первого сообщения. Скажу только что это элементарно. RTFM.
Я и не прошу, тут не форум, где клянчут сделать за них, да это всё в прошлом, сейчас MVC фреймворки (т.е. вообще не CMS). Пример то давний.
Элементарно — это когда фильтр по всему каталогу интернет-магазина есть из коробки.
RTFM подразумевает указывать DirectoryID, которого нет и быть не может.
На этом предлагаю дискуссию считать оконченной.
Думаю, что ваша проблема решилась бы если бы в параметре идентификатора категории вписали '0', но если сильно хочется «писать компонент каталога интернет-магазина и компонент фильтра (а это таблица, дерево с ценами, картинками, кнпокой купить и т.д.)»
— кто же вам запретит…
Не, это я тоже пробовал, ошибка была, кажется, ненайденной директории с таким ID. Не суть важно.
Возможно, в новом битриксе и продумали, это всё таки не вчера было.
Да и решили тогда проблему, через тот же API, выше я отписал, как, пусть и запросов было много.
Sign up to leave a comment.