Я работаю с Битриксом уже около двух лет и, в целом, способен решать с его помощью практически любые поставленные задачи. Но бывают такие моменты, когда без обращения в техподдержку разработчика найти решение совершенно невозможно.
Под катом разбор некоторых таких моментов.
Редактирование профиля пользователя на Корпоративном портале через публичную часть
Проблема: раньше сотрудник, наделенный соответствующими правами, мог отредактировать любой профиль, просто зайдя в него и нажав на соответствующую ссылку под фотографией. В какой-то момент — с очередным обновлением — ссылка исчезла, и это не была ошибка шаблона. Это новая схема работы
Решение: теперь в «социальной сети» Битрикса есть «режим администратора», который администратор должен включить на своей странице, чтобы иметь доступ к редактированию. Подразумевается, что редактирование профилей через «публичку» — дело редкое и мало кому нужное. Возможно, так оно и есть, но у нас сотрудники этой возможностью пользовались, а вот после нововведения перестали — легче оказалось вносить всю информацию через AD, чем научить работников отдела кадров этой нужной функции. Тем не менее, пользоваться ею все-таки можно — если знать, как.
Просмотр документов в браузере
Проблема: в модуле «Библиотека документов» имеется функция «просмотр документов» популярных форматов типа *.doc и *.pdf. Которая, однако, не работает (возможно, уже исправлено). Браузер просто показывает иконку загрузки, но документа нет
Решение: в ходе изучения ошибки стало понятно, как этот просмотр вообще должен работать: при загрузке документа в Портал он загружается также и в Google Drive, вероятно, в какую-то временную директорию. Потом ответ, возвращаемый API Гугла и используется в качестве предпросмотра. Только вот ответ загружается неправильно, с ошибкой 302 и без какого-либо содержимого. Сотрудники техподдержки предложили решить проблему, установив обновления бета-версии, но, сопоставив возможные риски поломки всего вообще после установки нестабильного обновления с риском просто не просмотреть документ онлайн, мы пришли к решению: отключить предпросмотр. Документ все еще можно прекрасно скачать и просмотреть на клиенте.
Кстати, обратите внимание, что, несмотря на ошибку при загрузке, из запросов к гуглу вполне можно достать работающую ссылку на документ в Драйве. Так что, есть немаленькая вероятность, что чьи-то «секретные документы» лежат не только в Портале
Права и перенаправления административной части
Проблема: При переходе в административную часть сайта у сотрудников, входящих в определенную группу, происходит перенаправление на неустановленную страницу, на которой отображаются только счетчики посещаемости, все остальное содержимое страниц отсутствует. Кроме того, эти счетчики установлены в шаблонах внешней части сайта, и не должны, теоретически, появляться при работе с административной частью.
Рабочий стол при переходе появляется на долю секунды, затем происходит перенаправление (либо, возможно, перезапись страницы в браузере, что тоже непонятно).
При переходе на любую конкретную страницу административной части, кроме Рабочего стола, все работает нормально у всех пользователей, которым вообще доступна административная часть.
У пользователей, входящих в группу с полными административными правами, никакого перенаправления или перезаписи не происходит
Решение: Разрешить данной группе пользователей чтение файла /bitrix/gadgets/bitrix/rssreader/getdata.php (Гаджет «Новости 1С-Битрикс», выводимый по-умолчанию на Рабочий стол). Именно он приводит к такому эффекту. Также имеет смысл разрешить чтение /bitrix/gadgets/bitrix/rssreader/ и всей папки /bitrix/admin/. Что, в общем, логично, но не объясняет, почему запрещение доступа к гаджету ломает все напрочь.
«Кук»
Проблема: В шаблоне есть компонент bitrix.search.title, настроенный на поиск пользователей, по мере ввода он предлагает варианты поиска, содержащие введенные буквы. Однако, при вводе любой буквы после буквосочетания «кук» — именно такого, не зависимо от положения в слове — поиск перестает предлагать варианты и, более того, вообще не находит пользователей с этим сочетанием. Пример — сотрудник по фамилии «Куква» может быть найден по первым трем буквам фамилии, но не по полному варианту написания.
Проблема была воспроизведена на нескольких тестовых пользователях с различными вариантами написания сочетания «кук», но ни один из них не заработал. В то же время, любые другие проверенные сочетания обрабатывались корректно и находились как по части слова, так и по целому.
Решение: В параметрах компонента bitrix.search.title отключить автоопределение раскладки клавиатуры. После этого сотрудника можно найти, но есть очевидный минус — автоопределение, которое было достаточно удобным, перестает работать. На вопрос о возможности добавления фильтра в сценарий автоопределения, разработчики ответили отрицательно.
Многосайтовость на поддомене
Проблема: после успешного запуска второго сайта на поддомене первого внезапно оказывается, что оба сайта стали отдавать контент первого, а вот меню отдают по мере кеширования: обновился кеш второго сайта — на первом появилось меню второго, обновился кеш первого — все наоборот…
Решение: Вообще, решить большую часть проблем многосайтовости можно с помощью этой статьи: dev.1c-bitrix.ru/community/blogs/howto/336.php но именно данная проблема оказалась очень интересной. Ошибку вызвало… изменение сортировки файлов. Случилось так, что раньше у второго сайта было значение сортировки «10», а у первого — «20». После произведенных изменений (старый второй сайт уехал на другой домен и новую копию Битрикса, а на его место в старом встал филиал первого на поддомене) логично было и поменять индекс сортировки, так как второй сайт является региональным представительством первого, а не наоборот. Но оказалось, что с системой многосайтовости это не совместимо — тут же появилась описанная проблем. Изменение порядка сортировки на обратный мгновенно ее решило.
Мне повезло, я догадался, что случилось, потому что не так уж много времени и произведенных операций прошло от причины до обнаружения следствия. Чисто технически, я могу себе представить причины, по которым это произошло: парсер идет сверху вниз, и более общие условия (основной домен) добавляются к частным (сайт на субдомене), а вот в обратном порядке добавления уже не происходит, так как все субдомены считаются частью основного и, соответственно, к ним применяются только его правила. Но очевидно ли это вообще?
Заключение
Я вполне представляю, как сделать на Битриксе легкий и простой в обслуживании, стабильный и надежный сайт. У меня даже есть один такой. Но проблема в том, что, кажется, необходимым условием для такого сайта является отказ от большинства встроенных функций и жесткий отбор тех, кто будет допущен к любым правам на редактирование ядра и публичной части. Представления же о том, что на Битриксе кто угодно может сделать что угодно за приемлемое время и деньги, ведут к несомненному разочарованию.
Тем не менее, надеюсь, что эти решения однажды сэкономят вам время и нервы. И буду благодарен за дополнения в комментариях.
Автор: lutov