[ex2-70] Не совсем понятно как отбираются элементы каталога продукции при выводе данных простого компонента? Классификатор связвает разделы каталога продукции и новости. Получается выводятся элементы из всех привязанных к новости разделов продукции. Если один раздел привязан к нескольким новостям, элементы раздела будут дублироваться. Однако на скрине в задании элементы не повторяются. Поясните этот момент.
Доброго времени суток. Номер заявки 4944099 Прошу прощения, но у меня появились некоторые вопросы по поводу моих ошибок и мне нужно разъяснение чтобы не ошибаться впредь.
Вы написали по поводу моего решения задания [ex2-77] Разработать простой компонент «Каталог товаров»: 1. Кеширование в компоненте не по умолчанию - зависит от ID пользователя. "По умолчанию" это значит параметры в StartResultCache возможно не прописывать, я правильно понял? Такое решение будет считаться правильным?
2. В компоненте производится выборка всех элеменетов инфоблока, а затем выборка разделов, которые имеют привязку. Рекомендуется сначала установить разделы, которые имеют привязку, а затем выбирать элементы только этих разделов - для сокращения выборки. Можете подсказать какие данные о разделе указывают на то, что к нему есть привязка инфоблока? Я нашел только параметр привязки соц.сети.
3. Происходит явное обращение к свойству привязки (см https://drive.google.com/file/d/0B7Z9au-x8gigT29xTHJBT2VMT1k/view?usp=sharing) Эта ошибка вызывает разногласие: я должен был пользоваться названием свойства из arParams? А названиям свойств PRICE, ARTNUMBER, MATERIAL я могу пользоваться без проблем и это не будет ошибкой?
Aleksey Caplin написал: [ex2-70] Не совсем понятно как отбираются элементы каталога продукции при выводе данных простого компонента? Классификатор связвает разделы каталога продукции и новости. Получается выводятся элементы из всех привязанных к новости разделов продукции. Если один раздел привязан к нескольким новостям, элементы раздела будут дублироваться. Однако на скрине в задании элементы не повторяются.
как же не повторяются? повторяются, вы все правильно описали
Dmtriy Derevyanko написал: 1. Кеширование в компоненте не по умолчанию - зависит от ID пользователя."По умолчанию" это значит параметры в StartResultCache возможно не прописывать, я правильно понял? Такое решение будет считаться правильным?
Суть этого пункта задания - убедиться что вы умеете осмысленно делать кеш, а не просто копипастите вызов API из типового компонента. Кстати, приветствуются идеи по параметрам от которых может зависеть кеш. Чтобы разнообразить задания.
Цитата
Dmtriy Derevyanko написал: 2. В компоненте производится выборка всех элеменетов инфоблока, а затем выборка разделов, которые имеют привязку. Рекомендуется сначала установить разделы, которые имеют привязку, а затем выбирать элементы только этих разделов - для сокращения выборки. Можете подсказать какие данные о разделе указывают на то, что к нему есть привязка инфоблока? Я нашел только параметр привязки соц.сети.
У вас же связанные данные, аж 3 объекта. Во много суть задания именно в этом, как правильно подготовить фильтры для отбора, и это не обязательно фильтр по полю объекта, у вас есть и "обратная связь". Это не про "битрикс", а про объекты, связи и выборку данных на основании связей.
В задании явно указано что это свойство выносится в параметры компонента, кажется что очевидным его использование в дальнейшем в коде. Остальные свойства мы не стали указывать в параметры, чтобы экономить время, не тратить его на однотипные задачи. Можно указать явно Думаете нужно это уточнить в задании?
Так же отмечу, все эти ошибки в вашем билете не являются значительными, и при успешном решении всех заданий не привели бы к не сдаче.
Станислав Крохмаль написал: Я совершено(и не только я) не понял, что за класификаторы. Можно подробнее или пример?
Разделы инфоблока - это классификатор. Ящики стола - это классификатор. Теги - это классификатор. Классификатор - это способ упорядочить элементы по какому-либо признаку. В рамках заданий - это когда используется привязка элементов инфоблока к другим объектам системы. Что потом позволяет вывести элементы сгруппированные по объектам, к которым они привязаны.
К сожалению, я не сдал экзамен из-за трагической случайности, перепутав шаблон и language файл шаблона. Да они называются одинаково. А в условиях тестовой машины, ноубтука и заготовки я не заметил, что правлю не тот файл. К сожалению выяснение ошибки отняло драгоценное время и я успел 3 задания и те толком не проверил. Тикет я создал, так как некоторое время я был в ступоре, а поддержка по телефону не отвечала. Так вот соответственно у меня предложение. Во-первых, поставить вменяемый таймаут для php и апача. Что бы в случае зацикливания сервер не зависал на длительное время. Во-вторых, на мой взгляд это уже косяк битрикса, когда в случае использования GetMessage() в language файле он вызывает сам себя. Я для теста потом написал такой код. template.php
Михаил Шульпин написал: Во-первых, поставить вменяемый таймаут для php и апача. Что бы в случае зацикливания сервер не зависал на длительное время.
У нас есть фича в todo - кнопка "перезагрузки" Apache чтобы не ждать вовсе в таких случаях.
Цитата
Михаил Шульпин написал: Во-вторых, на мой взгляд это уже косяк битрикса, когда в случае использования GetMessage() в language файле он вызывает сам себя.
А почему бы и нет? В чем тут "косяк"? Мне кажется что это какой-то "перевод стрелки" на платформу, хотя просто ты ошибся файлом. Ну бывает, экзамен, волнение, не привычная среда. Чего тут такого?