Не знаю причин, почему Битрикс выпустил функционал многодепартаментности настолько недоделанным, но задачу разделения портала на подпорталы нужно было решать имеющимися инструментами. Трудности начали возникать на самом старте:
В стандартном мастере нельзя указать произвольное название папки департамента, а по умолчанию генерируются имена вида: «site_» + рандомно сгенерированный двухсимвольный суффикс типа «xa», «mn» и т.д. Как нетрудно догадаться, менеджеры (как, впрочем, и все остальные сотрудники) не очень любят ничего не значащие названия, а хотят видеть нечто более говорящее, допустим, для филиала в Севастополе — «sevastopol».
Функционал департаментов сквозной, т.е. сотрудники подразделения имеют доступ к данным сотрудников подразделений верхнего уровня.
Настройки компонентов по умолчанию некорректны (выбираются дни рождения для всех пользователей, поиск работает по всем сотрудникам и т.п.).
Мобильное приложение не поддерживает многодепартаментность.
Что делать?
Ниже — небольшая инструкция по добавлению сайта-департамента, написанная для тех, кто хочет уменьшить головную боль, возникающую при настройке многофилиальности. Инструкция не полная, часть косяков в процессе отлова, гора тикетов — в техподдержке. Дополнения и замечания приветствуются.
В админ-панели нажимаем «Добавить подразделение».
Проходим мастер добавления, попутно меняем:
Название сайта (например, «Севастополь»).
Выбираем подразделение, сотрудники которого будут иметь доступ к разделу.
Сгенерируется папка с названием вида «site_xx». Переименовываем её в нужную нам (например, в «sevastopol»).
Переходим в админку — настройки продукта — сайты — список сайтов. Выбираем нужный. В поле «Папка сайта» указываем только что переименованную папку.
Идём в настройки модуля задач, на вкладке только что созданного сайта устанавливаем правильные пути («site_xx» -> «sevastopol»).
Открываем urlrewrite.php, заменяем все «site_xx» на «sevastopol».
Где-нибудь на сервере выполняем replaceInDirectory('site_xx’, 'sevastopol’, $_SERVER['DOCUMENT_ROOT'] . '/sevastopol', true). Это нужно для того, чтобы заменить во всех файлах упоминания «site_xx» на «sevastopol». Код здесь.
На странице поиска сотрудников (/sevastopol/company/index.php) нужно отображать сотрудников только текущего департамента: /sevastopol/company/.left.menu.php Array( "Поиск сотрудника", "/sevastopol/company/index.php", —> “/sevastopol/company/index.php?set_filter_company_search=Y&company_search_UF_DEPARTMENT=1234” Array(), Array(), "" ), На индексную поиска можно добавить Поиск по сотрудникам всей компании
На странице дней рождения (https://indigo.rarus.ru/kzn/company/bi...thdays.php) нужно показывать др сотрудников текущего департамента:/sevastopol/company/.left.menu.php Array( "Дни рождения", "/sevastopol/company/birthdays.php", —> /sevastopol/company/birthdays.php?department=1234 Array(), Array(), "" ),
Правим пути в резервировании переговорных. /sevastopol/services/index.php, добавляем, где надо «/sevastopol».
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».