Роман Егоров написал: В задании [ex2-88] - требуется измерить объем кэша в 2 ситуациях:1) при работе по умолчанию2) при помещении только данных требуемых в некэшируемой областиСобственно вопросы по обоим пунктам, т.к. не совсем ясна задача:1) по умолчанию - имеется ввиду поместить в кэш все ключи $arResult или наоборот все убрать?Не совсем ясен пункт, учитывая что при правильной реализации единственными ключами $arResult, которые хранятся в кэше будут только те, что нужны в некешируемой области.2) требуется ли убрать из кэша все прочее, например, не кэшировать шаблон? Т.е. переписать кэширование компонента так, чтобы в кэше хранились только нужные ключи $arResult и все.
1. По умолчанию, это значит вы не пишите код который влияет на ключи, помещаемые в кеш вовсе 2. Шаблон тут не участвует, речь только о переменных
Кирилл Терещенко написал: Добрый день!После проверки экзамена результат - не сдан. При этом у меня решены 4 задания верно, 5 задание(комплексный компонент) работает правильно, но при настройке режима не ЧПУ, я указал условие отображение требуемой страницы (через условие наличия параметров), но забыл прописать в arResult URL_TEMPLATES ссылку, хотя это на работоспособность не повлияет, лишь пропишет порядок следования этих параметров. Все остальные пункты этого задания верны. Неужели это считается критической ошибкой для не сдачи экзамена?
Решим через тикет. Ваше описание ситуации не полное, не все пункты верны. Компонент работает "не полно", я бы сказал.
1. [ex2-58] Корректно ли что в простом компоненте вместе с выбранными ключами кешируются и данные для редактирования/удаления с использованием Эрмитажа? При добавлении функционала Эрмитажа нужно настроить редактирование/удаление всех элементов (и новостей и продуктов)? Кнопку "Добавить" делать только для продуктов?
2. [ex2-54] В задаче указано, что агент должен запускаться каждый день в 1:00. Также в выводе должно быть указано за какое количество дней произведен расчёт. Верно ли, что тип агента должен быть периодический (для исключения накопления погрешности во времени запуска, которая имеется при непериодических агентах) и мы должны сами отработать случай когда агент запущен с "наверстыванием" предыдущих запусков? Будет ли корректным, если количество дней в первом запуске будет отсчитываться от даты создания первого пользователя (когда в параметре модуля еще не хранится никакой даты)?
3. [ex2-51] В конце задачи необходимо добавлять запись в журнал событий. Будет ли считаться корректным добавление с помощью CEventLog::Add? Её нет в документации на демо-сервере.
4. [ex2-70] Поясните пожалуйста фразу: "Большой объем разделов и элементов не предполагается (не более 20 разделов и 100 элементов), лимиты на выборку и постраничная навигация – не нужны". Означает ли это также, что можно сразу выбрать все активные новости (классификатор), а затем уже брать разделы и элементы из каталога продуктов с учетом всех записей классификатора (в изначальном предположении, что новостей все-таки может быть много, первым запросом беру все активные разделы и дальше выборки происходят в зависимости от них)? По этой же задаче еще вопрос - надо ли использовать отдельный запрос (CIBlockElement::GetElementGroups) для получения разделов продуктов на случай если один продукт принадлежит сразу к двум разделам продуктов (по умолчанию на демо-сервере такого нет, но вроде как правильно было бы получать все привязки к разделам элементов).
Дмитрий Демьянюк написал: 1. [ex2-58] Корректно ли что в простом компоненте вместе с выбранными ключами кешируются и данные для редактирования/удаления с использованием Эрмитажа?
Нормально
Цитата
Дмитрий Демьянюк написал: При добавлении функционала Эрмитажа нужно настроить редактирование/удаление всех элементов (и новостей и продуктов)?
Можно для чего-то одного
Цитата
Дмитрий Демьянюк написал: Кнопку "Добавить" делать только для продуктов?
Этого будет достаточно
Цитата
Дмитрий Демьянюк написал: 2. [ex2-54] В задаче указано, что агент должен запускаться каждый день в 1:00. Также в выводе должно быть указано за какое количество дней произведен расчёт. Верно ли, что тип агента должен быть периодический (для исключения накопления погрешности во времени запуска, которая имеется при непериодических агентах) и мы должны сами отработать случай когда агент запущен с "наверстыванием" предыдущих запусков? Будет ли корректным, если количество дней в первом запуске будет отсчитываться от даты создания первого пользователя (когда в параметре модуля еще не хранится никакой даты)?
Отсутствие хитов не рассматриваем, считаем что это все задачи продута, просто настраиваем агент. Количество дней можно так считать
Цитата
Дмитрий Демьянюк написал: 3. [ex2-51] В конце задачи необходимо добавлять запись в журнал событий. Будет ли считаться корректным добавление с помощью CEventLog::Add? Её нет в документации на демо-сервере.
Дмитрий Демьянюк написал: 4. [ex2-70] Поясните пожалуйста фразу: "Большой объем разделов и элементов не предполагается (не более 20 разделов и 100 элементов), лимиты на выборку и постраничная навигация – не нужны". Означает ли это также, что можно сразу выбрать все активные новости (классификатор), а затем уже брать разделы и элементы из каталога продуктов с учетом всех записей классификатора (в изначальном предположении, что новостей все-таки может быть много, первым запросом беру все активные разделы и дальше выборки происходят в зависимости от них)? По этой же задаче еще вопрос - надо ли использовать отдельный запрос (CIBlockElement::GetElementGroups) для получения разделов продуктов на случай если один продукт принадлежит сразу к двум разделам продуктов (по умолчанию на демо-сервере такого нет, но вроде как правильно было бы получать все привязки к разделам элементов).
Это значит только что "лимиты на выборку и постраничная навигация – не нужны". Все остальное делать так чтобы минимизировать потенциальную нагрузку
При сдаче экзамена, много времени потратил на построение логики и возможно допустил ошибку при которой неавторизованый пользователь увидит сообщение об ошибке. Написал TODO чтоб ее исправить, знаю как исправить, но времени протестировать и дописать не хватило. На сколько это может быть критической ошибкой? Я теперь 10 дней спать не смогу
1633131@mail.ru написал: При сдаче экзамена, много времени потратил на построение логики и возможно допустил ошибку при которой неавторизованый пользователь увидит сообщение об ошибке. Написал TODO чтоб ее исправить, знаю как исправить, но времени протестировать и дописать не хватило. На сколько это может быть критической ошибкой? Я теперь 10 дней спать не смогу
Ура я сдал Спасибо Ивану Малышину за поиощь в подготовке! Вопросик: в личной анкете уровень изменился, а в графе сданные экзамены стоит только первый экзамен, так и должно быть?
При интеграции шаблона сайта стили из файла style.css из вёрстки кладём в шаблон в файл template_styles.css, это логично.
А файлы reset.css и owl.carousel.css из вёрстки обязательно нужно вставить в стандартный файл styles.css в шаблоне или допустимо подключить их как отдельные файлы: \Bitrix\Main\Page\Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . '/css/reset.css'); \Bitrix\Main\Page\Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . '/css/owl.carousel.css'); ?
Готовлюсь к экзамену 2 столкнулся с проблемой в задании ex2-97 (Демо-билет 2 https://training.1c-bitrix.ru/upload/exam_dev/pubinfo/Ex2Demo2.pdf). Не выходит добиться нужной фильтрации. Как необходимо отфильтровать элементы http://prntscr.com/mbv8sg что получается в итоге (из-за множественного свойства) http://prntscr.com/mbv92p На обоих скриншотах зеленым указаны те элементы, которые должны попасть в выборку, красным - те элементы, которые в неё попасть не должны, но на втором скриншоте видно, что один элемент туда попал. Будет ли правильным решением с точки зрения экзамена перевести свойства в отдельные таблицы или же реализовать подобный функционал можно проще? Весь интернет облазил, ответ на свой вопрос найти не удалось. Или может быть я неправильно понял трактовку задания и задача выборки выполнена верно? Больше всего пункт "Новости, в которых в авторстве присутствует текущий пользователь, не выводятся у других авторов." меня смущает, как раз под него новость с ID 35 не подходит. Или правильным решением с точки зрения экзамена будет сделать две выборки, в первой собрать ID новостей, у которых в авторстве указан текущий пользователь, во второй исключить новости с этими ID? Заранее спасибо за ответ.
[ex2-107] Автоматический сброс кеша в компоненте при изменении элемента информационного блока «Услуги»
Это задание выполняется с помощью тегированного кеша(я выполнил таким способом). Вопрос в следующем - в документации я не нашел ничего про класс тегированного кеша, только CPHP и кеш компонента, тогда зачем добавлять задание, решение которого подразумевает использование команд из курса "Разработчик Bitrix Framework" и в видеоуроке про тегированный кеш из курса 3? Получается нужно зазубрить несколько команд тегированного кеша и надеяться, что подобное задание не попадется на самом экзамене. Также не описано событие построения админки OnBuildGlobalMenu, только благодаря комментарию можно узнать входные параметры, которые в ходе работы просматриваешь распечаткой этих массивов. Если вам сложно или не хватает времени я могу описать эти параметры, чтобы не тратить время на их распечатку.
Сергей Горбунов написал: Это задание выполняется с помощью тегированного кеша(я выполнил таким способом). Вопрос в следующем - в документации я не нашел ничего про класс тегированного кеша, только CPHP и кеш компонента, тогда зачем добавлять задание, решение которого подразумевает использование команд из курса "Разработчик Bitrix Framework" и в видеоуроке про тегированный кеш из курса 3? Получается нужно зазубрить несколько команд тегированного кеша и надеяться, что подобное задание не попадется на самом экзамене. Также не описано событие построения админки OnBuildGlobalMenu, только благодаря комментарию можно узнать входные параметры, которые в ходе работы просматриваешь распечаткой этих массивов. Если вам сложно или не хватает времени я могу описать эти параметры, чтобы не тратить время на их распечатку.
Экзамен != какой либо курс. Это проверка на владение определенными технологиями. Тегированный кеш - одна из таких технологий. В описании экзамена перечислены темы на которые будут задания, даны примеры заданий. И если мы говорим про профессиональный уровень, который подтверждает сертификат, то разобраться с технологий вы должны суметь. Не важно в каком она курсе описана и в каком состоянии дока (это не отменяет важность наличия хорошей и полной доки, но это дугой вопрос).
Учить наизусть ничего не надо, либо API будут в доке, либо информация будет в задании. Если вы ранее научились пользоваться этой технологий, на экзамене не будет проблем.
Иван, здравствуйте. выполнял задание [ex2-105] расширение возможностей типового компонента - Ajax и get запросы. там нужно было из файла в корне переместить логику обработки Ajax-запроса в component_epilog.php в файле шаблона в методе BX.ajax.loadJSON я изменил путь к файлу component_epilog.php верный ли это путь решения? и дальше, к сожалению, я не успел доделать. Можно узнать еще какие дальше манипуляции нужны?
Артем Шустов, ну очень простая суть задания. Я боюсь что отвечая на ваш вопрос мне придется рассказать решение полностью. Если вы не успели за экзамене - решите локально и посмотрите, все ли требования вы выполнили. Компонент на другую страницу переместили, а код должен работать без доработок вообще.
Иван Малышин, немного не понял Ваш ответ. шаблон переместил, и код из ajax файла переместил в component_epilog.php И в файле шаблона в loadJSON изменил путь к файлу component_epilog.php, но проверить не успел