Мой опыт прохождения экзаменов «1С-Битрикс»
22.09.2016
Сейчас я хочу поделиться опытом прохождения экзаменов «1С-Битрикс».
Первый экзамен я успешно сдал с первого раза, а вот со вторым оказалось сложнее. Итак, постараюсь изложить полезную информацию для моих коллег и всем, кому еще предстоит сдача второго экзамена.
Задачи, в общем, не сложные, но вот успеть сделать их все за 4 часа в ограниченных условиях сдачи – без тренировки непросто. В первую попытку я не успел сделать последние два задания, четвертое сделал, но не полностью. На чем же я потерял столько времени?
Два задания из шести заключаются в создании собственного компонента. Однако, по требованиям экзамена вовсе не обязательно писать их с нуля. По сути, нужно только скопировать близкий по требованиям компонент и удалить всё лишнее, оставив только необходимую логику, при этом прокомментировав получившийся код. Так экзаменатор сможет убедиться, что вы понимаете логику работы компонента.
Но есть важный момент, о котором я не подумал заранее – какой именно компонент брать за основу? Начав делать первое задание такого типа (на простой, не комплексный компонент), я взял привычный и знакомый news.list, как наиболее подходящий из стандартных компонентов. Правда, покопавшись с ним какое-то время, я понял, что приведение его к нужному виду займет больше времени, чем я предполагал. А ведь помимо удаления лишней логики, может понадобиться (и понадобилось) писать свою! И тут я заметил, что в решении, установленном для сдачи экзамена, уже используется компонент со схожим функционалом – furniture.vacancies. Код оказался в несколько раз меньше, чем у news.list. Тут я понял, что брать за основу подразумевалось именно его, но потраченное время уже было не вернуть. Для комплексного компонента, скорее всего, тоже полезно будет использовать код furniture.catalog.index, но без bitrix.catalog, видимо, всё равно не получится.
Кроме этого сложности возникли с заданием на события. Вообще, тут хочется начать с того, что работать с backend-ом без отладчика – задача не из приятных, а с событиями особенно. Как показала практика, вывод на экран из кода обработчика работает только в том случае, если он прерывается бросанием исключения. Почему – сказать не могу, не вникал и не смотрел исходники, просто обнаружил методом тыка. В итоге какое-то время я вообще не мог точно понять, что же именно за аргументы приходят в мой обработчик. А потом увидел, что нужного мне поля нет. Поэтому, если вам понадобится делать условие по количеству просмотров элемента инфоблока – придется дергать его getList-ом.
Пока что это всё, что я могу сказать про второй экзамен. Мне еще предстоит вторая попытка, так что, возможно, будет что добавить.
5309