Самая первая глава
1 / 363

Немного информации, которая поможет вам в изучении нашего продукта. Ссылки на типовые задачи, список видеоматериалов и другое.

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2020 1С-Битрикс


Справочная информация
2 / 363

Где получать информацию

Научиться работать с продуктами компании «1С-Битрикс» не сложно, но потребуется внимание и определённая мера усидчивости. А поможет в этом различного вида справочная информация, ссылки на которую расположены на сайте компании в разделе Документация.

Разные виды документации

Нажмите на рисунок, чтобы увеличить

  • Онлайн документация для пользователей - описание интерфейса системы управления сайтом, ее основных модулей и наиболее типичных операций. Также в ней содержится полное описание прикладного программного интерфейса.
  • Онлайн документация для разработчиков по старому ядру, по ядру D7 и по Rest_API. Предназначена для технических специалистов со знанием PHP и HTML. В ней содержатся сведения о технологиях и основных принципах, заложенных в систему, описание классов и функций по всем продуктам.

Учебные курсы

Нажмите на рисунок, чтобы увеличить

Онлайн Курсы - это методические пособия по работе с продуктом, которые включают в себя описание и примеры работы с системой.

Контекстная справка

Нажмите на рисунок, чтобы увеличить

Контекстная справка выводит в Административной части системы информацию, относящуюся к открытому в данный момент разделу или странице. Доступна как в 1С-Битрикс: Управление сайтом , так и в коробочном Битрикс24 .

Мастер магазина

Мастер магазина - встроенная в административную часть система помощи с краткой информацией по конкретной задаче в рамках настройки и эксплуатации интернет-магазина с ссылками на более детальную информацию в конкретных учебных курсах.

FAQ - Частые вопросы

Частые вопросы - подборка решений наиболее часто встречающихся проблем при работе с продуктом в удобном представлении.

Документация в файлах формата .chm

Для изучения документации в оффлайн (при отсутствии интернета) созданы файлы в формате справки Windows. Они содержат копию онлайн документации, эти файлы обновляются реже, чем источник на сайте. По возможности рекомендуем использовать онлайн документацию.

Если не видно содержание файла CHM
Внимание! Если вы не видите содержимое файла формата .chm, то причина - настройки безопасности операционной системы: скачанные из интернета файлы находятся под наблюдением системы, которая ограничивает доступ к ним.

Чтобы отключить подобное отношение к файлу необходимо:

  • перейти в свойства файла на вкладку Общие. Внизу у Вас отобразится сообщение о том, что этот файл был заблокирован системой с целью защиты компьютера.

  • нажать кнопку Разблокировать.

Отсутствие кнопки Разблокировать возможно в двух случаях:

  1. Файл лежит не локально, а на сетевом ресурсе.
  2. Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).

Файлы можно скачать с главной страницы учебного курса, либо с описания курса или документации на сайте компании.

Внимание! В файлах формата .chm нет возможности просматривать видеоролики и не работают всплывающие подсказки. Это ограничения формата. Поэтому рекомендуем пользоваться онлайн версией курсов.

Примечание: В дополнение к документации, информацию, касающуюся продуктов компании «1С-Битрикс», можно получить на сайте в разделе форум .

Для администраторов и разработчиков также рекомендуется познакомиться с опытом разработок сайтов на Bitrix Framework, который описывается в блогах разработчиков и в группах Социальной сети сайта компании 1С-Битрикс.


Как отформатирован текст в курсе
3 / 363

Читать монотонный текст сложно. Форматирование - один из способов облегчить понимание смысла. Опишем правила форматирования, чтобы вам было легче ориентироваться.

Форматирование текста облегчает восприятие информации

Форматирование текста

Жирный шрифт используется для выделения важных в смысловом значении слов, терминов, фраз и предложений. То есть то, что особенно важно в контексте описываемого функционала:

  • Ключевое смысловое слово, фраза.
  • Термины, названия элементов интерфейса: кнопки, вкладки, поля, горячие клавиши, формат или название файла.
  • Название курса, глав курса, разделов и страниц сайтов. (Как правило, название глав или курсов даются ссылкой, но иногда это бывает излишним).
Примеры использования жирного шрифта
Пример названия курса или главы | Изучение курса позволяет освоить основные методы администрирования системы, а так же пополнить знания по темам, изученным в курсе Контент-менеджер.
Пример названий элементов интерфейса: | При этом у компонента Список новостей нужно настроить входные параметры так, чтобы он мог формировать ссылки на страницу детальной новости (с кодом новости). Для этого нужно в группе параметров Шаблоны ссылок в поле URL страницы детального просмотра задать путь к этой странице, а также название параметра, в котором будет передаваться код новости для показа.
Пример ключевой фразы, слова | При регистрации сервера обязательно укажите Домен для NTLM авторизации. Он должен полностью (включая регистр) совпадать с названием домена.

и Курсив и подчёркивание используются для выделения:

  • Названия продуктов компании 1С-Битрикс, других программ и технологических платформ.
  • Названия методов, классов, функций и событий, если нет их описания в API доке. (Если описание есть, то название метода или класса оформляется ссылкой на страницу документации.)
  • Пространство имён в новом ядре D7.
  • Ключевое слово, фраза, термин, если использование жирного шрифта не желательно по каким-то причинам.

Примеры использования курсива
Пример названия метода: | Усовершенствованные методы буферизации в шаблоне позволяют более не использовать CBitrixComponentTemplate::EndViewTarget() ввиду того, что конец шаблона вызывает завершение буферизации автоматически. (Если страница метода в документации есть, то будет так: Перед подключением компонента ко всем значениям параметров применяется функция htmlspecialcharsEx )
Пример названий продуктов и платформ: | Чтобы научиться эффективно работать в Bitrix Framework, нужно не сравнивать то, что вы знаете по другим системам, а стараться понять как то или иное реализуется в этой системе. В плане обучения «сравнительный» подход не работает. Просто отвлекитесь от старых знаний и изучите новую систему, используя только знания PHP и сайтостроения, а не сравнивая идеологии и технологии.
Пример пространства имён в D7: | При необходимости модуль может организовывать подпространства внутри своего пространства имен. Например, Bitrix\Main\IO, Bitrix\Forum\SomeName\SomeNameTwo.

Серый фон текста используется для выделения:

  • путей в рамках файловой системы.
  • атрибутов, тегов html, параметров функций, переменных, значения полей и настроек и листинга кода, который нет смысла помещать в стиль для листинга.
Примеры использования серого фона
Пример выделения путей в рамках файловой системы: | Результаты кеширования сохраняются в виде файлов в каталоге /bitrix/cache/.
Пример выделения атрибутов, тегов и так далее: | Если в компоненте написать код: $arParams = & $arSomeArray; то переменная $arParams будет отвязана от члена класса компонента и привязана к массиву $arSomeArray.

Синий курсив с > используется для подсветки путей в продукте. То есть пути выглядят так же как они оформлены в административном отделе системы.

Примеры использования синего курсива
Пример оформления путей в административном отделе системы: Файлы кеша можно удалить в административной части на закладке Очистка файлов кеша страницы Настройки > Настройки продукта > Автокеширование.

Синий шрифт используется для подсветки УРЛ без создания собственно ссылки - псевдо УРЛ.

Примеры использования синего шрифта
Пример псевдо УРЛ: При помощи access_token приложение совершает запросы к REST-сервису до его истечения.
https://имя_портала.bitrix24.ru/rest/user.current?auth=код_авторизации

Форматирование текста цветом используется в случаях, когда надо выделять информацию, относящуюся к разным сущностям в параллельных процессах.

Примеры использования цветного шрифта
Цветной шрифт:
  • Настроить инфоблок на контроллере:

    ........

  • На подключенном сайте надо создать инфоблок с таким же значением внешнего кода, как и на контроллере. Кроме привязки к сайту, названия и внешнего кода необходимо настроить и права доступа к инфоблоку.

    ......

Форматирование абзацев текста

Форматирование целых абзацев текста используется для выделения какой-либо информации с целью указать направленность этой информации.

Определения каких-либо сущностей, явлений, терминов и так далее выводятся в абзацах такого вида:

Статическая информация – это информация, которая редко изменяется с течением времени. Например, рекламные тексты, история компании, контактная информация и т.п. Статическая информация создается, редактируется, дополняется и удаляется пользователями, обладающими правом на редактирование страниц сайта. Такое редактирование производится, как правило, в визуальном редакторе непосредственно в тексте самой страницы.

В Примечании размещается информация, поясняющая текст на странице, на которую стоит обратить внимание. Это могут быть примеры, расширенное объяснение, уточнение, ссылка на дополнительную информацию. Например:

Примечание. В ядре D7 настройки кеширования производятся в специальном файле

Предупреждения - это информация, имеющая критическое значение для работы того или иного функционала продукта. Например:

Важно! Если курс был деактивирован, то результаты тестов и сертификаты по этому курсу будут недоступны пользователям. Если курс был удален, то результаты тестов и сертификаты этого курса будут также удалены.

В особо важных случаях в этом виде форматирования может использоваться красный шрифт.

Всплывающие подсказки

Всплывающие подсказки обозначаются цветом шрифта и пунктирным подчёркиванием. Такие подсказки используются там, где:

  • Нужно пояснить какой-то термин.
    Пример: Как правило, все сайты имеют возможность авторизации из публичного раздела .
  • Дать наглядное представление о команде интерфейса.
    Пример: При включённом режиме Правки откройте на редактирование элемент инфоблока , например, новость.
  • Дать дополнительную, но не относящуюся напрямую к выполняемым работам, информацию.
    Пример: Этот инструмент создаст ссылку с одним единственным слешом после домена сайта .
  • Дать описание и ссылку на страницу компонента в пользовательской документации.
    Пример: Простую фотогалерею в публичном разделе выводит комплексный компонент Фотогалерея 2.0 .
Внимание! Всплывающие подсказки не работают в файлах формата CHM. Интернет на мобильных устройствах на сегодняшний день - не проблема, используйте эти файлы документации только в крайнем случае.

Спойлеры, скрывающие текст

В спойлерах размещается информация, которая имеет вторичное значение, но может быть полезна "для общего развития". Для открытия спойлера надо просто кликнуть на "+" в спойлере:

Задание окна для открытия ссылки при редактировании в режиме кода (для ознакомления)

В коде каждый из пунктов этого списка задается с помощью атрибута target тега <a>. Атрибут target может принимать соответственно следующие значения:

  • _blank;
  • _parent;
  • _self;
  • _top.

Чтобы избежать лишней прокрутки экрана, в спойлерах может быть размещена большая по объёму информация.

Видеоролики

Видеоролики располагаются в начале соответствующего урока. Или же вы можете следить за новыми роликами, которые выкладываются на нашем канале.


Видеоматериалы
4 / 363

Видеоролики по курсу

На этой странице представлены доступные для просмотра учебные видеоматериалы, которые помогут Вам быстрее освоить курс Администратор. Модули. Видеоролики демонстрируют основные функциональные возможности продукта.

Название видеоролика | Длительность, мин:сек | Относится к уроку
Отдельный домен для Сайтов 24 | 1:35 | Сайты 24 на собственном домене
Сайты 24 на собственном домене | 3:53 | Сайты 24 на собственном домене
Создание шаблона последовательного бизнес-процесса | 2:14 | Создание шаблона последовательного бизнес-процесса
Создание шаблона бизнес-процесса со статусами | 4:20 | Создание шаблона бизнес-процесса со статусами
Настройка прав для документооборота в инфоблоках | 1:54 | Документооборот при работе с инфоблоками
Работа с комментариями многопользовательской галереи | 2:37 | Работа с комментариями многопользовательской галереи


Примеры решения типовых задач
5 / 363

Здесь приводятся ссылки на уроки, в которых описаны типовые операции при администрировании сайтов, созданных на "1С-Битрикс: Управление сайтом".

Коллективная работа

Из курса Администратор.Модули Из других курсов
  • Создание шаблона бизнес-процесса со статусами
  • Создание шаблона последовательного бизнес-процесса
  • Создание учебного курса
  • Как узнать из результатов прохождения курса о степени понимания той или иной части материала
  • Создание мастера техподдержки
  • Назначение ответственного за обращение в техподдержку
  • Организация коллективной работы над обращениями в техподдержку
  • Создание заявки в техподдержку по почте
  • Примеры настройки некоторых социальных сервисов
  • Настройка ключевых слов для баннерной рекламы.
  • Документооборот при работе с инфоблоками
  • Создание Wiki на сайте
  • Пример размещения баннера в рекламной области
  • Пример настройки событий
  • Создание рекламной кампании

Модули для общения и обратной связи

Из курса Администратор.Модули Из других курсов
  • Работа с почтовыми шаблонами
  • Создание форума
  • Работа с комментариями многопользовательской галереи
  • Включение функционала фотогалереи для пользователей и групп
  • Как создать рассылку (ручную и автоматическую)
  • Пример создания шаблона веб-формы
  • Пример создания веб-формы (упрощенный режим)
  • Пример создания веб-формы (расширенный режим)
  • Пример создания и редактирования блога
  • Создание Менеджера идей
  • Создание и публикация опроса

Служебные модули

  • Настройки и запуск A/B-тестирования
  • Публикация новостей с контроллера на подключенных сайтах
  • Передача файла на сайты-клиенты контроллера


A/B тестирование
6 / 363
Модуль A/B-тестирование - это инструмент маркетингового исследования, с помощью которого можно сравнить два варианта страницы, шаблона сайта или сайта целиком, чтобы убедиться, какой из вариантов имеет более высокую конверсию и многие другие дополнительные показатели.


Принципы A/B тестирования
7 / 363
Модуль A/B-тестирование - это инструмент маркетингового исследования, с помощью которого можно сравнить два варианта страницы, шаблона сайта или сайта целиком, чтобы убедиться, какой из вариантов имеет более высокую конверсию и многие другие дополнительные показатели.

А/B тестирование работает так

Отбирается некоторая часть посетителей сайта, которая будет участвовать в тесте. Система делит этот трафик пополам и направляет первую половину на экспериментальные страницы А (то, что видят все посетители сейчас), а вторую половину - на страницы Б (то, что мы собираемся протестировать). Для каждой из этих групп рассчитывается конверсия и прочие показатели, которые и будут включены в аналитический отчет. Этот отчет содержит информацию о том, какой вариант страницы более выгоден, имеет более высокую конверсию и т.д.

Важно! Запуск, редактирование и создание тестирования по умолчанию доступны только группе Администраторы. Чтобы разрешить другой группе выполнять данные действия, ее нужно наделить правом доступа на операцию Изменение PHP-кода (edit_php).

Ключевые особенности А/В тестирования:

  • запуск не требует сложных технических настроек, дополнительного программирования и больших временных затрат;
  • имеется широкий набор типовых тестов и возможность создавать собственные тесты;
  • отчеты по тестированию содержат полную и понятную информацию о проведенных тестах.

Внимание! Данный модуль пока не является автоустанавливаемым, поэтому его требуется установить самостоятельно из страницы Настройки > Настройки продукта > Модули в административной части сайта.


Настройки и запуск тестирования
8 / 363

Запуск тестирования

Для запуска А/В тестирования произведите настройки. Для этого выберите Изменить в меню действий.

Если же вы впервые запускаете тестирование, то попадете в настройки автоматически при выборе опции Запустить в меню действий или при нажатии на кнопку Запустить в строке с тестом.

Форма настроек тестирования выглядит следующим образом:

Поясним некоторые поля:

  • Сайт - выберите сайт, для которого запускается тестирование.
  • Длительность теста - выберите время, в течение которого будет производиться тестирование. Можно указать точное количество недель или дней, либо выбрать опцию До ручной остановки теста. В таком случае тестирование будет продолжаться, пока пользователь самостоятельно его не остановит.
  • Трафик на тест - укажите процент пользователей, которые участвуют в тестировании. Эта цифра означает общее количество пользователей, участвующих в тестировании. Половина от трафика будет направлена на текущий дизайн, а половина - на новый. Если указано 30%, то новый дизайн увидят только 15%.
Примечание: последние два пункта напрямую связаны с посещаемостью сайта. Чем она больше, тем более коротким по продолжительности может быть тест и тем меньше пользователей нужно привлекать к тестированию, чтобы получить адекватные результаты с высокой точностью.
  • Тесты - два варианта страницы или шаблона сайта, которые будут сравниваться друг с другом. Вариант А - это то, что видят все посетители сайта на данный момент, вариант В - то, что будет тестироваться.

    Если будет проводиться сравнение двух шаблонов сайта, то в открывающемся списке нужно указать сравниваемые шаблоны. Если же сравниваются страницы, то в варианте А можно либо выбрать соответствующий файл в системе сайта, либо указать адрес нынешней страницы. В варианте В нужно изменить текущую страницу, внеся необходимые изменения. У каждого из вариантов есть кнопка Посмотреть, позволяющая увидеть внешний вид страницы для каждой группы.

    Также можно добавлять дополнительные тесты по нажатии на кнопку Добавить тест.

Внимание! Одновременно может быть запущено только одно А/В тестирование, но в рамках него может быть добавлено несколько тестов.

Примечание: при сравнении как шаблонов сайта, так и страниц, адреса остаются неизменными, поэтому проблем с переходами по страницам сайта у посетителей не возникает.

При нажатии кнопки Сохранить настройки теста будут сохранены и тестирование можно будет запустить.

После того, как тест запущен, появится возможность переключаться между вариантами А и В прямо из панели управления в публичном разделе сайта. Так можно понять, что видят посетители сайта, принадлежащие к каждой из тестируемых групп.

Примечание: по умолчанию данная кнопка из публичного раздела будет видна только группе пользователей Администраторы. Чтобы другие пользователи тоже могли ее видеть, их нужно наделить правом доступа к операции Просмотр остальных настроек главного модуля (view_other_settings). Также ее может увидеть запускающий тестирование пользователь при нажатии кнопки Посмотреть во время настройки теста.


Отчеты по тестам
9 / 363

Какой вариант лучше?

В любой момент после запуска теста, даже не дожидаясь его окончания, можно посмотреть отчет о проводимом тестировании .

Примечание: Если выбрана опция автоматического завершения тестирования по истечению какого-то времени, то его вручную завершать не обязательно.

Надо учитывать, что конверсия будет высчитываться по тем счетчикам, которые были выбраны в настройках модуля Конверсия

Для примера запустим тест, в котором будем рассчитывать конверсию для заполнения формы, где мы заменим текст кнопки сохранения анкеты.

Такой увидит кнопку посетители сайта из группы А.

А такой увидят кнопку посетители сайта из группы В.

После завершения тестирования можно посмотреть отчет по тесту. В отчете по А/В тестированию содержится график, отражающий изменение показателя конверсии в динамике, значение конверсии по каждому из сравниваемых вариантов, а так же разницу для конверсии по обеим тестовым группам.

Кроме самой конверсии в отчете будут содержаться и другие дополнительные показатели, зависящие от того, для каких модулей мы рассчитываем конверсию. В нашем примере кроме самой конверсии отображается и количество пользователей, заполнивших тестовую форму.

Внимание! Каждый тест имеет только один отчет. Поэтому если запустить тест заново, то результаты вновь проведенного теста будут добавлены к результатам предыдущего, что повышает их точность.

Однако менять набор тестов внутри хотя бы однажды запущенного А/В тестирования крайне не рекомендуется, т.к. это может значительно исказить результаты. Для того, чтобы проверить новые шаблоны сайта или страницы, следует создавать новые тестирования.


Highload-блоки
10 / 363

Модуль Highload-блоки работает с произвольными наборами данных в условиях высоких нагрузок.


Что такое Highload-блоки
11 / 363

Экономят время и деньги для сайтов с высокой посещаемостью

Модуль позволяет создавать списки для хранения произвольных данных (новости, вакансии и другое). Каждый список хранится в отдельной таблице базы данных (БД) и использует собственные индексы.

Это быстрые справочники, без поддержки иерархии, с ограниченной поддержкой свойств. Они могут обращаться к БД и работать с большими объёмами данных.

В поставку модуля включено два компонента, отображающих информацию из Highload-блоков: Запись детально (bitrix:highloadblock.view) и Список записей (bitrix:highloadblock.list).

Кроме того, с появлением модуля Highload-блоки для элементов модуля Информационные блоки доступен новый тип свойства Справочник, где в качестве справочника используется некоторый Highload-блок.

В каких случаях удобно использовать Highload-блоки:

  • очень большой объем данных и нагрузки, с которым не могут справиться инфоблоки ;
  • если нужна некая структура для хранения служебных данных, которая не будет редактироваться контент-менеджерами;

Документация по теме:

  • Архитектура модуля Highload-блоки
  • Импорт справочников из 1С


Настройка Highload-блока
12 / 363

Настройка Highload-блоков выполняется в административном интерфейсе

И заключается в следующем:

  • создается Highload-блок и определяется таблица, в которой будут храниться его данные;
  • настраиваются поля Highload-блока, которые являются пользовательскими свойствами ядра;
  • добавляется необходимое число записей в Highload-блок.

Рассмотрим процесс работы с Highload-блоками на примере создания справочника рецептов тортов.

Создание Highload-блока

Перейдите на страницу Контент > Highload-блоки и нажмите кнопку Добавить Highload-блок. Откроется форма:

Заполните поля на закладке Highload-блок:

  • В поле Название сущности задайте название Highload-блока. Название должно начинаться с заглавной буквы и состоять только из латинских букв и цифр.
  • В поле Название таблицы в БД укажите название таблицы, в которой будет храниться новый Highload-блок. Название таблицы должно состоять только из строчных латинских букв, цифр и знака подчеркивания.
  • Укажите удобные для вас языкозависимые названия Highload-блока.

На закладке Права доступа настройте доступ для пользователей и групп пользователей к Highload-блоку. Выбор необходимых групп или пользователей осуществляется по ссылке Добавить:

Нажмите на рисунок, чтобы увеличить

Примечание: закладка Права доступа доступна с версии 17.0.0 модуля Highload-блоки.

Сохраните новый Highload-блок.

Создание полей сущности

Для добавления полей в Highload-блок перейдите на страницу со списком его полей одним из способов:

  • со страницы со списком Highload-блоков, выбрать в меню действий необходимого блока пункт Список полей;
  • в форме редактирования нажать на ссылку с количеством полей сущности.

В любом случае откроется страница Пользовательские поля с установленным фильтром по объекту HLBLOCK_<ID_блока>, где <ID_блока> - это идентификатор Highload-блока, для которого необходимо добавить поля.

С помощью расположенной на контекстной панели кнопки Добавить создайте необходимые поля для Highload-блока.

Примечание: процесс добавления пользовательского поля описан в уроке Пример добавления поля.

Для нашего примера добавим следующие поля: Название торта (UF_NAME) типа Строка, Фото (UF_PHOTO) типа Файл, Время приготовления (UF_TIME) типа Список и Рецепт (UF_RECIPE) типа Файл:

Создание записей сущности

Чтобы добавить запись в Highload-блок, перейдите на страницу со списком записей блока (Контент > Highload-блоки > [языковое_название_Highload-блока], в нашем примере это Рецепты тортов) и нажмите кнопку Добавить запись. Откроется форма с набором созданных полей Highload-блока:

Заполните поля и сохраните запись. Аналогичным образом добавьте необходимое количество записей.

Примечание: перейти к списку записей Highload-блока также можно из формы его редактирования (с помощью ссылки с количеством записей) или со страницы со списком Highload-блоков (используя пункт Список записей в меню действий).

Документация по теме:

  • Создание и редактирование Highload-блока


Пример работы со свойством типа "Справочник"
13 / 363

Свойство типа Справочник доступно для элементов инфоблоков, начиная с версии 14.0.1 модуля Highload-блоки. Рассмотрим пример работы с этим свойством.

Допустим, что у нас имеется мебельный каталог Продукция. Добавим в него свойство типа Справочник. Для этого в форме редактирования инфоблока Продукция переходим на закладку Свойства:

Вводим название нового свойства, например, Оплата и доставка, выбираем тип свойства Справочник, делаем свойство множественным, задаем символьный код и нажимаем кнопку […] для перехода к детальному редактированию свойства.

В секции Дополнительные настройки с помощью поля Выберите справочник можно указать некоторый существующий Highload-блок или создать новый, выбрав значение Создать новый справочник.

Мы создадим новый справочник, поэтому выбираем Создать новый справочник. В поле Название справочника задаем его название латинскими буквами и задаем элементы справочника.

Рассмотрим подробно каждую колонку таблицы записей справочника:

  • Название - указывается название элемента справочника;
  • Сортировка - задавая сортировку, вы сможете регулировать в какой последовательности выводить элементы справочника;
  • Внешний код - служит для создания связей и выгрузки в 1С (заполнять необязательно, оно будет автоматически сгенерировано в момент сохранения свойства);
  • Изображение - картинка записи справочника, которая будет показана в публичном разделе (кнопка Обзор... служит для выбора файла);
  • Ссылка - можно ввести ссылку на любую страницу, которая откроется при клике на элемент справочника;
  • По умолчанию - может быть выбрано только одно значение и запись, для которой отмечено это поле, всегда будет первой отображаться в публичном разделе;
  • Описание - описание элемента справочника (текст описания отображается в публичном разделе, если не задано изображение для элемента);
  • Полное описание - полное описание элемента, выводится в публичном разделе в качестве всплывающей подсказки.

Примечание: чтобы элементы справочника показывались компонентом Бренды, для элемента обязательно должно быть заполнено хотя бы одно из полей: Описание и/или Изображение.

Сохраняем само свойство и параметры инфоблока. Переходим к товару, чтобы выбрать нужные записи справочника для вывода их в публичной части. Например, выберем следующие значения:

Сохраняем товар. Теперь необходимо перейти к настройкам компонента, с помощью которого публикуется каталог Продукция:

Включаем использование компонента брендов и выбираем созданное нами свойство Оплата и доставка типа Справочник. Сохраняем настройки и на детальной странице товара видим указанные нами бренды (записи справочника):

Внешний вид каждого бренда зависит от того, какие поля записи справочника заполнены при создании (см. выше).

В дальнейшем вы можете добавлять новые записи справочника как через свойства инфоблока, так и через интерфейс Highload-блоков.


Два инструмента для Highload-блоков: импорт и экспорт
14 / 363

Экономьте ваше время с инструментами импорта и экспорта. Импорт предназначен для пополнения Highload-блоков данными из внешнего источника, а экспорт - для выгрузки и использования информации на другом проекте.

Примечание: экспорт и импорт доступен, если версия модуля не ниже 17.0.1.

Документация по теме:

  • Импорт
  • Экспорт


Экспорт Highload-блока за 3 шага
15 / 363

Вам нужно перенести информацию из Highload-блока? Используйте инструмент экспорта. Он позволяет всего за 3 простых шага выгрузить данные в файл формата XML.

Шаг 1. Откройте страницу Экспорт Highload-блока (Контент > Highload-блоки > Экспорт/импорт > Экспорт):

Нажмите на рисунок, чтобы увеличить

Шаг 2. Задайте параметры выгрузки:

  • Файл для экспорта - укажите путь относительно корня сайта к файлу и сам XML-файл, в который будет выгружена информация из Highload-блока. Файл может отсутствовать, он создастся в процессе выгрузки.
  • Highload-блок - выберите Highload-блок для экспорта.
  • Экспортировать структуру - отметьте опцию для выгрузки структуры Highload-блока: его названия, перечня полей, названия таблицы в базе данных.
  • Экспортировать данные - отметьте для выгрузки записей Highload-блока. Файлы при этом выгружаются в папку с названием <имя_файла_экспорта>_files. Она размещается внутри той же папки, где и файл экспорта.

Шаг 3. Нажмите кнопку Экспортировать. Начинается экспорт Highload-блока, и над формой отображается ход процесса выгрузки. По окончании на странице выводится соответствующее сообщение:

Итак, скачайте файлы и используйте информацию из Highload-блока по своему усмотрению.


Как подготовить XML-файл
16 / 363

Согласитесь, что XML-файл с данными легче подготовить, если под рукой есть некий образец. Используйте инструмент экспорта : выгрузите любой Highload-блок и используйте полученный XML-файл как основу для своего нового файла.

Вам нужно подготовить файл для добавления данных в существующий Highload-блок?

  • Сделайте экспорт данного Highload-блока без выгрузки структуры (не отмечайте опцию Экспортировать структуру).
  • Скачайте XML-файл.
  • Заполните новые значения в тегах <item>...</item>. Например, в файле описание записи выглядит так:
            <item>
            <uf_name>Синяя джинса</uf_name>
            <uf_file>blue_jeans.jpg</uf_file>
            <uf_link />
            <uf_sort>1300</uf_sort>
            <uf_def>0</uf_def>
            <uf_xml_id>jeans</uf_xml_id>
        </item>
    Тогда в Highload-блоке запись имеет вид:

  • Сохраните файл и используйте его для процедуры импорта.

Вам нужно подготовить файл для добавления нового Highload-блока?

  • Сделайте экспорт любого Highload-блока обязательно вместе со структурой.
  • Скачайте XML-файл и откройте его на редактирование:
  • Задайте названия для сущности и для ее таблицы в базе данных:
        <hiblock>
        <name>Myhighloadblock</name>
        <table_name>b_my_highload_block</table_name>
    </hiblock>
  • Укажите языкозависимые названия:
        <langs>
        <lang>
            <lid>ru</lid>
            <name>Мой highload-блок</name>
        </lang>
    </langs>
  • Следующая часть файла - это блок с описанием полей Highload-блока, заключенный в теги <fields>...</fields>. Опишите каждое поле в <field>...</field>:
            <field>
            <field_name>UF_NAME</field_name>
            <user_type_id>string</user_type_id>
            <sort>100</sort>
            <multiple>N</multiple>
            <mandatory>N</mandatory>
            <show_filter>Y</show_filter>
            <show_in_list>Y</show_in_list>
            <edit_in_list>Y</edit_in_list>
            <is_searchable>Y</is_searchable>
            <settings>
                <size>20</size>
                <rows>1</rows>
                <regexp />
                <min_length>0</min_length>
                <max_length>0</max_length>
                <default_value />
            </settings>
            <edit_form_label>
                <ru>Название торта</ru>
            </edit_form_label>
            <list_column_label>
                <ru>Название торта</ru>
            </list_column_label>
            <list_filter_label>
                <ru>Название торта</ru>
            </list_filter_label>
            <error_message>
                <ru />
            </error_message>
            <help_message>
                <ru />
            </help_message>
        </field>
    Параметры поля должны быть составлены так, как это требуют пользовательские поля .
  • После описания полей идет блок с записями - <items>...</items>. Опишите каждую запись в <item>...</item>. Используйте только те поля, которые вы перечислили в предыдущем блоке <fields>...</fields>. Например:
            <item>
            <uf_name>Наполеон</uf_name>
        </item>
  • Сохраните файл и используйте его для процедуры импорта.

Важно! XML-файл должен быть подготовлен в кодировке сайта.


Как добавить данные в Highload-блок
17 / 363

Инструмент импорта экономит ваше время, когда вы пополняете или обновляете Highload-блок новыми записями. Подготовьте всего лишь XML-файл с данными . Инструмент быстро загрузит большие объемы информации в Highload-блок.

Рассмотрим как это выполняется на примере. Представьте, что у вас есть Highload-блок ColorReference. Он представляет собой справочник цветов и содержит уже некоторое количество записей:

Добавим в него несколько новых записей, а одну запись обновим. Структуру самого Highload-блока изменять не будем.

  • Шаг 1. Подготовьте изображения и файл color.xml с данными:

    <?xml version="1.0" encoding="UTF-8"?>
<hiblock>
    <items>
        <item>
            <uf_name>Ярко-желтый</uf_name>
            <uf_file>yellow.png</uf_file>
            <uf_sort>1500</uf_sort>
            <uf_xml_id>yellow</uf_xml_id>
        </item>
        <item>
            <uf_name>Серый</uf_name>
            <uf_file>grey.png</uf_file>
            <uf_sort>1600</uf_sort>
            <uf_xml_id>grey</uf_xml_id>
        </item>
        <item>
            <uf_name>Коралловый</uf_name>
            <uf_file>coral.png</uf_file>
            <uf_sort>1700</uf_sort>
            <uf_xml_id>coral</uf_xml_id>
        </item>
        <item>
            <uf_name>Оливковый</uf_name>
            <uf_file>olive.png</uf_file>
            <uf_sort>1800</uf_sort>
            <uf_xml_id>olive</uf_xml_id>
        </item>
        <item>
            <uf_name>Розовый</uf_name>
            <uf_file>rose.png</uf_file>
            <uf_sort>1900</uf_sort>
            <uf_xml_id>rose</uf_xml_id>
        </item>
        <item>
            <uf_name>Лазурный</uf_name>
            <uf_file>azure.png</uf_file>
            <uf_sort>2000</uf_sort>
            <uf_xml_id>azure</uf_xml_id>
        </item>
    </items>
</hiblock>

  • Шаг 2. Загрузите на сайт файл color.xml, скажем, в папку upload. Изображения загрузите в каталог /upload/color_files/.

    Примечание: изображения (любые другие файлы) обязательно должны располагаться в папке с названием <имя_файла_экспорта>_files. Она размещается внутри той же папки, где и файл экспорта.

  • Шаг 3. Откройте страницу импорта данных в Highload-блок (Контент > Highload-блоки > Экспорт/импорт > Импорт):

  • Шаг 4. Укажите параметры импорта:
    • В поле Файл для импорта укажите наш файл color.xml.

    • В поле Highload-блок выберите ColorReference.
    • В нашем примере записи Highload-блока считаются уникальными по внешнему коду. Следовательно, в параметре Поле внешнего ключа выберите значение XML_ID.

      Если внешний код из файла совпадет с кодом для существующей записи Highload-блока, то параметры записи будут обновлены в соответствии со значениями в файле.
    • Флаг с опции Импортировать структуру обязательно должен быть снят. Отмечена должна быть только опция Импортировать данные.
    • Опцию Сохранять связи со сторонними сущностями рекомендуется также отметить.
  • Шаг 5. Запустите процесс импорта. По окончании вы увидите специальное сообщение .
  • Шаг 6. Оцените результат импорта. Откройте страницу с записями Highload-блока ColorReference.

    Нажмите на рисунок, чтобы увеличить

    Новые записи добавились. При этом обратите внимание, что у нас теперь 2 розовых цвета. Старый розовой цвет не обновился, потому что у него отличается внешний код от кода нового розового цвета. А вот голубой цвет изменил название на лазурный, поскольку у него такой же внешний код, как и у лазурного цвета - azure.

Как видите, дополнить и обновить Highload-блок новыми записями легко и просто с инструментом импорта.


Как загрузить целый Highload-блок
18 / 363

Вы хотите загрузить данные в новый Highload-блок? Сделайте это вместе с инструментом импорта.

  • Шаг 1. Подготовьте XML-файл c данными и загрузите его на сервер.

    Примечание: если у вас в XML-файле есть описание поля типа Файл, то подготовьте и загрузите также файлы для записей Highload-блока в папку с названием <имя_файла_импорта>_files. Она располагается внутри той же папки, где и файл импорта.

    В качестве примера мы рассмотрим импорт на основе простого файла .
  • Шаг 2. Откройте страницу Импорт Highload-блока (Контент > Highload-блоки > Экспорт/импорт > Импорт):

    Нажмите на рисунок, чтобы увеличить
  • Шаг 3. Укажите параметры импорта:
    • В поле Файл для импорта укажите загруженный файл.
    • В поле Highload-блок выберите -создать новый-.
    • Проверьте, чтобы все опции были отмечены, а параметр Поле внешнего ключа не настраивается.
  • Шаг 4. Запустите процесс импорта. По окончании вы увидите специальное сообщение .
  • Шаг 5. Проверьте загруженные данные:
    • Откройте страницу со списком Highload-блоков (Контент > Highload-блоки). Вы увидите новый Highload-блок .
    • Откройте страницу со списком полей нового Highload-блока и убедись, что поля созданы .
    • Откройте страницу со списком записей Highload-блока и добавленные записи .

Как видите, инструмент импорта позволяет легко создать и наполнить Highload-блок данными.


Wiki, Веб-мессенджер, Календарь, Опросы
19 / 363

В этой главе описаны настройки важных модулей. Они объединены в одну главу, так как форма настроек каждого из них достаточно проста и, в основном, понятна по аналогии или интуитивно.


Wiki
20 / 363

Настройка модуля

База знаний (Wiki) - чаще всего информационный раздел сайта, структуру и содержимое которого пользователи могут сообща изменять с помощью инструментов, предоставляемых самим сайтом.
Детальное описание способов работы и примеры работы есть в курсе Контент-менеджер.

Для настройки модуля Wiki перейдите на страницу Настройки > Настройка Продукта > Настройки модулей > Wiki:

На закладке Настройки можно запретить использование визуального редактора при создании или редактировании статей, а также указать максимальные ширину и высоту изображений, которые получатся при ресайзе загружаемых картинок.

На закладке Социальная сеть, если планируется использование Wiki в рамках Социальной сети, нужно указать инфоблок для Wiki групп, а так же ID форума, который будет использоваться для комментариев статей Wiki в группах.

На закладке Доступ настраиваются права работы групп пользователей со страницами Wiki.

Внимание! При самостоятельной установке модуля Wiki опционально можно создавать/не создавать инфоблок для него. Отказываться от создания инфоблока не рекомендуется, так как компонент Wiki не будет работать корректно с созданным вне модуля инфоблоком. Работа с инфоблоком для wiki должна производиться только через компонент или API модуля.

Пользовательские списки статей/категорий

Кроме штатных категорий, администратор может создавать произвольные выборки страниц, пополняемый автоматически. Это не совсем категории, так как они подразумевают динамическое добавление и удаление страниц по ряду параметров.

Эти списки создаются с помощью кода, размещённого в файле init.php :

//Можно код разместить, например в файле /bitrix/php_interface/init.php

/*
* Функция, которая будет вызываться по событию при генерации списка категорий
* @param &obj $categories - объект, списка категорий
* @param str $sPathTemplate - путь для создания ссылки на категорию
* @return bool true.
*/
function _testOnCategoryListCreateEvent(&$categories, $sPathTemplate)
{
    $catParams = new CWikiCategoryParams; // создаем объект - набор параметров категории

    $catParams->sName = "Страницы созданные пользователем test"; // название категории
    $catParams->sTitle = "Тайтл категории cтраницы созданные пользователем тест"; // всплывающая подскака

    /*здесь вычисляем количество страниц попадающих в нашу категорию*/

    $catParams->iItemsCount = 333; // к примеру их оказалось 333
    $catParams->bIsRed = 'N'; // помечать ли категорию красным цветом, если не создана для нее страница
    $catParams->createLinkFromTemplate($sPathTemplate); // создаем ссылку на категорию
    $categories->addItem($catParams); // добавляем категорию в список категорий

    return true;
}

//обрабатываем событие создания списка категорий
AddEventHandler("wiki", "OnCategoryListCreate", "_testOnCategoryListCreateEvent");

/*
* Функция, которая будет вызываться по событию при генерации списка страниц категории
* @param &obj $categoryName - Наименование категории
* @param str $iBlockId - id iblock-а, в котором хранятся страницы вики
* @return dbResult
*/
function _testOnCategoryPagesListCreateEvent($categoryName, $iBlockId)
{
    // проверяем, наша ли категория создает список страниц
    if($categoryName != "Category:Страницы измененные сегодня")
        return false;

    //Подготавливаем данные для выборки нужных нам страниц вики

    $arPagesFilter = array(
            'IBLOCK_ID' => $iBlockId,
            'CHECK_PERMISSIONS' => 'N',
            'ACTIVE' => 'Y',
            'CREATED_USER_ID' => 478 // Показываем страницы созданные пользователем с id 478
            );

    $arSort = array('XML_ID' => 'ASC');    // Указываем сортировку

    $arPagesFilter['INCLUDE_SUBSECTIONS'] = 'Y'; // Включаем подкатегории

    // Учитываем, что вики может быть просто вики, а может быть для групп
    if (CWikiSocnet::IsSocNet())
        $arPagesFilter['SECTION_ID'] = CWikiSocnet::$iCatId;
    else
        $arPagesFilter['SECTION_ID'] = 0;

    return CIBlockElement::GetList($arSort, $arPagesFilter, false, false, Array());
}

//обрабатываем событие создания списка страниц в категории
AddEventHandler("wiki", "OnCategoryPagesListCreate", "_testOnCategoryPagesListCreateEvent");

Документация по теме:

  • Компоненты модуля "Wiki" (документация)
  • Способы работы и примеры


Веб-мессенджер
21 / 363

Для настройки модуля Веб-мессенджер перейдите на страницу Настройки > Настройки продукта > Настройки модулей > Веб-мессенджер

Настройки модуля Веб-мессенджер

На закладке Настройки задаются глобальные настройки параметров модуля, которые определяют:

  • сервер видеозвонков;
  • отображение истории, контактов, сообщений по умолчанию;
  • расположение панели мессенджера;
  • настройки приватности (для «1С-Битрикс: Управление сайтом»);
  • указанию для каждого сайта шаблона пути к странице пользователя для правильной работы модуля с профилем пользователя и добавлению в друзья (для «1С-Битрикс: Управление сайтом»);
  • указание формата отображения имени в списке контактов.

Внимание: Для улучшения быстродействия модуля Веб-мессенджер версии 17.0.4 и выше необходимо:
  • Обновить вашу БД MySQL до версии 5.6.
  • После этого в командной строке базы данных выполнить следующий запрос:
    CREATE fulltext index IXF_IM_MESS_1 on b_im_message

Если вы устанавливали продукт на сервер с уже установленной БД MySQL 5.6 и выше, то вам ничего делать не нужно.

Примечание: подробное описание каждого параметра приведено в пользовательской документации по модулю Веб-мессенджер.

Документация по теме:

  • Настройка модуля Push and Pull
  • Телефония
  • Настройки модуля (документация)


Календарь событий
22 / 363

Настройка модуля

Настройки модуля Календарь событий расположены на странице административного раздела Настройки > Настройки продукта > Настройки модулей > Календарь событий. Закладка Настройки интуитивно понятна, рассмотрим закладку Типы календарей:

Типы используются для систематизации календарей и управления правами доступа к ним пользователей.

Нажмите Добавить новый тип и заполните необходимые поля:

Нажмите Сохранить и новый тип будет добавлен:

Для удаления типа воспользуйтесь ссылкой Удалить, для изменения введенных параметров - ссылкой Изменить.

Чтобы добавить право доступа к типу календарей для пользователя или группы пользователей, нажмите Добавить:

Добавление прав доступа

После того, как нужные пользователи\группы пользователей будут выбраны, нажмите Выбрать, и затем укажите права доступа для выбранных групп:

Не забудьте сохранить внесенные изменения.

О работе с календарями подробно рассказано в курсе Контент-менеджер, глава Календарь .

Документация по теме:

  • Настройки модуля


Опросы, голосования
23 / 363

Настройка модуля

Настройка параметров модуля производится на странице Настройки > Настройки продукта > Настройки модулей > Опросы, голосования:

На вкладке Настройки указываются следующие параметры:

  • Использовать HTML редактор - отмеченная опция разрешает использовать визуальный редактор при создании вопросов и описания опросов.
  • Поддерживать старые шаблоны (default.php, bluebar.php) в форме редактирования вопросов - флажок в этом поле сохраняет работоспособность старых компонентов опросов из ранних версий "1С-Битрикс: Управление сайтом".

На вкладке Доступ настраиваются права доступа к модулю Опросы для групп пользователей. Работа на вкладке аналогична таковой для модуля Веб-формы .

Как использовать модуль, подробно рассказано в курсе Контент-менеджер в главе Опросы.

Документация по теме:

  • Настройки модуля


Бизнес-процессы
24 / 363

Бизнес-процессы - инструмент системы, обеспечивающий обработку документов в зависимости от последовательности действий (шагов, этапов, функций), совершаемых в заданном порядке и в определенных условиях.


Общая информация
25 / 363

Что такое Бизнес-процессы?

Описание

Бизнес-процесс - это процесс обработки документа, для которого задана одна точка входа и несколько точек выхода и последовательность действий (шагов, этапов, функций), совершаемых в заданном порядке и в определенных условиях.

Другими словами Бизнес-процесс – последовательность действий, направленных на получение заданного результата.

В системе все бизнес-процессы работают с так называемыми документами (файл, элемент инфоблока, элемент CRM) и их версиями. Для каждого документа (инфоблок, списки и т.п.) существуют свои шаблоны бизнес-процессов. Поддерживаемые типы документов:

  • Элементы инфоблоков в административной части
  • Элементы универсального списка
  • Файлы из библиотеки документов («Битрикс24 в коробке»)
  • Элементы CRM («Битрикс24 в коробке»)
  • "Виртуальный документ" (для бизнес-процессов организаций, реализуемых с помощью компонента Бизнес-процесс (комплексный компонент) в публичной части сайта)

Где можно найти Бизнес-процессы

В продуктах компании 1С-Битрикс бизнес-процессы можно найти в следующих местах:

  • Инфоблоки в административной части сайта («1С-Битрикс: Управление сайтом» и «Битрикс24 в коробке»)
  • Универсальные списки («Битрикс24 в коробке», Сервисы > Списки)
  • Библиотека документов («Битрикс24 в коробке», Документы)
  • CRM («Битрикс24 в коробке»)

Права на бизнес-процесс

В большинстве случаев для корректной работы модуля Бизнес-процессы необходимо произвести настройки прав доступа для пользователей и настройки инфоблоков.

При создании бизнес-процесса при выборе пользователей в настройках действий в форме Вставка значений выводятся только те пользователи, которые имеют соответствующий уровень доступа к типу документа, для которых создаётся бизнес-процесс.

Например, если в настройках информационного блока для определённой группы пользователей будет выставлен уровень прав Чтение, то они не будут иметь доступа к работе с бизнес-процессами инфоблока, хотя могут просматривать его элементы.

Видеоматериалы

Видеозаписи с вебинаров по Битрикс24, в которых рассказывается о том, что такое бизнес-процессы, как с ними работать, а также рассмотрены примеры их использования.

Примечание: В данных роликах рассмотрен функционал в рамках сервиса Битрикс24, но общие сведения и принципы переносимы и на остальные продукты, в которых используются бизнес-процессы.

Функционал может меняться со временем выхода новых версий и отличаться от показанного в ролике.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Вебинар Роботы и бизнес-процессы. RPA с точки зрения разработчика. Техноволна 1 от 06 апреля 2020.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Документация по теме

  • Пользовательская документация по модулю "Бизнес-процессы"
  • Модуль Бизнес-процессов (блог)


Настройка модуля Бизнес-процессы
26 / 363

Настройки модуля

Общесистемные настройки модуля Бизнес-процессы задаются на странице Настройки > Настройки продукта > Настройки модулей > Бизнес-процессы. Детальное описание настроек в документации, ниже - расшифровка некоторых полей.

Нажмите на рисунок, чтобы увеличить

Ограничения на число бизнес-процессов в поле Максимальное количество одновременно запущенных над документом процессов служат для снижения нагрузки на сервер, на котором работает ваш проект. Значение определяется эмпирически, в зависимости от производительности вашего сервера и потребностей организации. Начните с числа 2 (такое ограничение стоит в облачной версии Битрикс24) и по мере работы увеличите или уменьшите его.

Так же на нагрузку на сервер влияют значения в поле Минимальное время ожидания для действий. Эта настройка влияет на действия, где возможно ожидание: пауза, задания БП, а так же rest действия. Чем меньше время - тем больше нагрузка. Оптимальное значение подбирается эмпирически, в зависимости от производительности вашего сервера и потребностей организации. Начните с 5 минут (такое ограничение стоит в облачной версии Битрикс24) и по мере работы увеличите или уменьшите его.

Включить режим совместимости для типа "Привязка к сотруднику" - это поле используется только если есть проблемы со старыми, созданными до версии 12.5, шаблонами Бизнес-процессов.

Документация по теме:

  • Настройки модуля


Типы бизнес-процессов
27 / 363

При помощи модуля Бизнес-процессы могут быть описаны два типа бизнес-процессов: последовательный и со статусами.


Последовательный бизнес-процесс
28 / 363

Шаг за шагом

Последовательный бизнес-процесс — действия выполняются одно за другим от точки входа до точки выхода.

Последовательный бизнес-процесс представляет собой бизнес-процесс как набор шагов, которые следует выполнять по порядку до тех пор, пока они все не завершатся. Он похож на обычную блок-схему, описывающую алгоритм решения задачи.

Последовательный бизнес-процесс начинает работу, выполняя находящееся в нем первое дочернее действие, и продолжается до тех пор, пока не выполнит все остальные дочерние действия.


Бизнес-процесс со статусами
29 / 363

Если нужно настроить произвольные действия и состояния

Бизнес-процесс со статусами (так же известный как машина состояний или автомат на состояниях) — начала и конца не имеет, в процессе работы происходит переход из одного состояния в другое.

Бизнес-процесс со статусами представляет собой набор состояний, переходов и действий. Одно состояние обозначается как начальное состояние. В процессе выполнения процесс переходит из одного состояния в другое, основываясь на событиях.

При переходе бизнес-процесса в любой из статусов выполняется последовательный подпроцесс для инициализации этого статуса. После чего бизнес-процесс становится в ожидание одного из определенных в данном статусе событий. Список возможных событий и их названия могут быть получены для отображения в пользовательском интерфейсе. На каждое событие может быть получен список групп пользователей, которые имеют право отправлять данное событие.

При возникновении события выполняется последовательный подпроцесс, соответствующий принятому событию (связанный с ним).

Среди действий подпроцесса может быть действие по установке нового статуса. В этом случае бизнес-процесс переводится в новый статус. Если такого действия нет, то текущий статус считается конечным и бизнес-процесс завершается.

Если для данного статуса определен последовательный подпроцесс для финализации этого статуса, то он выполняется непосредственно перед выходом из данного статуса (перед переходом в другой статус).

Документация по теме:

  • Создание шаблона бизнес-процесса со статусами
  • Пример использования бизнес-процесса со статусами для организации обработки и доработки документа


Выбор типа бизнес-процесса
30 / 363

Практически любая возникающая задача может быть решена как с помощью последовательного бизнес-процесса, так и с помощью бизнес-процесса со статусами. Выбор не оптимального типа бизнес-процесса для конкретной задачи существенно усложнит шаблон бизнес-процесса.

Тип последовательный бизнес-процесс выбирается в том случае, если просто необходимо выполнить определенную последовательность действий.

Тип бизнес-процесс со статусами выбирается в том случае, если бизнес-процесс (документ) может находиться в разных состояниях, переходы между которыми осуществляются по определенным правилам. При этом появляется возможность автоматически контролировать права на доступ к документу в разных состояниях и на выполнение переходов между состояниями. Для каждого состояния может быть задан набор событий, при возникновении которых выполняются соответствующие подпроцессы.


Типовые бизнес-процессы
31 / 363
Типовые бизнес-процессы - образцы часто используемых процессов, которые включены в состав продуктов «1C-Битрикс», содержащих модуль Бизнес-процессы.


Список типовых бизнес-процессов
32 / 363

Какие процессы часто используются?

Описание

Типовые бизнес-процессы - образцы часто используемых процессов, которые включены в состав продуктов «1C-Битрикс», содержащих модуль Бизнес-процессы.

Типовые бизнес-процессы включены в состав младших редакций как неизменяемые процессы. Они настраиваются на работу с нужными сотрудниками, но схема прохождения документа остается неизменной. Изменение шаблонов типовых бизнес-процессов, а также создание собственных шаблонов возможно только при наличии модуля Дизайнер бизнес-процессов , который доступен только в старших редакциях .

Типовые бизнес-процессы для документов

  • Двухэтапное утверждение (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить
Рекомендуется для ситуаций утверждения документа с предварительной экспертной оценкой. В рамках процесса на первом этапе документ утверждается экспертом. Если документ им не утвержден, то он возвращается на доработку. Если утвержден, то документ передается для принятия решения группой сотрудников простым большинством голосов. Если документ не принят на втором этапе голосования, то он возвращается автору на доработку и повторяется процесс утверждения.
  • Экспертная оценка (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить
Рекомендуется для ситуаций, когда для принятия решения по документу лицу, принимающему решение, требуется экспертная оценка по документу. В рамках процесса назначается экспертная группа, каждый участник которой высказывает свое мнение по документу. Мнения передаются лицу, принимающему решение, который утверждает или нет документ.
  • Ознакомление с документом (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить
Предназначен для ситуаций, когда группу сотрудников требуется ознакомить с каким-то документом. В рамках процесса задается группа работников, которая должна быть поставлена в известность. Дается право оставлять комментарии.
  • Простое утверждение/голосование (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить
Рекомендуется для ситуаций, когда требуется принятие решения простым большинством голосов. В его рамках включают в список голосующих нужных сотрудников, дают возможность комментировать свое решение голосовавшим. По окончании голосования всем участникам сообщается принятое решение.
  • Утверждение документа со статусами (бизнес-процесс со статусами)
    Нажмите на рисунок, чтобы увеличить
Прохождение документом цепочки утверждения со статусами.
  • Утверждение по первому голосу (последовательный процесс)
    Нажмите на рисунок, чтобы увеличить
Рекомендуется для ситуаций, когда достаточно одного экспертного мнения из некоторого сообщества. В рамках этого процесса задается список сотрудников, имеющих право принять решение c уведомлением о начавшемся процессе. Процесс считается завершенным по первому отозвавшемуся сотруднику.

Универсальный бизнес-процесс оплаты счетов (только для коробочной версии Битрикс24)

Запускается в рамках Универсального списка Счета на странице Счета (Сотрудники > Списки > Счета). Бизнес-процесс реализован с учетом новых прав доступа и интегрирован с задачами. Он "проводит" счет по этапам утверждения от сотрудника до директора, и только затем счет уходит в бухгалтерию на оплату.

Настроим бизнес-процесс перед началом работы:

  • Дадим права доступа к списку (выполняет администратор);
  • Настроим параметры шаблона;
  • Создадим разделы.

Бизнес-процесс построен так:

  • "Автор" создает элемент списка Счет (заполняет все поля);
  • Сообщение о новом счете (о необходимости утвердить счет) уходит "Начальнику подразделения" (через Обмен сообщениями или почтой);
  • После утверждения "Начальником подразделения" счет идет на утверждение "Директору по маркетингу";
  • Потом счет утверждает "Генеральный директор" или "Директор по развитию компании";
  • Счет переводится в статус "К оплате";
  • Сообщение об оплате получает "Бухгалтер подразделения". После оплаты он меняет статус на "Оплачен";
  • Автору уходит сообщение о необходимости собрать документы;
  • После того, как документы собраны (отданы в бухгалтерию), автор меняет статус на "Документы собраны";
  • "Бухгалтер подразделения" подтверждает это;
  • Бизнес-процесс закрывается.

Типовые бизнес-процессы организации

Бизнес-процессы организации предназначены для автоматизации деятельности организации. По умолчанию создано и представлено пять типовых бизнес-процессов:

  1. Выдача наличных
  2. Исходящие документы
  3. Счет на оплату
  4. Заявление на отпуск
  5. Заявление на командировку

Администратор изменяет и копирует бизнес-процессы. А в редакциях Компания и Команда облачной Битрикс24 - создает собственные.


Создание шаблонов типовых бизнес-процессов
33 / 363

Типовые шаблоны бизнес-процессов создаются автоматически при установке продуктов «1C-Битрикс». Посмотрим, каким образом создать их, если по каким-либо причинам типовые процессы не были созданы при установке.

Действия по созданию шаблонов

  • Универсальные списки (публичная часть сайта)
    • перейти к желаемому списку на соответствующей странице Списки (Сервисы > Списки);
    • перейти к списку шаблонов бизнес-процессов с помощью кнопки Бизнес-процессы , расположенной на странице просмотра списка;
    • воспользоваться соответствующей ссылкой для создания шаблонов бизнес-процессов.

  • Общий диск
    • перейти на страницу Общий диск (Диск > Общий диск);
    • перейти к списку шаблонов бизнес-процессов с помощью пункта Бизнес процессы в меню настроек;
      Примечание: Если в меню настроек нет пункта Бизнес-процессы, то нужно включить поддержку бизнес-процессов для библиотеки, выбрав пункт Настройка бизнес-процессов, и в открывшейся форме включив опцию Активировать бизнес-процессы .
    • воспользоваться соответствующей ссылкой для создания шаблонов бизнес-процессов.

  • Инфоблоки (административная часть сайта)
    • перейти на страницу редактирования инфоблока (Контент > Инфоблоки > Типы инфоблоков > [требуемый_инфоблок]);
    • включить поддержку бизнес-процессов установив для опции Участвует в документообороте или бизнес процессах значение бизнес процессы ;
    • на закладке Шаблоны бизнес-процессов отобразятся типовые шаблоны.
      • Примечание: Перейти к списку шаблонов возможно непосредственно из самого инфоблока с помощью кнопки Шаблоны бизнес-процессов (если данный инфоблок участвует в бизнес-процессах).

  • CRM (публичная часть сайта, «Битрикс24 в коробке»)
    • перейти на страницу настроек бизнес-процессов в CRM (CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы);
    • перейти на страницу со списком шаблонов бизнес-процессов для требуемой сущности с помощью соответствующей ссылки ;
    • воспользоваться соответствующей ссылкой для создания шаблонов бизнес-процессов.

  • Бизнес процессы организаций (публичная часть сайта, «Битрикс24 в коробке»)

    Типовые шаблоны устанавливаются автоматически с установкой модуля Бизнес-процессы.

Удаление шаблонов типовых бизнес-процессов

Для удаления шаблона бизнес-процесса используйте пункт меню действий Удалить.

Важно: удалить шаблон незавершенного бизнес-процесса нельзя.


Типовые бизнес-процессы для коробочной версии «Битрикс24»
34 / 363

В данной главе будут рассмотрены штатные бизнес процессы, которые присутствуют только в коробочной версии "Битрикс24".


Бизнес-процессы документов
35 / 363

Давайте посмотрим как настроить автозапуск и запуск вручную для бизнес-процессов (БП) документов в коробочной версии Битрикс24.

Важно! Для работы с бизнес-процессами на портале у пользователя должен быть определенный уровень доступа. Если вы не можете работать с бизнес-процессами на портале, обратитесь к Администратору портала.

Настройка автозапуска для БП документов

Настройка выполняется на странице Бизнес-процессы (меню настроек в разделе Диск > Общий диск):

  • открываем список бизнес-процессов;
  • на странице Шаблоны бизнес-процессов в меню действий выбираем способ автоматического запуска бизнес-процесса - Запускать при создании или Запускать при изменении;
  • статус запуска бизнес-процесса отобразится в колонке Автозапуск .

    Примечание: Например, в нашем случае при загрузке документов автоматически запуститься бизнес-процесс Утверждение документа со статусами. Когда сотрудник загружает файл в данный раздел документов, то он должен указать все необходимые параметры запуска бизнес-процесса.

Запуск БП вручную

Чтобы запустить вручную бизнес-процесс для некоторого документа:

  • В меню действий документа выберите пункт Бизнес-процессы, а затем в предложенном списке найдите необходимый бизнес-процесс (например, Ознакомление с документом);
  • Укажите необходимые параметры запуска бизнес-процесса и нажмите кнопку Запустить .

Бизнес-процесс запустится и начнет выполняться в соответствии со своим шаблоном и произведенными настройками.

БП сотрудника

Каждому сотруднику отображается список запущенных им бизнес-процессов с помощью анимированных иконок в колонке Название после названия файла в списке документов. Если вы участвуете в бизнес-процессе, то рядом с анимированной иконкой увидите восклицательный знак .

Выполнение назначенных заданий по бизнес-процессу осуществляется на закладке Бизнес-процессы личной страницы.


Бизнес-процессы организации
36 / 363

Запускаем бизнес-процессы организации

Описание

Бизнес процессы организации предназначены для автоматизации деятельности организации. По умолчанию создано и представлено пять типовых бизнес-процессов :

  1. Выдача наличных
  2. Исходящие документы
  3. Счет на оплату
  4. Заявление на отпуск
  5. Заявление на командировку

Администратору доступно изменение и копирование бизнес процессов. А в редакции продукта Компания - создание собственных . Работа с бизнес-процессами осуществляется через пункт меню Бизнес-процессы:

Задания БП

Как только появятся процессы, требующие внимания, их количество будет отражено рядом с пунктом меню Бизнес-процессы. Выполнение назначенных заданий по бизнес-процессам организации осуществляется на закладке Задания бизнес-процессов (Бизнес-процессы> Задания бизнес-процессов). На закладке видим информацию о бизнес-процессе, вывод которой настраивается, если щелкнуть правой кнопкой мыши по шапке таблицы. Также приведено описание действий , которые необходимо сделать.

Варианты получения подробной информации о каждом действии:

  • Выберите соответствующую команду в меню действий.
  • Кликните правой кнопкой мыши по строке действия и выберите Подробнее.
  • Дважды кликните левой кнопкой мыши по строке действия.

Воспользуйтесь фильтром процессов для поиска необходимых процессов в списке. Руководитель подразделения сможет найти процессы, выполняемые его подчиненными, и делегировать их.

Видео: Работа с бизнес-процессами организации (содержание может отличаться от текущей версии продукта)

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Содержание видеоролика может отличаться от текущей версии продукта. Более актуальная информация содержится в тексте урока.

Процессы в ленте

На странице Процессы в ленте (Бизнес-процессы> Процессы в ленте) пользователь просматривает и запускает бизнес-процессы, к которым у него есть доступ. Также в этом разделе администратор указывает, какие из этих процессов доступны для вызова прямо из Живой ленты .

Мои процессы

Вызов бизнес-процессов на исполнение возможен и через закладку Бизнес-процессы> Мои процессы. Эта страница хранит все процессы, которые вызывались вами, включая историю их исполнения и полную информацию о них.

Расположение вкладки Мои процессы в старых версиях коробочного Битрикс24

После нажатия на кнопку Запустить процесс предлагается заполнить поля с входными параметрами вашего процесса. Однако настройки параметров работы (Кто утверждает, Кто оплачивает и т.п.) должны быть предварительно проведены, иначе бизнес-процесс не начнет свое выполнение.

Все активные

На странице Все активные (Бизнес-процессы> Все активные) отображен список активных запущенных процессов. На этой странице отслеживаем выполнение запущенных процессов, контролируем зависшие. Обычный пользователь видит список процессов запущенных только им самим. Администратору портала видны все процессы запущенные на портале, которые он удалит в случае зависания.

1 выберите модули, для которых были запущены процессы. Также доступен выбор зависших процессов.

2 используйте фильтр для поиска определенных задач.

3 настройте отображение колонок списка, кликнув правой кнопкой по шапке таблицы.

4 с помощью меню действий перейдите к документу (для администратора доступно удаление).


Настройка инфоблоков на работу с бизнес-процессами
37 / 363

Для настройки работы бизнес-процессов с инфоблоками необходимо выполнить ряд действий.

Настройка инфоблоков

Для участия инфоблока в Бизнес-процессах:

  • Перейдем на страницу настройки свойств инфоблока (Контент > Информ. блоки > Типы информ. блоков > [Нужный_тип_инфоблока]).
  • На закладке Инфоблок в поле Участвует в документообороте или бизнес процессах выбираем Бизнес-процессы:

    Если в системе не установлен модуль Документооборот, то поддержка бизнес-процессов включается с помощью опции Участвует в бизнес процессах.

Настройка прав доступа

Для работы с бизнес-процессами необходимо дать права для групп пользователей. Перейдем на закладку Доступ настраиваемого инфоблока и назначим для соответствующих групп уровень доступа не ниже Бизнес-процессы:

Внимание! Уровень доступа Бизнес-процессы позволяет указанным группам пользователей только участвовать в бизнес-процессах. Для того чтобы пользователи смогли сами запускать бизнес-процессы, необходимо выставить более высокий уровень прав доступа для инфоблока, например Изменение.

Настройка автозапуска бизнес-процесса

Настройка автозапуска бизнес-процесса при создании/изменении элемента инфоблока

Модуль Бизнес-процессы позволяет автоматически запускать выбранные бизнес-процессы при создании/изменении элемента инфоблока.

  • Перейдем на закладку Шаблоны бизнес-процессов настраиваемого инфоблока.
  • В строке с названием нужного бизнес-процесса установим флаг в поле Автозапуск: Создание и Изменение .

    • Примечание: Если у вас установлена старшая редакция продукта (модуль Дизайнер бизнес-процессов), то вы имеете возможность редактировать шаблоны типовых бизнес-процессов и создавать собственные, поэтому вам названия шаблонов типовых процессов отображаются в виде ссылок и доступна ссылка Список шаблонов бизнес-процессов.

Для запуска бизнес-процесса вручную используйте пункт меню действий Запустить бизнес-процесс желаемого элемента инфоблока.

Настройка формы создания/изменения элемента инфоблока

При создании/изменении элемента инфоблока пользователь указывает не только название и другие параметры, относящиеся к контенту, но и все параметры запускаемого бизнес-процесса. Для этого настроим саму форму редактирования элемента инфоблока. Перейдем на страницу со списком элементов инфоблока, а затем к форме редактирования некоторого элемента. По умолчанию закладка Бизнес процессы, на которой производится управление бизнес-процессами, отключена. Для её включения есть два способа :

  1. Выбираем команду Отменить настройки формы и все доступные закладки появятся перед вами. Этот способ не удобен тем, что из всего, что появится, требуется только одна закладка, остальные мешаются;
  2. Выберите команду Настройки. Откроется окно Настройка формы редактирования. В секции Доступные вкладки выберите Бизнес-процессы и нажмите кнопку [image], чтобы в форме создания/редактирования элемента была доступна вкладка Бизнес-процессы с соответствующими полями.

Теперь, например, в форме добавления новости в публичной части сайта будет доступна вкладка Бизнес-процессы .


Задания бизнес-процессов
38 / 363

Посмотрим интерфейс заданий бизнес-процессов на примере Битрикс24.

Администратор, помимо списка своих заданий бизнес-процессов, имеет доступ к списку заданий остальных пользователей:

  • в публичной части сайта;

  • в административной части сайта на странице Задания (Сервисы > Бизнес-процессы > Задания).

С помощью этой страницы администратор просматривает и выполняет задания за других пользователей. Например, выполняет срочное задание за сотрудника, ушедшего в отпуск.

Примечание: Задания бизнес-процессов автоматически удаляются при удалении документа, для которого они были запущены.

Документация по теме:

  • Задания
  • Просмотр задания


Журнал выполнения бизнес-процесса
39 / 363

При разработке и использовании уже готовых процессов бывает необходимо узнать подробности выполнения того или иного процесса / действия. Для этого в системе предусмотрен журнал выполнения бизнес-процессов (лог).

Административная часть сайта

Для просмотра журнала выполнения бизнес-процесса перейдем в режим редактирования элемента инфоблока (документа, для которого запущен бизнес-процесс) на вкладку Бизнес-процессы и затем используем ссылку в поле Текущий статус. Откроется форма с Историей выполнения бизнес-процесса .

Для просмотра более подробной информации используем ссылку Расширенный режим:

Идентификатор действия в расширенном режиме
В расширенном режиме в скобках отображается идентификатор конкретного действия. Посмотрите или задайте его непосредственно при создании/редактировании шаблона бизнес-процесса в форме Настройка параметров действия с помощью ссылки [Ид].

В поле допустимо вводить только символ подчеркивания (_), буквы латинского алфавита или цифры.

Публичная часть сайта

Скриншоты публичной части даны на примере шаблона "Битрикс24 в коробке". Функционал аналогичен, даже если на вашем реальном сайте внешний вид отличается.

Для просмотра текущего статуса созданного вами процесса откроем вкладку Процесс выполнения страницы Мои процессы. Вы увидите сам статус, в котором находится процесс, а также пользователя, ответственного за его выполнение на каждом шагу развития процесса.

Полноценный лог можно найти при просмотре детальной информации о процессе. Можно проследить полный жизненный цикл бизнес-процесса, кем и когда были приняты соответствующие решения и что стало их результатом:

По нажатию правой кнопкой мыши по шапке таблицы лога откроется меню , в котором настраивается лог, в том числе, выбираются колонки, которые в нем отобразятся.


Дизайнер бизнес-процессов
40 / 363
Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов "1С-Битрикс", предназначен для проектирования, создания и изменения бизнес-процессов.


Дизайнер бизнес-процессов
41 / 363

Проектируем бизнес-процесс

Модуль Дизайнер бизнес-процессов, входящий в старшие редакции продуктов "1С-Битрикс", предназначен для проектирования, создания и изменения бизнес-процессов.

Механизм проектирования бизнес-процессов реализован за счет визуального программирования по технологии drag&drop , понятной и известной любому пользователю компьютера. Шаблон бизнес-процессов создается в особом визуальном конструкторе , который позволяет пользователю, не владеющему программированием, задать нужный порядок бизнес-процесса, отобразить его специфичные потребности с помощью простых графических схем.

Создание бизнес-процессов - это программирование, хоть и без написания кода (в большинстве случаев). Помимо знания предметной области, в которой проектируется шаблон, и знания реального процесса, требуется постановка задачи, алгоритмирование и тестирование. Для этого требуются определенные навыки и базовая подготовка.

Созданный шаблон бизнес-процесса выполняется автоматически или вручную, в зависимости от настроек. Одновременно работают несколько экземпляров бизнес-процесса, и система занимается управлением выполнения этих экземпляров, сохраняя и восстанавливая их состояние по требованию. Ведется лог каждого экземпляра бизнес-процесса для дальнейшего анализа работы схемы и корректировки ее под новые условия.

Примечание: Если проектируемый процесс имеет сложную структуру, то лучше использовать Бизнес-процесс со статусами.


Визуальный конструктор
42 / 363

Как открыть визуальный конструктор?

Визуальный конструктор - инструмент, входящий в состав модуля Дизайнер бизнес-процессов, который позволяет создавать и редактировать шаблоны бизнес-процессов.

Административная часть

В административной части есть два способа открытия списка шаблонов бизнес-процессов. Рекомендуемый нами (более удобный) способ вызова визуального конструктора: перейдите к желаемому инфоблоку и нажмите на контекстной панели кнопку Шаблоны бизнес-процессов.

Нажмите на рисунок, чтобы увеличить

После чего используйте меню кнопки Создать шаблон на контекстной панели или команду меню действий Изменить .

Второй способ
Перейти к странице Шаблоны бизнес-процессов также возможно со страницы настройки свойств инфоблока , используя ссылку Список шаблонов бизнес-процессов.

Нажмите на рисунок, чтобы увеличить

Публичная часть

Переход к визуальному конструктору отличается для разных типов документов . Обычно это кнопка или пункт меню с подписью Бизнес-процессы. Например, для универсальных списков это выглядит так:

Далее воспользуйтесь кнопками создания бизнес-процессов или отредактируйте существующий с помощью кнопки Изменить в меню действий.


Из чего состоит визуальный конструктор
43 / 363

Внешний вид визуального конструктора

Внешний вид визуального конструктора

Внешний вид

Визуальный конструктор состоит из четырех областей. Его вид будет отличаться в зависимости от того, какой процесс редактируется.

1. Контекстная панель

Контекстная панель визуального конструктора состоит из набора кнопок:

  • Параметры шаблона - позволяет задать/изменить основные параметры и параметры запуска бизнес-процесса;
  • Список шаблонов - переход к списку шаблонов бизнес-процессов;
  • Создать шаблон <тип_бизнес-процесса> - позволяет перейти к созданию одного из типов бизнес-процессов;
  • Экспорт - экспорт текущего шаблона бизнес-процесса;
  • Импорт - импорт шаблона бизнес-процесса взамен текущего.

2. Основная рабочая область

Внешний вид основной рабочей области зависит от типа БП: последовательный бизнес процесс или бизнес-процесс со статусами .

Создание и редактирование шаблона бизнес-процесса, т.е. добавление некоторых действий, осуществляется простым перетягиванием действия на основную рабочую область конструктора в нужном месте шаблона бизнес-процесса. Или воспользуйтесь меню, которое доступно при нажатии на треугольник .

Для копирования действий перетащите уже существующее действие, зажав клавишу Ctrl. Для удаления действия служит кнопка X, а для выполнения детальной настройки размещенного в шаблоне действия - кнопка X. Некоторые действия сворачиваются для экономии места на экране .

3. Панель действий конструктора

Панель действий визуального конструктора содержит набор действий , из которых и производится конструирование шаблона.

Создание своих групп действий в панели действий

Сгруппируйте действия в собственные группы. Для этого внесите изменения в конфигурационный файл .description.php, находящийся в папке конкретного действия (\bitrix\activities\bitrix\).

'CATEGORY' => array(
        'ID' => 'document',
        "OWN_ID" => 'crm',     // идентификатор новой создаваемой группы действий
        "OWN_NAME" => 'CRM',     // название группы, которое будет отображаться в дизайнере
    ),

В итоге получим следующие группировки действий.

4. Кнопки управления

Если осуществляется создание/редактирование шаблона последовательного бизнес-процесса, то отображаются кнопки: Сохранить, Применить и Отменить.

Если же выполняется создание/редактирование шаблона бизнес-процесса со статусами, то отображается только кнопка Вернуться к настройке статусов, которая служит для перехода к схеме шаблона, где и выполняется сохранение/отмена внесенных изменений в статусы и их действия.

Примечание: Если шаблон был изменен, но не сохранен, то при попытке покинуть страницу появится предупреждение о возможной потере несохраненных данных, с возможностью сохранить изменения.

Заключение

Мы узнали, где запустить Визуальный конструктор и как проектировать в нем шаблоны бизнес-процессов. Инструмент, с помощью технологии drag&drop, позволяет наглядно и удобно создавать и редактировать шаблоны бизнес-процессов.


Форма "Вставка значения"
44 / 363

При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса есть возможность указывать как собственный текст, заданный вручную, так и использовать различные переменные, поля документа и прочие данные, которые не задаются вручную. Для этого используется специальная форма Вставка значения.


Форма "Вставка значения"
45 / 363

Заполняем поля с помощью формы "Вставка значения"

Форма

При работе с бизнес-процессом в параметрах действий, параметрах шаблона и настройках статуса есть возможность указывать как собственный текст (заданный вручную), так и использовать различные переменные (поля документа и прочие данные, которые не задаются вручную). Для этого используется специальная форма Вставка значения.

Нажмите на рисунок, чтобы увеличить

Разделы формы

  • Параметры шаблона - вставка параметров шаблона. Задаются для конкретного шаблона в форме, доступной по кнопке Параметры шаблона на контекстной панели визуального конструктора бизнес-процесса. Значение параметра - то, что введет пользователь в соответствующих полях при запуске бизнес-процесса.
  • Переменные - вставка пользовательских переменных, которые могут изменяться по ходу выполнения бизнес-процесса. Пример: дополнительное числовое поле, заполняемое пользователем в процессе выполнения бизнес-процесса.
  • Константы - вставка заранее заданных констант, которые остаются неизменными в процессе исполнения бизнес-процесса. Их значение задается в параметрах шаблона и пользователь, не имеющий доступа к изменению процессов, не может менять их значение.
  • Поля документа - вставка значения какого-либо поля документа, участвующего в бизнес-процессе. Например: Дата создания или Кем создан.
  • Дополнительные результаты - вставка результатов выполнения некоторых действий. Не все действия предоставляют дополнительные результаты. В списке отображаются сразу все доступные результаты для всех действий, добавленных в текущий процесс, если они их поддерживают.
  • Пользователи - вставка пользователя или группы пользователей, которые будут причастны к выполнению бизнес-процесса. Есть возможность выбрать несколько пользователей/групп пользователей. Для этого в качестве разделителя используется символ ;.
  • Категории пользователей - позволяет подробно указать пользователей, которые будут причастны к выполнению бизнес-процесса. В том числе можно выбрать Отдел или Группу соцсети.
Примечание: Возможна вставка как отдельных групп пользователей, так и целых отделов и групп социальной сети . Для этого в настройках прав доступа к элементам и разделам процесса указываем группы, которые вы хотите чтобы отображались в форме . Любая помещенная в эту вкладку группа вне зависимости от указанного уровня доступа будет отображаться в списке.

Дополнительные значения

Дополнительные значения (недоступны напрямую из формы)

Следующие значения недоступны напрямую из формы, но могут быть внесены вручную при проектировании шаблона бизнес-процесса:

  • {=Workflow:ID} - идентификатор бизнес-процесса;
  • {=User:ID} - идентификатор текущего пользователя в формате user_[номер_пользователя_в_системе];
  • {=Template:TargetUser} - параметр, в котором содержится идентификатор пользователя, запустившего бизнес-процесс в формате user_[номер_пользователя_в_системе];
  • {=System:Now} - текущая дата со временем на сервере;
  • {=System:NowLocal} - текущая дата со временем у клиента (учитывается часовой пояс);
  • {=System:Date} - текущая дата без времени;
  • {=Document:DETAIL_PAGE_URL} - позволяет получить ссылку на страницу детального просмотра документа, при условии, что в настройках инфоблока корректно заполнен URL страницы детального просмотра.

    • Использование некоторых значений полей контактов/компаний (для облачной версии Битрикс24)

    В рамках бизнес-процессов для сделок в CRM воспользуйтесь некоторыми значениями из полей контакта или компании, которые связаны с этой сделкой.

    Значения для Контактов:

    • {=Document:CONTACT_ID} - ID контакта;
    • {=Document:CONTACT_TYPE_ID} - ID типа контакта;
    • {=Document:CONTACT_NAME} - имя контакта;
    • {=Document:CONTACT_SECOND_NAME} - фамилия контакта;
    • {=Document:CONTACT_LAST_NAME} - отчетство контакта;
    • {=Document:CONTACT_FULL_NAME} - ФИО контакта;
    • {=Document:CONTACT_ADDRESS} - фактический адрес контакта.

    Значения для Компаний:

    • {=Document:COMPANY_ID} - ID компании;
    • {=Document:COMPANY_TITLE} - Название компании;
    • {=Document:COMPANY_INDUSTRY} - ID сферы деятельности;
    • {=Document:COMPANY_REVENUE} - годовой оборот;
    • {=Document:COMPANY_CURRENCY_ID} - ID валюты;
    • {=Document:COMPANY_TYPE} - ID типа компании;
    • {=Document:COMPANY_ADDRESS} - фактический адрес компании;
    • {=Document:COMPANY_BANKING_DETAILS} - банковские реквизиты.

Заключение

Мы узнали, как с помощью формы Вставка значение добавлять различные переменные в параметры действий, параметры шаблона и настройки статуса. В следующем уроке посмотрим, как модифицировать эти данные.


Модификация типов данных
46 / 363

Модифицируем данные

Указанные нами параметры, переменные шаблона или поля документа возможно модифицировать. Для этого существуют специальные модификаторы, которые преобразуют данные.

Для параметров и переменных шаблона, а так же полей документа используется модификатор _printable, преобразующий значения в понятную пользователю строку.

Возьмем переменную типа пользователь. Результат, если значение переменной равно Автор:

{=Variable:user}                          author
{=Variable:user_printable}                Автор

Если для поля документа или параметра доступен такой вариант отображения, то он представлен в форме Вставка значения. Если же печатная форма не предусмотрена, запросите вывод печатной формы от любого значения (переменная, дополнительный результат и т.п.). Кроме того, доступно преобразовывать не только в печатную форму, но и менять тип данных .

Таблица преобразования типов данных

Начальный/конечный | bool (Да/Нет) | date (Дата) | datetime (Дата/Время) | double (Число) | int (Целое число) | file (Файл) | select (Список) | string (Строка) | text (Текст) | user (Пользователь)
bool (Да/Нет) | --- | x | x | 1 или 0 | 1 или 0 | х | х | Y или N | Y или N | x
date (Дата) | x | --- | по формату | timeslamp | timeslamp | x | x | по формату | по формату | x
datetime (Дата/Время) | x | по формату | --- | timeslamp | timeslamp | x | x | по формату | по формату | x
double (Число) | 0==N !0==Y | из timeslamp | из timeslamp | --- | (int) | x | x | (string) | (string) | user_<ID>
int (Целое число) | 0==N !0==Y | из timeslamp | из timeslamp | (float) | --- | x | x | (string) | (string) | user_<ID>
file (Файл) | x | x | x | x | x | --- | x | x | x | x
select (Список) | Y или N | x | x | (float) | (int) | x | --- | (string) | (string) | user_<ID> group_<CODE> <ID>
string (Строка) | Y или N | strtotime | strtotime | (float) | (int) | x | x | --- | (string) | user_<ID> group_<CODE> <ID>
text (Текст) | Y или N | strtotime | strtotime | (float) | (int) | x | x | (string) | --- | user_<ID> group_<CODE> <ID>
user (Пользователь) | x | x | x | ID | ID | x | x | (string) | (string) | ---

Примечание: все выражения в тексте автоматически преобразуются к строке, при отсутствии дополнительных идентификаторов.

Примечание: при преобразовании типа Список в Строку или Текст берутся значения списка, при преобразовании Списка в Список - ключи списка. Для получения значения ключа списка используйте конвертирование, например: {=Variable:Select > select}.

Для данных типа Пользователь есть возможность преобразования в формат friendly. В таком случае выводится только имя и фамилия пользователя, без его ID и логина.

Пример: {=Document:CREATED_BY} > User_1

{=Document:CREATED_BY > printable} > Иван Иванов [1]

{=Document:CREATED_BY > friendly} > Иван Иванов

Важно! Для версий модуля до 15.6.0 преобразование типов данных, в том числе и запрос печатной формы для значений, не имеющих таковой, возможно с помощью переменных и действия PHP-код.

Примечание: Для вставки одного и того же значения в разные действия шаблона не обязательно всегда пользоваться формой Вставка значения. Достаточно скопировать текст, вставленный с помощью этой формы, и использовать его дальше.

Решение некоторых проблем (для коробочной версии)

Если для документа было создано дополнительное поле и оно по каким-либо причинам не отображается в форме Вставка значения, то необходимо перейти к настройкам инфоблока в административной части сайта (Контент > Инфоблоки > Типы инфоблоков > [требуемый_инфоблок], закладка Свойства), и в параметрах свойств этого поля отметить опцию Выводить на странице списка элементов поле для фильтрации по этому свойству:.

Если этого не сделать, то будет невозможно использовать это свойство в бизнес-процессах.


Вычисление значений выражений в параметрах действий
47 / 363

Вычисляем выражения

В системе имеется возможность вычислять значения выражений в параметрах действий. Для этого ставим знак = в поле перед операциями.

Пример: =6^2 + {=Document:PROPERTY_NUM}/2 или =if({Document:ID}=5, "текст1", "текст2").

В каждом поле доступно использовать сразу несколько разных вычислений. Если Вы хотите не только произвести вычисление, но и вывести дополнительные данные (значение переменных, текст), то используйте оператор конкатенации (&), а текст напишите в кавычках (").

Пример : ="Ответ:" & (1+3) или ="Автор: " & {=Document:CREATED_BY} & ", " & "Конечный срок: " & Dateadd({=Document:DATE_CREATE}, "1d")

Примечание: С версии 15.6.0 вычисляемые значения можно просто размещать в тексте, поместив вычисление в конструкцию {{=...}}. Например: Вам необходимо оформить документы до {{=DateAdd({=Document:CREATED}, '5d')}}.

Примечание: Синтаксис символьных операторов аналогичен синтаксису соответствующих php-функций.


Примеры работы с выражениями
48 / 363

Давайте, для лучшего понимания, посмотрим несколько примеров использования вычисления значений выражений .

Использование переменных в ссылках

В полях действий, поддерживающих тег [url], доступно использование собственных переменных для создания ссылок.

    [url=http://{=Variable:Domain}/{=Variable:Path}]название ссылки[/url]
где: {=Variable:Domain} и {=Variable:Path} - переменные, содержащие адрес сервера и требуемый путь.

Создание ссылок

Создание прямой ссылки на страницу с заданием

Используйте ссылку, например, для отправки пользователю сообщения о необходимости выполнить задание в рамках бизнес-процесса.

    Ссылка на страницу с заданием: [url=http://[адрес_портала]/company/personal/bizproc/{=Workflow:ID}/]ссылка на страницу просмотра документа[/url]

Создание ссылки на страницу детального просмотра документа

Используйтесь ссылку, например, для отправки пользователю сообщения из которого он перейдет непосредственно к просмотру документа.

    Ссылка на страницу детального просмотра документа: [url]{=Document:DETAIL_PAGE_URL}[/url]

Примечание: Выражение {=Document:DETAIL_PAGE_URL} формирует нужную ссылку при условии, что в настройках инфоблока корректно заполнен URL страницы детального просмотра.

Создание прямой ссылки к файлу на сервере

Такой сценарий понадобится, если нужно отправить, например, ссылку на скачивание файла клиенту (т.е. кому-то извне).

Допустим, в документе имеется поле Файл. Для получения внутренней ссылки используем: вставка значения Поля документа > Файл (имя).

Ссылка на файл  - {=Document:PROPERTY_FILE_PRINTABLE}

Такая ссылка потребует авторизации на портале. Получить публичную ссылку можно с помощью модификатора src, который нужно указать вручную таким образом:

// удалим _PRINTABLE и добавим модификатор >src и bb-code [url].
Ссылка на файл - [url={=Document:PROPERTY_FILE>src}]link[/url]

Внимание! Использование такого модификатора на коробочных версиях может быть небезопасно. Например, если данный файл загружает пользователь: он может загрузить HTML и по такой ссылке откроется в браузере страница вашего сайта, в которой пользователем может быть написан вредоносный код. Но возможно обойти использованием CDN (как в облачной версии Битрикс24) или настройкой вашего сервера (правила .htaccess и т.п., запрещающие выполнение html/php файлов в папке из папки /upload/).

Проверка корректности времени

Выражение используется для полей документа, переменных или параметров шаблона.

    =if(and((intval(substr({=Template:Parameter1}, 0, 2)) >= 0), (intval(substr({=Template:Parameter1}, 0, 2)) < 25), (substr({=Template:Parameter1}, 2, 1) = ":"), (intval(substr({=Template:Parameter1}, 3, 2)) >= 0), (intval(substr({=Template:Parameter1}, 3, 2)) < 60)), {=Template:Parameter1}, "время указано неправильно")

Если в параметре {=Template:Parameter1} передается время (в 24 часовом формате ЧЧ:ММ, например 21:45), то возвращается его значение. Иначе вернется время указано неправильно.


Функции калькулятора выражений
49 / 363

При вычислении значений выражений в параметрах действий вы можете использовать следующие функции и операторы:

Функции для вычислений

Доступны следующие функции:

Функция Описание
explode Функция разбивает строку с помощью разделителя. Полезна, когда нужно разбить строку и присвоить части как значение множественной переменной. Аналог explode в PHP.
Возвращает массив строк, полученных разбиением строки str с использованием delimiter в качестве разделителя.
explode(
   delimiter,
   str)
Параметры:
  • delimiter - разделитель;
  • str - строка для разделения.
Implode Объединяет множественные значения в строку. Полезна, когда нужно вывести в текст значения множественных переменных нестандартным разделителем (стандартный - просто запятая). Аналог implode в PHP.
Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со значением glue между каждым элементом.
Implode(
   glue,
   pieces
)
Параметры:
  • glue - по умолчанию равен пустой строке;
  • pieces - массив объединяемых строк.
toUserDate Функция приводит любое время к времени сотрудника (с учетом его часового пояса).
toUserDate(
   user,
   date=now
)
Параметры
  • user - пользователь, к чьему времени необходимо привести время БП;
  • date - начальная дата, по умолчанию - текущее время.
GetUserDateOffset Функция возвращает значение смещения часовой зоны пользователя в секундах (относительно серверного времени).
GetUserDateOffset(
   user
)
Параметры:
  • user - пользователь, относительно чьего времени нужно значение.

Операторы

Доступны следующие операторы:

Оператор | Описание
+ Сложение.
- Вычитание.
* Умножение.
/ Деление.
= Равно.
<> Не равно.
< Меньше.
> Больше.
<= Меньше или равно.
>= Больше или равно.
() Порядок действий.
& Оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента.
^ Возведение в степень.
% Вычисление процентов.
true | Правда.
false | Ложь.
and | Логический оператор И.
or логический оператор ИЛИ.

Пример: =if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no")
not | Отрицание.
min | Наименьшее значение.
abs | Вычисление модуля.
date | Для корректного форматирования даты . Работает аналогично функции Date в PHP.
dateadd Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к указанной дате.

Синтаксис: =dateadd([начальная_дата], [что_добавлять]);

Варианты написания и примеры
y, year, years, m, month, months, d, day, days, h, hour, hours, i, min, minute, minutes, s, second, seconds.
При написании можно использовать верхний или нижний регистр.
Примеры: =Dateadd({=Document:DATE_CREATE}, "-2d"), =Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes").

В случае, если необходимое для добавления количество единиц времени содержится в поле, переменной и т.п., то необходимо использовать оператор конкатенации &.

Например: =DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")
datediff Позволяет вычислить разницу между двумя датами.

Синтаксис:
=datediff([первая дата], [вторая дата], [как выводить разницу]);

Разницу можно выводить в разных единицах, в зависимости от решаемых вами задач.

Примеры:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days')
if Условие.

Синтаксис:
=if([условие], [результат_в_случае_выполнения_условия], [результат_в_случае_не_выполнения_условия]);

Пример:
=if ({=Variable:Variable1_printable}>0, "да", "нет")

При сравнении значений переменных также возможно сравнивать переменные с разным типом данных. Однако сравниваемые переменные должны соответствовать таблице преобразования типов.
intval Возвращает целое значение переменной;

Пример:
=intval("234j4hv5jhv43v53jk4vt5hj4") вернет 234.
substr Возвращает подстроку определенной длины, начиная с указанного символа. Данная функция аналогична существующей substr в php.

Синтаксис:
substr([входная строка], [с какого символа исходной строки начнется возвращаемая статья], [какой длины будет строка])

Имейте ввиду, что строка начинает с символа под номером 0. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Пример:
{{=substr("0123456789", 3, 4)}} вернет 3456.

Внимание! Если синтаксис выражения будет неправильным, то оно отобразится как текст.
merge Позволяет объединять массивы.

Синтаксис:
= merge({=массив_1}, {=массив_2});

Пример:
= merge({=Document:FILES}, {=Variable:file}).

AddWorkDays Функция добавляет N рабочих дней к указанной дате.

Синтаксис:
=addworkdays([дата, к которой будут добавляться дни], [количество добавляемых рабочих дней]).

Примеры:

  • {{=addworkdays('07.03.2016', 1)}} - результат: 09.03.2016 00:00:00, т.к. в настройках сайта 8 марта - выходной.
  • {{=addworkdays('05.02.2016 16:14:00', 1)}} - результат: т.к. 05.02.2016 - пятница, то результат: 08.02.2016 16:14:00 - понедельник.
isWorkDay Проверяет, является ли дата рабочим днем (по Календарю).

Синтаксис:
=if(isWorkDay([проверяемая дата]), [сообщение, если дата является рабочим днем], [сообщение, если не является]).

Пример:
{{=if(isWorkDay({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата 28.04.2016. Результат - Да, т.к. это рабочий день.
isWorkTime Аналогична функции isWorkDay, но для типов данных Дата/Время.

Синтаксис:
=if(isWorkDay([проверяемая дата со временем]), [сообщение, если дата со временем является попадает на рабочее время], [сообщение, если не попадает]).

Пример:
{{=if(isWorkTime({=Template:Parameter1}), 'Да', 'Нет')}} - в параметре содержится дата со временем 27.04.2016 15:00:00. Результат - Да, т.к. это рабочее время.
WorkDateAdd Добавляет заданное количество рабочих дней, часов и минут к указанной дате.

Синтаксис:
=WorkDateAdd([начальная_дата], [что_добавлять]).

Варианты написания и примеры
Варианты написания: d, day, days, h, hour, hours, i, min, minute, minutes. Допустимо написание как в верхнем, так и в нижнем регистре.

Пример:
=WorkDateAdd({=Template:Parameter1}, "2d") - в параметре содержится дата 28.04.2016. Результат - 02.05.2016 09:00:00, т.к. 30.04 и 1.05 - это выходные дни, то они будут пропущены. 09:00:00 - начало рабочего дня. Список выходных дней и начало рабочего дня настраивается в Настройках портала.


Примеры работы с датами
50 / 363

В уроке рассмотрим возможности работы с датами в бизнес-процессах. Результаты выведем с помощью действия Сообщение соц.сети .

Перевод даты на русский язык

Для вывода даты используется функция date . В примере используем параметр F - полное наименование месяца. Список всех параметров функции смотрите в документации по PHP.

Текущий месяц - {{=date('F',{=System:Date})}}

В результате получим уведомление вида Текущий месяц - April.

Для получения названия месяца на русском языке понадобится создать Список соответствия для названий месяцев. Введем переменную бизнес-процесса типа Список:

В вариантах значений в квадратных скобках укажем ключ - номер месяца, а после - значение (название месяца на русском языке).

Вернемся к шаблону бизнес-процесса и перед сообщением соц.сети добавим действие Изменение переменных в котором укажем функцию {{=date('n')}}, где n - порядковый номер месяца без ведущего нуля (из документации по PHP).

В действии Уведомление соц. сети поменяем текст сообщения на вывод нашей переменной Variable1:

Текущий месяц - {=Variable:Variable1 > printable}

Результат:

Таким же образом можно выводить дни недели и др. подобные даты.

Относительный формат даты

Задание: необходимо вывести дату - пятница следующей недели. Сделать это можно с помощью работы функции strtotime и относительных форматов PHP.

Создадим новую переменную Дата и снова воспользуемся действием Изменение переменных, как в примере выше. Укажем значение ='next week friday':

А в тексте сообщения соц. сети выведем переменную Дата.

Следующая пятница - {=Variable:Variable2 > printable}

Результат

Добавление N дней из параметра

Сначала посмотрим на простой пример: прибавим к текущей дате точное количество дней.

Для этого понадобится функция dateadd:

Текущая дата + 2 дня: {{=dateadd({=System:Date}, '2d')}} // прибавим 2 дня к текущей дате

Теперь посмотрим, как правильно добавлять количество дней, которое хранится в параметре БП:

Текущая дата + N дней: {{=dateadd({=System:Date}, {=Template:Parameter1} & 'd')}} // прибавим дни из параметра к текущей дате

Важно! Для правильного указания количества дней из параметра применен оператор конкатенации, который возвращает строку, представляющую собой соединение левого и правого аргумента.

Результат (при запуске БП для параметра указано значение 10):

Дополнительно

  • Функции калькулятора выражений.


Вычисляем числовые значения с записью в поля документа
51 / 363

Пример вычисления числовых значений

Рассмотрим небольшой пример работы с полями документа и вычислением их значений . Для простоты воспользуемся функционалом списков (Сервисы > Списки). Описанные ниже действия применимы и к другим типам документов, например, CRM. За основу примера возьмем сообщение с форума:

"Доброго времени суток, может кто сталкивался с такой задачей, нужно чтоб во время оформления сделки высчитывалась чистая прибыль, т.е. от заложенной суммы сделки вычитался налог усн (6%), вычитались затраты на подряд (если они есть) и все это потом записывалось в отчет менеджера по проведенной сделке."

Порядок действий

  • Создадим новый список, а в нем набор полей типа число :

    • Сумма;
    • Затраты на подряд ;
    • Налог (6%). Считается автоматически;
    • Итоговая сумма. Считается автоматически.
  • Создадим шаблон последовательного бизнес-процесса и настроим его на запуск при добавлении нового элемента.
  • Добавим и настроим первое действие Изменение документа , которое вычислит налог от общей суммы :

    Поле: Налог (6%). Считается автоматически,

    Значение: ={=Document:PROPERTY_s}*0.06,

    где {=Document:PROPERTY_s} является значением поля Сумма.

  • Добавим и настроим второе действие Изменение документа, которое вычислит итоговую сумму с учетом всех вычетов:

    Поле: Итоговая сумма. Считается автоматически,

    Значение: ={=Document:PROPERTY_s}-{=Document:PROPERTY_contract}-{=Document:PROPERTY_tax},

    где

    {=Document:PROPERTY_s} - значение поля Сумма,
    {=Document:PROPERTY_contract} - значение поля Затраты на подряд,
    {=Document:PROPERTY_tax} - значение поля Налог (6%). Считается автоматически.

Дополнительно

Шаблон для ознакомления : Скачать


Распространенные ошибки при работе с бизнес-процессами
52 / 363

Постараемся не делать ошибок

Бизнес процессы - важнейший инструмент, который позволяет автоматизировать рабочие процессы компании. Однако их использование требует определенного навыка и осторожности. В противном случае бизнес-процессы создадут значительную нагрузку на проект.

На каждом физическом сервере в Битрикс24 одновременно работает несколько порталов. Аномальная нагрузка от одного из них негативно влияет на остальные. Одна из причин - бизнес-процессы . В связи с этим, рекомендуется проверить и скорректировать свои бизнес-процессы. При выявлении аномальной нагрузки создаваемой бизнес-процессами, портал блокируется согласно пункту 8.1 лицензионного соглашения .

Распространенные ошибки

Рассмотрим наиболее распространенные ошибки при проектирование бизнес-процессов, которые увеличивают нагрузку на портал:

  1. Изменения различных полей документа несколькими действиями — достаточно частая ошибка . Конечно, не запрещено изменять каждое поле документа отдельным действием, однако это значительно увеличивает количество выполняемых запросов при работе бизнес-процесса. Рекомендуется изменять все необходимые поля документа в рамках одного действия .

  2. Зацикливание — тщательно проверяйте отсутствие зацикливания бизнес-процессов, особенно, если используются паузы . Если запустить бизнес-процесс на создание документа с ошибкой в условии выхода из цикла, постепенно накопится большое количество экземпляров бизнес-процесса, запущенных для разных документов. Еще более опасный вариант, когда это случается для бизнес-процессов на изменение документа. В этом случае быстро накапливается большое количество работающих экземпляров бизнес-процесса даже на небольшом количестве документов.

    В некоторых случаях лучше предусмотреть отдельное условие прекращения выполнения циклов. Оно обеспечит выход из него, даже если основное условие по каким-либо причинам не было выполнено за разумное время/циклы. Например условие: бизнес-процесс прекращается после того как время обработки лида становится больше 1000 минут, несмотря на то, что статус лида еще не изменился на нужный. Это позволяет останавливать бизнес-процесс, если он не был обработан в рамках разумного времени (например, по причине увольнения ответственного).

  3. Использование проверки статуса в цикле с паузой — бывает, что вместо действия Ожидание стадии сделки используется цикл с паузой . В этом случае при запуске процесса на создание документа, накапливается большое число запущенных экземпляров шаблона бизнес-процесса, для разных документов. При постоянном частом подъеме из паузы они создают нагрузку и в определенный момент могут привести к неработоспособности проекта. Правильнее в данном случае использовать действие Ожидание стадии сделки . В этом случае бизнес-процесс проснется только во время смены статуса документа на нужный и не будет создавать нагрузку все остальное время.

  4. Некорректное использование пауз и заданий — ошибка случается часто для бизнес-процессов, которые запускаются при изменении документа .

    Использование таких действий может нарушить идеологию и целостность бизнес-процесса. Пока бизнес-процесс ожидает их исполнения, исходный документ может быть снова изменен. Поэтому бизнес-процессы, запускаемые на изменение, должны отрабатывать без каких-либо ожиданий и пауз и прекращать свое существование. Если же в бизнес-процессе, запускаемом на изменение, есть паузы, ожидание действий, запрос информации, то смело говорим, что бизнес-процесс работает неправильно.

  5. Ошибки при работе с Параллельным ожидания действия – очень часто возникают сложности при работе с этой конструкцией . При ее использовании процесс выполняется по той ветке, которая следует за первой выполненной Командой . Но если ни одна из команд не выполнена, то и процесс зависнет и исполняться дальше не будет. Чтобы такого не происходило, всегда стоит добавлять ветку, содержащую Паузу в выполнении . Таким образом, бизнес-процесс продолжит свое исполнение по истечению указанного в нем времени, даже если ни одна из команд не будет выполнена.

    6. © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2020 1С-Битрикс


Шаблоны бизнес-процессов
53 / 363
Шаблон бизнес-процесса представляет собой последовательность шагов (действий) от начального к конечному, которые будут выполняться один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.


Настройка параметров шаблона
54 / 363

Шаблоны бизнес-процессов используются для быстрой и эффективной настройки формы бизнес-процесса согласно потребностям сотрудника. При создании бизнес-процесса на основе шаблона происходит не только изменение внешнего вида бизнес-процесса, но и заполнение его некоторыми начальными параметрами.

Шаблон БП представляет собой последовательность шагов (действий) от начального к конечному, которые выполняются один за другим. Необходимо таким образом и в таком порядке составить шаги (действия), чтобы реализовать нужный нам алгоритм и получить необходимый результат.

Создание шаблона

Процесс проектирования шаблона бизнес-процесса разделим на два этапа:

  • первый - это задание основных параметров шаблона ;
  • второй - конструирование шаблона, по которому будет выполняться бизнес-процесс.

Посмотрим первый этап. Форма настройки параметров шаблона бизнес-процесса разделена на несколько закладок, с помощью которых задаются параметры запуска и настройки бизнес-процесса.

Внимание! В бизнес-процессах отсутствует возможность использования параметров, переменных и констант родительского процесса дочерними БП.

Основное

На закладке Основное указываются название шаблона бизнес-процесса, его описание и определяются параметры автоматического запуска. Бизнес-процесс имеет два варианта автоматического запуска: при создании и/или при изменении элемента. Если оба флага сняты, то бизнес-процесс возможно запустить только вручную.

Параметры

Параметры используются для явного указания каких-либо значений во время исполнения бизнес-процесса. Значения параметров задаются непосредственно перед запуском бизнес-процесса в специальных полях. Для создания параметра нажимаем ссылку Добавить параметр на закладке Параметры и заполняем поля :

  • Идентификатор - символьный идентификатор параметра;
  • Описание - произвольное описание параметра;
  • Тип - с помощью выпадающего списка указывается тип данных параметра запуска;
  • Обязательный - если опция отмечена, то обязательно указываем значение данного параметра для запуска бизнес-процесса;
  • Множественный - при отмеченной опции может быть задано несколько значений параметра;
  • Значение по умолчанию - в зависимости от выбранного типа данных указывается значение параметра, используемое по умолчанию.

    Примечание: для некоторых типов данных значение по умолчанию можем указать с помощью кнопки [...], по нажатии которой открывается форма Вставка значения .

После создания параметр отобразится в общем списке .

Переменные и Константы

Переменные

Переменные используются для временного хранения данных, необходимых для выполняемого процесса. Значения переменных хранятся до тех пор, пока выполняется бизнес-процесс. После его завершения они все стираются .

Константы / Глобальные константы

Константы нужны для хранения информации, значение которой не должно меняться во время исполнения данного процесса. Их значение настраиваем до запуска бизнес-процесса. Константы добавляются по ссылке Добавить константу на соответствующей закладке. При этом откроется вкладка создания константы. В поле Значение константы указываем, какое значение имеет константа в процессе исполнения бизнес-процесса.

Глобальные константы попадают сразу во все процессы. Создаются аналогично Константам.

Доступ

На закладке Доступ для пользователей задаются начальные права, которые устанавливаются для документа при его запуске. Причем права доступа задаются как явно, так и с помощью переменных.

Особенности назначения прав в системе

Если для документа используется упрощенная (старая) версия прав, то они устанавливаются жестко извне (настройки доступа к инфоблокам/спискам/и т.д.). Единственный вариант, позволяющий устанавливать права прямо из бизнес-процесса - это установка для документа права бизнес-процессы извне (права на сам документ). В этом случае с помощью закладки Доступ или действия Установка прав можно менять права по ходу выполнения процесса.

Если используются расширенные права доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.


Создание шаблона последовательного бизнес-процесса
55 / 363

Посмотрим видеоролик о создании шаблона последовательного бизнес-процесса . Узнаем как использовать визуальный конструктор и настраивать параметры действий.

Видеоурок

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Создание шаблона последовательного БП

При проектировании шаблона последовательного бизнес-процесса после настройки и сохранения его параметров сразу становится доступным визуальный конструктор для конструирования шаблона.

Конструирование шаблона выполняется путем добавления в рабочую область необходимых действий с последующей настройкой их параметров.

Настройка параметров каждого действия осуществляется в специальной форме, открываемой с помощью кнопки [image], причем набор параметров зависит от конкретного действия.

Заполните необходимые поля. Для упрощения процедуры заполнения полей служит кнопка [image], при нажатии которой открывается зависящая от типа поля форма Вставка значения .

Для выбора значения откройте нужную группу, затем выберите необходимое значение и нажмите кнопку Вставить (либо дважды кликнете по выбранному значению). Для вставки нескольких значений необходимо повторно вызвать форму выбора значения. Значение или его код будут подставлены в настраиваемое поле (На иллюстрации выше такой код выделен красной рамочкой).

По окончании настройки параметров действия, сохраните его. Система вернется к созданию (редактированию) шаблона бизнес-процесса.

Когда в шаблон будут добавлены и настроены все необходимые действия, не забудьте сохранить его. Шаблон отобразится в списке всех шаблонов бизнес-процессов.


Создание шаблона бизнес-процесса со статусами
56 / 363

Посмотрим видеоролики о создании шаблона бизнес-процесса со статусами . Мы создадим статусы документа, настроим действия внутри каждого из них, а также сделаем связи между ними.

Видеоуроки

Содержание видеоуроков может отличаться от текущей версии продукта. Более актуальная информация содержится в тексте урока.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Создание шаблона БП со статусами

При проектировании шаблона бизнес-процесса со статусами, после настройки и сохранения его параметров осуществляется переход к конструированию непосредственно самого шаблона в 3 этапа:

  1. Создание необходимых статусов;
  2. Настройка действий внутри каждого статуса и создание связей между статусами;
  3. Настройка прав доступа для статуса.

Создание статусов

Создание статусов выполняется на главной странице построения шаблона бизнес-процесса:

  • Нажмите кнопку Добавить статус для создания нового статуса.

    Важно! Бизнес-процесс всегда начинается с первого созданного статуса. Изменить статус, с которого начинается процесс, в последующем невозможно.

  • В форме создания статуса указывается его название и права доступа к документу (элементу бизнес-процесса).
  • Сохраните статус.

Аналогичным образом добавляются все необходимые статусы .

Настройка действий внутри каждого статуса и создание связей между статусами

После того, как все статусы созданы, следует настроить операции и действия (подпроцессы), которые выполняются в каждом статусе, а также создать связи между статусами.

Для каждого статуса настраивается :

  • Команда , позволяет пользователю вручную запускать подпроцесс. Внешний вид элемента управления, с помощью которого пользователем запускается команда, зависит от места запуска бизнес-процесса и типа документа. Команду используем, например, для определения того, как должен исполняться бизнес-процесс. Или как подпроцесс, который выполняется только при определенных условиях.
  • Выполнение через заданное время - позволяет отложить выполнение подпроцесса на заданное в обработчике время.
  • Обработчик входа в данный статус - отдельный последовательный бизнес-процесс. Всегда выполняется автоматически при входе в данный статус.
  • Обработчик выхода из данного статуса - отдельный последовательный бизнес-процесс. Всегда выполняется автоматически при выходе из данного статуса.

Настройка прав доступа для статуса

По умолчанию бизнес-процесс использует права документа, но в каждом статусе возможно дополнительно указать права, которые будут добавлены к правам документа именно в этом статусе. Рассмотрим пример настройки прав для документа и определенного статуса на основе списков

В настройках списка укажем следующие права доступа: Сотрудники = добавление; Автор = чтение. После такой настройки прав сотрудник сможет добавлять элементы списка и просматривать только свои, но он не сможет видеть текущий статус бизнес-процесса на соответствующей вкладке при детальном просмотре элемента списка.

Примечание: Смысл в том, что права на список и права у бизнес-процесса - это разные права. И по правилам списков (инфоблоков) они "не знают" такой тип пользователя как Автор (это понятие только для бизнес-процессов).

В настройках прав требуемого статуса укажем, что право на чтение имеет Автор. В этом случае права из бизнес-процесса добавятся к правам на список, и произойдет сопоставление понятия Автор с конкретным пользователем и его правами в списке. После такой настройки пользователь сможет просматривать статус бизнес-процесса, когда тот будет находиться в требуемом статусе.

Общая схема работы (Битрикс24)

При входе в статус первым всегда выполняется Обработчик входа в данный статус, если он задан. После выполнения всех внутренних действий статуса бизнес-процесс переходит в режим ожидания. Для дальнейшего продолжения процесса можно воспользоваться подпроцессами Выполнение через заданное время и Команда.

Примечание: если в Обработчике входа в данный статус уже добавлен переход к другому статусу прерывающий выполнение текущего, то после него сразу будет выполняться Обработчик выхода из данного статуса. Подпроцессы Выполнение через заданное время и Команда будут в таком случае пропущены.

Если статус не является конечным, то переход от одного статуса к другому (создание связей) с помощью действия Установить статус , которое должно располагаться внутри подпроцесса, предполагающего такой переход. При выходе из статуса автоматически будет выполнен подпроцесс Обработчик выхода из данного статуса, если он создан.

Небольшой пример настройки статуса

Рассмотрим добавление команды для статуса Черновик:

  • В выпадающем меню для данного статуса выберите пункт Команда. Откроется форма настройки основных параметров команды.
  • Укажите название команды и пользователей, которые могут выполнить данную команду. Если документ должен сменить статус после выполнения команды, то выберите необходимый статус с помощью выпадающего списка. Список статусов формируется из статусов бизнес-процесса.
  • Сохраните параметры команды.

В результате будет создано действие в статусе и связь между статусами.

Поскольку команда - это собственный последовательный бизнес-процесс, то процесс необходимо создать :

  • Кликнете по названию команды. Откроется визуальный конструктор . В конструкторе уже содержится действие Установить статус, так как в ходе выполнения команды происходит смена статуса бизнес-процесса. В схему команды добавьте необходимые вам действия и выполните их настройку. Для возврата на главную страницу создания шаблона бизнес-процесса со статусами служит кнопка Вернуться к настройке статусов.
  • Для настройки действий в каждом статусе повторите описанные выше шаги. Результат:

  • По окончании выполнения необходимых настроек не забудьте сохранить шаблон с помощью кнопки Сохранить, доступной на главной странице со статусами бизнес-процесса.


Пример использования параметров шаблона
57 / 363

Посмотрим, как использовать параметры шаблона

Предположим, мы хотим, чтобы при запуске бизнес-процесса пользователь имел возможность явно указывать сотрудника, которому адресовано почтовое сообщение, отсылаемое в ходе выполнения процесса. Рассмотрим как это реализовать на примере штатного бизнес-процесса Ознакомление с документом.

Настройки

  • В форме Параметры шаблона на закладке Параметры создан параметр Ознакомить типа Пользователь.
  • В действии Почтовое сообщение созданный параметр указан в поле Получатель (с помощью формы Вставка значения , группа Параметры шаблона).

В результате при запуске бизнес процесса у пользователя запрашиваются дополнительные параметры:


Пример: организация обработки и доработки документа
58 / 363

Используем бизнес-процесс со статусами

Рассмотрим пример : бизнес-процесс позволяет утверждать документ в цикле, запрашивать нужную информацию в случае доработки, а также отображает автору и проверяющему комментарии, которые они оставляют при выполнении заданий.

Начальные действия:

  • Создадим 3 статуса: Рассмотрение документа, Доработка, Утвержден.
  • В каждом добавим подпроцесс Вход в статус .

Cтатус Рассмотрение документа

  • Перейдем в статус и добавим действие Утверждение документа . В параметрах действия заполним все обязательные поля . Поле Описание задания пока оставим пустым, мы к нему вернемся позже.
  • Добавим действия Установить статус в каждую ветку утверждения документа, после чего произведем их настройку для статусов Утвержден и Доработка.

Получится такой процесс : в случае если проверяющий сотрудник утвердит документ, то бизнес процесс перейдет в статус Утвержден, иначе - в статус Доработка.

Статус Доработка

  • Перейдем в статус и добавим действие Запрос дополнительной информации . В Поле Описание задания, используя форму Вставка значения , добавим комментарий , который будет оставлен проверяющим после выполнения действия Утверждение документа (Утверждение документа > Комментарий, группа Дополнительные результаты).
  • Вернемся в статус Рассмотрение документа к настройке действия Утверждение документа. В поле Описание задания, используя форму Вставка значения, добавим комментарий, который оставит автор после выполнения действия Запрос дополнительной информации.
  • Добавим действие Установить статус и произведем его настройку для статуса Рассмотрение.

В результате в этом статусе мы получим от автора нужные исправления/комментарии и отправим документ на повторное утверждение.

Статус Утвержден

В этом статусе, например, добавляем действие для оповещения автора о результатах утверждения документа.

В итоге, после всех настроек, наш бизнес процесс со статусами выглядит так:

Дополнительно

Шаблон для ознакомления: Скачать


Экспорт и импорт
59 / 363

Если нужно перенести шаблон

Процесс переноса шаблона с одного проекта на другой достаточно простой. Для этого необходимо воспользоваться кнопками на контекстной панели дизайнера бизнес-процессов .

Перед этим в проекте, куда импортируется шаблон, необходимо создать такие же типы документов (инфоблок/список/и т.д.) как и в проекте, откуда экспортируется шаблон.

Внимание! Нельзя экспортировать шаблон процесса с одним типом документа в процесс с другим. Пример: экспортировать шаблон из CRM в Списки.

Особенности импорта шаблона бизнес-процесса списков
В связи с особенностью работы модуля списков импорт шаблона бизнес-процесса проводят с некоторыми условиями.

Наиболее простой вариант - это изначально создать и настроить список, поля и шаблон бизнес-процесса:

  • Создать пользовательские поля в исходном списке не через интерфейс списков, а прямо через интерфейс конструктора бизнес-процессов;
  • После экспорта шаблона из исходного списка в новый обязательно проверить все действия, где используются пользовательские поля.

Если же пользовательские поля исходного списка были уже ранее созданы через публичный интерфейс самих списков, то импорт нужно проводить по следующей схеме:

  • Создать и настроить новый список также как и исходный;
  • Создать и настроить через публичный интерфейс модуля списков такие же поля, как и в исходном списке;
  • Задать для пользовательских полей и их значений (например, для полей типа список) такие же идентификаторы, как и в исходном списке через административную часть сайта;
  • Импортировать шаблон бизнес-процесса;
  • Обязательно проверить получившийся после импорта шаблон, особенно те действия, где используются пользовательские поля.

При несоблюдении указанных условий шаблон и пользовательские поля могут некорректно импортироваться.


Действия
60 / 363

Последовательный бизнес-процесс строится из набора действий. Каждое действие выполняет определенную функцию и имеет собственные параметры.


Общие моменты
61 / 363

Что общего у большинства действий

Последовательный бизнес-процесс строится из набора действий . Каждое действие выполняет определенную функцию и имеет собственные параметры.

Настройка параметров действия

Настройка параметров действия производится в соответствующей форме, которая вызывается с помощью двойного клика по тексту заголовка действия или с помощью кнопки [image] расположенной на нем.

Общие моменты для большинства действий

  • Поле Заголовок - позволяет задать заголовок действия, который будет отображен в визуальном конструкторе.
  • [Ид] - ссылка, позволяющая просмотреть/изменить уникальный идентификатор действия . Например, его можно использовать при просмотре истории выполнения бизнес-процесса в административной части сайта.
  • Поля выбора пользователей/групп. Пользователя/группу можно выбрать из списка или задать непосредственно вручную. Для этого нужно указать в поле идентификатор в квадратных скобках для пользователя, например [1] или без скобок - для группы пользователей.
  • Поля Описание задания позволяют использовать следующие теги bb-code: [img], [url], [b], [i], [s], [u]. Тег [url] можно использовать и в уведомлениях, например, в поле Текст сообщения действия Сообщение соц.сети .
  • В любых действиях, где есть возможность множественного выбора полей или условий, доступен выбор только из одной сущности. Например, в действии Цикл выход из цикла можно организовать либо по сочетанию группы полей, либо по сочетанию группы условий.

Документация по теме:

  • Создание собственных действий


Обработка документа
62 / 363

В группе собраны действия, связанные с этапами обработки документа.


Публикация на подключенных сайтах
63 / 363

Действие Публикация на подключенных сайтах позволяет опубликовать элемент инфоблока на подключенных сайтах.

Описание Параметров

Тип выбора сайтов - указывается, на каких сайтах будет опубликован элемент инфоблока

  • Все сайты;
  • Сайты принадлежащие определенным группам;
  • Выбранные сайты из одной группы.

Синхронизировать элементы:

  • немедленно - элементы будут синхронизированы немедленно;
  • используя задачи - синхронизация будет происходить с использованием задач .

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие включено только для модуля Инфоблоки.


Создание элемента списка
64 / 363

Действие позволяет создать элемент указанного списка.

Описание параметров

Тип документа - выбор инфоблока создаваемого элемента. В зависимости от выбранного типа будет предложено заполнить необходимые поля.


Запуск бизнес-процесса
65 / 363

Действие выполняет другой шаблон бизнес-процесса.

Параметры

ID документа - идентификатор документа, который запускает бизнес-процесс.

Для запуска бизнес-процесса над элементами CRM синтаксис будет другой:
  1. если процесс для Компании, то COMPANY_{=Document: ID} - запустит БП для этой же компании, LEAD_{=Document: LEAD_ID} - запустит бизнес-процесс для связанного лида;
  2. если процесс для Контакта, то CONTACT_{=Document: ID} - запустит БП для этого же контакта, LEAD_{=Document: LEAD_ID} - запустит бизнес-процесс для связанного лида;
  3. если процесс для Сделки, то DEAL_{=Document: ID} - запустит БП для этой же сделки, LEAD_{=Document: LEAD_ID} - запустит БП для связанного лида, CONTACT_{=Document: CONTACT_ID} - запустит БП для связанного контакта, COMPANY_{=Document: COMPANY_ID} - запустит бизнес-процесс для связанной компании;
  4. если процесс для Лида, то LEAD_{=Document: ID} - запустит бизнес-процесс для этого же лида.

Сущность - какой элемент запускает бизнес-процесс.

Тип документа

Шаблон - шаблон запускаемого бизнес-процесса.

Ожидать завершения бизнес-процесса - бизнес-процесс будет ожидать выполнения запущенного действия и только потом продолжит свое исполнение.


Создание нового документа
66 / 363

Действие позволяет создать новый документ с заданными параметрами.

Описание Параметров

В зависимости от типа документа, поля могут отличаться.

Например, для бизнес-процесса в инфоблоках в качестве документа будет создан новый элемент инфоблока. Соответственно поля в форме настройки параметров действия будут аналогичны полям в форме создания элемента инфоблока для конкретного типа инфоблоков.


Удаление документа
67 / 363

Действие удаляет документ, запустивший бизнес-процесс.


Блокировка документа
68 / 363

Действие блокирует документ, чтобы другие процессы не смогли произвести в него запись. Таким образом сохраняется целостность данных - несколько бизнес-процессов не смогут одновременно изменить документ и сохранить его.

Блокировка продлится до завершения текущего бизнес-процесса либо пока не выполнится действие Разблокировка

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.


Публикация документа
69 / 363

Действие переводит документ в статус опубликован.

Актуально в коробочной версии для бизнес-процессов, запущенных на инфоблоках.


Сохранение истории документа
70 / 363

Действие позволяет создать слепок документа с внесенными на момент запуска действия изменениями. Доступно автоматическое задание названия копии с настройками параметров.

Описание Параметров

Название записи в историю - указывается название версии документа, под которым он будет сохранен в истории. Это позволит отличить его от других версий.

Оставьте поле пустым для того, чтобы название бралось из документа.

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.


Изменение документа
71 / 363

Действие изменяет указанные поля документа.

Выберите поле документа, которое вы хотите изменить, и введите новое значение. Чтобы изменить несколько полей нажмите Добавить условие.

Ссылка Добавить поле создает новое поле в документе.

Пример: Для документов типа инфоблоки это приведет к созданию дополнительных полей элемента инфоблока .


Разблокировка документа
72 / 363

Действие разблокирует документ для других бизнес-процессов.

Примечание: Если не разблокировать документ, то он будет недоступен для других действий бизнес-процесса.

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модуля Диск.


Снятие документа с публикации
73 / 363

Действие снимает документ с публикации.

Противоположно действию Публикация документа .


Задания
74 / 363

В группе содержатся действия, создающие задания бизнес-процессов для пользователей.


Утверждение документа
75 / 363

Действие позволяет произвести утверждение документа , для которого запущен бизнес-процесс. В зависимости от результата (утвержден документ или нет) возможны 2 варианта развития дальнейших действий.

Описание параметров

Утверждают сотрудники - указываются пользователи, которые должны утвердить документ.

Тип утверждения:
  • Все сотрудники - утвердить должны все пользователи указанные выше;
  • Любой сотрудник - утвердить должен любой из пользователей, указанных выше;
  • Голосование сотрудников - утверждение производится методом голосования среди указанных выше пользователей.
    дополнительные поля
    Для варианта Голосование сотрудников доступны поля Более скольки процентов голосов необходимо для принятия решения и Ожидать, чтобы проголосовали все указанные сотрудники.
    Последнее поле можно использовать для автоматизации передавая в него значения Y или N. Если выбран вариант да, то действие будет ожидать, пока не проголосуют все указанные выше сотрудники. Если выбран вариант нет, то действие будет ожидать, пока не наберется указанный процент голосов.

Название задания - задается название, которое будет отображаться в интерфейсе для пользователей.

Описание задания - указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницы в случае нескольких однотипных действий.

Устанавливать текст статуса - позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса - задается текст статуса.

Модификаторы
Можно использовать следующие модификаторы в тексте статуса: #PERCENT# - процент, #VOTED# - ознакомлено человек, #TOTAL# - всего должно быть ознакомлено, #APPROVERS# - список утвердивших, #REJECTERS# - список отклонивших.

Текст кнопки подтверждения в задании и Текст кнопки отказа в задании позволяют задать собственный текст для соответствующих кнопок.

Показывать поле ввода комментария - опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо замечания касаемо утверждаемого документа. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значения - Дополнительные результаты (см. ниже).

Обязательность комментария - опция позволяет назначить добавление комментария при выполнении действия обязательным. Можно включить обязательность комментария только для утверждения или отклонения документа.

Метка для поля комментария - подпись для поля с комментарием.

Период утверждения - Можно задать период, за время которого, если документ не будет утвержден либо отклонен, то документ будет автоматически отвергнут. Пустое значение или 0 - отсутствие периода.

Ограничить доступ - делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

Примечание: При выполнении задания по утверждению несколькими сотрудниками в публичной части история изменения документа, включая комментарии других утверждающих, будет отображена в зависимости от прав на документ.

Например
Eсли в Списке для определенной группы пользователей задать право только на добавление, то историю изменения (и комментарии соответственно), пользователь этой группы при выполнении задания не увидит:

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно следующее:

  • Комментарий;
  • Сколько проголосовало;
  • Сколько должно проголосовать;
  • Процент проголосовавших;
  • Процент утвердивших;
  • Процент отклонивших;
  • Количество утвердивших;
  • Количество отклонивших;
  • Последний голосовавший;
  • Утвердили пользователи;
  • Утвердили пользователи (текст) - получение списка пользователей;
  • Отклонили пользователи;
  • Отклонили пользователи (текст)- получение списка пользователей;
  • Автоматическое отклонение - поле будет содержать 1, если документ был автоматически отклонен (см. Период утверждения).


Запрос доп.информации (с отклонением)
76 / 363

Действие создаст задание, в ходе которого, у пользователя (или пользователей) запрашивается дополнительная информация, необходимая для выполнения бизнес-процесса. В отличие от стандартного действия Запрос дополнительной информации , пользователь имеет возможность отклонить ввод информации.

Описание параметров

Заполняют сотрудники - указываются пользователи, один из которых ( первый , кто приступит к его выполнению) должен указать дополнительную информацию.

Название задания - задается название, которое отобразится в интерфейсе для пользователей.

Описание задания - указывается описание или пояснения к заданию. Содержимое данного поля отобразится в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницы в случае нескольких однотипных действий.

Текст кнопки в задании - позволяет задать собственный текст для кнопки, соответствующей вводу информации.

Текст кнопки отклонения в задании - позволяет задать собственный текст для кнопки, соответствующей отклонению ввода информации.

Тип отклонения - указывается принцип, по которому будет проводиться отклонение ввода информации:

  1. Все сотрудники - запрос информации будет проводиться, пока все указанные сотрудники его не отклонят;
  2. Любой сотрудник - при первом же отклонении каким-либо сотрудником, другие сотрудники запросы не получают.

Показывать поле ввода комментария - опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значения - Дополнительные результаты (см. ниже).

Обязательность комментария - опция позволяет назначить добавление комментария при выполнении действия обязательным.

Метка для поля комментария - подпись для поля с комментарием.

Устанавливать текст статуса - позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса - задается текст статуса.

Период ожидания информации: По окончании периода задание будет автоматически завершено. Пустое значение или 0 - отсутствие периода. - позволяет установить время , в течение которого действие будет ожидать выполнения.

Ограничить доступ - делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

Раздел Поля позволяет добавить собственные поля, которые будет необходимо заполнить пользователям в ходе выполнения задания. Содержимое полей после выполнения действия можно получить в форме Вставка значения - Переменные.

Переменные и результаты

Переменные

В этом разделе можно получить содержимое дополнительных полей, созданных в разделе Поля.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • Комментарий.
  • Автоматическое завершение.
  • Пользователь, предоставивший информацию.


Запрос дополнительной информации
77 / 363

Действие создает задание, в ходе которого у пользователя будет запрошена дополнительная информация необходимая для выполнения бизнес-процесса.

Описание параметров

Заполняют сотрудники - указываются пользователи, один из которых ( первый кто приступит к его выполнению) должен указать дополнительную информацию.

Название задания - задается название, которое будет отображаться в интерфейсе для пользователей.

Описание задания - указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницу в случае нескольких однотипных действий.

Текст кнопки в задании - позволяют задать собственный текст для соответствующей кнопки.

Показывать поле ввода комментария - опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значения - Дополнительные результаты (см. ниже).

Обязательность комментария - опция позволяет назначить добавление комментария при выполнении действия обязательным.

Метка для поля комментария - подпись для поля с комментарием.

Устанавливать текст статуса - позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса - задается текст статуса.

Период ожидания информации: По окончании периода задание будет автоматически завершено. Пустое значение или 0 - отсутствие периода. - позволяет установить время, в течение которого действие будет ожидать выполнения.

Ограничить доступ - делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

Раздел Поля позволяет добавить собственные поля, которые будет необходимо заполнить пользователям в ходе выполнения задания.

Содержимое полей после выполнения действия можно получить в форме Вставка значения - Переменные.

Переменные и результаты

Переменные

В этом разделе можно получить содержимое дополнительных полей, созданных в разделе Поля.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • Комментарий.
  • Автоматическое завершение.
  • Пользователь, предоставивший информацию.
  • Измененные поля.


Ознакомление с документом
78 / 363

Действие позволяет создать для выбранных пользователей задание по ознакомлению с документом и возможностью оставить отзыв на него. В ходе выполнения задания ведется вычисление процента ознакомившихся.

Описание параметров

Ознакомить пользователей - указываются пользователи, которые должны ознакомиться с документом.

Название задания - задается название, которое будет отображаться в интерфейсе для пользователей.

Описание задания - указывается описание или пояснения к заданию. Содержимое данного поля будет отображаться в интерфейсе для пользователей. Рекомендуется в этом поле указывать полную информацию о действии, которое необходимо выполнить пользователю. Это поможет избежать путаницу в случае нескольких однотипных действий.

Должны ознакомиться:

  • Все сотрудники - задача не будет выполнена пока с документом не ознакомятся все пользователи, указанные выше;
  • Любой сотрудник - с документом должен ознакомиться любой из пользователей, указанных выше.

Устанавливать текст статуса - позволяет изменить текст статуса документа на произвольный. Это может, например, позволить отслеживать на каком этапе сейчас находится бизнес-процесс.

Текст статуса - задается текст статуса.

Модификаторы
Можно использовать следующие модификаторы в тексте статуса: #PERCENT# - процент, #REVIEWED# - ознакомлено человек, #TOTAL# - всего должно быть ознакомлено, #REVIEWERS# - кто ознакомлен.

Текст кнопки в задании - позволяют задать собственный текст для соответствующей кнопки.

Показывать поле ввода комментария - опция позволяет разрешить пользователям оставлять собственные комментарии к назначенному заданию. Например, какие-либо примечания касаемо задания. Содержимое поля можно получить после выполнения действия с помощью соответствующей опции в форме Вставка значения - Дополнительные результаты (см. ниже).

Обязательность комментария - опция позволяет назначить добавление комментария при выполнении действия обязательным.

Метка для поля комментария - подпись для поля с комментарием.

Период ознакомления - можно задать период, если до окончания которого пользователи не будут ознакомлены с документом, то задание по ознакомлению будет автоматически завершено. Пустое значение или 0 - отсутствие периода.

Ограничить доступ - делает текст задания видимым только для исполнителя задания и не показывает его в живой ленте. Это очень полезная опция, если нужно, например, передать исполнителю конфиденциальную информацию: пароли, пин-коды и т.п.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно следующее:

  • Комментарий;
  • Сколько ознакомлено;
  • Сколько должно быть ознакомлено;
  • Автоматическое ознакомление - поле будет содержать 1, если задание по ознакомлению было автоматически завершено (см. Период ознакомления);
  • Последний ознакомившийся - ID последнего пользователя ознакомившегося с документом.


Конструкции
79 / 363

В группе собраны управляющие конструкции.


Команда
80 / 363

Действие, выполнение которого зависит от пользователей . Для них будет создан соответствующий элемент управления.

Команду можно использовать и отдельно, но тогда нужно будет оповестить пользователя, например, с помощью сообщения соц. сети , что ему необходимо выполнить эту команду. Тип и вид элемента управления зависит от документа и места, где был запущен бизнес-процесс.

Описание Параметров

Выполнить команду могут - позволяет ограничить круг пользователей, которым будет доступна эта команда.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон:

  • Пользователь, отправивший команду.

Пример использования действия

В данном примере, после выполнения блока действий, бизнес процесс остановится и будет ждать, пока пользователь с помощью команды не решит, по какой ветке будут развиваться события.


Условие
81 / 363

Конструкция позволяет направить бизнес-процесс по разным сценариям в зависимости от заданных условий.

Проверка условий начинается слева направо. Если условие выполняется, то действия, расположенные в ветке под ним, будут исполнены. Если же какое-либо условие не выполняется, то будет произведен переход к условию, расположенному правее и так до тех пор, пока какое-либо условие не будет выполнено.

Тип условия - PHP код

В качестве условия указывается код . В случае если указанный PHP код вернет значение true, то будет выполнена ветка действий условия, если возвратится false, то будет произведен переход к следующему условию.

Внимание! Для этого типа условия можно использовать только PHP-код. Параметры типа {=Variable:Variable2_printable} не поддерживаются. Также результатом выполнения кода в условии должно быть логическое выражение (true или false).

Тип условия - Поле документа

Ветка действий условия будет выполнена, если совпадут параметры, связанные с полями документа.

Тип условия - Значение переменной

Ветка действий условия будет выполнена , если совпадут параметры, связанные с переменными бизнес-процесса.

Тип условия - Истина

Ветка действий будет выполнена сразу. Это условие выполняется всегда.

Тип условия - Было изменено

Если бизнес-процесс запускается при изменении документа, то есть возможность определять внутри него измененные поля. Ветка условий будет выполняться , если в поле были внесены какие-то изменения.

Как настроить этот тип условия (для разработчика)
Для того, чтобы можно было использовать данный тип условия, нужна реализация на стороне модуля, который работает с процессом. При старте процесса необходимо передавать массив изменившихся полей через параметр CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS:
CBPDocument::StartWorkflow(
   $arDocumentState["TEMPLATE_ID"],
   BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]),
   array_merge($arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], array(
      CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()),
      CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS => $modifiedFields
   )),
   $arErrorsTmp
);

А для того, чтобы новое условие появилось в редакторе для настройки, необходимо реализовать в документе его поддержку:

public static function isFeatureEnabled($documentType, $feature)
{
   return in_array($feature, array(\CBPDocumentService::FEATURE_MARK_MODIFIED_FIELDS));
}

Внимание! Если ни одно из условий не выполнится, то, бизнес-процесс продолжит выполнять действия расположенные под конструкцией Условие. Другими словами он ее "перескочит".

Объединение условий

Для типов условия Поле документа и Значение переменной возможно объединять условия по правилу И / ИЛИ. При выборе И ветка условий будет исполняться при выполнении обоих условий, а при ИЛИ - любое из указанных.


Параллельное ожидание действия
82 / 363

Конструкция позволяющая направить бизнес-процесс по разным сценариям в зависимости от того, какое из событий наступит раньше.

Для выбора ветки действий в этой конструкции первыми должны быть обязательно использованы действия Команда или Пауза .Другими словами, какое из этих действий в разных ветках произойдет раньше, то нижележащая цепочка того и будет выполнена.

Действие Пауза позволяет продолжить выполнение бизнес-процесса через определенное время в случае, если ни одна из команд не будет выполнена. Иначе бизнес-процесс просто остановится и будет ожидать выполнения какой-либо команды внутри конструкции.


Параллельное выполнение
83 / 363

Конструкция, позволяющая выполнять параллельные сценарии бизнес-процесса.

Если какая-либо из веток внутри конструкции не будет выполнена, то бизнес-процесс остановится и будет ожидать ее исполнения. Пример использования: параллельное ознакомление с документом разных групп пользователей.


Установить статус
84 / 363

Действие позволяет перевести бизнес-процесс в другой статус , которое доступно только для бизнес-процессов со статусами.

В действии также доступна опция Прервать выполнение текущего статуса, которая позволяет немедленно перейти к новому статусу, не дожидаясь полной отработки предыдущего.


Итератор
85 / 363

Действие позволяет организовать обработку множественной переменной. С помощью него можно создать цикл действий, которые будут выполняться с очередным её значением.

В настройках действия укажите переменную , с которой вы планируете работать.

После этого можно легко организовать выполнение целого ряда однотипных действий со всеми значениями множественной переменной. Например, у вас имеется переменная с типом Пользователь, представляющая собой список сотрудников. И вы хотите создать последовательно каждому из них задачу. Укажите в настройках Итератора переменную со списком, а в сам цикл добавьте действие Задача.

Обратите внимание! Для того, чтобы каждый раз в цикле использовать очередное значение переменной, нужно использовать пункт Значение из Дополнительных результатов Итератора.


Цикл
86 / 363

Конструкция выполняет свои поддействия до тех пор, пока выполняется заданное условие.

Другими словами цикл работает пока условие истино (true), иначе (false) происходит выход из цикла.

Тип условия - PHP код

В качестве условия указывается код .

В случае если указанный PHP код вернет значение true, то цикл продолжит работу, если возвратится false, то будет произведен выход из цикла.

Тип условия - Поле документа

Цикл будет продолжать свою работу, пока совпадают параметры, связанные с полями документа.

Тип условия - Значение переменной

Цикл будет продолжать свою работу, пока совпадают параметры , связанные с переменными бизнес-процесса.

Тип условия - Истина

В этом случае цикл будет выполняться всегда

Внимание! Для облачной версии Битрикс24 количество итераций цикла ограничено 1000.

Дополнительно

Пример использования цикла для утверждения документа


Уведомления
87 / 363

В группе собраны все виды уведомления о событии.


График отсутствия
88 / 363

Действие позволяет добавить событие в график отсутствия.

Внимание! Действие относится к продукту Корпоративный портал и работает только там.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Пользователь - указывается пользователь, для которого будет занесено событие в график отсутствия.


Информационный звонок
89 / 363

Действие позволяет совершить информационный звонок на указанный номер.

Внимание! Действие работает только при работающей телефонии.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Номер абонента - указывается конкретный номер или строковое поле в документе, в котором указан номер телефона.

Ожидать результата - Приостановить или нет действие Бизнес-процесса пока не будет завершено выполнение информационного звонка.


Календарь
90 / 363

Действие позволяет добавить событие в календарь.

Примечание: Данное действие устарело и используется только со старой версией календарей, которые не используют модуль Календарь событий. Для текущей версии календаря следует использовать действие Событие календаря .

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Пользователь - указывается пользователь, для которого будет создано событие в календаре.


Событие календаря
91 / 363

Действие позволяет добавить событие в календарь (используется для модуля Календарь событий).

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Тип календаря (не обязательное) - задается тип календаря, в котором будет создано событие .

Доступные типы календарей можно посмотреть в настройках модуля (Настройки > Настройки продукта > Настройки модулей > Календарь событий, закладка "Типы календарей").

ID владельца календаря (не обязательное) - указывается идентификатор владельца календаря. В случае создания события в календаре группы указывается ее идентификатор (см. пример ниже).

Примечание: Данное поле актуально, только если Тип календаря не равен user.

Пользователь - указывается пользователь, для которого будет создано событие в календаре.

Пример:
Для создания события в группе (которая, например, имеет адрес http://site_domen/workgroups/group/5/), помимо основных полей, необходимо заполнить поля следующим образом:
  • Тип календаря (не обязательно): group
  • ID владельца календаря (не обязательно): 5

Внимание! Получить значение поля ID секции календаря (не обязательно) можно из базы данных, из исходного кода страницы или из анализа AJAX запроса. Поэтому данное поле лучше заполнять программисту.


Уведомление пользователя
92 / 363

Действие позволяет отправлять сообщения на сайт /XMPP/e-mail .

Описание Параметров

Текст уведомления для сайта - задается текст сообщения, который будет отображаться в качестве уведомления на сайте, если пользователь не использует XMPP.
Для текста доступно форматирование BBCode ([b], [i], [s], [u], [url]).

Текст уведомления для email/jabber - задается текст сообщения для e-mail/XMPP, который будет отправлен, если пользователь не авторизован на сайте. Текст сообщения можно задать как отличный от текста уведомления для сайта, так и такой же, оставив для этого поле пустым.

Тип уведомления - позволяет указать от кого придет сообщение: от конкретного человека или же это будет системное сообщение.


Почтовое сообщение
93 / 363

Действие позволяет отослать уведомление о событии на e-mail, указанный в настройках действия.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Тип сообщения - указывается, как будет отправлено сообщение: в виде текста или с использованием html.

Кодировка - Задается кодировка отправляемого сообщения.

Способ отправки - выбирается способ отправки сообщения:

  • Прямая отправка - сообщение будет отправлено сразу ;
  • Отправка через систему сообщений - сообщение будет отправлено через встроенную почтовую систему. Отправка может произойти не сразу .

Сайт шаблона сообщения - указывается сайт шаблона сообщения для отправки его через встроенную почтовую систему. На разных сайтах могут быть разные шаблоны почтовых сообщений .

Вложение - позволяет добавить к письму документы, хранящиеся в полях, параметрах либо переменных типа Файл или Файл (Диск).

Разделитель почтовых адресов - указывается символ, которым можно разделить почтовые адреса получателей при групповой рассылке.


Установить текст статуса
94 / 363

Действие позволяет изменить текст статуса документа, что облегчает отслеживание состояния документа в общем списке бизнес-процессов во время выполнения бизнес-процесса. Также в большинстве случаев статус можно посмотреть, перейдя к детальному просмотру документа, для которого запущен бизнес-процесс.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.


Сообщение соц.сети
95 / 363

Действие, которое позволяет отправить уведомление о событии указанному пользователю/группе пользователей через модуль социальной сети.

Если пользователь не активен в течение 10 минут, то сообщение будет отправлено на почту.

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.


Контроль
96 / 363

Действие позволяет отправить уведомление руководителю ответственного за сущность менеджера.

Примечание: данное действие доступно для Сделок и Лидов в бизнес-процессах в CRM.

Параметры действия

Текст сообщения - текст уведомления, отправляемого руководителю.

Отправить руководителю - выбирать ли непосредственного начальника ответственного менеджера, согласно структуре компании.

Дополнительные получатели - дополнительные пользователи, которым будет отправлено уведомление. Если руководителем не является непосредственный начальник, то здесь указывается кому нужно отправить уведомление.


Задача
97 / 363

Действие позволяет создать задачу .

Описание Параметров

Настройка параметров действия аналогична созданию новой задачи в публичной части сайта .

Остановить процесс на время выполнения задачи - при отмеченной опции бизнес-процесс будет остановлен до тех пор, пока созданная задача не перейдет в статус Завершена.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID задачи;
  • Дата завершения задачи;
  • Пользователь, закрывший задачу.


Сообщение в живую ленту
98 / 363

Действие позволяет отправлять сообщения в Живую ленту указанному пользователю или группе пользователей.

Описание параметров

Автор - от чьего имени будет размещена запись в Живой ленте.

Внимание! Если вдруг в этом поле окажется несколько авторов, то автором записи будет тот, кто указан в поле первым.

Получатели - пользователи, группы пользователей или отделы, в чьих живых лентах будет размещена создаваемая запись.

Тема сообщения - с какой темой будет размещено сообщение.

Текст сообщения - содержание сообщения. Для сообщения поддерживается работа с BB-кодами.

Целевой сайт - в Живой ленте какого сайта публиковать данное сообщение.


Диск
99 / 363

В группе собраны действия для работы с объектами диска.


Детально об объекте Диска
100 / 363

Действие позволяет получить детальную информацию об объекте. Полученная информация используется в качестве дополнительных результатов для других действий.

Описание параметров

Исходный объект - файл или папка на диске, информацию о которых необходимо получить.

Папка или файл Диска - можно указать дополнительные данные для действия, например ID ранее созданной папки.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • Тип объекта;
  • Название;
  • Размер в байтах;
  • Размер (форматированное);
  • URL для просмотра;
  • URL для загрузки.


Загрузить в Диск
101 / 363

Действие загружает файл в хранилище Диска.

Описание параметров

Куда загрузить - куда именно нужно загрузить файл. Возможны следующие варианты:

  • Диск пользователя - в этом случае так же указывается и пользователь, в диск которого будет загружаться файл;
  • Диск группы соцсети - файл будет загружен в диск указанной группы;
  • Общий диск - файл будет загружаться в выбранный общий диск;
  • Папка диска - файл будет загружен в папку на Диске.

Файл для загрузки - необходимо указать сам загружаемый файл;

Загружать от имени - от чьего имени будет загружен файл на диск.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID файлов Диска;
  • URL для просмотра;
  • URL для загрузки.


Удалить объект Диска
102 / 363

Действие удаляет объект Диска.

Описание параметров

Исходный объект - файл или папка, которые должны быть удалены;

Папка или файл Диска - можно указать дополнительные данные для действия, например ID ранее созданной папки;

Удалять от имени - от чьего имени будет удален файл.


Копировать/Переместить в Диске
103 / 363

Действие позволяет копировать элементы или перемещать их в Диске.

Описание параметров

Исходный объект - файл или папка, которые будут скопированы;

Папка или файл Диска - можно указать дополнительные данные для действия, например ID созданной ранее папки;

Тип операции - какая операция будет производиться: Перемещение или Копирование.

Куда - куда будет произведено копирование/перемещение. Возможны следующие варианты:

  • Диск пользователя - в этом случае так же указывается и пользователь в, диск которого будет загружаться файл;
  • Диск группы соцсети - файл будет загружен в диск указанной группы;
  • Общий диск - файл будет загружаться в выбранный общий диск;
  • Папка диска - необходимо указать папку, в которую будет загружен файл.

Выполнять от имени - от чьего имени будет выполняться операция.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID объектов Диска;
  • URL для просмотра;
  • URL для загрузки.


Загрузить новую версию в Диск
104 / 363

Загружает новую версию документа на Диск.

Описание параметров

Файл Диска - файл на диске, который будет обновлен;

Файл для загрузки - новая версия обновляемого файла на диске;

Загружать от имени - от чьего имени будет произведено обновление.


Создать папку в Диске
105 / 363

Действие создает папку в Диске.

Описание параметров

Где создать - где будет создана папка. Возможны следующие варианты:

  • Диск пользователя - в этом случае также указывается и пользователь, в диск которого будет загружаться файл;
  • Диск группы соцсети - файл будет загружен в диск указанной группы;
  • Общий диск - файл будет загружаться в выбранный общий диск;
  • Папка диска - необходимо указать папку, в которую будет загружен файл.

Название папки - как будет называться созданная папка;

Создатель папки - от чьего имени будет создана папка.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • ID папки Диска;
  • URL папки.


CRM
106 / 363
В группе собраны действия для работы с CRM.


Создание новой компании
107 / 363

Действие аналогично действиям в публичной части CRM по созданию новой компании.

Примечание: если при создании элемента появляются неописанные поля, то это заведенные на портале пользовательские поля .


Создание нового контакта
108 / 363

Действие аналогично действиям в публичной части CRM по созданию нового контакта .

Примечание: если при создании элемента появляются неописанные поля, то это заведенные на портале пользовательские поля


Реклама Яндекс
109 / 363

Добавляет email и телефонные номера в рекламный сегмент Яндекс.Аудитории.

Важно! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в CRM в разделе Автоматизация .


Сменить ответственного
110 / 363

Действие позволяет сменить ответственного за сущность, на которой был запущен бизнес-процесс.

Параметры действия

Новый ответственный - указывается новый ответственный за сущность.


Создать на основании
111 / 363

Действие позволяет создать новую сделку на основании лида .

Параметры действия

Создать на основании - выбирается тип сущности, который будет создан на основании лида (пока что доступно только создание сделки).

Направление сделки - указывается направление создаваемой сделки.


Выбор данных crm
112 / 363

Действие позволяет получить значения полей некоторой сущности. Выбранные поля будут доступны в форме Вставки значения во вкладке Дополнительные результаты.

Параметры действия

ID сущности - уникальный идентификатор.

Тип сущности - для каких типов записей (Контакты, Лиды, Сделки, Компании) будет осуществляться выборка полей.

Выберите поля - укажите, какие из полей будут выбраны.

Версия для печати - укажите эту опцию, если вы хотите получить значения полей в форме, понятной человеку.


Задание
113 / 363

Действие создает дело для ответственного менеджера.

Параметры действия

Тема - название создаваемого дела.

Описание - подробная информация о содержании дела.

Ответственный - менеджер, отвечающий за создаваемое дело.

Важное дело - указать для дела повышенную важность. Важные дела в списке дел помечаются значком [image].

Автоматически завершать дело при переходе в другой статус - при выборе данной опции дело будет считаться завершенным, как только статус Лида/Сделки изменится.


Ожидание статуса лида
114 / 363

Действие приостанавливает выполнение бизнес-процесса, пока не будет достигнут указанный статус лида.

Описание параметров

ID лида - идентификатор лида.

Статус - укажите статус, по достижении которого процесс продолжит свое выполнение.


Отправить SMS
115 / 363

Действие позволяет отправить SMS клиенту.

Параметры действия

Текст сообщения - что будет отправлено клиенту.

Провайдер - с помощью какого провайдера нужно отправить сообщение. Провайдера необходимо установить через Маркетплейс.


Реклама Вконтакте
116 / 363

Добавляет e-mail и телефонные номера в рекламную аудиторию Вконтакте.

Важно! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в CRM в разделе Автоматизация .


Реклама Google AdWords
117 / 363

Добавляет e-mail и телефонные номера в рекламную аудиторию Google AdWords.

Важно! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в CRM в разделе Автоматизация .


Реклама Facebook
118 / 363

Добавляет e-mail и телефонные номера в рекламную аудиторию Facebook.

Важно! Роботы рекламы не настраиваются через дизайнер бизнес-процессов. Они настраиваются отдельно в CRM в разделе Автоматизация .


Отправить письмо
119 / 363

Действие позволяет отправить письмо клиенту.

Параметры действия

Тема - тема письма.

Текст письма - текст письма.


Запланировать звонок
120 / 363

Действие позволяет запланировать звонок клиенту.

Описание параметров

Тема - название события.

Дата начала - дата и время начала звонка.

Дата завершения - дата и время завершения звонка.

Описание - детальное описание назначения звонка.

Напомнить за - количество единиц времени, за которое будет выслано уведомление.

Интервал напоминания - выбор единиц времени.

Ответственный - сотрудник, ответственный за звонок клиенту.

Важное дело - указать высокую важность события.


Запланировать встречу
121 / 363

Действие позволяет запланировать встречу с клиентом.

Описание параметров

Тема встречи - название события.

Дата начала - дата и время начала встречи.

Дата завершения - дата и время завершения встречи.

Описание - детальное описание создаваемой встречи.

Место - место проведения встречи.

Напомнить за - количество единиц времени, за которое будет выслано уведомление.

Интервал напоминания - выбор единиц времени.

Ответственный - сотрудник, ответственный за встречу с клиентом.

Важное дело - указать высокую важность события.


Создание новой сделки
122 / 363

Действие аналогично действиям в публичной части CRM по созданию новой сделки.

Примечание: если при создании элемента появляются неописанные поля, то это заведенные на портале пользовательские поля .


Сменить статус
123 / 363

Действие позволяет сменить статус лида или сделки и немедленно прервать исполнение процесса.

Параметры действия

Изменить на статус - какой статус для записи нужно установить.


Создание нового лида
124 / 363

Действие аналогично действиям в публичной части CRM по созданию нового лида .

Примечание: если при создании элемента появляются неописанные поля, то это заведенные на портале пользовательские поля .


Запись события в crm
125 / 363

Действие позволяет создать запись события в CRM .

Действие выполняется только в контексте бизнес-процессов, работающих в CRM.


Ожидание стадии сделки
126 / 363

Действие приостанавливает выполнение бизнес-процесса пока не будет достигнута указанная стадия сделки.

Описание параметров

ID сделки - ID сделки. Для удобства можно использовать Форму вставки значения.

Стадия - нужно указать стадию, по достижении которой процесс продолжит свое выполнение.

Действие выполняется только в контексте бизнес-процессов, работающих в CRM.


Прочее
127 / 363

В группе собраны все остальные команды.


PHP код
128 / 363

Действие позволяет выполнить произвольный PHP код .

Внимание! Данное действие доступно только для коробочной версии «Битрикс24».

Описание Параметров

Смысл большинства полей ясен из их названия, поэтому их описание будет пропущено.

Примеры использования

Примечание: Код нужно указывать без открывающих и закрывающих тегов (<?, ?>).

Важно! Не рекомендуется использовать в теле кода выражения типа {=...}. Они могут содержать параметры, которые может изменить любой пользователь портала, даже не имеющий необходимых прав.
Например, вместо конструкции {=Variable:COMPANY_NAME} лучше использовать $root->GetVariable('COMPANY_NAME').

1. Установка значения переменной

$this->SetVariable('Variable1', 12345);

где:

Variable1 - идентификатор переменной, которой будет присвоено значение (число 12345).

2. Запись нескольких пользователей в переменную типа "Пользователь"

$this->SetVariable("user", array("user_1", "user_2"));

где:

array("user_1", "user_2") - массив пользователей в формате user_[идентификатор_пользователя_в_системе].

3. Использование php-кода и значений полей/переменных для получения названия элемента инфоблока

$arFilter = Array("IBLOCK_ID" => {=Variable:Variable1_printable}, "ID" => {=Document:PROPERTY_1});
$dc = CIBlockElement::GetList(array(), $arFilter, array("NAME"));
$br = $dc->Fetch();
$Pbrr = $br["NAME"];
$this -> SetVariable('Variable2', $Pbrr);

где:

{=Variable:Variable1_printable} - значение переменной, в которой содержится идентификатор инфоблока;
{=Document:PROPERTY_1} - поле документа, содержащее идентификатор элемента инфоблока;
Variable2 - идентификатор переменной, которой будет присвоено вычисленное название элемента инфоблока.

4. Преобразование формата поля документа и дальнейшее его использование

Рассмотрим пример преобразования поля документа Пользователь в понятную форму для того, чтобы использовать его при отправке сообщения:

  1. В шаблоне бизнес процесса следует создать переменную для хранения преобразованного значения поля документа;
  2. Укажем в действии PHP-код приблизительно следующее:
    $rsUser = CUser::GetByID({=Document:PROPERTY_USER});
$arUser = $rsUser->Fetch();
$this->SetVariable('#Имя_переменной#', $arUser[NAME].' '.$arUser[SECOND_NAME].' '.$arUser[LAST_NAME]);
  3. После чего в блоке, используемом для уведомления, необходимо уже использовать вывод данной переменной вместо поля документа.

Документация по теме:

  • Произвольный PHP код в бизнес-процессе
  • Добавление информации в инфоблок из бизнес-процесса


Пауза в выполнении
129 / 363

Действие позволяет отложить выполнение следующего действия на заданное время.

Описание Параметров

Режим:

  • Промежуток - указывается промежуток времени, через который продолжится выполнение бизнес-процесса;
  • Время - указывается конкретное время возобновления бизнес-процесса.

Примечание: Если в режиме Время, на момент выполнения действия, указанная дата имеет место в прошлом (например был указан прошлый год, а действие начало выполняться в текущем), то будет произведен автоматический переход к следующему за "паузой в выполнении" действию. Другими словами процесс "перескочит" через него.


Блок действий
130 / 363

Блок действий предназначен для группировки набора действий в один блок, который можно свернуть для экономии места.

Обратите внимание на это действие. Оно позволяет существенно сэкономить трудозатраты на типовых блоках действий при создании шаблона бизнес-процесса. Однажды созданный и настроенный блок действий можно сохранить в группе Мои действия и многократно использовать.


Выбор сотрудника
131 / 363

Действие позволяет в автоматическом режиме выбрать сотрудника для дальнейшего использования его в процессе.

Описание Параметров

Тип:

  • случайный - выбор обычного сотрудника случайным образом;
  • начальник - выбор начальника для указанного сотрудника.

Из пользователей - указываются пользователи или группы, из которых будет выбран один сотрудник.

Для пользователя - указывается пользователь, для которого будет выбран начальник.

Уровень начальника (чем больше, тем выше уровень) - выбирается уровень начальника для указанного пользователя.

Резервные пользователи - Указываются пользователи, которые будут выбраны в случае невозможности выбора из основных пользователей, указанных выше. Например, если указанная в поле Из пользователей группа не содержит сотрудников, то будет выбран кто-то из резервных пользователей.

Пропускать отсутствующих - позволяет автоматически пропускать отсутствующих сотрудников, например, если они в отпуске.

Пропускать с завершенным рабочим днем - позволяет автоматически пропускать сотрудников, завершивших рабочий день.

Подробнее про ситуацию с отсутствующим сотрудником/начальником

Если невозможно выбрать основного начальника (например, в случае отпуска) и опция Пропускать отсутствующих равна Да, то действие автоматически продолжит выбирать начальника, но уже более высокого уровня. Если будет недоступен и начальник самого верхнего уровня, то выбор будет производиться уже из сотрудников, указанных в поле Резервные пользователи.

Если опция Пропускать отсутствующих равна Нет, то действие завершится и, независимо от отсутствия, будет выбран начальник соответствующего уровня.

Если все начальники будут недоступны или у сотрудника нет начальника, то действие вернет пустое значение.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • Выбранный сотрудник.


Создание группы
132 / 363

Действие позволяет создать рабочую группу.

Описание параметров

Название группы - необходимо указать название создаваемой группы.

Владелец группы - необходимо выбрать пользователя, который будет владельцем группы. Важно то, что у группы может быть только один Владелец.

Участники группы - необходимо выбрать участников группы. Можно выбрать как отдельных пользователей, так отделы и членов другой рабочей группы.


WebHook
133 / 363

Действие позволяет добавить WebHook . Действие не возвращает никаких данных, оно только отправляет запрос.

Параметры действия

Хендлер - URL, который нужно использовать при отправке данных из Битрикс24.


Запись в отчет
134 / 363

Действие позволяет добавлять в отчет и лог, соответственно, произвольные записи. Запись в отчет удобно использовать, например, во время отладки бизнес-процесса, сохраняя в отчет данные на нужном этапе.

Описание Параметров

Загрузить отчет для доступа из бизнес-процесса - позволяет получить содержимое всего отчета в рамках бизнес-процесса для дальнейших действий (например, отправить по почте) используя форму Вставка значения (секция Дополнительные результаты). В противном случае данные отчета нельзя будет получить в рамках бизнес-процесса и просмотреть возможно будет только в логе.

Опцию Загрузить отчет для доступа из бизнес-процесса логично использовать на этапе завершения бизнес-процесса для формирования конечного отчета без лишних запросов к базе.

Результаты выполнения действия

Результаты выполнения этого действия можно получить с помощью формы Вставка значения - Дополнительные результаты, в которой они будут доступны сразу после добавления действия в шаблон.

Доступно:

  • Отчет.

В секции Дополнительные результаты на каждую запись в отчет будет создана своя переменная. Если для действия была отмечена опция Загрузить отчет для доступа из бизнес-процесса, то с её помощью можно будет получить отчет, который уже был сформирован на этапе этого действия. Отчет каждого последующего действия будет включать отчет предыдущих действий. Если опция не была отмечена, то переменная будет пустой.


Изменение переменных
135 / 363

Действие позволяет изменить значения переменных, заданных в настройках шаблона.

Описание Параметров

В выпадающих списках выбираются переменные и устанавливаются для них необходимые значения.


Установка прав
136 / 363

Действие позволяет устанавливать права на доступ к документу.

Описание Параметров

Право на операцию "..." имеют - установка прав документа для указанных пользователей/групп пользователей.

Перезаписать - позволяет не добавлять права, а производить их замену. В данном случае производится работа только с правами, которые устанавливаются внутри бизнес-процесса.

Особенности назначения прав в системе
Если для документа используется упрощенная (старая) версия прав, то они устанавливаются жестко извне (настройки доступа к инфоблокам/спискам/и.т.д.). Единственный вариант, позволяющий устанавливать права прямо из бизнес-процесса - это установка для документа права бизнес-процессы извне (права на сам документ). В этом случае с помощью закладки Доступ или действия Установка прав можно менять права по ходу выполнения процесса.

Если используются расширенные права доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.

Важно! С версии 15.5.0 Дизайнера бизнес-процессов данное действие исключено для модулей Диск и CRM.


Прерывание процесса
137 / 363

Действие позволяет прекратить выполнение бизнес-процесса.

Важно! Продолжить выполнение процесса с того места, где он был прерван нельзя. Для выполнения всех последующий после прерывания операций придется запускать бизнес-процесс заново.

Описание параметров:

Текст статуса - устанавливает текст статуса действия.


Мои действия
138 / 363

Мои действия позволяют сохранять настроенные действия/конструкции и использовать их повторно.

Также этот блок удобно использовать для копирования действий внутри шаблона бизнес-процесса. Достаточно перетянуть в него нужные действия. После их можно будет многократно использовать, перетянув обратно в рабочую область дизайнера бизнес-процессов.

Действия, добавленные в этот блок, сохраняются вместе с шаблоном и могут потом повторно использоваться при последующем редактировании.

Документация по теме:

  • Создание собственных действий


Примеры работы с действиями
139 / 363
Давайте посмотрим примеры использования действий в бизнес-процессах.


Пример использования цикла для утверждения документа
140 / 363

Используем цикл для процесса утверждения документа

Рассмотрим такой пример: документ проходит процедуру утверждения до тех пор, пока начальство не исправит его и не одобрит. Если документ не утвержден, то запрашивается дополнительная информация и он вновь направляется на утверждение.

Пример упрощен, и описание касается только работы конструкции Цикл . В примере используем тип условия - Поле документа.

Порядок действий:

  • Первым делом добавим действие Изменение документа . C помощью ссылки Добавить поле создадим дополнительное поле типа список с названием Результат утверждения. Укажем 2 варианта значений поля с новой строки: на рассмотрении и утвержден. По значениям этого поля будет принято решение - выходить из цикла или нет.

    Теперь выберем созданное поле Результат утверждения и установим для него значение на рассмотрении .

  • Добавим действие Цикл. В параметрах укажем : тип условия - поле документа; условие - равно; значение - на рассмотрении.
  • В цикле добавим действие Утверждение документа :
    • В ветку Да добавляем действие Изменение документа. В параметрах поля Результат утверждения выбираем значение утвержден. Этим мы заставим процесс больше не входить в цикл.
    • После этого действия, если требуется, ставим дополнительные действия .
    • В ветку Нет добавляем действие Запрос дополнительной информации . Оно используется, например, для указания информации о правках старой версии документа или каких-либо замечаний, связанных с повторным рассмотрением документа.
    • Добавляем действие Изменение документа. В поле Результат утверждения выбираем значение на рассмотрении. Этим мы заставим процесс повторно войти в цикл. Также в этом действии мы обновим значения полей документа на значения, полученные из предыдущего действия, т.е. отправим на рассмотрение уже измененный документ.
    • При необходимости укажем в этой ветке дополнительные действия.
  • После конструкции Цикл установим действие, которое оповестит нас о том, что цикл завершил свою работу. В качестве оповещения выберем действие Установить текст статуса или Почтовое сообщение .

Итоговая схема шаблона бизнес-процесса с Циклом:


Пример работы с переменными и дополнительными результатами действий
141 / 363

Когда нужна дополнительная информация

Рассмотрим пример создания простого шаблона последовательного бизнес-процесса , в котором у пользователя запрашивается дополнительная информация, и затем она используется для записи в отчет и установку статуса документа.

Порядок действий:

  • Добавим действие Запрос дополнительной информации .
  • Перейдем к форме настройки параметров действия. Заполним обязательные поля и добавим новые с помощью cсылки Добавить поле:
    • Дата начала (тип Дата/Время);
    • Количество (тип Число);
    • Согласовано (тип Список).

    В рамках этого действия мы создаем поля , которые отобразятся пользователю. Заполняя эти поля, пользователь задает нужные значения переменных. Для внесения изменений в поля заходим в параметры действия или пользуемся кнопкой Параметры шаблона на контекстной панели дизайнера бизнес-процессов.

  • Добавим действие Запись в отчет . Вызовем окно настроек действия и, используя форму Вставка значений, вставим в поле Текст наши переменные (группа Переменные) и комментарии (группа Дополнительные параметры).
  • Добавим действие Установить текст статуса и укажем текст .
  • Запустим бизнес-процесс на исполнение и введем требуемые данные .
  • Во вкладке Мои процессы отображается статус завершенного бизнес-процесса.
  • Перейдем к просмотру журнала исполнения процесса , там отображена запись, содержащая значения переменных.

Получили такой шаблон:


Пример использования действия "Выбор сотрудника"
142 / 363

Пример: начальник в отпуске

Рассмотрим небольшой пример использования действия Выбор сотрудника . Используем его для выбора начальника, который утверждает документ. Если начальник находится в отпуске, то выбирается вышестоящий начальник и так далее. Когда действие, таким образом, дойдет до генерального директора, или начальник не выбран вообще (в случае отсутствия всего начальства), то назначается заместитель начальника.

Порядок действий

  • Создадим новый шаблон, а в нем 2 переменные типа Пользователь:
    • переменная Начальник, которая меняется по ходу процесса;
    • переменная Заместитель, которая практически постоянна, и меняется вручную в случае ухода в отпуск заместителя. Укажем для нее сотрудника по умолчанию, который утвердит документ в случае отсутствия начальства.
  • Первым добавим действие Выбор сотрудника. В параметрах укажем , что производим выбор непосредственного начальника для Автора с пропуском отсутствующих.
  • Добавим действие Изменение переменной . В параметрах укажем , что значение переменной Начальник равно сотруднику, который был выбран действием Выбор сотрудника (форма Вставка значения - Дополнительные результаты - Выбор сотрудника - Выбранный сотрудник).
  • Добавим конструкцию Условие и создадим в ней 3 ветви. Нумерация условий в действии такая же, как и порядок их выполнения действием: слева направо.
    1. В первой ветке определим условие, при котором, в случае выбора генерального директора, ответственным назначается заместитель. Для этого в самом условии укажем генерального директора , а после добавим действие Изменение переменной. В нем укажем , что значение переменной Начальник равно значению переменной Заместитель.
    2. Во второй ветке определим условие, при котором заместитель утверждает документ, в случае отсутствия всего начальства. Для этого в самом условии укажем , что значение переменной Начальник должно быть пустым . Теперь добавим действие Изменение переменной, которое настраивается аналогично предыдущей ветке. После, например для заместителя, добавим уведомление о том, что все начальство отсутствует.
    3. В последней ветке условия мы не меняем сотрудников, в результате у нас значение переменной Начальник останется равно результату работы действия Выбор сотрудника.

В результате шаблон выглядит так:


Ручной переход по действиям процесса с помощью "Ознакомления с документом"
143 / 363
В ряде случаев полезно включить в шаблон ручной переход от задания к заданию (например, в целях обучения пользователей работе с созданным бизнес-процессом). С помощью действия Ознакомление с документом , создадим обязательный шаг переключения бизнес-процесса вручную к следующему исполнителю.

Как это выглядит в публичной части

В публичной части это будет выглядеть так:

Маленький минус использования этого действия в том, что ссылку Перейти к документу удалить нельзя.


Пример использования действия "Утверждение документа"
144 / 363

Утверждаем документ

Действие Утверждение документа удобно использовать для автоматизации процесса распределения работ. Например, у нас есть задача: необходимо уведомить нескольких сотрудников о наличии работы, которую нужно выполнить. Работа назначается первому сотруднику, который возьмется за ее выполнение. Как только кто-то один берет на себя эту работу, другим она уже не предлагается. В случае, если никто не согласился, процесс повторяется.

Порядок действий:

  • В данном шаблоне используем Цикл . Голосование повторится до тех пор, пока кто-либо из сотрудников не возьмет на себя работу.
  • Остановимся на настройках действия Утверждение документа подробнее :
    • В поле Утверждают сотрудники укажем тех сотрудников, которым высылается уведомление.
    • Тип утверждения - выберем Голосование сотрудников .
    • Более скольки процентов голосов необходимо для принятия решения - в данном поле укажем 0. Как только любой пользователь из указанных утвердит документ, а в нашем случае согласится взять на себя работу, то голосование прекратится.
    • Ожидать, чтобы проголосовали все указанные сотрудники - укажем Да, таким образом, цикл голосования повториться только после того, как все проголосуют.
  • После того, как сотрудник утвердил документ, ему поставлена Задача. Сотрудника, утвердившего документ, возможно указать используя Дополнительные результаты предыдущего действия с помощью формы Вставка значения.
  • Действие Изменение переменной используется только для того, чтобы контролировать выход из цикла.

Шаблон полученного процесса:


Каталог примеров
145 / 363

В главе приведены примеры использования бизнес-процессов.

Внимание! Обязательно производите сверку и настройку под себя импортируемых шаблонов бизнес-процессов.


Пример работы с бизнес-процессами
146 / 363

Рассмотрим работу с бизнес-процессами на примере создания новости контент-менеджером и утверждение ее администратором информационного портала.

Администратор

Действия для пользователей группы "Администраторы"

  • Включить в группу Контент-менеджеры желаемых пользователей;
  • Настроить инфоблок Новости на работу с бизнес процессами;
  • Настроить права доступа для группы Контент-менеджеры. В нашем случае необходимо выбрать право Изменение , чтобы менеджеры могли создавать и редактировать элементы инфоблока (новости);
  • На закладке Шаблоны бизнес-процессов настроить автозапуск бизнес-процесса Простое утверждение/голосование на Создание и Изменение;
  • Настроить форму создания/изменения элемента инфоблока , если требуется, чтобы в публичной части сайта контент-менеджер смог указать параметры запуска бизнес-процесса.

Контент-менеджер

Действия для пользователей группы "Контент-менеджеры"

При создании новости на сайте контент-менеджер должен будет указать список пользователей или групп пользователей, участвующих в голосовании. Делаем это на закладке Бизнес-процессы в поле Голосующие. В нашем случае это будут Администраторы информационного портала. Пока пользователь группы не одобрит новость, она не будет опубликована на сайте.

Администратор инф. портала

Действия для пользователей группы "Администраторы информационного портала"

Для публикации новости, созданной контент-менеджером, воспользуемся ссылкой Перейти к списку заданий в центре уведомлений или перейдем на страницу Задания (Сервисы > Бизнес-процессы > Задания).

Посмотрим задание с помощью пункта меню действий или дважды кликнув по строке с заданием. В открывшейся форме нажмем кнопку Утвердить документ:

Задание пропадет из очереди, а новость будет опубликована на сайте.

Дополнительно

Пример создания бизнес-процесса (курс Администратор сервиса Битрикс24 (коробочная версия))


Пример динамического назначения прав на документ
147 / 363

Рассмотрим пример динамического изменения прав на документ по мере выполнения бизнес-процесса на базе списков (Сервисы > Списки).

О правах

Поначалу, конкретный пользователь будет иметь один уровень прав, который задается на весь список. При создании нового элемента списка будет запущен бизнес-процесс. В ходе выполнения бизнес-процесса права на элемент для пользователя будут поэтапно изменяться.

Особенности назначения прав в системе

Если для документа используется упрощенная (старая) версия прав, то они устанавливаются жестко извне (настройки доступа к инфоблокам/спискам/и т.д.). Единственный вариант, позволяющий устанавливать права прямо из бизнес-процесса - это установка для документа права бизнес-процессы извне (права на сам документ). В этом случае с помощью закладки Доступ или действия Установка прав можно менять права по ходу выполнения процесса.

Если используются расширенные права доступа, то из бизнес-процесса можно только добавлять новые права на документ, которые будут оставаться у документа даже после выполнения процесса. Переопределить права, которые были установлены извне, внутри бизнес-процесса нельзя.

Пример БП

Создадим простой пример бизнес-процесса:

  • По умолчанию, укажем в настройках списка для определенной группы пользователей, в которую входит необходимый нам сотрудник, право на Добавление ;
  • Создадим простой последовательный шаблон бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка.

    • Добавим действие Утверждение документа . В поле Утверждают сотрудники укажем нашего пользователя . Это действие носит демонстрационный характер и позволит управлять сценарием выполнения бизнес-процесса.
    • В ветку положительного утверждения документа добавим действие Установка прав . Отметим в нем опцию Перезаписать и укажем нужного пользователя для операции Право на операцию "Чтение" имеют .

      После выполнения данного действия пользователь будет наделен правом на просмотр созданного им, и ранее недоступного, элемента списка.

    • Добавим еще одно действие Утверждение документа. Назначение и настройки будут полностью аналогичны первому.
    • В ветку положительного утверждения документа добавим действие Установка прав. Отметим опцию Перезаписать и укажем нужного пользователя для операции Право на операцию "Полный доступ" имеют .

      Таким образом, пользователь теперь имеет право на изменение созданного им, и ранее доступного только на чтение, элемента списка.

В результате получится такая схема:

Работа БП

Как работает наш бизнес процесс

Требуемый пользователь создает элемент списка, который не будет для него сразу отображаться:

После будет создано первое задание бизнес-процесса по утверждению документа:

В случае утверждения, пользователь получит права на чтение. В списке появится элемент и соответствующие элементы управления для него:

После этого будет создано второе задание бизнес-процесса по утверждению документа. Форма выглядит аналогично первой. В случае утверждения, пользователь получит права на изменение, о чем будет свидетельствовать появление соответствующих элементов управления:

Примечание: Если в первый раз отклонить утверждение, то пользователь не будет обладать правом на чтение и не сможет увидеть в списке созданный им элемент. Запрос на утверждение придет во второй раз. Если утверждение выполнено, то пользователь сразу сможет читать и изменять документ, так как он будет обладать правом полный доступ.

Документация по теме

  • Действие "Установка прав"
  • Действие "Утверждение документа"


Использование пользователя в бизнес-процессе
148 / 363

Выбираем пользователя

Рассмотрим пример на основе списков (Сервисы > Списки):

  • При создании нового элемента списка мы указываем пользователя в соответствующем поле. Этот пользователь будет использован в бизнес-процессе.
  • После запуска бизнес-процесса пользователь из этого поля будет передан в переменную. Затем от его имени будет отправлено уведомление автору .

Для этого:

  • Создадим в списке новое поле Пользователи типа привязка к пользователю. Поле множественное не отмечаем;
  • Создадим простой последовательный шаблон бизнес-процесса, который будет запускаться при создании элемента списка.
    • В параметрах шаблона создадим не множественную переменную с названием Пользователи (v_user) типа Привязка к сотруднику;
    • Добавим действие Изменение переменных , в котором передадим значение поля элемента списка Пользователи в переменную Пользователи (v_user);
    • Добавим действие Уведомление пользователя , в котором в качестве получателя сообщения укажем Автора, а в качестве отправителя - пользователя из переменной Пользователи (v_user) {=Variable:v_user}.

В результате получится такой простой шаблон:


Утверждение документа с учетом времени
149 / 363

Пример: утверждение документа

Рассмотрим простой пример, когда на утверждение документа отводится определенное время. Если документ не утвержден за указанное время (например, 10 минут с момента создания), то после выполнения задания пользователю будет выслано соответствующее уведомление.

Важно! Бизнес процесс выполняется на хитах , поэтому для точности выполнения процесса по времени на портале обязательно должны быть хиты.

Пример посмотрим на базе списков (Сервисы > Списки) для одного единственного пользователя:

  • Создадим простой последовательный шаблон бизнес-процесса (в списке выбираем Действия > Настроить бизнес-процессы), который будет запускаться при создании элемента списка;
  • В Параметрах шаблона создадим первую переменную с названием Окно утверждения (идентификатор укажем date) типа число. В поле Значение по умолчанию укажем количество минут (в нашем случае 10) на утверждение документа;
  • Там же создадим вторую переменную Вычисленная дата (название идентификатора c_date) типа Дата/Время. В эту переменную будет сохранена крайняя дата/время, относительно даты создания документа. После этого срока считается, что утверждение документа выполнено не вовремя;
  • Добавим первое действие Изменение переменных , в котором для переменной Вычисленная дата произведем расчет крайней даты/времени по формуле :
    =dateadd({=Document:DATE_CREATE}, {=Variable:date_printable} & "minutes")

    Подробнее про dateadd

    К Дате создания документа ({=Document:DATE_CREATE}) будет прибавлено требуемое количество минут ("minutes") из переменной Окно утверждения ({=Variable:date_printable}) .

  • Следующим добавим действие Утверждение документа . В поле Утверждают сотрудники укажем Автор ;
  • После утверждения документа добавим конструкцию Условие :

    • Левую ветку условия мы настроим так, чтобы значение переменной Вычисленная дата было больше чем {=System:Now};

      • Подробнее про {=System:Now}

      Где {=System:Now} - текущая дата на момент выполнения данного условия.

      В этом случае мы будем сравнивать дату/время, которая была рассчитана на момент утверждения документа (Вычисленная дата), с датой/временем, которое наступит после утверждения документа ({=System:Now}) и будет считаться текущим на момент выполнения конструкции Условие.

      Соответственно, ветка условия будет выполняться, если Вычисленная дата будет больше чем текущая дата/время (на момент после утверждения документа).

    • Правую ветку условия мы настроим так, чтобы в поле Тип условия было указано значение Истина , т.е. ветка условий будет выполняться всегда ;
    • После условия в правой ветке идет действие Уведомление пользователя. Оно будет оповещать Автора о том, что он не уложился с утверждением документа в срок.

    Ветки условия выполняются слева направо, поэтому в первую очередь будет проверено, что утверждение уложилось в указанные временные рамки, в остальных же случаях (Истина) утверждение будет считаться не уложившимся.

В результате получится такая схема шаблона:

Документация по теме:

  • Форма "Вставка значения"
  • Вычисление значений выражений в параметрах действий


Пример использования бизнес-процессов и списков
150 / 363

В данном уроке будет рассмотрен пример создания сервиса сбора и размещения заявок на закупку согласно ТЗ на корпоративном портале.


Техническое задание
151 / 363

Постановка технического задания

ТЗ по размещению заявок на закупку на корпоративном портале.

  1. Общие требования к функционалу:
    1. Требуется создать область для размещения, обработки и хранения заявок на закупку. Заявка на закупку представляет собой карточку, состоящую из набора именованных полей определенного типа. Заявка на закупку также может содержать неограниченное количество файлов (а может и не содержать ни одного).
    2. Любой пользователь (входящий в определенную группу доступа) может создать заявку на закупку. Данный пользователь в дальнейшем рассматривается как автор заявки.
    3. В дальнейшем, никакой программной обработки заявок не производится.
  2. Требования к работе с данными:
    1. Заявка состоит из следующих полей (символом ‘*’ отмечены поля, обязательные к заполнению):
      1. Тип закупки* (выбор из списка: «менее 100.000 руб», «100.000 руб и более»)
      2. Предмет закупки* (строка)
      3. Стоимость, руб (целое число)
      4. Обоснование* (многострочное поле)
      5. Выбранный поставщик* (строка)
      6. Потенциальные поставщики* (многострочное поле)
      7. Статус закупки* (выбор из списка: «на согласовании», «одобрена», «отклонена»).
      8. Инициатор* (автор заявки)
        Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
      9. Непосредственный руководитель* (выбор из списка пользователей)
        Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
      10. Бюджетный контролер* (выбор из списка пользователей)
        Желательно, чтобы выбор производился из ограниченного списка пользователей
      11. Юрист* (выбор из списка пользователей)
        Желательно, чтобы выбор производился из ограниченного списка пользователей
      12. Главный бухгалтер* (выбор из списка пользователей)
        Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
      13. Финансовый директор* (выбор из списка пользователей)
        Желательно, чтобы это поле заполнялось автоматически при вводе заявки.
    2. Пользователи должны иметь возможность редактировать свои (и, в отдельных случаях, чужие) заявки. При этом в системе должны сохраняться: дата и время создания, дата и время изменения, автор и автор последнего изменения.
    3. Любой пользователь (п 1.2) должен иметь доступ к списку заявок, автором которых он является. Доступ к списку заявок, созданных другими пользователями, должен быть предоставлен только пользователям – членам определенной группы (как на чтение, так и на редактирование). Допускается разделение доступа на уровне интерфейса
    4. Область просмотра заявок должна представлять собой таблицу. Колонки таблицы соответствуют полям заявки.
      1. В рамках области просмотра должны быть представлены следующие поля (в указанном порядке)
        • Дата создания
        • Тип закупки
        • Предмет закупки
        • Стоимость, руб
        • Инициатор
        • Выбранный поставщик
      2. В таблице должна быть представлена группировка/сортировка по статусу закупки.
      3. Интерфейс должен предоставлять фильтрацию по значению полей заявок (как минимум: выбор значения фильтра из списка возможных значений), по любому полю, если его тип отличен от «многострочный текст».
      4. Дополнительные требования (желательно). Пользователь с правами конфигуратора системы должен иметь возможность (не прибегая к средствами разработки PHP):
        • Создавать другие представления данных, подходящие под описание п. 2.4, с произвольным набором полей, сортировок, группировок, фильтров.
        • Проводить массовые операции с заявками (например – удаление всех заявок, отвечающих критериям определенного фильтра).
        • Создавать новые типы закупки и настраивать доступность полей в зависимости от типа.
        • Редактировать состав полей заявки.
  3. Прочие требования:
    1. Необходимо предусмотреть функционал оповещений – пользователи, входящие в определенную группу, должны получать оповещения о внесении любых изменений в какую-либо заявку. Оповещение должно содержать значения всех полей заявки.
    2. В качестве групп пользователей, упомянутых в данных требованиях, должна быть возможность использовать ранее созданные группы портала (которые используются для предоставления доступа к другим ресурсам).


Подготовка списка и его настройка
152 / 363

Подготавливаем и настраиваем список

Согласно условиям ТЗ наиболее подходящим под нашу задачу будет функционал Универсальные списки .

Подготовка списка и его настройка

В нашем примере мы будем работать со списками продукта «Битрикс24 в коробке» (Сервисы > Списки).

Нажмите на рисунок, чтобы увеличить

  • Создадим новый список с поддержкой бизнес-процессов и произведем настройку подписей . Разделы мы использовать не будем, поэтому оставляем их как есть.
  • Добавим поля согласно ТЗ: во вкладке Действия выбираем Настроить поля . В открывшемся окне - [image]. Не забудем отметить нужные поля, как обязательные к заполнению.

Примеры настройки поля типа список
Поле Тип закупки.

Поле Статус закупки.

В обязательных полях, которые будут заполняться автоматически, установим в поле Значение по умолчанию текст-пояснение .

Примечание: Такими полями будут Инициатор, Непосредственный руководитель, Главный бухгалтер, Финансовый директор.

Пример настройки поля с автоматическим значением по умолчанию, равному дате и времени создания заявки

По ТЗ не требуется выбор пользователей системы, поэтому укажем требуемых сотрудников текстом с использованием поля типа Cписок :

Примечание: Такими полями будут Бюджетный контролер, Юрист.

Результат создания нами полей, согласно ТЗ, мы увидим в виде списка .

Теперь форма создания новой заявки будет иметь вид:


Настройка внешнего вида и доступа для списка
153 / 363

Настраиваем список

Теперь настроим внешний вид отображения области просмотра заявок в соответствии с техническим заданием, а также установим права доступа к списку.

Настройка внешнего вида списка и фильтра

  • С помощью кнопки [image] настроим внешний вид списка заявок в соответствии с требованиями ТЗ ;
  • В нашем примере интерфейс должен предоставлять фильтрацию по значению полей заявок. При помощи кнопки [image] настроим фильтр и отметим Для всех , чтобы наши настройки отображались для всех пользователей.

Настройка прав доступа к списку

Перейдем опять к настройке списка на закладку Доступ и укажем права доступа следующим образом:

  • Bitrix24: Все сотрудники отдела с подотделами - Добавление
  • Автор - Изменение
  • Ответственный сотрудник - Изменение


Создание бизнес-процессов
154 / 363

Для работы с заявками мы создадим 2 шаблона последовательных бизнес-процессов (Бизнес-процессы > Процессы в ленте, кнопка Создать новый). Один будет запускаться при создании заявки, а второй - при ее изменении.

БП для создания заявки на закупку

Произведем настройку параметров шаблона:

  • На вкладке Основное укажем название и отметим опцию автоматически запускать при добавлении ;
  • На вкладке Переменные создадим новые обязательные переменные типа Привязка к сотруднику (Главный бухгалтер, Финансовый директор, Проверяющий ). Эти сотрудники в ходе процесса будут автоматически подставляться в карточку заявок;
  • Также создадим еще пару переменных типа Привязка к сотруднику для дальнейшей автоматизации, но без указания обязательности и значения по умолчанию: Инициатор, Непосредственный руководитель.

Перейдем к непосредственному созданию шаблона бизнес-процесса:

  • В основную область конструктора бизнес-процессов добавим действие Выбор сотрудника для вычисления начальника для автора, чтоб в будущем записать его имя в заявку автоматически.
  • Добавим действие Изменение документа, которое будет записывать нужные поля в карточке заявки. Заполним форму .
    • Статус закупки - указываем на согласовании. Это поможет избежать ошибки, если сотрудник при заполнении заявки укажет иной статус.
    • Инициатор - с помощью формы Вставка значения в секции Пользователи выберем Автор.
    • Непосредственный руководитель - с помощью формы Вставка значения в секции Дополнительные результаты выберем результат Выбранный сотрудник действия Выбор начальника.
    • Для полей Главный бухгалтер и Финансовый директор с помощью формы Вставка значения укажем соответствующие им переменные.
  • Добавим действие Сообщение соц.сети , которое будет отправлять уведомление сотруднику, ответственному за сервис заявок о том, что создана новая заявка. Также в сообщении будут указаны значения всех полей заявки.

В итоге получим такую схему шаблона бизнес-процесса:

БП для изменения заявки на закупку

Сначала настроим параметры шаблона:

  • На вкладке Основное укажем название и отметим опцию автоматически запускать при изменении ;
  • На вкладке Переменные создадим новую обязательную переменную типа Привязка к сотруднику, в которой явно зададим Проверяющего (сотрудника ответственного за сервис заявок).

Теперь перейдем к созданию шаблона бизнес-процесса:

  • В основную область конструктора бизнес-процессов добавим действие Сообщение соц.сети, которое отправит уведомление сотруднику, ответственному за заявки, о том, что заявка изменена. Также в сообщении будут указаны новые значения всех полей заявки;
  • Добавим конструкцию Условие и создадим 3 ветки условия: Одобрена, На согласовании, Отклонена. Это позволит отправлять автору разные сообщения о статусе его заявки;
  • Настроим условие Одобрена . Для этого в поле Поле документа укажем, что условие будет выполняться, если статус закупки будет равен одобрена;
  • Аналогичным образом настроим условия для остальных вариантов статуса закупки;

    • Добавим действие Сообщение соц.сети в ветки условий Одобрена и Отклонена. Тем самом мы будем оповещать автора о том, что заявка на закупку после ее изменения перешла в эти статусы.

  • Настроим действие Сообщение соц.сети для ветки условия Одобрена;
  • Аналогично настроим действие и для ветки условия Отклонена, изменив лишь часть текста сообщения.

В итоге наша схема шаблона бизнес-процесса выглядит так:


Пример бизнес-процесса со статусами по созданию счета для клиента в CRM
155 / 363
Рассмотрим пример бизнес-процесса со статусами по созданию счета для клиента в CRM согласно ТЗ.


Техническое задание
156 / 363

Постановка технического задания

Рассмотрим пример бизнес-процесса со статусами по созданию счета для клиента в CRM согласно ТЗ.

ТЗ по созданию счета для клиента на корпоративном портале:

  1. Менеджер по продажам начинает бизнес-процесс и заполняет поля:

    • Название сделки,
    • Менеджер по продажам,
    • Менеджер по закупкам,
    • Клиент (название),
    • Сумма сделки,
    • Адрес доставки.

  2. Менеджер по закупкам продолжает процесс и заполняет поля:

    • Поставщик (название),
    • Поставщик (контактное лицо),
    • Сумма закупки,
    • Срок поставки от поставщика,
    • Вес отправления,
    • Объем отправления,
    • Адрес отгрузки,
    • Счет от поставщика, опционально (номер и вложение),
    • Договор от поставщика, опционально (номер и вложение).

  3. Менеджер по продажам изучает ответ от менеджера по закупкам.

    Выставление срока поставки для клиента. Сверяются сроки поставки, если срок поставки до клиента равен или > срок поставки до поставщика +5 дней, процесс продолжается, иначе открывается поле комментирования сроков поставки, комментарии обязателен. Заполняются следующие поля:

    • Срок поставки до клиента.

  4. Юрист изучает договор вложенный менеджером по закупке (в случае его наличия) и создает договор для клиента. Заполняются следующие поля:

    • Договор для клиента (номер и вложение),
    • Договор от поставщика, опционально (номер и вложение).

  5. Процесс переходит менеджеру по продажам, согласование договора. Заполняются следующие поля:

    • Договор для клиента (номер и вложение).

  6. Процесс переходит менеджеру по закупкам, согласование договора. Заполняются следующие поля:

    • Договор для клиента (номер и вложение).

  7. Процесс переходит в бухгалтерию — создание и прикрепление счета для клиента. Заполняются следующие поля:

    • Счет для клиента (номер и вложение).

  8. Процесс переходит помощнику руководителя, который должен иметь возможность получить для печати всех документов сделки.

    После печати обязательно добавление сканов договора и счета для клиента с подписью и печатью, после этого сканы сохраняются, процесс возвращается менеджеру по продажам вместе со сканами счетов и договора.

    • Счет для клиента (номер и вложение),
    • Договор для клиента (номер и вложение).

Шаблон для ознакомления: Скачать


Настройки CRM
157 / 363

Сначала выполним настройки в самой CRM.

Пользовательские поля

Создание и настройка пользовательских полей

В качестве основы будем использовать такую сущность CRM, как Сделка. Поэтому первым делом мы создадим и настроим пользовательские поля для карточки сделки согласно ТЗ (CRM > Настройки > Настройки форм и отчетов > Пользовательские поля > Сделка > Список полей).

Настроенные пользовательские поля CRM

В форме будет всего 2 обязательных поля: Название и Адрес доставки. Остальные поля буду заполнены автоматически, а также при выполнении заданий разными участниками процесса.

Настройка прав доступа

Укажем, кто будет иметь доступ к бизнес-процессам (менеджеры, юрист, бухгалтер и остальные, согласно ТЗ) на странице Права доступа (CRM > Настройки > Права > Права доступа)

В нашем примере используем группу Моя компания: Сотрудники. Это позволит выбирать любого сотрудника при создании нового шаблона бизнес-процесса.

Внимание! В описании и шаблоне-примере для всех сотрудников в процессе задан по умолчанию сотрудник с идентификатором 1. Это позволит сразу ознакомиться со всем процессом, не создавая и не настраивая других пользователей.

Настройка формы создания сделки

Настройка формы создания сделки

Перейдем к форме создания новой сделки (CRM > Сделки) и произведем ее настройку согласно ТЗ.

Результат настройки формы

В итоге получим следующий вид:


Создание бизнес-процесса
158 / 363

Создадим новый шаблон бизнес-процесса со статусами для сделки (CRM > Настройки > Роботы и бизнес-процессы > Бизнес-процессы) и настроим его параметры.

Начальные настройки

  • Укажем в параметрах шаблона, что процесс будет автоматически запускаться при добавлении новой сделки.
  • Создадим новые переменные типа Привязка к пользователю :
    • Менеджер по продажам (*),
    • Менеджер по закупкам (*),
    • Юрист (*),
    • Бухгалтер (*),
    • Логист (*),
    • Помощник руководителя (*).

    Для всех по умолчанию укажем требуемых сотрудников (в нашем случае это пользователь с идентификатором 1).

  • Создадим переменную Адрес портала (*) типа Строка и укажем для нее значение по умолчанию, равное адресу портала .

В результате получим список переменных . Остальные переменные будут созданы по мере необходимости .

Статусы шаблона

Начальный статус

Подпроцесс первого статуса начинается с Блока действий, который используется для группировки однотипных действий:

  • проверки, указаны ли требуемые сотрудники в форме Сделка,
  • автоматической записи пользователей в пустые поля из переменных Менеджер по продажам (*), и.т.д.
Таким образом он позволяет автоматизировать заполнение формы

Этап 1 - Менеджер по продажам

Этап проходит по алгоритму:
  1. Проверяется заполнение требуемых от менеджера по продажам полей:
    • Если поле окажется пустым, то значение специальной переменной Флаг "Поля пусты" будет изменено на Да. Переходим к п. 2 алгоритма.
    • Если поля окажутся заполнены, то значение переменной Флаг "Поля пусты" будет сброшено на Нет и процесс перейдет на следующий этап.
  2. Сначала значение переменной Флаг "Поля пусты" будет сброшено на Нет, а затем Менеджеру по продажам будет выставлено задание, в котором от него потребуется заполнить эти поля. После чего будет произведен переход на начало этапа (п. 1).

Этап 2 - Менеджер по закупкам

На этом этапе менеджеру будет выставляться задание по заполнению требуемых полей (согласно ТЗ). Для этого используется действие Запрос дополнительной информации и дополнительные поля (переменные) в этом действии. Значения этих переменных будут сохранены в поля Сделки.

Менеджер по продажам будет уведомлен через модуль Веб-Мессенджер о том, что поля заполнены. В сообщении будут указаны значения этих полей, ссылки на Поставщика и приложенные файлы.

Рассмотрим эти ссылки поподробнее

  • Для автоматического формирования ссылки на карточку просмотра сделки будет использоваться следующее выражение

    [url]{=Variable:domain_printable}/crm/deal/show/{=Document:ID}/[/url]

    где {=Variable:domain_printable} будет являться значением переменной Адрес портала (*), которая была ранее задана при создании шаблона бизнес-процесса, а {=Document:ID} - Идентификатор сделки, который входит в стандартный набор полей сделки.

  • Для автоматического формирования ссылки на карточку просмотра поставщика будет использоваться следующее выражение

    [url]{=Variable:domain_printable}/crm/company/show/{=Document:UF_CRM_1369312906}/[/url]

    где {=Document:UF_CRM_1369312906} будет являться значением поля Поставщик (название).

  • Для автоматического формирования ссылки на файл из поля сделки Счет от поставщика будет использоваться следующее выражение

    [url]{=Variable:domain_printable}/bitrix/components/bitrix/crm.deal.show/show_file.php?ownerId={=Document:ID}&fieldName=UF_CRM_1369315496&fileId={=Document:UF_CRM_1369315496}/[/url]

    где {=Document:UF_CRM_1369315496} будет являться значением поля Счет от поставщика (файл). Также идентификатор этого поля используется для параметра &fieldName=UF_CRM_1369315496 ссылки.

Этап 3 - Менеджер по продажам

Действия аналогичны действиям предыдущего этапа, с той разницей, что задается другой сотрудник и поля для заполнения.

Этап 3а - Комментарий относительно сроков доставки

На этом этапе сверяются сроки поставки. Если срок поставки до клиента равен или больше срока поставки до поставщика +5 дней, то процесс продолжается, иначе менеджеру по продажам выставляется задание (Ознакомление с документом), в котором он должен будет оставить комментарий по поводу сроков поставки. После чего его комментарий будет записан в сделку.

Проверка осуществляется следующим образом

Если значение поля документа Срок поставки до клиента не меньше чем вычисленное выражение =Dateadd({=Document:UF_CRM_1369314998}, "5d") (где {=Document:UF_CRM_1369314998} - поле сделки Срок поставки от поставщика), то никаких действий выполняться не будет. Во всех остальных случаях менеджеру по продажам будет выставлено задание.

Этап 4 - Этап 8

Действия аналогичны действиям 3-го этапа, с той разницей, что задается другой сотрудник и поля для заполнения.


Добавление информации в инфоблок из бизнес-процесса
159 / 363

Как добавить информацию из Бизнес-процесса

Рассмотрим пример, в котором значения из пользовательских полей списка с помощью бизнес-процесса будут записываться в пользовательские свойства инфоблока.

После заполнения полей списка Название, Строка и Файл (несколько файлов) и последующего сохранения, необходимо создать новый элемент в нужном инфоблоке. В пользовательские свойства этого элемента вносятся значения, указанных выше, полей списка. Название этого элемента будет соответствовать названию создаваемого элемента списка.

  • Для начала создадим в списке дополнительные поля:

    Значения из этих полей с помощью бизнес-процесса будут записываться в пользовательские свойства инфоблока.

    Для поля Идентификатор инфоблока зададим значение по умолчанию , чтоб каждый раз не заполнять его при создании нового элемента списка. В примере это будет инфоблок с идентификатором =1. Это поле создано лишь для наглядности .

  • Перейдем к инфоблоку. На странице настроек инфоблока, закладка Свойства (Контент > Инфоблоки > Типы инфоблоков > требуемый_инфоблок), создадим новые пользовательские свойства, в которые у нас и будут записываться значения из полей списка.

Перейдем к самому бизнес-процессу. Создадим шаблон последовательного бизнес-процесса.

  • Создадим 2 переменные , которые будут использоваться в отладочных целях:

    • ELEMENT_ID - переменная бизнес процесса, в которую будет записан ИД созданного элемента инфоблока в случае удачи,
    • ERROR - переменная бизнес процесса, в которую будет записан текст ошибки в случае неудачи создания элемента инфоблока.

  • Возьмем код из примера АПИ-вызова CIBlockElement::Add

    Исходный код

    <?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  );

if($PRODUCT_ID = $el->Add($arLoadProductArray))
  echo "New ID: ".$PRODUCT_ID;
else
  echo "Error: ".$el->LAST_ERROR;
?>

    и модифицируем его:

    <?
CModule::IncludeModule("iblock"); //подключаем модуль инфоблоков

$el = new CIBlockElement;

$PROP = array();
$PROP[IB_CUSTOM_PROPERTY] = {=Document:PROPERTY_117};
// задаем для свойства инфоблока "IB_CUSTOM_PROPERTY" типа "строка" значение из поля документа "PROPERTY_117"

$files = explode(', ',"{=Document:PROPERTY_118}");
foreach($files as $key=>$value)
 {
  $PROP[IB_FILE_PROPERTY]['n'.$key]=array('VALUE'=> CFile::MakeFileArray($value), 'DESCRIPTION' => '');
 }
// задаем для свойства инфоблока "IB_FILE_PROPERTY" типа "файл" (множественное) значение из поля документа "PROPERTY_118"

$arLoadProductArray = Array(
  "IBLOCK_ID" = >{=Document:PROPERTY_119},
// задаем  Идентификатор инфоблока, в котором будет создан элемент, из поля документа "PROPERTY_119" типа "строка"
  "NAME" => {=Document:NAME},
// задаем Название создаваемого элемента инфоблока из поля документа "Название"
 "PROPERTY_VALUES"	=> $PROP,
);

$ELEMENT_ID = $el->Add($arLoadProductArray);

if($ELEMENT_ID > 0)
 $this->SetVariable('ELEMENT_ID', $ELEMENT_ID);
// задаем для переменной бизнес-процесса "ELEMENT_ID" значение, содержащее номер созданного элемента инфоблока, в случае, если он будет создан
else
 $this->SetVariable('ERROR', $el->LAST_ERROR);
// задаем для переменной бизнес-процесса "ERROR" значение, содержащее текст ошибки, в случае, если  элемент инфоблока не будет создан
?>

    Этот код будет, с помощью АПИ-методов, создавать новый элемент инфоблока, в котором пользовательские свойства IB_CUSTOM_PROPERTY, IB_FILE_PROPERTY, а также название элемента инфоблока будут содержать значения пользовательских полей PROPERTY_117, PROPERTY_118, PROPERTY_119 и значение поля название элемента списка.

    После чего добавим в шаблон действие PHP-код, в котором укажем наш измененный код.

  • Добавим в шаблон действие Запись в отчет, в котором укажем следующий текст:
    {=Variable:ELEMENT_ID_printable}, {=Variable:ERROR_printable}

    Этим самым мы запишем в отчет по выполнению бизнес-процесса значение отладочных переменных для анализа в случае ошибок.

Документация по теме:

  • Действие "PHP код"
  • АПИ-метод "CIBlockElement::Add"
  • Произвольный PHP код в бизнес-процессе


Примеры использования бизнес-процессов совместно с другим функционалом системы (ссылки)
160 / 363

Ссылки на статьи в других курсах, где описываются примеры совместного использования бизнес-процессов и другого функционала системы.

  • Использование бизнес-процессов в разделе KPI для отдела организации курса Пользователь КП.
  • Сценарий для работы службы техподдержки из курса Администратор сервиса Битрикс24 (коробочная версия).

    Клиенты заполняют форму на сайте, в которой указывают свои данные и выбирают причину обращения. Данная информация, путем настроенной интеграции, передается в CRM в виде лида, к которому автоматически привязывается задача под ответственность соответствующего задаче специалиста.

  • Автоматизация исполнения проекта.

    Использование бизнес-процессов для работы над проектом после закрытия сделки.

  • Сценарий автоматизации контроля оказания услуг.


Блоги
161 / 363
Блог - это сетевой журнал (дневник), позволяющий вести тематические записи в хронологическом порядке.

Этот модуль - отличный инструмент для создания блогов на Вашем собственном сайте! Владелец блога может не только добавлять новые записи блога, но и получать комментарии посетителей относительно этих сообщений. Такой функционал блогов позволяет автору (владельцу блога) предлагать посетителям блога различные темы для обсуждения, организовывать обмен мнениями по поводу мыслей, высказанных в сообщениях блога, и т.п.


Возможности блогов
162 / 363

Возможности модуля Блоги

Модуль Блоги позволяет:

  • создавать неограниченное число блогов;
  • управлять правами пользователей на доступ к блогам, в том числе правами на такие операции, как:
    • создание блога;
    • администрирование/модерирование блога;
    • чтение блога;
    • добавление новых сообщений;
    • добавление комментариев к чужим сообщениям;
  • использовать смайлики и теги при показе сообщений и комментариев;
  • создавать черновик сообщения;
  • использовать календарь сообщений;
  • импортировать блоги в RSS;
  • группировать сообщения блога по произвольным темам (tags);
  • создавать древовидные комментарии;
  • присоединять изображения и видео к сообщениям.

Примечание: в системе предусмотрено следующее правило создания блогов: каждый пользователь (т.е. посетитель с уникальным логином и паролем) может завести только один блог.

Основные понятия

Трактовка некоторых терминов отличается от привычных пользователям социальных сетей трактовок:

Владелец блога - пользователь, ведущий блог (создатель блога).

Псевдоним - имя пользователя (возможно, вымышленное), отображаемое всем посетителям блога. Псевдоним определяется в форме редактирования профайла пользователя.

Аватар - двухмерная или трехмерная картинка, анимированная или статичная, которая представляет пользователя в блоге.

Группа пользователей - для каждого блога может быть создан собственный набор групп пользователей, обладающих определенными правами на доступ к сообщениям и комментариям блога.

Друг - пользователь, добавленный в группу (или несколько групп), созданную владельцем блога, и обладающий определенными правами на доступ к блогам (например, правами на чтение сообщений и добавление комментариев). Список друзей пользователя отображается на странице с профайлом данного сотрудника.

Лента друзей - страница, содержащая список (выборку) последних записей друзей блога.

Группа блогов - совокупность блогов, обладающих некоторым общим признаком (например, блоги сотрудников одной компании) и доступных для показа на одном портале.

Сообщение (тема) - запись в блоге, принадлежащая владельцу или посетителю блога.

Категории сообщения - объединение сообщений блога по некоторому признаку (например, по признаку принадлежности к определенной тематике, по назначению).

Комментарий - ответ (реакция) посетителя на сообщение блога, высказывание посетителя по предложенной теме.

Постоянный адрес - абсолютный путь к сообщению блога в сети (например, http://www.bitrixsoft.ru/blog/trackback.php/bitrix/99) для использования в механизме Trackback.

Работа с модулем

Администратор производит только настройку модуля и настройку прав. Всю остальную работу, как правило, выполняет Контент-менеджер.

Документация по теме:

  • Пользовательская документация по модулю "Блоги"


Настройки модуля
163 / 363

Настройки модуля Блоги

Глобальные параметры блогов определяются на странице настроек модуля Блоги (Настройки > Настройки продукта > Настройки модулей > Блоги).

Закладка Настройки модуля блогов позволяет определить:

  • максимально допустимые размеры аватара пользователя и прикрепляемого к сообщению изображения;
  • возможность использования псевдонимов, Trackback'а, CAPTCHA и пр.;
  • права на сообщения, комментарии, изображения (при неотмеченной опции Проверять права для изображений пользователь сможет просмотреть картинку из сообщения\комментария блогов по ссылке на нее, даже если для него стоит запрет на просмотр самого сообщения\комментария);
  • добавлять к ссылкам rel='nofollow' и тег <noindex> - при отмеченной опции ссылки исключаются из индексации и ранжирования в Яндексе и Рамблере;

Шаблоны путей к публичной части блогов настраиваются на соответствующей закладке в зависимости от используемых визуальных компонентов:

Документация по теме:

  • Настройки модуля


Настройка прав
164 / 363

Настройка прав

Права доступа к группам блогов, блогам и комментариям блогов настраиваются на закладке Права на доступ на странице административного раздела Настройки > Настройки продукта > Настройки модулей > Блоги. Если необходимо, чтобы у какого-либо пользователя было право не только чтения, но и создания блога, то необходимо причислить его к группе , для которой должно быть задано соответствующее право:

Каждый владелец блога может самостоятельно настраивать права доступа для него, но администратор может задать максимальную глубину такой настройки, выставив соответствующие параметры в Настройках модуля блогов:

То есть если Администратор укажет в настройках модуля "Максимальные права на сообщения для групп пользователей блога" уровня Запись, то Контент-менеджер уже не сможет дать группам пользователей блога (и стандартным группам, и Открытым группам) права Модерирование и Администрирование.

Настройка прав доступа к сообщениям и комментариям блога выполняется также при создании или редактировании блога или сообщения блога.

Документация по теме:

  • Настройки модуля


Веб-аналитика
165 / 363

Модуль Веб-аналитика используется для сбора и анализа информации о посетителях веб-сайтов. На основании этих данных определяется веб-аудитория и изучается её поведение для принятия решений по развитию веб-ресурса.


Возможности веб-аналитики
166 / 363

Возможности Веб-аналитики

Модуль Веб-аналитика позволяет:

  • вести учет хитов, хостов, сессий, посетителей сайта;
  • вести учет посетителей, добавивших сайт в «Избранное»;
  • регистрировать все ссылающиеся сайты;
  • фиксировать поисковые фразы внешних поисковых систем и встроенной системы поиска;
  • анализировать посещения разделов и документов сайта;
  • вести учет посетителей по дням с выделением постоянной аудитории сайта;
  • выполнять онлайн-мониторинг посетителей на сайте;
  • блокировать или перенаправлять посетителя, добавляя его в стоп-лист;
  • отслеживать все сессии одного посетителя между посещениями сайта;
  • просматривать всю историю движения посетителя по сайту;
  • регистрировать события, происходящие на сайте и за его пределами;
  • контролировать ход рекламной кампании и получать подробные отчеты;
  • вести учет страниц, индексируемых внешними поисковыми системами;
  • автоматически чистить базу данных статистики в соответствии с настройками модуля.

Работа с модулем

Работа с модулем описана в курсе Продвижение сайта и Маркетинг .

Документация по теме:

  • Документация по модулю "Веб-аналитика"


Настройки модуля
167 / 363

Настраиваем Веб-аналитику

Настройки модуля задают параметры обработки рекламных кампаний, определения страны и города по IP-адресу, параметры сбора статистики и управляют правами доступа к модулю.

  • Настройки модуля
  • Служебные процедуры
    •

    Параметры по умолчанию в форме настройки приемлемы для большинства пользователей. Изменять их рекомендуется только с пониманием возможного результата. Большинство значений полей ясно из их названия, мы дадим расшифровку только тех, которые могут вызвать затруднение. Более подробно о значениях полей в форме настроек модуля можно ознакомиться на странице Настройки модуля "Веб-аналитика" пользовательской документации.

    Настройки модуля

    В административном разделе на странице Настройки модуля (Настройки > Настройки продукта > Настройки модулей > Веб-аналитика) откроется форма настройки параметров модуля:

    Нажмите на рисунок, чтобы увеличить

    В закладке Настройки обратите внимание на поля:

    • В поле Когда отослать очередной статистический отчет по EMail указывается время суток, когда производить автоматическую рассылку отчетов по статистике на почтовый ящик администратора сайта . Если поле пустое - отчет не будет отсылаться.
    • Поле Максимальное кол-во показываемых записей в таблицах позволяет задать число записей, которые используются при составлении отчетов. Изменение текущего значения в большую сторону позволит получать более точную аналитику, но и потребует большего количества ресурсов, необходимых серверу для обработки запроса и тем больше времени надо для отработки статистических страниц.
    • Если ваш сайт работает с базой MySQL, то можно включить функцию Оптимизировать таблицы при очистке?, которая автоматически оптимизирует таблицы MySQL при удалении устаревшей статистической информации (по полям Сколько дней хранить... закладки Время хранения). Это позволит снизить нагрузку на систему.

    Cекция Ограничение активности позволяет ограничить доступ клиентов к сайту или блокировать доступ полностью в зависимости от установленных параметров, установить защиту от массовых скачиваний сайта специальными программами-грабберами (Teleport Pro, Free Download Manager, HTTrack).

    На закладке Рекламные кампании изменения значений не рекомендуются, если вы не представляете себе последствий ваших действий.

    На закладке Страна и город выполняется настройка параметров определения страны и города посетителя по IP адресу. С помощью колонки Будет использован выберите доступный и необходимый вам источник определения города и страны по IP-адресу. Либо установите и настройте дополнительные источники определения страны и города, используя соответствующие ссылки.

    На закладке Настройка данных с целью снижения нагрузки на систему можно снять флажок с поля Собирать данные для отчета "Пути по сайту"?.

    Параметры закладки Время хранения задают максимальное время хранения каждого события в днях. Каждый параметр имеет флаг очистить, который позволяет удалить статистику по данному параметру. Очистка информации происходит по нажатию на кнопку Сохранить.

    Примечание: Большой период времени хранения приведет к увеличению размера базы данных статистики.

    На закладке Исключения настраиваются правила кого считать в статистике посещений, кого нет. Можно задать ограничения по группам, IP адресам или по обоим параметрам вместе.

    На закладке Доступ задаётся уровень прав на доступ к модулю различных групп пользователей.

    Служебные процедуры

    Служебные процедуры предназначены для оптимизации работы сервера. Доступны:

    • Очистка БД от устаревших данных. (Исключение составляют таблица поисковиков (здесь будут сброшены только счетчики) и таблицы привязки IP-адресов к странам.)
    • Оптимизация таблиц модуля Веб-аналитика для уменьшения их размера и увеличения производительности.

    Документация по теме:

    • Настройки модуля


Подключение сторонних сервисов веб-аналитики
168 / 363

Как оценить эффективность и посещаемость сайта? Как понять, в какую сторону развивать свой веб-ресурс? Эти вопросы помогает решить специальная система сбора и анализа данных веб-сайтов – веб-аналитика.

Есть множество инструментов веб-аналитики, помогающих получить наглядные отчеты о количестве посетителей сайта и об их "поведении" на сайте. В этой главе вы узнаете, как подключить наиболее известные и популярные инструменты (список будет увеличен по мере добавления нового функционала в "1С-Битрикс: Управление сайтом"):
  • Яндекс.Метрика
  • Google Analytics и Google Tag Manager


Подключение счётчиков Яндекс.Метрики
169 / 363

Подключение счётчиков Яндекс.Метрики

Рассмотрим, как подключить один из удобных инструментов веб-аналитики – Яндекс. Метрику.

  1. Создайте учетную запись на Яндексе. Если у вас уже есть учетная запись, нажмите кнопку Войти на странице Метрики;

    2. Примечание: Если вы являетесь владельцем рекламной кампании в Яндекс.Директе или ваш интернет-магазин является партнером Яндекс.Маркета, рекомендуем при авторизации использовать логин, зарегистрированный в этих сервисах. Это позволит вам быстро переходить с сервиса на сервис.

  2. Создайте счетчик, нажав кнопку Добавить счетчик. Откроется страница настроек счетчика (первый этап):

    Настройки счётчика
    • Имя счетчика - указанное в этом поле имя будет отображаться на странице Мои счетчики и в верхнем меню переключения между счетчиками. Если имя не задано, то будет использоваться значение поля Адрес сайта.
    • Адрес сайта - основной домен сайта. Поле обязательно для заполнения. Префикс схемы/протокола (http://, https://) указывать не следует.

      Опция Принимать данные только с указанных доменов выбирается, когда в отчетах есть данные посторонних сайтов.

      Опция Включая поддомены позволяет учитывать при фильтрации поддомены основного и дополнительных сайтов (subdomain.example.com, other.subdomain.example.com, ...).
    • Часовой пояс - указывается, соответственно, часовой пояс сайта.
    • Вебвизор, карта скроллинга, аналитика форм - при включенной опции можно отследить действия посетителей сайта максимально подробно: действия на каждой странице, передвижения курсора мыши, клики по ссылкам и т.д.
    Перед созданием счётчика необходимо принять условия Пользовательского соглашения.

  3. На следующем этапе выберите способ установки кода счетчика Метрики HTML и включите опцию Электронная коммерция – это позволит отслеживать взаимодействие посетителей с товарами сайта. Подробнее о подключении электронной коммерции читайте в следующем уроке.

    В Дополнительных настройках укажите валюту, с которой хотите работать.

  4. Далее скопируйте код счетчика, нажав соответствующую кнопку.
  5. Откройте шаблон вашего сайта в режиме изменения (Настройки > Настройки продукта > Сайты > Шаблоны сайта (шаблон нужного сайта)):

    Нажмите на рисунок, чтобы увеличить

  6. Скопированный код добавьте в файл, который отвечает за генерацию заголовка (header) всех страниц сайта:

  7. Нажмите кнопку Начать пользоваться.

Готово! Счетчик Яндекс.Метрики подключен! Вы можете отслеживать его на странице счетчиков Яндекс.Метрики

В следующих уроках смотрите, как в Яндекс.Метрике настраивать и использовать Электронную коммерцию и Цели.

Примечание: При необходимости Вы можете изменить параметры созданного счетчика на странице Настройки. Однако после внесения изменений не забудьте скопировать новый код и заменить его в шаблоне сайта.


Как подключить электронную коммерцию Яндекс
170 / 363

Как подключить электронную коммерцию Яндекс

Электронная коммерция Яндекс позволяет оценить эффективность работы Вашего интернет-магазина (например, какие товары или бренды пользуются наибольшим спросом или какие источники приносят наибольший доход) с помощью наглядных отчётов.

Важно! Указанное в уроке решение доступно для редакций продукта Малый бизнес и выше.

Если в настройках компонентов Вашего сайта нет опции Включить отправку данных в электронную торговлю, то вероятная причина – использование кастомизированного (изменённого) шаблона компонента, в котором отсутствуют необходимые параметры в файле .parameters.php.

Установите стандартный шаблон (.default или bootstrap_v4) и проверьте наличие указанной опции. Если опция появилась, то можете либо использовать стандартный шаблон, либо обратиться к разработчику компонента Вашего сайта за необходимыми доработками.

Для использования возможностей электронной коммерции необходимо выполнить два действия:

  1. Создайте и подключите к сайту счетчик Яндекс.Метрики, отметив опцию Электронная коммерция (эти действия подробно описаны в предыдущем уроке );

    Если же счетчик Яндекс.Метрики уже подключен, то проверьте, включена ли эта опция в Настройке счетчика:

  2. В компонентах Вашего интернет-магазина включите отправку данных в электронную торговлю:
    • Каталог ( catalog ):

    • Корзина ( sale.basket.basket ):

    • Оформление заказа ( sale.order.ajax ):

      Настройки компонента Оформление заказа имеют дополнительные опции для подключения еще одного функционала Яндекс.Метрики – Целей. Об этом подробнее читайте в следующем уроке.

    Примечание: Имя контейнера данных (dataLayer) не нужно менять - оно соответствует имени контейнера, заданному при настройке Яндекс.Метрики.

Готово! В течение нескольких часов Вам станут доступны отчёты по электронной коммерции (Отчёты > Стандартные отчеты > Электронная коммерция > (нужный тип отчета)):

Нажмите на рисунок, чтобы увеличить

Примеры отчётов.
  • Заказы

    Нажмите на рисунок, чтобы увеличить

  • Содержимое заказов

    Нажмите на рисунок, чтобы увеличить

  • Популярные категории и бренды

    Нажмите на рисунок, чтобы увеличить

  • Популярные товары

    Нажмите на рисунок, чтобы увеличить

  • Товары в корзине

    Нажмите на рисунок, чтобы увеличить

  • Заказанные товары

    Нажмите на рисунок, чтобы увеличить

Примечание: Все отчеты (кроме отчета Содержимое заказа) поддерживают возможность настройки.


Цели Яндекс.Метрики: статистика оформленных заказов.
171 / 363

Цели Яндекс.Метрики: статистика оформленных заказов.

Цели Яндекс.Метрики позволяют отслеживать конкретные действия посетителей сайта.

В предыдущих уроках мы разобрали, как подключить счётчик Яндекс.Метрики и как подключить электронную коммерцию Яндекс.

Теперь рассмотрим, как использовать Цели для отслеживания действий при оформлении заказа (компонент sale.order.ajax ).

  1. В настройках параметров компонента sale.order.ajax во вкладке Настройки аналитики отметьте следующие опции:
    • Использовать цели счетчика Яндекс.Метрики
    • Отправлять данные электронной торговли в Google и Яндекс (возможность отслеживать метрики добавления/удаления/покупки товаров)

    Появятся дополнительные поля настроек:

    Примечание: Обратите внимание на поля типа Идентификатор цели при .... Это названия как раз тех событий, которые можно отслеживать с помощью инструмента Цели Яндекс.Метрики. Ознакомьтесь с этими полями и скопируйте имена нужных вам событий (позднее при создании Целей нужно будет прописывать эти названия).

  2. Скопируйте номер ранее созданного счётчика Яндекс.Метрики и вставьте его в соответствующее поле настроек компонента sale.order.ajax;
  3. Выберите Свойство, в котором указан бренд товара (т.е свойство инфоблока, откуда система должна брать название бренда товара):

    Примечание: Имя контейнера данных (dataLayer) не нужно менять.

  4. Далее в Яндекс.Метрике в Настройке счётчика (Счётчики > (созданный ранее счётчик) > Настройка > Цели) нажмите кнопку Добавить цель:

  5. В открывшемся окне выберите тип условия JavaScript-событие, укажите название цели.

    В поле Идентификатор цели вставьте Идентификатор цели из настроек компонента sale.order.ajax, и сохраните изменения.

    Возможные идентификаторы цели (компонент sale.order.ajax )

    BX-order-init - Идентификатор цели при инициализации компонента на странице

    BX-region-edit - Идентификатор цели при редактировании блока региона доставки

    BX-delivery-edit - Идентификатор цели при редактировании блока доставки

    BX-pickUp-edit - Идентификатор цели при редактировании блока пунктов самовывоза

    BX-paySystem-edit - Идентификатор цели при редактировании блока оплаты

    BX-properties-edit - Идентификатор цели при редактировании блока свойств заказа

    BX-basket-edit - Идентификатор цели при редактировании блока списка товаров

    BX-region-next - Идентификатор цели при переходе из блока региона доставки по кнопке "Далее"

    BX-delivery-next - Идентификатор цели при переходе из блока доставки по кнопке "Далее"

    BX-pickUp-next - Идентификатор цели при переходе из блока пунктов самовывоза по кнопке "Далее"

    BX-paySystem-next - Идентификатор цели при переходе из блока оплаты по кнопке "Далее"

    BX-properties-next - Идентификатор цели при переходе из блока свойств заказа по кнопке "Далее"

    BX-basket-next - Идентификатор цели при переходе из блока списка товаров по кнопке "Далее"

    BX-order-save - Идентификатор цели при оформлении заказа

Готово! Теперь на странице счетчиков Яндекс.Метрики вы сможете отслеживать число выполненных на вашем сайте определенных действий:

Нажмите на рисунок, чтобы увеличить


Подключение Google Аналитики и Google Tag Manager
172 / 363

Подключение Google Аналитики и Google Tag Manager

Еще один вид счетчика событий (т.е. клиентских "кликов" по определенным местам/кнопкам сайта) - Google Аналитика.

Для отслеживания событий магазина в Google Аналитике воспользуемся новым инструментом от Google - Google Tag Manager.

Примечание: Можно подключить один из счетчиков: или Google Аналитики, или Google Tag Manager (в зависимости от того, каким функционалом Вы хотите пользоваться).

Google Аналитика позволяет отслеживать посещаемость сайта.
Google Tag Manager имеет расширенный функционал (не только посещаемость, но и события магазина , а также детальные отчеты по товарам.

Google Аналитику можно настроить во всех редакциях продукта "1С-Битрикс: Управление сайтом", а Google Tag Manager имеет смысл настраивать в редакциях Малый бизнес и выше (т.к. настраиваемые события связаны с передачей информации интернет-магазина).

В данном уроке рассмотрим, как подключить оба инструмента (Вы можете выбрать один на свое усмотрение). Вне зависимости от подключаемого инструмента все результаты (отчеты) будут выводиться на странице Google Аналитики.

Принцип подключения Google Аналитики и Google Tag Manager такой же, что и Яндекс.Метрики: необходимо зарегистрироваться на соответствующих ресурсах, получить коды отслеживания и вставить их в шаблон сайта.

Разберем процесс подключения пошагово:

  1. Создайте аккаунт Google. Если у вас уже есть аккаунт, зарегистрируйтесь и нажмите кнопку Далее;
  2. Создайте аккаунт Google Аналитики или, если он у вас уже есть, войдите в него.

    Выберите Веб-сайт, укажите название аккаунта. Пропишите также название сайта и введите его URL. Выберите категорию отрасли и укажите часовой пояс для отчетов.

    Кликните на кнопку Получить идентификатор отслеживания, и далее примите "Условия использования Google Аналитики", предварительно ознакомившись с ними;

  3. Скопируйте Идентификатор отслеживания и Код отслеживания (идентификатор отслеживания понадобится нам в следующем уроке):

    Нажмите на рисунок, чтобы увеличить

  4. Теперь создайте аккаунт на Google Tag Manager:
    • Настройте аккаунт;
    • Настройте контейнер (создается автоматически при создании аккаунта).
  5. Прочитайте и примите "Соглашение об Условиях использования Диспетчера тегов".
  6. Скопируйте Код Диспетчера тегов Google:

  7. Откройте шаблон вашего сайта в режиме изменения (Настройки > Настройки продукта > Сайты > Шаблоны сайта (шаблон нужного сайта)):

    Нажмите на рисунок, чтобы увеличить

  8. Скопированные Код Диспетчера тегов Google или Код отслеживания (в зависимости от подключаемого инструмента) добавьте в шаблон сайта:

    Примечание: Код отслеживания 1 и одна часть Кода Диспетчера тегов Google 2 вставляются в header шаблона сайта, а вторую часть Кода Диспетчера тегов Google 3 нужно вставить после открывающего тега <body>.

Готово! Google Аналитика и Google Tag Manager подключены!

Вы сразу сможете просматривать множество отчетов в режиме реального времени: количество посетителей на сайте, основные активные страницы и т.д. (Отчёты > В режиме реального времени).

В следующем уроке вы узнаете, как пользоваться Google Tag Manager и настраивать теги.


Создание тегов Google Tag Manager
173 / 363

Создание тегов Google Tag Manager

В предыдущем уроке мы разобрались, как подключить на сайт счетчики Google.

В этом уроке вы узнаете, как создать тег с триггерами для отслеживания покупательской активности (событий) в интернет-магазине:

  • showDetail - детальный просмотр товара;
  • addToCart - добавление товара в корзину;
  • checkout - переход на страницу оформления заказа;
  • purchase - завершение оформления заказа (заказ совершен).
  • removeFromCart - удаление товара из корзины.

Рассмотрим пошагово, как с помощью тегов Google Tag Manager отследить эти события.

  1. Прежде всего, в настройках параметров компонентов sale.order.ajax, sale.basket.basket и catalog во вкладке Настройки аналитики отметьте опцию Отправлять данные электронной торговли в Google и Яндекс (возможность отслеживать метрики добавления/удаления/покупки товаров);
  2. Далее в Google Tag Manager создайте триггеры:

    Здесь укажите имя нужного события и выберите в качестве типа триггера Пользовательское событие

    Посмотреть скриншоты настроек всех триггеров.
    • showDetail - детальный просмотр товара;

    • addToCart - добавление товара в корзину;

    • checkout - переход на страницу оформления заказа;

    • purchase - завершение оформления заказа (заказ совершен).

    • removeFromCart - удаление товара из корзины.

  3. Теперь создайте тег. Потребуется настроить конфигурацию тега и добавить созданные триггеры.

    Необходимые настройки конфигурации тега:

    • Тип тега - Google Аналитика - Universal Analytics
    • Тип отслеживания - Событие
    • Категория - указывается произвольное имя
    • Действие - Event
    • Ярлык - Page URL
    • Не взаимодействие - False
    • Настройки Google Analytics - Настройки Google Analytics
    • Включить переопределение настроек в этом теге - отметьте эту опцию, и в появившемся окне укажите скопированный ранее Идентификатор отслеживания

    Примечание: Если Вы хотите видеть детальные отчеты по товарам (а не только по событиям), то необходимо подключить Электронную торговлю Google (см. следующий урок ). Для этого при настройке тега необходимо в Дополнительных условиях настроить опцию Электронная торговля.

    После настройки конфигурации тега добавьте созданные триггеры.

  4. Теперь нужно, чтобы созданные тег с триггерами начали работать. Для этого нажмите в правом верхнем углу экрана кнопку Отправить. В открывшемся окне укажите название и описание версии настроек (название и описание указываются произвольно), и нажмите кнопку Опубликовать.

Готово! Тег с триггерами создан и уже начал работать.

Проверить правильность настройки триггеров можно в режиме реального времени на странице Google Аналитики (Отчёты > В режиме реального времени > События):

Нажмите на рисунок, чтобы увеличить


Как подключить электронную торговлю Google
174 / 363

Как подключить электронную торговлю Google

В предыдущем уроке мы настроили тег с триггерами для отслеживания покупательской активности (событий) в интернет-магазине. В этом уроке рассмотрим, как с помощью Электронной торговли Google получить детальные отчеты по товарам.

Для использования возможностей электронной торговли необходимо выполнить два действия:

  1. Подключите к своему интернет-магазину Google Tag Manager и создайте тег.

    При настройке тега необходимо в Дополнительных условиях настроить Электронную торговлю.

  2. Включите отслеживание электронной торговли в Google Аналитике (Администратор > Представление > Настройки электронной торговли):

    Нажмите на рисунок, чтобы увеличить

    Примечание: В Настройках электронной торговли можно при желании включить дополнительно отчеты для расширенной электронной торговли.

Готово! Теперь данные о товарах Вашего интернет-магазина будут поступать в Google Аналитику, и Вам станут доступны отчеты Google по электронной торговле (Отчеты > Конверсии > Электронная торговля):

Нажмите на рисунок, чтобы увеличить


Примеры кастомизации
175 / 363

Пара примеров для разработчиков

Для корректного определения геолокации в настройках модуля Аналитики настройте закладку Страна и город .

1. Определение текущих посетителей в онлайне. Может использоваться как для кейса "Количество людей на сайте", так и для таких кейсов как "Данную страницу сейчас просматривают".

if (\Bitrix\Main\Loader::includeModule('statistic'))
{
   $res = \CUserOnline::getList($guests, $sessions);
   echo 'Всего ' . $guests . ' гостей, и ' .$sessions . ' сессий';
   echo '
';
   while ($row = $res->fetch())
   {
      echo 'Гость #' . $row['ID'] .
          ', из ' . $row['REGION_NAME'] .
          ', его IP = ' . $row['IP_LAST'] .
         ', последний хит был на ' . $row['URL_LAST'];
      echo '
';
   }
}

Выведет примерно следующее:

Всего 24 гостей, и 24 сессий
Гость #8982548, из Москва, его IP = 178.208.*.*, последний хит был на https://....
Гость #8982547, из Санкт-Петербург, его IP = 5.188.*.*, последний хит был на https://....
...

2. Определение текущего города:

if (\Bitrix\Main\Loader::includeModule('statistic'))
{
   $res = \CGuest::getList(
      $by = 's_last_date',
      $order = 'desc',
      [
         'SESS_GUEST_ID' => $_SESSION['SESS_GUEST_ID']
      ],
      $isfiltered
   );
   if ($row = $res->fetch())
   {
      echo 'Ваш город: ' . $row['LAST_REGION_NAME'];
   }
}
//>> Ваш город: Москва

Может применяться для передачи данного города при оформлении заказа (нужен отдельный скрипт обработки, чтобы оформление заказа понимало данный город). Или для показа определенных типов цен в конкретном городе (требует также дополнительного программирования).


Веб-формы
176 / 363

Веб-форма - специальная область на странице или отдельная страница сайта, в которой посетитель может внести ту или иную информацию. Образно - это аналог бумажной анкеты, бланка и опросного листа. Количество веб-форм и количество вопросов в них ничем не ограничено, вам доступно гибкое управление параметрами ваших форм.


Возможности модуля Веб-формы
177 / 363

Где используются Веб-формы

Вы можете использовать их, например, для:

  • создания форм обратной связи;
  • для получения запросов посетителей вашего сайта (заявок на приобретение товара каталога или на участие в семинаре, обращений к компании и т.д.);
  • заполнения и хранения анкет;
  • создания новых лидов CRM (для корпоративного портала);
  • обработки другой информации, подразумевающей использование форм для ввода данных.

Возможности модуля Веб-формы

Кроме создания веб-форм и выведения их в публичной части , модуль:

  • хранит результаты ответов в базе данных,
  • извещает о заполнении веб-формы на указанный электронный адрес (адреса),
  • ограничивает просмотр ответов посетителей в зависимости от уровня прав на доступ к веб-формам или статусов для результатов веб-форм.
  • помогает анализировать динамику заполнения веб-форм, а также выдаёт информацию о посетителях, заполнивших формы.
  • работает в двух режимах редактирования:
    • упрощенном ;
    • расширенном .

Работа с вебформами

Работа с модулем описана в курсе Контент-менеджер.

Документация по теме:

  • Пользовательская документация по модулю "Веб-формы"
  • Пример использования модуля: система "Вопрос-ответ" на базе веб-форм


Настройки модуля
178 / 363

Настройки модуля

Настройка модуля Веб-формы осуществляется на странице Настройки > Настройки продукта > Настройки модулей > Веб-формы:

Нажмите на рисунок, чтобы увеличить

Поясним некоторые опции вкладки Настройки:

  • Использовать упрощенный режим редактирования форм - включение/выключение расширенного режима работы с веб-формами. После выключения упрощённого режима возврат к нему не рекомендуется: возможно искажение данных.
  • Максимальное кол-во записей выбираемых в SQL запросах - число записей, которое будет разрешено выбирать за один запрос SQL (устаревший параметр);
  • Право по умолчанию для вновь создаваемых веб-форм - определяются возможные действия для пользователя с создаваемой формой.

На вкладке Связь с CRM модуль Веб-формы можно интегрировать с CRM корпоративного портала , после чего любую веб-форму можно настроить так, что результаты ее заполнения будут отправляться в качестве полей нового лида в CRM.

Чтобы добавить новое соединение нажмите кнопку Добавить, после чего появится окно привязки CRM :

Поясним некоторые поля:

  • Сервер CRM - адрес вашего корпоративного портала или Битрикс24.
  • Путь - адрес страницы с компонентом интеграции относительного корневого каталога сервера (он уже по умолчанию должен присутствовать в поле и вводить его не надо).

На вкладке Доступ указывается уровень доступа к настройкам форм и результатам заполнения.

Чтобы добавить право доступа для какой-либо группы пользователей, нажмите ссылку Добавить право доступа. В противном случае ко всем группам пользователей, кроме администраторов, будет применено право доступа По умолчанию.

Документация по теме:

  • Настройки модуля


Настройка доступа к собственным результатам заполнения веб-формы
179 / 363

Как настроить доступ

Доступ пользователя к результатам заполнения веб-формы в упрощённом режиме задаётся в настройках модуля Веб-формы. Если выствить полный доступ, то все члены группы пользователей будут иметь доступ ко всем веб-формам. Такое решение удобное, но не всегда правильное.

Более гибко ограничение прав реализовано в расширенном режиме редактирования. В настройках модуля Веб-формы для группы пользователя обозначьте право доступа как доступ открыт и выключите использование упрощённого режима редактирования веб-форм.

Определите доступ непосредственно к конкретной веб-форме (Сервисы > Веб-формы > Настройка форм > Имя_формы):

Создайте для данной формы статусы или используйте уже существующие, но в том и другом случае у соответствующей группы пользователей должен быть доступ к работе с результатами в данном статусе:

Для доступа в административном интерфейсе к результатам заполнения веб-формы нужно чтобы пользователь имел как минимум право Чтение на папку /bitrix/admin/.

Документация по теме:

  • Веб-формы


Система "Вопрос-ответ" на базе веб-форм
180 / 363

После знакомства с теорией работы модуля Веб-формы изучить живой пример использования - крайне полезно. Рассмотрим пример создания системы Вопрос-ответ с использованием статусов.


ТЗ на систему Вопрос-ответ
181 / 363

Как должна работать система Вопрос-Ответ

Техническое задание на систему Вопрос-ответ:

  • На главной странице раздела Вопрос-ответ представлен список вопросов с ответами на них. Причем для администраторов сайта и модераторов системы (специальной группы пользователей) будут отображаться и вопросы без ответов.

    Для быстрого поиска необходимых вопросов и ответов используется специальная форма фильтра.

    В зависимости от прав пользователя доступны действия с вопросами: ответить на вопрос или удалить вопрос. Администраторы сайта могут отвечать на вопросы, изменять ответы и удалять вопросы. Модераторы могут отвечать на вопросы только один раз.

  • Для создания нового вопроса используется специальная форма, расположенная на отдельной странице.
  • Составление ответа на вопрос выполняется на отдельной странице с помощью специальной формы.

Примечание: работа с веб-формами должна осуществляться в расширенном режиме .

Модераторы системы Вопрос-ответ

Если необходимо, создайте группу пользователей Модераторы системы "Вопрос-ответ". Специальной потребности в этом нет, так как права модераторов определяются при настройке веб-формы и ее элементов, и можно выбрать любую существующую группу. Однако, если по каким-то причинам модерацию должны проводить отдельные пользователи, то создание группы будет лучшим решением.

Если у Контент-менеджера нет прав на создание групп пользователей, что естественно для большинства проектов, то обратитесь к администратору сайта с просьбой создать такую группу.


Настройка веб-формы
182 / 363

Создадим саму веб-форму, её шаблон, вопросы, поля, настроим статусы.


Что должно быть в веб-форме
183 / 363

Что должно быть в веб-форме

Пусть в нашей системе Вопрос-ответ при создании вопроса посетитель сайта укажет следующие данные, которые будут являться вопросами формы :

  • фамилию, имя, отчество;
  • электронный адрес;
  • номер телефона;
  • текст вопроса.

Кроме того, при создании вопроса пользователь должен будет заполнить поле защиты от роботов (CAPTCHA). Возможность использования CAPTCHA определяется настройками самой формы.

Чтобы модератор системы мог ответить на вопрос, нам следует создать также поле формы для хранения ответа.

Требование законодательства РФ

И последнее требование - это требование законодательства РФ: ФЗ-152 о персональных данных. Страница с Веб-формой должна обязательно содержать чекбокс подтверждения посетителем своего согласия на обработку персональных данных, если такие данные запрашиваются. А мы запрашиваем: e-mail и телефон.

На данный момент, к сожалению, штатно этот функционал в компонентах модуля Веб-формы не реализован. Добавить чекбокс подтверждения согласия можно, но потребуется привлечение разработчиков.


Создание веб-формы, вопросов и полей
184 / 363

Создание веб-формы

Для создания формы перейдите в административный раздел на страницу Сервисы > Веб-Формы > Настройка форм и нажмите кнопку Создать. На закладке Свойства заполните все необходимые поля . Подпись кнопки, сохраняющей результаты формы, замените на Отправить и отметьте опцию Использовать CAPTCHA:

На закладке Доступ для групп Все пользователи и Модераторы системы "Вопрос-ответ" укажите право доступа работа со всеми результатами в соответствии с их статусами:

Сохраните веб-форму. К настройке шаблона веб-формы и почтового шаблона вернемся после того, как создадим вопросы, поле и статусы.

Создание вопросов

Последовательно создайте все вопросы, указанные в Техзадании:

Символьный идентификатор | Обязателен | Текст вопроса | Ответ, тип поля | Поля в фильтре
name | да | Фамилия, имя, отчество | пустое значение, тип text | отмечаем текстовое поле в поле для вводимого значения
text | да | Вопрос | пустое значение, тип textarea | отмечаем текстовое поле в поле для вводимого значения
email | да | Адрес электронной почты | пустое значение, тип email | не указываем
phone | нет | Номер телефона | пустое значение, тип text | не указываем

Рекомендуется выставить сортировку вопросам, чтобы они отображались в верной последовательности, например, в фильтре. В результате на странице со списком вопросов веб-формы у нас будет представлена следующая таблица:

Создание поля

Теперь создайте поле, в котором будет хранить ответ на вопрос.

На закладке Свойства задайте параметры:

  • символьный идентификатор - our_answer;
  • типа поля - текст;
  • заголовок - Ответ.

Чтобы создаваемое поле не просто отображалось в фильтре поиска, а обязательно после полей Фамилия, имя, отчество и Вопрос:

  • задайте значение сортировки больше, чем у вопроса Фамилия, имя, отчество и больше, чем у вопроса Вопрос. Например, равной 300 (см. настройки сортировки вопросов выше).
  • на закладке Фильтр отметьте текстовое поле в поле Поля в фильтре .

Сохраните созданное поле.


Настройка статусов
185 / 363

Создаём статусы для вебформы

Нам понадобятся два статуса для результатов заполнения веб-формы:

  1. Статус Вопрос - устанавливается по умолчанию сразу после заполнения формы.

    Чтобы созданный вопрос был виден только его создателю и пользователям группы Модераторы системы "Вопрос-ответ", а также чтобы модераторы могли отвечать на вопрос, в настройках доступа статуса Вопрос необходимо выставить права доступа :

    • Имеют право на перевод результатов в данный статус [MOVE] - здесь выбираем создатель результата.
    • Имеют право на просмотр результатов в данном статусе [VIEW] - выбираем создатель результата и Модераторы системы "Вопрос-ответ", чтобы остальные пользователи не видели неотвеченных вопросов в списке.
    • Имеют право на редактирование результатов в данном статусе [EDIT] - выбираем группу Модераторы системы "Вопрос-ответ", поскольку только пользователи этой группы смогут отвечать на вопросы.
    • Имеют право на удаление результатов в данном статусе [DELETE] - здесь ничего не выбираем, т.к. удалять неотвеченные вопросы модераторы не могут. Это право оставляем за администратором сайта.
  2. Статус Ответ - устанавливается вручную, когда модератор дал ответ на вопрос.

    На закладке Свойства указываем заголовок статуса и переходим на закладку Доступ, чтобы настроить права доступа к результатам в этом статусе:

    • Имеют право на перевод результатов в данный статус [MOVE] - когда модератор отвечает на вопрос, то результат сразу переводится в данный статус, поэтому здесь выбираем группу Модераторы системы "Вопрос-ответ".
    • Имеют право на просмотр результатов в данном статусе [VIEW] - выбираем группу Все пользователи, поскольку все пользователи могут просматривать систему Вопрос-ответ.
    • Имеют право на редактирование результатов в данном статусе [EDIT] - ничего не выбираем, т.к. никто, кроме администраторов сайта, не может изменять уже отвеченные вопросы.
    • Имеют право на удаление результатов в данном статусе [DELETE] - ничего не выбираем, т.к. никто, кроме администраторов сайта, не может удалять вопросы из системы.


Создание шаблона формы
186 / 363

Как будет выглядеть ваша форма

Внешний вид формы добавления нового вопроса в систему Вопрос-ответ зависит от того, как вы настроите шаблон веб-формы. Пусть шаблон выглядит, например, так:

На закладке Шаблон формы в визуальном редакторе добавьте элемент Название формы, а под ним задайте таблицу из 2-х столбцов и 5-и строк. В строках разместите элементы: Название вопроса (первый столбец) и сам вопрос (второй столбец). В последней строке разместите элементы для вывода CAPTCHA:

Всё, шаблон готов.

Для любопытных: HTML-код формы выглядит так

 <?=$FORM->ShowFormErrors()?>
<table width="323" height="257" class="data-table">
  <tbody>
    <tr><td valign="middle" align="right"><?=$FORM->ShowInputCaption("name","")?></td><td><?=$FORM->ShowInput('name')?></td></tr>
    <tr><td valign="middle" align="right"><?=$FORM->ShowInputCaption("email","")?></td><td><?=$FORM->ShowInput('email')?></td></tr>
    <tr><td valign="middle" align="right"><?=$FORM->ShowInputCaption("phone","")?></td><td><?=$FORM->ShowInput('phone')?></td></tr>
    <tr><td valign="top" align="right"><?=$FORM->ShowInputCaption("text","")?></td> <td><?=$FORM->ShowInput('text')?></td></tr>
    <tr><td><?=$FORM->ShowCaptchaImage()?></td><td> Введите символы с картинки <?=$FORM->ShowRequired()?>
        <br />
       <?=$FORM->ShowCaptchaField()?></td></tr>
    <tr><td colspan="2"><?=$FORM->ShowSubmitButton("","")?></td></tr>
   </tbody>
 </table>


Почтовый шаблон
187 / 363

Шаблон для e-mail сообщений

После заполнения веб-формы отправляется письмо с уведомлением модераторам и администратору сайта.

В форме редактирования веб-формы Вопрос-ответ переходим на закладку Дополнительно и нажимаем ссылку создать . В результате сразу создается почтовый шаблон и почтовое событие Заполнена web-форма "Question_answer" для нашей веб-формы.

По ссылке с идентификатором шаблона переходим к его редактированию:

  • В поле Кому указываем email модератора.
  • В поле Копия указываем email администратора сайта, чтобы он мог контролировать работу модератора.
  • Отредактируем текст сообщения, оставив только данные о посетителе и сам вопрос, а также добавим ссылку для перехода к форме ответа на вопрос:

Примечание: все параметры, которые могут быть использованы при создании почтового шаблона, указаны внизу формы под полем Сообщение.


Вопросы и ответы
188 / 363

Создадим место на сайте для Вопросов и ответов.


Раздел на сайте для Вопросов и ответов
189 / 363

Создаём место на сайте для Вопросов и ответов

Создайте отдельный раздел Вопрос - ответ (имя папки - /question_answer) для публичных страниц системы, например, на верхнем уровне и разместите его в нижнем меню последним пунктом:

Создайте в папке Вопрос - ответ страницы:

  • Вопрос - ответ (название файла index.php) - главная страница раздела со списком вопросов и ответами на них.
  • Задать вопрос (название файла ask_question.php) - страница создания нового вопроса, то есть страница для заполнения веб-формы.
  • Ваш вопрос принят (название файла mess_send.php) - страница с сообщением об успешном создании нового вопроса. На эту страницу пользователь будет перенаправляться после заполнения формы на странице Задать вопрос.
  • Дать ответ (название файла answer.php) - страница составления ответа на вопрос, то есть страница с формой редактирования результата заполнения веб-формы.

Осталось разместить на этих страницах компоненты и настроить их на работу.


Список вопросов и ответов
190 / 363

Настраиваем вывод данных

Интерфейс главной страницы раздела со списком вопросов создается с помощью компонента Список результатов. Но разместить и настроить компонент - этого мало, вам предстоит ещё настроить вывод данных, то есть изменить шаблон компонента.

Размещение компонента

Откройте страницу Вопрос - ответ на редактирование и в теле страницы разместите компонент Список результатов:

Настройте параметры компонента:

  • В поле ID веб-формы укажите форму Вопрос-ответ.
  • Поле Страница просмотра результата оставьте пустым, оно использоваться не будет.
  • В поле Страница редактирования результата вводите название страницы составления ответа - answer.php.
  • В поле Страница добавления результата указывате название страницы заполнения формы - ask_question.php.
  • Опцию Показать дополнительные поля веб-формы отметьте, чтобы на странице отображались ответы на вопросы.
  • Опцию Показать текущий статус результата снимите, т.к. эта информация использоваться не будет.

Результат:

Штатный внешний вид врядли подойдёт под дизайн вашего сайта. Отредактируйте шаблон компонента, чтобы изменить внешний вид выводимой информации.

Редактирование шаблона компонента

Скопируйте шаблон компонента Список результатов (bitrix:form.result.list). Откроется форма копирования шаблона компонента. Укажите название нового шаблона и шаблон сайта, в который копировать шаблон компонента. Отметьте опции Применить новый шаблон компонента и Перейти к редактированию шаблона, чтобы сразу новый шаблон использовался в компоненте и открылась форма редактирования шаблона.

После сохранения откроется окно для редактирования шаблона компонента.

Сначала отредактируем ту часть, которая отвечает за вывод формы фильтра. В фильтре оставим только следующие поля:

  • дату создания вопроса (хранится в переменной FORM_F_DATE_CREATE);
  • вопросы формы Фамилия, имя, отчество и Вопрос, а также поле Ответ, которые хранятся в arrFORM_FILTER (при создании этих вопросов и поля были выполнены соответствующие настройки на закладке Фильтр ).

Заменяем код таблицы формы фильтра на следующий:

<table class="form-filter-table data-table">
    <thead>
        <tr>
            <th colspan="2"> </th>
        </tr>
    </thead>
    <tbody>
        <?
        if (strlen($arResult["str_error"]) > 0)
        {
        ?>
        <tr>
            <td class="errortext" colspan="2"><?=$arResult["str_error"]?></td>
        </tr>
        <?
        } // endif (strlen($str_error) > 0)
        ?>
        <tr>
            <td><?=GetMessage("FORM_F_DATE_CREATE")." (".CSite::GetDateFormat("SHORT")."):"?></td>
            <td><?=CForm::GetDateFilter("date_create", "form1", "Y", "", "")?></td>
        </tr>

        <?
        if (is_array($arResult["arrFORM_FILTER"]) && count($arResult["arrFORM_FILTER"])>0)
        {
            foreach ($arResult["arrFORM_FILTER"] as $arrFILTER)
            {
                $prev_fname = "";

                foreach ($arrFILTER as $arrF)
                {
                    if ($arParams["SHOW_ADDITIONAL"] == "Y" || $arrF["ADDITIONAL"] != "Y")
                    {
                        $i++;
                        if ($arrF["SID"]!=$prev_fname)
                        {
                            if ($i>1)
                            {
                            ?>
                            </td>
                            </tr>
                            <?
                            } //endif($i>1);
                            ?>
        <tr>
            <td>
                <?=$arrF["FILTER_TITLE"] ? $arrF['FILTER_TITLE'] : $arrF['TITLE']?>
                <?=($arrF["FILTER_TYPE"]=="date" ? " (".CSite::GetDateFormat("SHORT").")" : "")?>
            </td>
            <td>
            <?
                        } //endif ($fname!=$prev_fname) ;
                        ?>
                        <?
                        switch($arrF["FILTER_TYPE"]){
                            case "text":
                                echo CForm::GetTextFilter($arrF["FID"]);
                                break;
                            case "date":
                                echo CForm::GetDateFilter($arrF["FID"]);
                                break;
                            case "integer":
                                echo CForm::GetNumberFilter($arrF["FID"]);
                                break;
                            case "dropdown":
                                echo CForm::GetDropDownFilter($arrF["ID"], $arrF["PARAMETER_NAME"], $arrF["FID"]);
                                break;
                            case "exist":
                            ?>
                                <?=CForm::GetExistFlagFilter($arrF["FID"])?>
                                <?=GetMessage("FORM_F_EXISTS")?>
                            <?
                                break;
                        } // endswitch
                        ?>
                        <?
                        if ($arrF["PARAMETER_NAME"]=="ANSWER_TEXT")
                        {
                        ?>
                 [<span class='form-anstext'>...</span>]
                        <?
                        }
                        elseif ($arrF["PARAMETER_NAME"]=="ANSWER_VALUE")
                        {
                        ?>
                 (<span class='form-ansvalue'>...</span>)
                        <?
                        }
                        ?>
                <br />
                        <?
                        $prev_fname = $arrF["SID"];
                    } //endif (($arrF["ADDITIONAL"]=="Y" && $SHOW_ADDITIONAL=="Y") || $arrF["ADDITIONAL"]!="Y");

                } // endwhile (list($key, $arrF) = each($arrFILTER));

            } // endwhile (list($key, $arrFILTER) = each($arrFORM_FILTER));
        } // endif(is_array($arrFORM_FILTER) && count($arrFORM_FILTER)>0);
        ?></td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <th colspan="2">
                <input type="submit" name="set_filter" value="<?=GetMessage("FORM_F_SET_FILTER")?>" /><input type="hidden" name="set_filter" value="Y" />  <input type="submit" name="del_filter" value="<?=GetMessage("FORM_F_DEL_FILTER")?>" />
            </th>
        </tr>
    </tfoot>
</table>

Отредактируем ссылку Заполнить форму >>. Для этого в строке:

<p>
<b><a href="<?=$arParams["NEW_URL"]?><?=$arParams["SEF_MODE"] != "Y" ? (strpos($arParams["NEW_URL"], "?") === false ? "?" : "&")."WEB_FORM_ID=".$arParams["WEB_FORM_ID"] : ""?>"><?=GetMessage("FORM_ADD")?>  >></a></b>
</p>

параметр FORM_ADD заменяем на FORM_NEW_QUESTION. После чего в языковом файле /bitrix/templates/.default/components/bitrix/form.result.list/qa_template/lang/ru/template.php добавляем следующее сообщение:

$MESS ['FORM_NEW_QUESTION'] = "Задать свой вопрос";

Функции OnSelectAll_ и OnDelete_ можно удалить, поскольку в коде для нашей формы списка вопросов и ответов они использоваться не будут.

Теперь можно приступать к редактированию формы списка вопросов и ответов.

Для списка вопросов добавим механизм постраничной навигации, чтобы страница не была очень большой. В связи с этим нам потребуется параметр постраничной навигации, определяющий количество вопросов на одной странице. Также нам еще необходимо знать идентификатор статуса Ответ. Мы не будем усложнять задачу и зададим эти параметры явно в шаблоне компонента:

$status = "4";   //в нашем пример идентификатор статуса Ответ равен 4;
$ques_count = "10";  //параметр постраничной навигации;

Примечание: вы можете определить настройку этих параметров через параметры компонента.

Форма вопросов и ответов будет представлять из себя таблицу, в которой будут отображаться:

  • вопрос;
  • ответ;
  • дата создания вопроса;
  • фамилия, имя, отчество пользователя, создавшего вопрос;
  • ссылки Ответить на вопрос и Удалить вопрос с учетом прав доступа пользователей к системе Вопрос-ответ.

Поэтому код формы делаем следующим:

<form name="rform_<?=$arResult["filter_id"]?>" method="post" action="<?=POST_FORM_ACTION_URI?>#nav_start">
    <input type="hidden" name="WEB_FORM_ID" value="<?=$arParams["WEB_FORM_ID"]?>" />
    <?=bitrix_sessid_post()?>

    <?
    if ($arResult["res_counter"] > 0 && $arParams["SHOW_STATUS"] == "Y" && $arParams["F_RIGHT"] >= 15)
    {
    ?>
    <p><input type="submit" name="save" value="<?=GetMessage("FORM_SAVE")?>" /><input type="hidden" name="save" value="Y" /> <input type="reset" value="<?=GetMessage("FORM_RESET")?>" /></p>
    <?
    } //endif(intval($res_counter)>0 && $SHOW_STATUS=="Y" && $F_RIGHT>=15);
    ?>
    <p>
    <?=$arResult["pager"]?>
    </p>

<?

if(count($arResult["arrResults"]) > 0)
{
    $arPerm = CFormStatus::GetPermissions($status);
    $rsContent = new CDBResult;
    $rsContent -> InitFromArray($arResult["arrResults"]);
    $rsContent -> NavStart($ques_count);
    $j=0;
    ?>
    <table class="data-table form-table">
    <?
    while ($arRes=$rsContent->Fetch())
    {
        $j++;
        $user_date = $arRes["DATE_CREATE"];
        $res_id=$arRes["ID"];
        $arAns = CFormResult::GetDataByID($res_id, array());
        if ($j>1)
            {
            ?>
                <tr><td colspan="3" class="form-results-delimiter"> </td></tr>
            <?
            }
            ?>
        <tr>
        <td><b><?=$arAns["text"][0]["TITLE"]?></b></td><td><?=$arAns["text"][0]["USER_TEXT"]?></td>
        <td rowspan="2"><b><?=substr($user_date,0,10)."";?></b><br/><b><?=$arAns["name"][0]["USER_TEXT"]?></b>
            <br/>
            <?
            if ($arRes["STATUS_ID"]!=$status && in_array("MOVE", $arPerm) || $USER->IsAdmin())
                {
                $href = $arParams["SEF_MODE"] == "Y" ? str_replace("#RESULT_ID#", $arRes["ID"], $arParams["EDIT_URL"]) : $arParams["EDIT_URL"].(strpos($arParams["EDIT_URL"], "?") === false ? "?" : "&")."RESULT_ID=".$arRes["ID"]."&WEB_FORM_ID=".$arParams["WEB_FORM_ID"];
                ?>
                [ <a title="<?=GetMessage("FORM_EDIT_ALT")?>" href="<?=$href?>"><?=GetMessage("FORM_EDIT")?></a> ]
                <?
                }
                ?>
            <br/>
            <?
            if ($USER->IsAdmin())
                {
                $href = $arParams["LIST_URL"].(strpos($arParams["LIST_URL"], "?") === false ? "?" : "&").($arParams["SEF_MODE"] == "Y" ? "" : "WEB_FORM_ID=".$arParams["WEB_FORM_ID"]."&")."del_id=".$arRes["ID"]."&".bitrix_sessid_get()."#nav_start";
                ?>[ <a title="<?=GetMessage("FORM_DELETE_ALT")?>" href="javascript:if(confirm('<?=GetMessage("FORM_CONFIRM_DELETE")?>')) window.location='<?=$href?>'"><?=GetMessage("FORM_DELETE")?></a> ]
                <?
                }
                ?>
        </td>
        </tr>
        <tr>
            <?
        if ($arRes["STATUS_ID"]!=$status)
            {
            ?>
        <td colspan="2"><i><?=GetMessage("FORM_NEW_ANSWER")?></i></td>
        <?
            }
        else
            {
        ?>
        <td><b><?=$arAns["our_answer"][0]["TITLE"]?></b></td>
        <td><?=$arAns["our_answer"][0]["USER_TEXT"]?></td>
        <?
            }
        ?>
        </tr>
    <?
    }
    ?>
    </table>
<br />
    <?
echo $rsContent->NavPrint('Вопросы');
}
?>
</form>

Важно! Встречающиеся в коде name, text и our_answer - это символьные идентификаторы вопроса Фамилия, имя, отчество, вопроса Вопрос и поля Ответ.

Для используемого параметра FORM_NEW_ANSWER необходимо в языковом файле /bitrix/templates/.default/components/bitrix/form.result.list/qa_template/lang/ru/template.php добавить следующее сообщение:

$MESS ['FORM_NEW_ANSWER'] = "Вопрос ожидает ответа";

А для параметров FORM_EDIT, FORM_EDIT_ALT, FORM_DELETE_ALT и FORM_DELETE отредактировать их языковые сообщения:

$MESS ['FORM_EDIT_ALT'] = "Дать ответ на вопрос";
$MESS ['FORM_EDIT'] = "Ответить на вопрос";
$MESS ['FORM_DELETE_ALT'] = "Удалить вопрос";
$MESS ['FORM_DELETE'] = "Удалить вопрос";

В результате после сохранения шаблона и добавления нескольких вопросов главная страница системы Вопрос-ответ будет представлена в следующем виде для обычных пользователей:

Причем для авторизованных создателей вопросов будут отображаться и те вопросы, которые еще ожидают ответа.

Пользователям группы Модератор системы "Вопрос-ответ" дополнительно в списке будут отображаться все неотвеченные вопросы со ссылкой Ответить на вопрос.

Администратору сайта всегда доступны все вопросы. По ссылке Ответить на вопрос он может дать ответ на новый вопрос или изменить уже существующий ответ, а по ссылке Удалить вопрос - удалить любой вопрос.


Добавление вопроса
191 / 363

Настраиваем страницу добавления вопроса

Выполните следующие действия:

  • Откройте страницу Задать вопрос (ask_question.php) на редактирование в визуальном редакторе.
  • При желании добавьте некоторый поясняющий текст, например, Заполните поля формы.
  • Разместите на странице компонент Заполнение веб-формы.
  • В настройках параметров компонента укажите следующие данные:
    • ID веб-формы - выбрать из списка веб-форму Вопрос-ответ;
    • Включить поддержку ЧПУ и в параметре Каталог ЧПУ указать каталог системы /question_answer/;
    • В параметре Страница с сообщением об успешной отправке задать адрес к странице Ваш вопрос принят (mess_send.php);

      адреса остальных страниц задавать не нужно.

В результате выполненных действий страница создания вопроса будет иметь следующий вид:


Сообщение об успешном создании
192 / 363

Уведомим посетителя о том, что вопрос принят

Страница Ваш вопрос принят (mess_send.php) уведомляет посетителя о том, что вопрос создан. Откройте ее на редактирование в режиме html-кода и добавьте:

<p><font color="#005824">Спасибо, ваш вопрос принят.</font></p>
<p>Наши специалисты постараются ответить на него максимально оперативно.</p>
<br />
<table>
  <tbody>
    <tr><td> <a href="/question_answer/ask_question.php" ><b>Задать новый вопрос</b></a> </td><td></td><td>
             <a href="/question_answer/index.php" ><b>Вернуться к списку вопросов</b></a> </td></tr>
   </tbody>
 </table>

После сохранения изменений страница будет иметь следующий вид:

Ссылки Задать новый вопрос и Вернуться к списку вопросов ведут на страницы ask_question.php и index.php соответственно.


Ответ на вопрос
193 / 363

Настраиваем страницу ответа

Интерфейс страницы Дать ответ (answer.php) создается с помощью компонента Редактирование результата. Однако стандартный компонент для наших целей не подходит, поскольку нам необходимо вносить изменения только в поле Ответ. Поэтому нам необходимо скопировать полностью компонент в собственное пространство имен , чтобы отредактировать и код компонента, и шаблон компонента под наши нужды.

Копирование и размещение компонента

Выполним копирование компонента Редактирование результата в пространство demo, т.е. папка компонента /form.result.edit будет располагаться в папке /bitrix/components/demo.

Теперь откроем на редактирование страницу answer.php в визуальном редакторе и разместим скопированный компонент Редактирование результата (demo: form.result.edit ):

Настраиваем компонент следующим образом:

  • В поле ID результата оставляем код ={$_REQUEST[RESULT_ID]}, предложенный по умолчанию.
  • В поле Выводить на редактирование дополнительные поля обязательно указываем Да.
  • В обоих параметрах Страница со списком результатов и Страница просмотра результата указываем index.php, чтобы со страницы составления ответа осуществлялся переход только на главную страницу системы Вопрос-ответ.
  • Параметры Игнорировать свой шаблон и Выводить форму смены статуса можно не настраивать, поскольку они не будут использоваться в компоненте и мы их потом удалим за ненадобностью.

Сохраняем компонент и переходим к редактированию файла компонента /bitrix/components/demo/form.result.edit/.parameters.php.

Редактирование параметров компонента

В форме добавления ответа на вопрос не будет поля для смены статуса. При нажатии на кнопку Отправить, расположенной на форме, статус меняется автоматически на Ответ. Поэтому в параметры компонента необходимо добавить возможность указания этого статуса (чтобы компонент "знал", с каким статусом работать). В связи с этим в файле .parameters.php перед строкой:

$arComponentParameters = array(...

добавляем код формирования списка веб-форм сайта и списка статусов веб-формы, зависящего от выбранной впоследствии в параметрах компонента веб-формы:

$arrForms = array();
$rsForm = CForm::GetList($by='s_sort', $order='asc', array("SITE" => $_REQUEST["site"]), $v3);
while ($arForm = $rsForm->Fetch())
{
    $arrForms[$arForm["ID"]] = "[".$arForm["ID"]."] ".$arForm["NAME"];
}

$arrStatuses = array();
$rsStat = CFormStatus::GetList($arCurrentValues["WEB_FORM_ID"], $by='s_sort', $order='asc');
while ($arStatus = $rsStat->Fetch())
{
    $arrStatuses[$arStatus["ID"]] = "[".$arStatus["ID"]."] ".$arStatus["TITLE"];
}

В массив PARAMETERS добавляем код для отображения параметров веб-формы и статуса:

        "WEB_FORM_ID" => array(
            "NAME" => GetMessage("COMP_FORM_PARAMS_WEB_FORM_ID"),
            "TYPE" => "LIST",
            "VALUES" => $arrForms,
            "DEFAULT" => "={\$_REQUEST[WEB_FORM_ID]}",
            "PARENT" => "DATA_SOURCE",
            "REFRESH" => "Y",
        ),
        "STATUS_ID" => array(
            "NAME" => GetMessage("COMP_FORM_PARAMS_STATUS_ID"),
            "TYPE" => "LIST",
            "VALUES" => $arrStatuses,
            "DEFAULT" => '',
            "PARENT" => "DATA_SOURCE",
        ),

Для новых параметров COMP_FORM_PARAMS_WEB_FORM_ID и COMP_FORM_PARAMS_STATUS_ID задаем языковые сообщения в файле /bitrix/components/demo/form.result.edit/lang/ru/.parameters.php:

$MESS ['COMP_FORM_PARAMS_WEB_FORM_ID'] = "ID веб-формы системы \"Вопрос-ответ\"(используется только для проверки)";
$MESS ['COMP_FORM_PARAMS_STATUS_ID'] = "ID статуса, когда дан ответ на вопрос";

Теперь параметры компонента полностью готовы под наши нужды. Форма настройки параметров компонента приобретает следующий вид:

В настройках компонента указываем нашу веб-форму Вопрос-ответ и статус Ответ.

Переходим к изменению логики компонента, т.е к редактированию файла /bitrix/components/demo/form.result.edit/component.php.

Изменение логики компонента

Необходимо сформировать массив данных компонента так, чтобы только в поле ответа можно было вносить данные, а сами вопросы формы не были доступны для редактирования. Публикация вопроса (т.е. смена его статуса на Ответ) должна происходить сразу же по нажатии кнопки Отправить. Поэтому изменяем код компонента:

Код компонента

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><?

if (CModule::IncludeModule("form"))
{
    $GLOBALS['strError'] = '';

    $arDefaultComponentParameters = array(
        "RESULT_ID" => $_REQUEST["RESULT_ID"],
        "EDIT_ADDITIONAL" => "N",
        "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
        "STATUS_ID" => $_REQUEST["STATUS_ID"],
        "USE_EXTENDED_ERRORS" => "N",
    );

    $arParams['NAME_TEMPLATE'] = empty($arParams['NAME_TEMPLATE'])
        ? (method_exists('CSite', 'GetNameFormat') ? CSite::GetNameFormat() : "#NAME# #LAST_NAME#")
        : $arParams["NAME_TEMPLATE"];

    foreach ($arDefaultComponentParameters as $key => $value) if (!is_set($arParams, $key)) $arParams[$key] = $value;

    $arDefaultUrl = array(
        'LIST' => $arParams["SEF_MODE"] == "Y" ? "list/" : "result_list.php",
        'VIEW' => $arParams["SEF_MODE"] == "Y" ? "view/#RESULT_ID#/" : "result_view.php",
    );

    foreach ($arDefaultUrl as $action => $url)
    {
        if (strlen($arParams[$action.'_URL']) <= 0)
        {
            if (!is_set($arParams, 'SHOW_'.$action.'_PAGE') || $arParams['SHOW_'.$action.'_PAGE'] == 'Y')
                $arParams[$action.'_URL'] = $url;
        }
    }

    if ($arParams["SEF_MODE"] == "Y" && empty($arParams["RESULT_ID"]))
    {
        $arDefaultUrlTemplates404 = array(
            "edit" => "#RESULT_ID#/",
        );

        $arDefaultVariableAliases404 = array(
        );

        $arDefaultVariableAliases = array();

        $arComponentVariables = array("RESULT_ID");

        $arUrlTemplates = CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404, $arParams["SEF_URL_TEMPLATES"]);
        $arVariableAliases = CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404, $arParams["VARIABLE_ALIASES"]);
        CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"], $arUrlTemplates, $arVariables);

        $arParams["RESULT_ID"] = intval($arVariables["RESULT_ID"]);
    }

    $arResult["FORM_SIMPLE"] = COption::GetOptionString("form", "SIMPLE", "N") == "N" ? "N" : "Y";
    $arResult["bAdmin"] = defined("ADMIN_SECTION") && ADMIN_SECTION===true ? "Y" : "N";

    // if form taken from admin interface - check rights to form module
    if ($arResult["bAdmin"] == "Y")
    {
        $FORM_RIGHT = $APPLICATION->GetGroupRight("form");
        if($FORM_RIGHT<="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
    }

    /****************************************************************************/

    // if there's result ID try to get form ID
    if (intval($arParams["RESULT_ID"] > 0))
    {
        $DBRes = CFormResult::GetByID($arParams["RESULT_ID"]);

        if ($arResultData = $DBRes->Fetch())
        {
            $arParams["WEB_FORM_ID"] = intval($arResultData["FORM_ID"]);
        }
    }

    if (intval($arParams["RESULT_ID"]) <= 0 || intval($arParams["WEB_FORM_ID"]) <= 0)
    {
        $arResult["ERROR"] = "FORM_RECORD_NOT_FOUND";
    }

    if (strlen($arResult["ERROR"]) <= 0)
    {
        // check WEB_FORM_ID and get web form data
        $arParams["WEB_FORM_ID"] = CForm::GetDataByID($arParams["WEB_FORM_ID"], $arResult["arForm"],
                                                                $arResult["arQuestions"], $arResult["arAnswers"], $arResult["arDropDown"], $arResult["arMultiSelect"],
                                                                $arResult["bAdmin"] || $arParams["SHOW_ADDITIONAL"] == "Y" || $arParams["EDIT_ADDITIONAL"] == "Y" ? "ALL" : "N");
    $arResult["WEB_FORM_NAME"] = $arResult["arForm"]["SID"];

        // if wrong WEB_FORM_ID return error;
        if ($arParams["WEB_FORM_ID"] > 0)
        {
            //  insert chain item
            if (strlen($arParams["CHAIN_ITEM_TEXT"]) > 0)
            {
                $APPLICATION->AddChainItem($arParams["CHAIN_ITEM_TEXT"], $arParams["CHAIN_ITEM_LINK"]);
            }

            // check web form rights;
            $arResult["F_RIGHT"] = intval(CForm::GetPermission($arParams["WEB_FORM_ID"]));

            // in no form access - return error
            if ($arResult["F_RIGHT"] >= 15)
            {
                //if (!empty($_REQUEST["strFormNote"])) $arResult["FORM_NOTE"] = $_REQUEST["strFormNote"];
                if (!empty($_REQUEST["formresult"]))
                {
                    $formResult = strtoupper($_REQUEST['formresult']);
                    switch ($formResult)
                    {
                        case 'ADDOK':
                            $arResult['FORM_NOTE'] = str_replace("#RESULT_ID#", $arParams["RESULT_ID"], GetMessage('FORM_NOTE_ADDOK'));
                        break;
                        default:
                            $arResult['FORM_NOTE'] = str_replace("#RESULT_ID#", $arParams["RESULT_ID"], GetMessage('FORM_NOTE_EDITOK'));
                    }
                }

                if ($arResult["F_RIGHT"]>=20 || ($arResult["F_RIGHT"]>=15 && $USER->GetID()==$arResultData["USER_ID"]))
                {
                    $arResult["arrRESULT_PERMISSION"] = CFormResult::GetPermissions($arParams["RESULT_ID"], $v);

                    // check result rights
                    if (!in_array("EDIT", $arResult["arrRESULT_PERMISSION"]))
                    {
                        $arResult["ERROR"] = "FORM_RESULT_ACCESS_DENIED";
                    }
                    else
                    {
                        if (!$arResultData)
                        {
                            $z = CFormResult::GetByID($arParams["RESULT_ID"]);
                            $arResult["arResultData"] = $z->Fetch();
                        }
                        else
                        {
                            $arResult["arResultData"] = $arResultData;
                        }

                        if ($arResult["arResultData"])
                        {
                            $arResult["arrVALUES"] = CFormResult::GetDataByIDForHTML($arParams["RESULT_ID"], $arParams["EDIT_ADDITIONAL"]);
                        }
                        else
                        {
                            $arResult["ERROR"] = "FORM_RECORD_NOT_FOUND";
                        }
                    }
                }
                else
                {
                    $arResult["ERROR"] = "FORM_ACCESS_DENIED";
                }

                $arResult["arForm"]["USE_CAPTCHA"] = "N";
            }
            else
            {
                $arResult["ERROR"] = "FORM_RESULT_ACCESS_DENIED";
            }
        }
        else
        {
            $arResult["ERROR"] = "FORM_NOT_FOUND";
        }
    }

    // if there's no error
    if (strlen($arResult["ERROR"]) <= 0)
    {
        // ************************************************************* //
        //                                             get/post processing                                             //
        // ************************************************************* //

        if (strlen($_REQUEST["web_form_submit"])>0 || strlen($_REQUEST["web_form_apply"])>0)
        {
                reset($arResult["arQuestions"]);
                foreach ($arResult["arQuestions"] as $key => $arQuestion)
                {
                    $FIELD_SID = $arQuestion["SID"];
                    if (is_array($arResult["arQuestions"][$FIELD_SID]) && $arResult["arQuestions"][$FIELD_SID]["ADDITIONAL"] == "Y")
                    {
                        $temp="form_";
                        switch ($arResult["arQuestions"][$FIELD_SID]["FIELD_TYPE"])
                        {
                        case "text":
                            $temp.="textarea_ADDITIONAL_";
                            break;
                        case "integer":
                            $temp.="text_ADDITIONAL_";
                            break;
                        case "date":
                            $temp.="date_ADDITIONAL_";
                            break;
                        }
                        $temp.=$arResult["arQuestions"][$FIELD_SID]["ID"];
                        $arResult["arrVALUES"][$temp]= $_REQUEST[$temp];
                    }
                }
            // check errors
                $arResult["FORM_ERRORS"] = CForm::Check($arParams["WEB_FORM_ID"], $arResult["arrVALUES"], $arParams["RESULT_ID"], "Y", $arParams['USE_EXTENDED_ERRORS']);

            if (
                $arParams['USE_EXTENDED_ERRORS'] == 'Y' && (!is_array($arResult["FORM_ERRORS"]) || count($arResult["FORM_ERRORS"]) <= 0)
                ||
                $arParams['USE_EXTENDED_ERRORS'] != 'Y' && strlen($arResult["FORM_ERRORS"]) <= 0
            )
            {//echo "<pre>error "; print_r("enter"); echo "</pre>";
                // check session id
                if (check_bitrix_sessid())
                {
                    $return = false;

                    if (CFormResult::Update($arParams["RESULT_ID"], $arResult["arrVALUES"], $arParams["EDIT_ADDITIONAL"]))
                    {
                        CFormResult::SetStatus($arParams["RESULT_ID"],$arParams["STATUS_ID"],"Y");
                        $arResult["FORM_RESULT"] = 'editok';

                        if (strlen($_REQUEST["web_form_submit"])>0 && !(defined("ADMIN_SECTION") && ADMIN_SECTION===true))
                        {
                            if ($arParams["SEF_MODE"] == "Y")
                            {
                                //LocalRedirect($arParams["LIST_URL"]."?strFormNote=".urlencode($arResult["FORM_NOTE"]));
                                LocalRedirect(
                                    str_replace(
                                        array('#WEB_FORM_ID#', '#RESULT_ID#'),
                                        array($arParams['WEB_FORM_ID'], $arParams["RESULT_ID"]),
                                        $arParams["LIST_URL"]
                                    )."?formresult=".urlencode($arResult["FORM_RESULT"])
                                );
                            }
                            else
                            {
                                //LocalRedirect($arParams["LIST_URL"].(strpos($arParams["LIST_URL"], "?") === false ? "?" : "&")."WEB_FORM_ID=".$arParams["WEB_FORM_ID"]."&strFormNote=".urlencode($arResult["FORM_NOTE"]));
                                LocalRedirect(
                                    $arParams["LIST_URL"]
                                    .(strpos($arParams["LIST_URL"], "?") === false ? "?" : "&")
                                    ."WEB_FORM_ID=".$arParams["WEB_FORM_ID"]
                                    ."&RESULT_ID=".$arParams["RESULT_ID"]
                                    ."&formresult=".urlencode($arResult["FORM_RESULT"])
                                );
                            }

                            die();
                        }

                        if (strlen($_REQUEST["web_form_apply"])>0 && !(defined("ADMIN_SECTION") && ADMIN_SECTION===true))
                        {
                            if ($arParams["SEF_MODE"] == "Y")
                            {
                                LocalRedirect(
                                    $APPLICATION->GetCurPageParam(
                                        "formresult=".urlencode($arResult["FORM_RESULT"]),
                                        array('formresult', 'SEF_APPLICATION_CUR_PAGE_URL')
                                    )
                                );
                            }
                            else
                            {
                                LocalRedirect(
                                    $APPLICATION->GetCurPageParam(
                                        "WEB_FORM_ID=".$arParams["WEB_FORM_ID"]
                                        ."&RESULT_ID=".$arParams["RESULT_ID"]
                                        ."&formresult=".urlencode($arResult["FORM_RESULT"]),
                                        array('WEB_FORM_ID', 'RESULT_ID', 'formresult')
                                    )
                                );
                            }
                            die();
                        }

                        if (defined("ADMIN_SECTION") && ADMIN_SECTION === true)
                        {
                            if (strlen($_REQUEST["web_form_submit"])>0)
                            {
                                LocalRedirect(BX_ROOT."/admin/form_result_list.php?lang=".LANG."&WEB_FORM_ID=".$arParams["WEB_FORM_ID"]."&formresult=".urlencode($arResult["FORM_RESULT"]));
                            }
                            elseif (strlen($_REQUEST["web_form_apply"])>0)
                            {
                                LocalRedirect(BX_ROOT."/admin/form_result_edit.php?lang=".LANG."&WEB_FORM_ID=".$arParams["WEB_FORM_ID"]."&RESULT_ID=".$arParams["RESULT_ID"]."&form_result=".urlencode($arResult["FORM_RESULT"]));
                            }
                            die();
                        }
                    }
                    else
                        $arResult['FORM_ERRORS'] = $GLOBALS['strError'];
                }
            }
        }

        /*
if (is_array($arResult["FORM_ERRORS"]))*/

        $arResult["isFormErrors"] =
            (
                is_array($arResult["FORM_ERRORS"]) && count($arResult["FORM_ERRORS"]) > 0
                ||
                !is_array($arResult['FORM_ERRORS']) && strlen($arResult["FORM_ERRORS"]) > 0
            )
            ? "Y" : "N";

        //echo "<pre>ar "; print_r($arResult); echo "</pre>";
        if ($arResult['isFormErrors'] == 'Y')
        {
            unset($arResult['FORM_RESULT']);
            unset($arResult['FORM_NOTE']);
        }

        // ************************************************************* //
        //                                             output                                                                    //
        // ************************************************************* //
        // include CSS with additional icons for Site Edit mode
        if ($APPLICATION->GetShowIncludeAreas() && $USER->IsAdmin())
        {
            // define additional icons for Site Edit mode
            $arIcons = array(
                array(
                    'URL' => "javascript:".$APPLICATION->GetPopupLink(
                        array(
                            'URL' => "/bitrix/admin/form_edit.php?bxpublic=Y&from_module=form&lang=".LANGUAGE_ID."&ID=".$arParams['WEB_FORM_ID']."&back_url=".urlencode($_SERVER["REQUEST_URI"]),
                            'PARAMS' => array(
                                'width' => 700,
                                'height' => 500,
                                'resize' => false,
                            )
                        )
                    ),
                    'ICON' => 'bx-context-toolbar-edit-icon',
                    'TITLE' => GetMessage("FORM_PUBLIC_ICON_EDIT"),
                ),
            );

            $this->AddIncludeAreaIcons($arIcons);
        }

        if (intval($arResult["arResultData"]["USER_ID"])>0)
        {
            $rsUser = CUser::GetByID($arResult["arResultData"]["USER_ID"]);
            $arUser = $rsUser->Fetch();

            $arResult["RESULT_USER_ID"] = $arResult["arResultData"]["USER_ID"];
            $arResult["RESULT_USER_LOGIN"] = $arUser["LOGIN"];
            $arResult["RESULT_USER_EMAIL"] = $arUser["USER_EMAIL"];
            $arResult["RESULT_USER_FIRST_NAME"] = $arUser["NAME"];
            $arResult["RESULT_USER_LAST_NAME"] = $arUser["LAST_NAME"];
            $arResult["RESULT_USER_SECOND_NAME"] = $arUser["SECOND_NAME"];
        }

        // define variables to assign
        $arResult = array_merge(
            $arResult,
            array(
                "RESULT_ID" => $arParams["RESULT_ID"],
                "WEB_FORM_ID" => $arParams["WEB_FORM_ID"],
                "RESULT_USER_AUTH" => $arResult["arResultData"]["USER_AUTH"] == "Y" ? "Y" : "N",
                "RESULT_DATE_CREATE" => $arResult["arResultData"]["DATE_CREATE"],
                "RESULT_TIMESTAMP_X" => $arResult["arResultData"]["TIMESTAMP_X"],
                "RESULT_STAT_GUEST_ID" => $arResult["arResultData"]["STAT_GUEST_ID"],
                "RESULT_STAT_SESSION_ID" => $arResult["arResultData"]["STAT_SESSION_ID"],
                "isFormNote"			=> strlen($arResult["FORM_NOTE"]) ? "Y" : "N", // flag "is there a form note"
                "isAccessFormParams"	=> $arResult["F_RIGHT"] >= 25 ? "Y" : "N", // flag "does current user have access to form params"
                "isStatisticIncluded"	=> CModule::IncludeModule('statistic') ? "Y" : "N", // flag "is statistic module included"

                "FORM_HEADER" => sprintf( // form header (<form> tag and hidden inputs)
                    "<form name=\"%s\" action=\"%s\" method=\"%s\" enctype=\"multipart/form-data\">",
                    $arResult["arForm"]["SID"], POST_FORM_ACTION_URI, "POST"
                ),

                "FORM_TITLE"			=> trim(htmlspecialcharsbx($arResult["arForm"]["NAME"])), // form title

                "FORM_DESCRIPTION" => // form description
                    $arResult["arForm"]["DESCRIPTION_TYPE"] == "html" ?
                    trim($arResult["arForm"]["DESCRIPTION"]) :
                    nl2br(htmlspecialcharsbx(trim($arResult["arForm"]["DESCRIPTION"]))),

                "isFormTitle"			=> strlen($arResult["arForm"]["NAME"]) > 0 ? "Y" : "N", // flag "does form have title"
                "isFormDescription"		=> strlen($arResult["arForm"]["DESCRIPTION"]) > 0 ? "Y" : "N", // flag "does form have description"
                "isFormImage"			=> intval($arResult["arForm"]["IMAGE_ID"]) > 0 ? "Y" : "N", // flag "does form have image"
                "isUseCaptcha"			=> $arResult["arForm"]["USE_CAPTCHA"] == "Y", // flag "does form use captcha"
                "DATE_FORMAT"			=> CLang::GetDateFormat("SHORT"), // current site date format
                "REQUIRED_SIGN"			=> CForm::ShowRequired("Y"), // "required" sign
                "FORM_FOOTER"			=> "</form>", // form footer (close <form> tag)
            )
        );

        // get template vars for form image
        if ($arResult["isFormImage"] == "Y")
        {
            $arResult["FORM_IMAGE"]["ID"] = $arResult["arForm"]["IMAGE_ID"];
            // assign form image url
            $arImage = CFile::GetFileArray($arResult["arForm"]["IMAGE_ID"]);
            $arResult["FORM_IMAGE"]["URL"] = $arImage["SRC"];

            // check image file existance and assign image data
            if (substr($arImage["SRC"], 0, 1) == "/")
            {
                $arSize = CFile::GetImageSize($_SERVER["DOCUMENT_ROOT"].$arImage["SRC"]);
                if (is_array($arSize))
                {
                    list(
                        $arResult["FORM_IMAGE"]["WIDTH"],
                        $arResult["FORM_IMAGE"]["HEIGHT"],
                        $arResult["FORM_IMAGE"]["TYPE"],
                        $arResult["FORM_IMAGE"]["ATTR"]
                    ) = $arSize;
                }
            }
            else
            {
                $arResult["FORM_IMAGE"]["WIDTH"] = $arImage["WIDTH"];
                $arResult["FORM_IMAGE"]["HEIGHT"] = $arImage["HEIGHT"];
                $arResult["FORM_IMAGE"]["TYPE"] = false;
                $arResult["FORM_IMAGE"]["ATTR"] = false;
            }

            $arResult["FORM_IMAGE"]["HTML_CODE"] = CFile::ShowImage($arResult["arForm"]["IMAGE_ID"]);
        }

        $arResult["QUESTIONS"] = array();
        reset($arResult["arQuestions"]);

        // assign questions data
        foreach ($arResult["arQuestions"] as $key => $arQuestion)
        {
            $FIELD_SID = $arQuestion["SID"];
            $arResult["QUESTIONS"][$FIELD_SID] = array(
                "CAPTION" => // field caption
                    $arResult["arQuestions"][$FIELD_SID]["TITLE_TYPE"] == "html" ?
                    $arResult["arQuestions"][$FIELD_SID]["TITLE"] :
                    nl2br(htmlspecialcharsbx($arResult["arQuestions"][$FIELD_SID]["TITLE"])),

                "IS_HTML_CAPTION"			=> $arResult["arQuestions"][$FIELD_SID]["TITLE_TYPE"] == "html" ? "Y" : "N",
                "REQUIRED"					=> $arResult["arQuestions"][$FIELD_SID]["REQUIRED"] == "Y" ? "Y" : "N",
                "IS_INPUT_CAPTION_IMAGE"	=> intval($arResult["arQuestions"][$FIELD_SID]["IMAGE_ID"]) > 0 ? "Y" : "N",
            );

            // ******************************** customize answers ***************************** //

            $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"] = array();
            if (is_array($arResult["arQuestions"][$FIELD_SID]) && $arResult["arQuestions"][$FIELD_SID]["ADDITIONAL"] == "Y")
            {
                $res = "";
                switch ($arResult["arQuestions"][$FIELD_SID]["FIELD_TYPE"])
                {
                    case "text":
                        $value = CForm::GetTextAreaValue("ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"], array(), $arResult["arrVALUES"]);
                        $res .= CForm::GetTextAreaField(
                            "ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"],
                            "60",
                            "5",
                            "",
                            $value
                            );

                        $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"][] = $res;

                        break;
                    case "integer":
                        $value = CForm::GetTextValue("ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"], array(), $arResult["arrVALUES"]);
                        $res .= CForm::GetTextField(
                            "ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"],
                            $value);

                        $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"][] = $res;

                        break;
                    case "date":
                        $value = CForm::GetDateValue("ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"], array(), $arResult["arrVALUES"]);
                        $res .= CForm::GetDateField(
                            "ADDITIONAL_".$arResult["arQuestions"][$FIELD_SID]["ID"],
                            $arResult["arForm"]["SID"],
                            $value);

                        $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"][] = $res." (".CSite::GetDateFormat("SHORT").")";

                        break;
                } //endswitch;
            }

            $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"] = implode("<br />", $arResult["QUESTIONS"][$FIELD_SID]["HTML_CODE"]);

            // ******************************************************************************* //

            if ($arResult["QUESTIONS"][$FIELD_SID]["IS_INPUT_CAPTION_IMAGE"] == "Y")
            {
                $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["ID"] = $arResult["arQuestions"][$FIELD_SID]["IMAGE_ID"];
                // assign field image path
                $arImage = CFile::GetFileArray($arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["ID"]);
                $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["URL"] = $arImage["SRC"];

                // check image file existance and assign image data
                if (substr($arImage["SRC"], 0, 1) == "/")
                {
                    $arSize = CFile::GetImageSize($_SERVER["DOCUMENT_ROOT"].$arImage["SRC"]);
                    if (is_array($arSize))
                    {
                        list(
                            $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["WIDTH"],
                            $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["HEIGHT"],
                            $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["TYPE"],
                            $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["ATTR"]
                        ) = $arSize;
                    }
                }
                else
                {
                    $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["WIDTH"] = $arImage["WIDTH"];
                    $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["HEIGHT"] = $arImage["HEIGHT"];
                    $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["TYPE"] = false;
                    $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["ATTR"] = false;
                }

                $arResult["QUESTIONS"][$FIELD_SID]["IMAGE"]["HTML_CODE"] = CFile::ShowImage($arResult["arQuestions"][$FIELD_SID]["IMAGE_ID"]);
            }

            // get answers raw structure
            $arResult["QUESTIONS"][$FIELD_SID]["STRUCTURE"] = $arResult["arAnswers"][$FIELD_SID];
            // nullify value
            $arResult["QUESTIONS"][$FIELD_SID]["VALUE"] = "";
        }

        if ($arResult["isFormErrors"] == "Y")
        {
            ob_start();
            if ($arParams['USE_EXTENDED_ERRORS'] == 'N' || !is_array($arResult['FORM_ERRORS']))
                ShowError($arResult["FORM_ERRORS"]);
            else
                ShowError(implode('<br />', $arResult["FORM_ERRORS"]));

            $arResult["FORM_ERRORS_TEXT"] = ob_get_contents();
            ob_end_clean();
        }

        $arResult["SUBMIT_BUTTON"] = "<input ".(intval($arResult["F_RIGHT"]) < 10 ?
                           "disabled=\"disabled\"" : "")." type=\"submit\" name=\"web_form_submit\" value=\"".(strlen(trim($arResult["arForm"]["BUTTON"])) <= 0 ?
                           GetMessage("FORM_ADD") : $arResult["arForm"]["BUTTON"])."\" />";
        $arResult["RESET_BUTTON"] = "<input type=\"reset\" value=\"".GetMessage("FORM_RESET")."\" />";
        $arResult["REQUIRED_STAR"] = $arResult["REQUIRED_SIGN"];

        // include default template
        $this->IncludeComponentTemplate();
    }
    else
    {
        echo ShowError(GetMessage($arResult["ERROR"]));
    }
}
else
{
    echo ShowError(GetMessage("FORM_MODULE_NOT_INSTALLED"));
}
?>

Теперь необходимо изменить шаблон компонента под нашу логику.

Редактирование шаблона компонента

В форме ответа на вопрос помимо поля ввода ответа должны отображаться следующие данные: фамилия, имя, отчество пользователя, создавшего вопрос, текст вопроса, дата создания и дата ответа на вопрос. В связи с этим код шаблона компонента будет следующим:

Код шаблона компонента

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
?>

<?
if ($arParams["VIEW_URL"])
{
    $href = $arParams["SEF_MODE"] == "Y" ? str_replace("#RESULT_ID#", $arParams["RESULT_ID"], $arParams["VIEW_URL"]) :
                $arParams["VIEW_URL"].(strpos($arParams["VIEW_URL"], "?") === false ?
                "?" : "&")."RESULT_ID=".$arParams["RESULT_ID"]."&WEB_FORM_ID=".$arParams["WEB_FORM_ID"];
?>
<p>[ <a href="<?=$href?>"><?=GetMessage("FORM_VIEW")?></a> ]</p>
<?
}
?>

<?=$arResult["FORM_HEADER"]?>
<?=bitrix_sessid_post()?>

<br />
<?

/***********************************************************************************
                    Form questions
***********************************************************************************/
        ?>
<?if ($arResult["FORM_NOTE"]):?><?=$arResult["FORM_NOTE"]?><?endif?>
<?if ($arResult["isFormErrors"] == "Y"):?><?=$arResult["FORM_ERRORS_TEXT"];?><?endif;?>
<table class="form-table data-table">
    <thead>
        <tr>
            <th colspan="2"> </th>
        </tr>
    </thead>
    <tbody>
<tr>
            <td><b><?=GetMessage("FORM_DATE_CREATE")?></b></td>
            <td><?=FormatDateFromDB($arResult["RESULT_DATE_CREATE"])?></td>
        </tr>
        <tr>
            <td><b><?=GetMessage("FORM_TIMESTAMP")?></b></td>
            <td><?=FormatDateFromDB($arResult["RESULT_TIMESTAMP_X"])?></td>
        </tr>
        <tr>
            <td><b><?=$arResult["arQuestions"]["name"]["TITLE"]?></b></td>
            <td><?=$arResult["arrVALUES"]["form_text_29"]?></td>
        </tr>
        <tr>
            <td><b><?=$arResult["arQuestions"]["text"]["TITLE"]?></b></td>
            <td><?=$arResult["arrVALUES"]["form_textarea_30"]?></td>
        </tr>
    <?
    foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion)
    {
    if ($FIELD_SID == "our_answer")
    {
    ?>
    <tr>
        <td>
            <?if (is_array($arResult["FORM_ERRORS"]) && array_key_exists($FIELD_SID, $arResult['FORM_ERRORS'])):?>
            <span class="error-fld" title="<?=$arResult["FORM_ERRORS"][$FIELD_SID]?>"></span>
            <?endif;?>
            <b><?=$arQuestion["CAPTION"]?></b>
            </td>
        <td><?=$arQuestion["HTML_CODE"]?></td>
    </tr>
    <?
    }
} //endwhile

    ?>
    </tbody>
    <tfoot>
    <tr>
        <th colspan="2">
            <input type="submit" name="web_form_submit" value="<?=htmlspecialcharsbx(strlen(trim($arResult["arForm"]["BUTTON"])) <= 0 ? GetMessage("FORM_ADD") : $arResult["arForm"]["BUTTON"]);?>" />
             <input type="reset" value="<?=GetMessage("FORM_RESET");?>" />
        </th>
    </tr>
    </tfoot>
</table>

<?=$arResult["FORM_FOOTER"]?>

Чтобы отобразить введенные пользователем значения вопросов Фамилия, имя, отчество и Вопрос, необходимо знать названия их html-полей . Например, если вопрос имеет ответ типа text, то поле формы будет иметь имя form_text_id, где id - это идентификатор значения ответа, который можно посмотреть в форме настройки вопроса:

Таким образом, поля формы Фамилия, имя, отчество и Вопрос имеют имена form_text_29 и form_textarea_30 соответственно, которые и используются в коде шаблона компонента.

Примечание: если в параметры компонента добавить настройку выбора отображаемых полей формы, то в коде не придется указывать имена полей явно (см. пример выше по добавлению параметров идентификаторов веб-формы и статуса).

В файле языковых сообщений шаблона компонента вносим изменения:

$MESS ['FORM_VIEW'] = "Вернуться к списку вопросов";
$MESS ['FORM_DATE_CREATE'] = "Дата создания вопроса";
$MESS ['FORM_TIMESTAMP'] = "Дата ответа на вопрос";

В результате проделанных операций, когда модератор системы или администратор сайта со страницы со списком вопросов переходят по ссылке Ответить, открывается страница ответа на вопрос:


Документооборот
194 / 363

Поэтапная работа над сайтом

Модуль Документооборот используется для организации цепочки движения документа от момента создания до момента публикации.


Возможности Документооборота
195 / 363

Возможности Документооборота

Модуль позволяет:

  • Организовать поэтапную работу над документами с помощью статусов.
  • Вести историю изменений
  • Сохранять копии документов на каждом из этапов.

Работа с модулем

В этой главе описана настройка модуля. Работа с модулем со стороны исполнителей описана в курсе Контент-менеджер .

Документация по теме:

  • Пользовательская документация по модулю "Документооборот";
  • Организация проверки без документооборота - урок курса Контент-менеджер о том, как организовать контроль наполнения сайта без модуля Документооборот.


Настройка модуля
196 / 363

Настраиваем модуль

Управление настройками модуля выполняется на странице настройки модуля Документооборот (Настройки > Настройки продукта > Настройки модулей > Документооборот).

Нажмите на рисунок, чтобы увеличить

На закладке Настройки суть полей ясна из названия, в крайнем случае обратитесь к пользовательской документации . Но одно поле поясним. Это поле Группа администраторов документооборота. Для нормальной работы документооборота нужно создавать, изменять статусы. Делается это, если у пользователя есть полный доступ к модулю Документооборот. Давать права полного доступа сотрудникам, работающим с документами нецелесообразно. Поэтому есть такое поле, в котором указывается какая группа пользователей будут администраторами.

На закладке Доступ настраиваются уровни прав доступа к модулю для групп пользователей сайта.

Для пользователей, которые должны работать с документами, установите право - Участие в документообороте, для тех кто контролирует работу можно установить право Просмотр без права модификации.


Документооборот в структуре файлов
197 / 363

Как настроить документооборот для файлов и папок

Настройка документооборота на последовательную работу над страницами сайта включает в себя шаги:

  1. Настройка прав модуля Документооборот,
  2. Настройка прав модуля Управление структурой,
  3. Настройки в менеджере файлов для папок, участвующих в документообороте
  4. Создание и настройка необходимых статусов для документов.

Настройка прав модуля Документооборот

В модуле Документооборот для той группы пользователей, кто будет работать с документами установите право Участие в документообороте:

Настройка прав доступа к модулю Документооборот

Внимание для администраторов Битрикс24 в коробке! Этот пункт недоступен для пользователя корпоративного портала с правами Администрация портала, эту операцию должен выполнять пользователь с правами Администратор системы.

Настройка прав модуля Управление структурой

В модуле Управление структурой для той группы пользователей, кто будет работать с документами установите право Редактирование файлов и папок:

Настройка прав доступа к модулю Управление структурой

Настройки в менеджере файлов для папок, участвующих в документообороте

В Менеджере файлов для папок и файлов, с которыми будет работать пользователь, для этой же группы установите право доступа Документооборот:

Настройка прав доступа к папкам и файлам

Пользователи группы, предназначенной для документооборота, должны иметь право доступа на чтение к папке /bitrix/admin.

Документация по теме:

  • Создание и редактирование документа
  • Документы


Статусы, создание и настройка
198 / 363

Список статусов

Статус - это то, что обозначает определенный этап в работе с документом. Статусы так же ограничивают доступ к документу для пользователей.

Управление статусами выполняется на странице Статусы (Контент > Документооборот > Статусы):

Нажмите на рисунок, чтобы увеличить

Примечание: статус с ID=1 является конечным в цепочке документооборота (на рисунке это статус Опубликован). Он зарезервирован и не удаляется, но название статуса изменяется. При достижении документом этого статуса все изменения, выполненные в документе, вступают в силу, документ публикуется.

Создание статуса

Нажмите на [image] на странице списка Статусов, откроется форма создания статуса:

Настройка прав групп пользователей

Введите название и настройте права доступа к документам в этом статусе. Если необходимо уведомлять пользователей о достижении статуса, установите флажок в поле Оповестить всех, кто имеет право....

Количество возможных статусов не ограничено.


Документооборот при работе с инфоблоками
199 / 363

Как настроить документооборот для Информационных блоков

Настройка документооборота на последовательную работу над информационными блоками включает в себя шаги:

  1. Настройка прав модуля Управление структурой.
  2. Настройки разделов, участвующих в документообороте.
  3. Настройки информационных блоков, участвующих в документообороте, может выполняться Контент-менеджером, если ему даны такие права.
  4. Создание и настройка необходимых статусов для документов.

Внимание! В случае с инфоблоками нет необходимости давать права на модуль Документооборот.

Видео-пример настройки прав для документооборота в инфоблоках

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Настройка прав модуля Управление структурой

В модуле Управление структурой для той группы пользователей, которая будет работать с документами, установить право Редактирование файлов и папок:

Настройка прав доступа к модулю Управление структурой

Настройки в менеджере файлов для папок, участвующих в документообороте

В Менеджере файлов для папок и файлов, где будет размещаться информационный блок, для этой же группы установите право доступа Документооборот:

Настройка прав доступа к папкам и файлам

Пользователи группы, предназначенной для документооборота, должны иметь право доступа на чтение к папке /bitrix/admin.


Статусы для инфоблоков
200 / 363

Список статусов

Статус - это то, что обозначает определенный этап в работе с документом. Статусы так же ограничивают доступ к документу для пользователей.

Работа со статусами в инфоблоках аналогична созданию статусов для физических страниц и ведётся на странице административного раздела Контент > Документооборот > Статусы:

Нажмите на рисунок, чтобы увеличить

Настройка статусов

Вы можете использовать имеющиеся статусы, можете создать новые. Мы рассмотрим пример изменения текущих.

Откройте на изменение статус Черновик и укажите права на управление сообщениями новостного блока в данном статусе:

Такие настройки позволят всем нашим группам пользователей создавать и редактировать новости в статусе Черновик для их дальнейшей проверки корректором.

Откройте на изменение статус Готов и укажите права на управление сообщениями новостного блока в данном статусе:

Настройка прав для данного статуса позволяет корректорам и администраторам создавать и редактировать новости в этом статусе.

И права Администраторов интернет-магазина на статус Опубликован:

Такая настройка прав позволяет публиковать новости только администраторам интернет-магазина.

В результате сотрудники группы Контент-редакторы смогут только создавать или изменять новости (находящиеся в статусе черновика), но не смогут публиковать их на сайте. Корректоры смогут править документ, но не публиковать. Администраторы интернет-магазина смогут делать все, в том числе и публиковать. Готовность к публикации всегда будет подтверждаться корректором или администратором интернет-магазина.


Push and Pull
201 / 363

Push-уведомления – это небольшие всплывающие окна, которые появляются на экране мобильного телефона или обычного компьютера и сообщают о важных событиях и обновлениях. То есть инициатором уведомлений являются сайты, на которые подписан пользователь. Противоположностью Push-технологии является технология Pull, где информация запрашивается самим пользователем.


Что делает Push and Pull
202 / 363

Модуль Push and Pull обеспечивает отправку мгновенных команд.

Так как этот функционал организован в виде отдельного модуля, то любой другой модуль (в том числе и модули сторонних разработчиков) может, используя API, отправлять мгновенные нотификации и сообщения клиентам.

Работа этого модуля требуется для полной функциональности:

  • Мобильного приложения - задачи, события в календаре, мгновенные сообщения и т.д. обновляются/добавляются мгновенно без обновления страницы.
  • Голосований и опросов - обновление результатов голосования в режиме online.
  • Блогов - мгновенное обновление счетчика лайков у сообщений и комментариев
  • Веб-мессенджера - мгновенные сообщения в личной и групповой переписке без необходимости ждать опроса сервера, уведомление о том, что сообщение прочитано и пишется ответ, возможность совершать звонки и видеозвонки.

Примечание: Если при просмотре ленты у пользователя вместо правильного текста появляются нечитаемые символы, то скорее всего, в браузере жестко указана какая-либо кодировка. Необходимо указать автоматический выбор кодировки (Вид > Кодировка > Авто).


Как работает Push-сервер
203 / 363

 Когда пользователь входит на сайт, его браузер, настольное или мобильное приложение устанавливают и держат постоянное соединение с Push-сервером.

Обычно это делается с помощью WebSocket , который используют 95% современных браузеров. А если технология WebSocket не поддерживается браузером, то используется Long Polling — постоянный долгий опрос. Это ajax-запрос , который в течение 40 секунд ждет ответа от сервера. В случае получения ответа или при наступлении таймаута, запрос повторяется.

Для "1С-Битрикс: Управление сайтом" разработан собственный Push-сервер:

Схема работы Push-сервера

  • Пользователь пишет какое-то сообщение на портале.
  • Сообщение поступает на NGINX-сервер . Он обрабатывает и держит множество TCP и HTTPS-соединений, занимается балансировкой нагрузки и выполняет другие важные функции, такие как кеширование HTTP и использование в качестве обратного прокси.
  • Сообщение отправляется в PHP-часть бэкенда, там оно сохраняется, а потом транслируется в Push-сервер.
  • Push-сервер состоит из восьми процессов приложения Node.js - 6 процессов обслуживают входящие соединения, 2 процесса отвечают за публикацию сообщений.
  • Все восемь процессов Node.js-приложения имеют постоянное соединение с Redis . В Redis сохраняются все сообщения, статистика по каналам и состояние онлайна.
  • В самом сообщении содержатся все атрибуты данных, то есть автор, адресат и т.д. Один из двух процессов, отвечающих за публикацию сообщений, принимает это сообщение, обрабатывает его и публикует в Redis.
  • Redis записывает сообщение и оповещает другие шесть процессов о том, что поступило новое сообщение и его можно разослать подписчикам.
  • Для работы с WebSocket используется open-source модуль Node.js под названием ws.
  • Для безопасной работы с push-сервером каждый пользователь получает уникальный идентификатор канала при подсоединении. Это случайная строка из 32 символов и добавленная к ней специальная подпись, уникальная для этого конкретного идентификатора канала. Сами каналы регулярно меняются, как и их идентификаторы.
  • Сам канал хранится на сервере 24 часа, но запись в него осуществляется не более 12 часов. Остальное время хранения необходимо для того, чтобы пользователь смог получить ранее отправленные сообщения. Ведь если вечером ноутбук "уснул" с одним идентификатором канала, то утром он "проснется" с ним же и обратится на сервер. После отправки сообщений сервер закрывает старый канал и создает для этого пользователя новый.

Варианты работы Push-сервера «1С-Битрикс»

Для работы "1С-Битрикс: Управление сайтом" и "Битрикс24 в коробке" рекомендуется использовать виртуальную машину BitrixVM , где всё уже настроено. Если по каким-то причинам использование BitrixVM невозможно, то в используемом окружении необходимо настроить push-сервер.

Скачать исходные файлы Push-сервера из нашей виртуальной машины можно по адресу: /opt/push-server/.

Настройки хранятся в файле config/config.json .

Один из примеров настройки и запуска Push-сервера на стороннем окружении приведен в уроке.

Документация по теме:

  • Настройки модуля (документация)
  • Зачем настраивать модуль Push&Pull (блог)
  • Работа с модулем для разработчиков
  • API модуля
  • Push-уведомления в курсе «BitrixMobile - создание кроссплатформенных мобильных приложений»
  • О новом push-сервере «1С-Битрикс»
  • Новый real-time сервер push-уведомлений. Использование Node.js
  • Работа с модулем "Push & Pull"


Push and Pull - настройка модуля
204 / 363

Настройка Push and Pull

Сложность настройки модуля Push and Pull зависит от выбора типа сервера. Опишем настройки по возрастанию сложности. Все настройки осуществляются на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull.

Облачный Push сервер

Для включения облачного сервера достаточно в поле Использовать "Push server" выбрать облачный тип сервера, затем указать нужный сервер и зарегистрироваться:

Использование актуальной виртуальной машины

Если ваш Битрикс установлен на виртуальной машине BitrixVM версии 7.1 и выше , то у вас так же нет необходимости настраивать модуль Push and Pull. В виртуальной машине установлен Push-сервер по умолчанию. Он настроен, сконфигурирован и работает "из коробки".

Если, всё же необходимо произвести некоторые изменения, то это делается на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull:

Нажмите на рисунок, чтобы увеличить

  • Укажите секретный код для подписи сообщения. Это 32-хзначный произвольный код, который указывается в настройках пуш-сервера:
    <путь к пуш-серверу>./push-server/config/config.json:
"security": {
        "key": <ваш секретный ключ>
    Примечание: В виртуальной машине BitrixVM это поле создается автоматически при первом старте службы или при настройке/обновлении и прописывается в настройки сайта.
  • При необходимости перенастройте шаблоны путей. Домен в адресе для чтения сообщений можно указать #DOMAIN#: такая нотация будет автоматически заменяться под нужный домен для многодоменных конфигураций. Пример: http://#DOMAIN#:8893/bitrix/sub/.
  • Если в системе несколько активных сайтов, то есть возможность выбрать, на каких сайтах модуль не будет работать.

Если у вас устаревшая версия Виртуальной машины

Для устаревших виртуальных машин используйте информацию из спойлеров.

Работа модуля Push and Pull Битрикса на виртуальной машине до версии 5.0.

На серверной стороне поддержка мгновенных сообщений осуществляется модулем NGINX: nginx-push-stream-module. Данный модуль обеспечивает поддержку long-polling соединений с клиентами и доставку опубликованных им сообщений.

Примечание: Bitrix Framework и без модуля nginx-push-stream-module обеспечивает достаточно высокую скорость передачи сообщений: 60 секунд интервал, при наличии сообщений интервал между соединениями уменьшается до 10 секунд.

При открытии страницы клиент ajax-запросом, подключается к своему каналу на одном из портов NGINX: 8893 (http) или 8894 (https). (В случае использования виртуальной машины BitrixVM. При использовании собственной конфигурации сервера администратор волен использовать любые удобные ему порты.) С данного порта NGINX перенаправляет пользователя на внутренний сервер очередей (доступный только по 127.0.0.1:8895), где проверятся наличие канала пользователя и новых сообщений. В случае если в канале нет сообщений, сервер не отдает ответ, а держит соединение в течение 40 сек.

Если в течение этого времени в канал пользователя придет новое сообщение, то сервер отправит его клиенту и закроет соединение. В случае если в канал пользователя не будет новых сообщений в течение 40 секунд, то сервер разорвет соединение и отправит ему заголовок: 304 Not Modified.

После получения ответа сервера и закрытия соединения клиент выполнит повторное подключение к каналу с новой датой последнего изменения.

Сообщения в канал пользователя публикуются посредством вызова соответствующих методов API модуля Push and Pull.

Для работы с мгновенными сообщениями рекомендуем использовать протокол https.

Примечание: Большое значение имеет правильная синхронизация времени сервера с глобальными серверами.

Настройка модуля

При использовании продуктов Bitrix Framework на базе виртуальной машины BitrixVM с v. 5.0 необходимости в настройке модуля нет: всё работает "из коробки". Если проект используется не на штатных средствах установки Bitrix Framework, то необходимо произвести дополнительные настройки.

Примечание: Приведённые ниже образцы настроек даны для примера. Настройку под конкретный проект, при отказе от использования рекомендуемых BitrixVM или BitrixEnvironment, администратор должен произвести самостоятельно.

Внимание! Работа модуля Push and Pull поддерживается только до версии 0.5 nginx-push-stream-module. Более свежие версии не поддерживаются, так как для работы Push and Pull разрабатывается специальное решение от "1С-Битрикс".

  • Соберите NGINX с поддержкой модуля nginx-push-stream-module;

    В качестве примеров можно использовать файлы из нашей виртуальной машины:

    • /etc/nginx/bx/site_enabled/push.conf - настройки push and pull для публикации сообщений, а так же для работы мобильных;
    • /etc/nginx/bx/conf/im_subscrider.conf - настройки для получения сообщений (они подключаются к сайту непосредственно);
    • /etc/nginx/bx/conf/im_settings.conf - количество каналов, объём памяти и т.п..

Настройка nginx-push-stream-module в версии 0.4.0 (рекомендуется к использованию)
  • Общие настройки (файл /etc/nginx/bx/conf/im_settings.conf):
    # Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;
  • Настроить отдельные виртуальные сервера NGINX на портах 8893, 8894, 8895 (/etc/nginx/bx/site_enabled/push.conf):
    # поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

listen 8893;
server_name _;

# Include error handlers
include bx/conf/errors.conf;

# Include im subscrider handlers
include bx/conf/im_subscrider.conf;

location ^~ / { deny all; }
}
# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894;
server_name _;
    include bx/conf/ssl.conf;

# Include error handlers
include bx/conf/errors.conf;

# Include im subscrider handlers
include bx/conf/im_subscrider.conf;

location ^~ / { deny all; }
}
# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
server_name _;

location ^~ /bitrix/pub/ {
    push_stream_publisher admin;
    push_stream_channels_path $arg_CHANNEL_ID;
    push_stream_store_messages on;
    allow 127.0.0.0/8;
deny all;
}

location ^~ / { deny all; }

# Include error handlers
include bx/conf/errors.conf;
}

    Для получения сообщений через запрос на стандартный порт (80 для http, 443 для https) в дефолтный файл /etc/nginx/bx/conf/im_subscrider.conf добавлено:

    # Include im subscrider handlers
include bx/conf/im_subscrider.conf;

    Этот файл содержит:

    # Location for long-polling connections
location ^~ /bitrix/sub {

# we don't use callback and droppped it (XSS)
if ( $arg_callback ) {
    return 400;
}

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

Настройка nginx-push-stream-module в версии 0.3.4
  • Общие настройки:
    # Common settings for nginx-push-stream-module

push_stream_shared_memory_size			256M;
push_stream_max_messages_stored_per_channel	1000;
push_stream_max_channel_id_length		32;
push_stream_max_number_of_channels		100000;
push_stream_shared_memory_cleanup_objects_ttl	60;
push_stream_message_ttl				86400;
  • Настройки сервера мгновенных сообщений
        # Nonsecure server for reading personal channels. Use secure server instead.
    server {
        # nginx-push-stream-module server for push & pull

        listen	8893;
        include	bx/node_host.conf;

        # Include error handlers
        include	bx/conf/errors.conf;

        # Location for long-polling connections
        location ^~ /bitrix/sub {
            push_stream_subscriber			long-polling;
            set $push_stream_channels_path		$arg_CHANNEL_ID;
            push_stream_last_received_message_tag	$arg_tag;
            push_stream_longpolling_connection_ttl	40;
            push_stream_authorized_channels_only	on;
            push_stream_content_type		"text/html; charset=utf-8";
            push_stream_message_template "#!NGINXNMS!#{
                            \"id\":~id~,\"tag\":\"~tag~\",\"time\":\"~time~\",\"text\":~text~}#!NGINXNME!#";
        }

        # Location for websocet connections
        location ^~ /bitrix/subws/ {
            push_stream_websocket;
            set $push_stream_channels_path		$arg_CHANNEL_ID;
            push_stream_websocket_allow_publish	off;
            push_stream_ping_message_interval	40s;
            push_stream_authorized_channels_only on;
            push_stream_message_template		"#!NGINXNMS!#{
                            \"id\":~id~,\"tag\":\"~tag~\",\"time\":\"~time~\",\"text\":~text~}#!NGINXNME!#";
        }

        location ^~ / 			{ deny all; }
    }

    # SSL enabled server for reading personal channels
    server {
        listen	8894;
        include	bx/node_host.conf;
        include	bx/conf/ssl.conf;

        # Include error handlers
        include	bx/conf/errors.conf;

        add_header "Access-Control-Allow-Origin" "*";
        add_header "Access-Control-Allow-Headers" "if-modified-since, origin, if-none-match";

        # Location for long-polling connections
        location ^~ /bitrix/sub {
            push_stream_subscriber			long-polling;
            set $push_stream_channels_path		$arg_CHANNEL_ID;
            push_stream_last_received_message_tag	$arg_tag;
            push_stream_longpolling_connection_ttl	40;
            push_stream_authorized_channels_only	on;
            push_stream_content_type		"text/html; charset=utf-8";
            push_stream_message_template		"#!NGINXNMS!#{
                            \"id\":~id~,\"tag\":\"~tag~\",\"time\":\"~time~\",\"text\":~text~}#!NGINXNME!#";
        }

        # Location for web socket connections
        location ^~ /bitrix/subws/ {
            push_stream_websocket;
            set $push_stream_channels_path		$arg_CHANNEL_ID;
            push_stream_websocket_allow_publish	off;
            push_stream_ping_message_interval	40s;
            push_stream_authorized_channels_only	on;
            push_stream_message_template		"#!NGINXNMS!#{
                             \"id\":~id~,\"tag\":\"~tag~\",\"time\":\"~time~\",\"text\":~text~}#!NGINXNME!#";
        }

        location ^~ / 			{ deny all; }
    }

    # Server to push messages to user channels
    server {
        listen 127.0.0.1:8895;
        include	bx/node_host.conf;

        location ^~ /bitrix/pub/ {
            push_stream_publisher			admin;
            set $push_stream_channel_id		$arg_CHANNEL_ID;
            push_stream_store_messages		on;
            push_stream_keepalive			off;
            allow					127.0.0.0/8;
            deny					all;
        }

        location ^~ /	{ deny all; }

        # Include error handlers
        include	bx/conf/errors.conf;
    }
  • Включите в настройках продукта на странице Настройки > Настройки продукта > Настройки модулей > Push and Pull опцию На сервере установлен модуль nginx-push-stream-module:

    Также необходимо выбрать версию используемой вами машины. Рекомендуется использовать Виртуальную машину в версии 4.4 и выше, так как в ней используется более совершенная версия модуля nginx-push-stream-module 0.4.0, позволяющая использовать технологию Веб-сокетов и отправление команд.

  • При необходимости перенастройте шаблоны путей. Если используется Виртуальная машина, либо настройка nginx-push-stream-module производилась по аналогии с BitrixEnvironment, то изменения путей не требуется.

    • Внимание! Если у вас появляется ошибка вида:
    XMLHttpRequest cannot load
http://example.com:8893/bitrix/sub/?CHANNEL_ID=<уникальный_адрес_канала>&tag=1&rnd=1380619831146.
Origin http://example.com is not allowed by Access-Control-Allow-Origin.
    значит, вы используете версию модуля nginx push stream module до 0.3.4.

    Необходимо либо обновить версию модуля, либо закомментировать строки:

    add_header "Access-Control-Allow-Origin" "*";
add_header "Access-Control-Allow-Headers" "if-modified-since, origin, if-none-match";

    Как использовать модуль, подробно рассказано в курсе Разработчик Bitrix Framework в главе Push and Pull .

    Документация по теме:

    • Настройки модуля (документация)
    • Зачем настраивать модуль Push&Pull (блог)
    • Работа с модулем для разработчиков
    • API модуля
    • Push-уведомления в курсе «BitrixMobile - создание кроссплатформенных мобильных приложений»


Настройка и запуск push сервера на стороннем окружении
205 / 363

Для работы "1С-Битрикс: Управление сайтом" и "Битрикс24 в коробке" рекомендуется использовать BitrixVM , где всё уже настроено. Если по каким-то причинам использование BitrixVM невозможно, то в используемом окружении необходимо настроить push-сервер. Примеры приведены для CentOs.

Настройка push-сервера

  1. Подключите подключенный репозиторий bitrix-env:
    cat /etc/yum.repos.d/bitrix.repo
[bitrix]
name=$OS $releasever - $basearch
failovermethod=priority
baseurl=http://repos.1c-bitrix.ru/yum/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://repos.1c-bitrix.ru/yum/RPM-GPG-KEY-BitrixEnv

    Примечание: В случае Centos 6 необходим подключенный nodejs репозиторий
    curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - >/dev/null 2>&1

  2. Установите пакеты.

    Примечание: На текущий момент существует проблема с Centos 7.3, нужно установить вручную пакет http-parser:
    rpm -Uvh https://kojipkgs.fedoraproject.org//packages/http-parser/2.7.1/3.el7/x86_64/http-parser-2.7.1-3.el7.x86_64.rpm
    Затем
     yum -y install nodejs push-server

Настройка Redis сервера

  1. Измените группу у пользователя Redis. В случае Bitrix окружения это - группа bitrix, в остальных случаях группа соответствует группе с правами которой работает apache или php-fpm сервис.
    usermod -g bitrix redis
  2. Измените конфигурационный файл для redis сервиса:
     cat /etc/redis.conf
# Ansible managed
unixsocket /tmp/redis.sock
pidfile /var/run/redis_6379.pid
logfile /var/log/redis/redis.log
dir /var/lib/redis

bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
unixsocketperm 770
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
loglevel notice
databases 16
save 86400 1
save 7200 10
save 3600 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
maxmemory 459mb
maxmemory-policy allkeys-lru

    Значение maxmemory зависит от сервера, где устанавливается push-server. В случае BitrixVM, например, этот параметр равен 1/4 от установленной памяти.

    Примечание: В случае Centos 7 меняем настройки службы Redis:
    cat /etc/systemd/system/redis.service.d/custom.conf
[Service]
Group=bitrix
    Если не используется окружение Bitrix, выставляем значение группы в нужное вам.

  3. Перезапустите сервис Redis и включите для него автоматический запуск.

    Команда для Centos 7:

     systemctl enable redis && systemctl restart redis

    Команда для Centos 6:

     chkconfig redis on && /etc/init.d/redis restart

Конфигурация Push-server

  1. Измените файл настроек /etc/sysconfig/push-server-multi, добавив опцию WS_HOST - IP адрес хоста , на котором запускается сервис. Если необходимо измените настройки, которые отвечают за количество процессов nodejs, обрабатывающих запрос на получение и публикацию сообщений:
    ID_SUB=5              # max ID for sub service
ID_PUB=1              # max ID for pub service
  2. Создайте конфигурационные файлы для запускаемых процессов. Одновременно в конфиге будет создан ключ SECURITY_KEY:

    /etc/init.d/push-server-multi reset

    Данный процесс создаст конфигурационные файлы в каталоге:

    ls -al /etc/push-server/push-server-*
-rw-r--r-- 1 bitrix root   685 Aug 25 14:52 /etc/push-server/push-server-pub-9010.json
-rw-r--r-- 1 bitrix root   685 Aug 25 14:52 /etc/push-server/push-server-pub-9011.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8010.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8011.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8012.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8013.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8014.json
-rw-r--r-- 1 bitrix root   635 Aug 25 14:52 /etc/push-server/push-server-sub-8015.json

    Количество файлов зависит от опций, указанных выше.

  3. Запустите процессы.

    Команда для Centos 7:

    systemctl enable push-server && systemctl start push-server

    Команда для Centos 6:

    chkconfig push-server-multi on && /etc/init.d/push-server-multi start

Конфигурация NGINX

  1. Настройте upstream серверов для push-server:
    #/etc/nginx/bx/settings/rtc-im_settings.conf

log_format simple '$time_local $status $request';
# if connection ti not set
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' 'close';
}

map $http_upgrade  $replace_upgrade {
  default $http_upgrade;
  ''      "websocket";
}

# sub services
upstream nodejs_sub {
  ip_hash;
  keepalive 1024;
  server vm04.ksh.bx:8010;
  server vm04.ksh.bx:8011;
  server vm04.ksh.bx:8012;
  server vm04.ksh.bx:8013;
  server vm04.ksh.bx:8014;
  server vm04.ksh.bx:8015;
}

# pub services
upstream nodejs_pub {
  ip_hash;
  keepalive 1024;
  server vm04.ksh.bx:9010;
  server vm04.ksh.bx:9011;
}

    В качестве имени сервера укажите имя или IP адрес сервера, на котором стоит push-server.

  2. Конфигурационный файл виртуальных серверов:
    # /etc/nginx/bx/site_enabled/rtc-server.conf

server {
    listen 8895 default_server;
    server_name _;

    # access_log  /var/log/nginx/access.log  main buffer=64k;
    # access_log  /dev/shm/access.log simple;
    # error_log  /var/log/nginx/error.log  warn;
    access_log off;

    add_header "X-Content-Type-Options" "nosniff";

    location /server-stat {
        access_log off;
        proxy_pass http://nodejs_pub;
    }

    location  /nginx_status {
        stub_status on;
    }

    location /bitrix/pub/ {
        # IM doesn't wait
        proxy_ignore_client_abort on;
        proxy_pass http://nodejs_pub;
    }

        include bx/conf/im_subscrider.conf;

    location / {
        deny all;
    }
}

server {
    listen 8893;
    listen 8894 default_server ssl;

    access_log off;
    add_header Access-Control-Allow-Origin *;

    server_name _;

    # ssl settings
    include bx/conf/ssl.conf;

    # Include error handlers
    include bx/conf/errors.conf;

    # Include im subscrider handlers
    include bx/conf/im_subscrider.conf;

    location ^~ /           { deny all; }
}

    Примечание: Доступ на сервер, обслуживающий /pub нужно открыть только для web-серверов, которые будут выполнять публикацию. Если все настройки находятся на одном хосте, то лучше всего использовать 127.0.0.1 адрес для этого сервера.

  3. В конфигурационом файле bx/conf/im_subscrider.conf содержаться настройки для публичных точек входа /bitrix/subws, /bitrix/sub и /bitrix/rest. Если предполагается их использование напрямую на сайте, а не отдельным виртуальным сервером, данный файл нужно подключить напрямую в конфиг сайта.
    # cat /etc/nginx/bx/conf/im_subscrider.conf
# Ansible managed
location ~* ^/bitrix/subws/ {
    access_log off;
   proxy_pass http://nodejs_sub;
   # http://blog.martinfjordvald.com/2013/02/websockets-in-nginx/
   # 12h+0.5
   proxy_max_temp_file_size 0;
   proxy_read_timeout  43800;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $replace_upgrade;
   proxy_set_header Connection $connection_upgrade;
}

location ~* ^/bitrix/sub/ {
   access_log off;
   rewrite ^/bitrix/sub/(.*)$ /bitrix/subws/$1 break;
   proxy_pass http://nodejs_sub;
   proxy_max_temp_file_size 0;
   proxy_read_timeout  43800;
}

location ~* ^/bitrix/rest/ {
   access_log off;
   proxy_pass http://nodejs_pub;
   proxy_max_temp_file_size 0;
   proxy_read_timeout  43800;
}
  4. Подключите конфиги:
    # /etc/nginx/nginx.conf
include /etc/nginx/bx/site_enabled/rtc-server.conf;
include /etc/nginx/bx/settings/rtc-im_settings.conf;
  5. В случае виртуальной машины необходимо удалить конфигурацию старого сервера (push-stream-module) /etc/nginx/bx/conf/im_subscrider.conf и /etc/nginx/bx/site_enabled/push.conf.
  6. Перезапустите NGINX сервер.

Настройка сайта

В конфигурационный файл bitrix/.settings.php добавляем настройки вида:

'pull' => Array(
    'value' =>  array(
        'path_to_listener' => 'http://#DOMAIN#/bitrix/sub/',
        'path_to_listener_secure' => 'https://#DOMAIN#/bitrix/sub/',
        'path_to_modern_listener' => 'http://#DOMAIN#/bitrix/sub/',
        'path_to_modern_listener_secure' => 'https://#DOMAIN#/bitrix/sub/',
        'path_to_mobile_listener' => 'http://#DOMAIN#:8893/bitrix/sub/',
        'path_to_mobile_listener_secure' => 'https://#DOMAIN#:8894/bitrix/sub/',
        'path_to_websocket' => 'ws://#DOMAIN#/bitrix/subws/',
        'path_to_websocket_secure' => 'wss://#DOMAIN#/bitrix/subws/',
        'path_to_publish' => 'http://vm04.ksh.bx:8895/bitrix/pub/',
        'nginx_version' => '3',
        'nginx_command_per_hit' => '100',
        'nginx' => 'Y',
        'nginx_headers' => 'N',
        'push' => 'Y',
        'websocket' => 'Y',
        'signature_key' => 'ANzCW8X3ui4GokEqAh8fwinrSBnWj3dU1V0O3knHlwc224vBdIA8Yg1PhPU1G3tQaTcnorGO9skoWPbLiDV5eqnVcH2RgbKCP65yAHjiFfP4RJh60W9sxqISkcQxWQ0U',
        'signature_algo' => 'sha1',
        'guest' => 'N',
    ),
),

В качестве signature_key указываем настройки из /etc/sysconfig/push-server-multi.

grep SECURITY_KEY /etc/sysconfig/push-server-multi
SECURITY_KEY=ANzCW8X3ui4GokEqAh8fwinrSBnWj3dU1V0O3knHlwc224vBdIA8Yg1PhPU1G3tQaTcnorGO9skoWPbLiDV5eqnVcH2RgbKCP65yAHjiFfP4RJh60W9sxqISkcQxWQ0U


Клиенты
206 / 363

Раздел Клиенты служит для интеграций сайта с разным функционалом других систем, например с порталами Битрикс24.

Документация по теме:

  • Клиенты
  • Настройки модуля


Коммуникации с клиентами
207 / 363

Модуль Коммуникации с клиентами позволяет подключить продукт «1С-Битрикс: Управление сайтом» к порталу Битрикс24, т.е подключить все цифровые каналы коммуникаций: онлайн-чат, соцсети, мессенджеры, обратный звонок, веб-формы и т.п.

При этом осуществляется:

  • подключение за 5 минут;
  • гибкая настройка сообщений онлайн-чата в зависимости от раздела сайта;
  • специальные сценарии работы с мобильных устройств;
  • идеальный инструмент для поддержки клиентов;
  • автоматическая интеграция с Битрикс24.CRM;
  • автоматизированное управление клиентским потоком от первого касания до повторных продаж
  • единая клиентская база для работы нескольких сайтов.

Подключение привычных для клиентов коммуникаций позволяет увеличить конверсию в интернет-магазинах.


Подключение Битрикс24
208 / 363

Подключение портала Битрикс24 осуществляется на любой странице Коммуникаций с клиентами (Клиенты > Коммуникации с клиентами):

  1. Нажать на кнопку Подключить свой Битрикс24 (если уже создан портал) или Создать новый Битрикс24 (если еще нет портала):

  2. Далее нужно будет авторизоваться в окне Bitrix24.Network и выбрать из списка ваших порталов и сайтов нужный Битрикс24 для подключения:

  3. Затем в открывшемся окне запроса на портале согласиться с подключением:

  4. Подключение успешно установлено:

Примечание: Для подключения Коммуникаций с клиентами к порталу Битрикс24, вы должны быть администратором сайта и портала.

Примечание: про интеграцию магазина и портала Битрикс24 читайте в соответствующем уроке.

Документация по теме:

  • Настройки модуля


Каналы коммуникаций
209 / 363

По каким каналам можно взаимодействовать с клиентами? В этой главе описаны некоторые из них.


Виджеты
210 / 363

Виджет объединяет все цифровые каналы коммуникаций с клиентами в вашем Битрикс24.

Виджет устанавливается на сайт как кнопка, с помощью которой посетители сайта выбирают удобный способ связи с компанией: чат, звонок или форму. Таким образом, виджет помогает повысить конверсию сайта и увеличить продуктивность отдела продаж.

Настройка Виджета проста:

  1. После подключения сайта к «Битрикс24» в разделе Виджеты (Клиенты > Коммуникации с клиентами > Виджеты) появится предустановленный Виджет:

  2. Далее необходимо перейти к редактированию Виджета на портале Битрикс24, кликнув на ссылку названия Виджета:

  3. Откроется страница настройки Виджета:

    4. На этой странице настраивается внешний вид кнопки, параметры приветствия и подключаются каналы коммуникаций:

    • Открытая линия;
    • CRM-форма;
    • Форма обратной связи (практически, аналогична работе с CRM-формой).

    Примечание: подробнее о настройке Виджета на сайт можно прочитать в статье.

  4. После настройки Виджета остается его только включить в разделе Виджеты (Клиенты > Коммуникации с клиентами > Виджеты:

Далее, если обновить страницу сайта, то иконка Виджета будет в том месте сайта, где указывалось ее расположение в настройках, а при по клике по ней будут представлены настроенные ранее инструменты коммуникаций:


Онлайн-чат
211 / 363

Онлайн-чат представляет собой современный и удобный способ коммуникации клиента вашего сайта с вами. Чат отлично подходит для сопровождения клиента по сайту, поддержки, помощи в выборе или оформлении заказа.

Онлайн-чат позволяет:

  • Отвечать клиенту в режиме реального времени.
  • Консультировать по делу, ведь менеджер будет знать, какие страницы посещал клиент и чем интересовался.
  • Обращаться к клиенту персонально, фиксировать общение в CRM, собирать полный портрет каждого клиента сайта.

Подключение Онлайн-чата производится с помощью клика на названии виджета и последующей настройкой на странице редактирования Виджета :

и последующим включением Виджета на странице:


Обратный звонок
212 / 363

Обратный звонок позволяет получить быструю консультацию по телефону, автоматически совершает исходящий звонок на указанный клиентом номер и соединяет клиента со свободным менеджером.

Установив Обратный звонок на свой сайт, увеличивайте продажи и повышайте лояльность ваших клиентов, предоставив им быстрый и бесплатный способ связи.

Примечание: Подробнее об Обратном звонке можно прочитать в статье.

Подключение Обратного звонка производится с помощью клика на названии виджета и последующей настройкой на странице редактирования Виджета :

и последующим включением Виджета на странице:

Примечание: Для работы Обратного звонка необходимо настроить Телефонию на портале Битрикс24.


CRM-формы
213 / 363

CRM-формы – необходимый для бизнеса инструмент, который поможет повысить эффективность менеджеров, получить новых клиентов, дополнить информацию о текущих и записать все это в CRM.

Установив CRM-формы на свой сайт, собирайте всю информацию о клиентах в CRM.

Примечание: Подробнее о CRM-формах можно прочитать в статье.

Подключение CRM-форм производится с помощью клика на названии виджета и последующей настройкой на странице редактирования Виджета :

и последующим включением Виджета на странице:


Открытые линии
214 / 363

Люди привыкли общаться через цифровые каналы: социальные сети и мессенджеры, потому что это быстро, доступно и удобно. Такой сценарий стал ожидаем и от компании, клиент хочет получить консультацию быстро, персонально и по конкретному вопросу.

Открытые линии Битрикс24 объединяют множество цифровых каналов: Facebook, Vkontakte, Telegram, Skype и другие.

Обращения клиентов собираются в один чат и автоматически распределяются по ответственным менеджерам.

Клиент обращается через удобный для него канал, а ваши менеджеры получают все сообщения в одном рабочем чате, могут маршрутизировать обращение между собой или привлекать в обсуждение коллег.

Примечание: Подробнее об Открытых линиях можно прочитать в статье.

Подключение Открытых линий производится с помощью клика на названии виджета и последующей настройкой на странице редактирования Виджета :

и последующим включением Виджета на странице:


Телефония
215 / 363

Подключение Телефонии Битрикс24 к сайту позволяет звонить клиентам без дополнительных затрат на гарнитуру, настройки и обслуживание.

Все звонки будут автоматически зафиксированы в Битрикс24.CRM:

  • Исходящий звонок выполняется в один клик прямо из карточки заказа.
  • Входящий звонок от клиента сразу попадает на своего менеджера, не дожидаясь несколько минут, пока его переключат.
  • Менеджер не переспрашивает клиента, кто он и что заказывал – вся информация уже есть на экране.
  • Все пропущенные звонки фиксируются в CRM и становятся вашей «зацепкой», потенциальным покупателем.
  • Руководитель получает отчеты по звонкам и видит, как работает каждый менеджер и весь отдел продаж в целом.
  • Запись звонков помогает выяснить, как менеджеры общаются с клиентами, и определить лучшие сценарии продажи.

Примечание: Подробнее о Телефонии Битрикс24 можно прочитать в статье.


Маркетинг
216 / 363

В этой главе описаны инструменты для быстрой и эффективной работы с рекламой и рассылками.

Документация по теме:

  • Маркетинг


Поисковая оптимизация
217 / 363

О возможностях модуля Поисковая оптимизация

Для работы по SEO в "1С-Битрикс: Управление сайтом" создан специальный модуль Поисковая оптимизация. Этот модуль анализирует техническое исполнение сайта, отображает параметры, влияющие на оптимизацию, и дает рекомендации по улучшению этих параметров. Работа модуля облегчает ежедневную работу по продвижению сайта в рейтингах поисковых машин. Небольшая часть функционала модуля Поисковая оптимизация реализуется с помощью модуля Аналитика и доступна только в редакции Бизнес.

Возможности модуля Поисковая оптимизация

Для продвижения сайта в WWW модуль предоставляет инструменты для поисковой оптимизации по страницам и сайту в целом:

  • Выводит всю необходимую информацию в публичной части для модификации страницы или сайта.
  • Отображает специальную информацию о странице: частота индексации поисковиками; запросы, которые приводят на эту страницу, дополнительную статистическуюя информацию.
  • Даёт наглядную оценку результативности работы страницы и сайта.
  • Возможность тут же вызвать необходимые диалоги и произвести изменения на странице.
  • Применительно ко всему сайту выводит: общее ссылочное ранжирование, цитирование, количество ссылок, поисковые слова, индексация поисковиками.

Работа с инструментами модуля

Работа с модулем описана в курсе Продвижение сайта и Маркетинг .

Настраиваем модуль

Настройки модуля (Настройки > Настройки продукта > Настройки модулей > Поисковая оптимизация) дают возможность изменить коды свойств страницы, настроить параметры сбора статистики и управлять правами доступа к модулю.

Нажмите на рисунок, чтобы увеличить

На закладке Регистрационные данные отображается аккаунт, с которого осуществлена авторизация, есть возможность сменить аккаунт и очистить данные .

На закладке Свойства страниц изменяются коды используемых свойств страницы. Делать это нужно только в случае, если используемые по умолчанию значения были изменены в ходе разработки сайта.

На закладке Инструменты задаются основные параметры для получения статистики о странице сайта.

  • В поле Отображаемые счетчики введите все счетчики , которые вы получили от поисковых машин для установки на сайте.
  • В поле Поисковые системы, используемые для анализа выберите поисковые системы, которые должны использоваться для анализа. Выбор нескольких систем осуществляется с помощью клавиши CTRL. Выбранные поисковые системы после сохранения измененных параметров отобразятся в строке Сейчас выбрано.

На закладке Доступ установите нужный уровень прав доступа к модулю различных групп пользователей. Имеется три вида доступа:

  • Полный доступ – доступны инструменты анализа и управление настройками, рекомендуется для администраторов сайта;
  • Анализ страниц и сайта – доступны инструменты анализа, рекомендуется для редакторов, SEO-оптимизаторов и контролирующих лиц заказчика.;
  • Доступ запрещен – запрет на доступ к модулю.

Модуль настроен на работу.

Настройки сайта

Если сайт доступен по нестандартному порту (например, 6448 в случае использования пакета «Битрикс: Веб-окружение»), то необходимо убедиться, что этот порт указан в настройке главного модуля в поле URL сайта (и в аналогичных настройках каждого из сайтов в случае многосайтовости на одном домене ).

Важно!

На хостинге иногда устанавливают ограничение на размер текста страницы. Соответствующее ограничение задается в параметре pcre.backtrack_limit файла php.ini. Если такое ограничение наложено, и объем текста на странице его превышает, то данные, выводимые в других инструментах, могут быть некорректными.

Сообщение о превышении ограничения будет отображено в поле Рекомендации и исправления инструмента Страница .


E-mail маркетинг
218 / 363

Модуль Email-маркетинг предназначен для организации работы рассылок.

Чем же отличается этот модуль от модуля Рассылки?

По сути, их главный функционал одинаков - в обоих случаях мы имеем возможность отправлять рассылки подписчикам.

Модуль Email-маркетинг - обновленный полезный инструмент (доступен c версии 15.0.1), принципиально отличающийся от модуля Рассылки автоматикой обновления адресов подписчиков, принципами отправки и отслеживания, а так же шаблонизатором и возможностью постоянных отправок с актуальной информацией на основе компонентов для писем.

Модуль Рассылки остается для тех, кто его уже применяет (у кого он входил в редакцию на момент покупки).


Возможности E-mail маркетинга
219 / 363

Основные возможности модуля:
  • Создание рассылок;
  • Возможность подписываться к рассылкам или отписываться в один клик;
  • Формирование рассылок по шаблонам;
  • Отправка писем как вручную, так и с определенной периодичностью;
  • Импорт адресов;
  • Отправка писем как через Агент (на хитах), так и через Сron - поддержка в BitrixVM\BitrixEnv v7.2 (достаточно включить соответствующую опцию в меню);
  • Поддержка вложений в письмах;
  • Поддержка компонентов для почтовых шаблонов.

Общая схема работы модуля Email-маркетинг

  • В основе рассылки лежит шаблон, который желательно подготовить заранее.
  • Рассылка отправляется определенному набору адресатов - сегменту. Его тоже предпочтительней настроить заранее.
  • Рассылку можно сделать периодической, установив в поле Отправить рассылку значение Каждый день.

Если выпуск периодический, то перед отправкой набор адресов получателей обновляется. Таким образом, если раз в неделю выполняется отправка новостей оформившим заказ на сайте, то новые покупатели с момента последней отправки также попадут в получатели.

Если выпуск отправляется разово и в определенное время, то список получателей также обновится перед отправкой.

Процесс создание сегментов, шаблонов и рассылок описан в курсе Продвижение сайта и Маркетинг .

Работа с модулем

Администратор производит только настройку модуля и кастомизацию. Всю остальную работу, как правило, выполняет контент-менеджер, причем выполняет её в административной части сайта.

Документация по теме:

  • Email-маркетинг


Настройки модуля
220 / 363

Настройки модуля

Управление основными настройками модуля выполняется на странице настройки модуля E-mail-маркетинг (Настройки > Настройки продукта > Настройки модулей > E-mail-маркетинг).

Нажмите на рисунок, чтобы увеличить

На закладке Настройки задаются глобальные настройки параметров модуля, которые определяют:

  • интервалы пошаговой рассылки;
  • методы автоматической отправки (Агенты или Cron) ;
  • указание url пользовательских страниц подписки и отписки;
  • адреса автора рассылки и адреса для проверки рассылки.

Примечание: подробное описание каждого параметра приведено в пользовательской документации по модулю E-mail маркетинг.

На закладке Доступ настраиваются уровни прав доступа к модулю для групп пользователей сайта.

С помощью ссылки Добавить право доступа создаются дополнительные уровни доступа к модулю для конкретных групп.

Важно! добавлять компоненты в рассылку могут только те группы пользователей, у которых в уровне доступа к Главному модулю отмечена операция Ограниченная модификация шаблонов.


Текстовая версия письма
221 / 363
Начиная с версии 17.5.12 появилась возможность автоматически создавать текстовую версию письма. Для этого надо использовать опцию Генерировать текстовую версию для html-писем в настройках Главного модуля.

Текстовая версия - вариант вашего письма, который показывается подписчику, если HTML-версию отобразить невозможно. В ней отсутствуют изображения, шрифты, стили и любое другое форматирование. Единственное, что общее текстовой версии с HTML-версией, - она содержит кликабельные ссылки.

Пользователь может сознательно использовать только текстовый вид получаемой корреспонденции, либо использовать текстовые почтовые клиенты. Подсчитать процент таких пользователей невозможно, так как в текстовой версии отсутствует основной инструмент определения открытий - пикселя (пиксель — это служебная картинка размером 1х1, незаметная для читателя, по количеству обращений к которой определяется показатель открытий сообщения).

Вид письма в HTML и текстовой версии
HTML версия письма:

Текстовая версия того же письма:

Однако пренебрегать такими пользователями не стоит. Тем более что с использованием опции главного модуля Генерировать текстовую версию для html-писем формирование текстовой версии происходит автоматически, без дополнительных усилий со стороны маркетолога или верстальщика.

Создание двух версий писем позволит не терять таких получателей и повысить число реально дошедших до пользователей писем, так как некоторые спам-фильтры негативно реагируют на письма только с одной, HTML, версией.

Функционал текстовой версии позволяет использовать:

  • ссылки, отслеживая показатель кликов;
  • теги персонализации, подставляя в письмо имя, город подписчика или дату отправки;
  • условия динамического контента, показывая различные части текста для пользователей, удовлетворяющих определенным критериям;
  • данные из таблиц, информируя покупателей о составе и сумме заказа;
  • даже программирование в письмах, к примеру, подсчитывая «на лету» сумму бонусов.


Триггерные рассылки
222 / 363

Триггерная рассылка - это последовательность писем, которые отправляются сайтом автоматически в ответ на действие пользователя или после наступления некоторого события, связанного с пользователем. Использование этого инструмента увеличивает количество возвратов и повторных покупок в магазине.

Задачи, которые решают триггерные рассылки:

  • Повышение конверсии магазина;
  • Удержание существующей клиентской базы;
  • Увеличение среднего чека;
  • Экономия ресурсов;
  • Эмоциональные коммуникации с клиентами.

Пример триггерной рассылки

Покупатель отложил товар в корзину и не сделал заказ. Товар пролежал в корзине более указанного в настройках рассылки Брошенная корзина срока и тут сработает триггер и владельцу корзины уйдёт заданная последовательность писем с заданным интервалом.

Работу с триггерными рассылками выполняет контент-менеджер .


Баннерная реклама
223 / 363

Система «1С-Битрикс: Управление сайтом» позволяет организовать показ баннеров на сайте, подключив код внешней баннерной системы, либо за счет внутренней ротации баннеров в пределах сайта.


Типовой порядок работ
224 / 363
Общий порядок работ по включению показа и ротации баннеров следующий:
  • Настройка модуля Реклама, баннеры;
  • Задание прав доступа для администратора рекламы, менеджера баннеров и рекламодателя;
  • Размещение и настройка компонента Баннер (bitrix:advertising.banner) в шаблоне дизайна или непосредственно на странице сайта.
  • Создание контракта и настройка его параметров.
  • Создание типа баннера.
  • Создание баннера и настройка параметров таргетинга баннера.

При запуске баннера в ротацию нет необходимости выполнять все указанные действия. Например, если нет необходимости в отчете за показ баннеров перед рекламодателем, можно не создавать контракт, а организовать показ в рамках встроенного контракта по умолчанию.

Все работы по управлению контрактами и баннерами производятся только в административном разделе системы. Описание этих работ представлено в курсе Продвижение сайта и Маркетинг.

Документация по теме:

  • Рекламные области


Настройка модуля
225 / 363
Настройка модуля Реклама, баннеры производится на странице Настройки > Настройки продукта > Настройки модулей > Реклама, баннеры:

Нажмите на рисунок, чтобы увеличить

Основные настройки модуля

На первой закладке часть полей предназначена для задания параметров отображения графиков показа. Значение этих полей ясно из названия. Разберем остальные поля:

  • Не использовать ограничения контрактов при показе баннера - флажок, установленный в этом поле, позволяет показывать баннеры с учетом только ограничений самого баннера. Этот способ рекомендуется для несложных проектов, когда баннеры - не средство зарабатывания денег на показе чужих баннеров.
  • Не фиксировать показы всех баннеров - система не будет вести статистику показа баннеров вообще.
  • Сколько дней хранить динамику по баннерам? - указание числа дней, в течение которых статистика показа баннеров будет храниться в системе.
  • На сколько дней запоминать, что посетитель посмотрел тот или иной баннер - система будет запоминать, посмотрел пользователь указанный баннер или нет. Опция нужна для настройки ограничений показа баннера одному посетителю.

Значения в Полное имя файла для учета кликов на баннер и Подкаталог для хранения загруженных баннеров лучше не менять без особой и осознанной необходимости.

Настройка доступа

Предоставление прав доступа к модулю выполняется соответственно на закладке Доступ . Для работы с рекламой на сайте предусмотрены специальные неизменяемые уровни доступа:

  • Рекламодатель имеет доступ к меню и административным файлам. Он управляет только теми контрактами и принадлежащим им баннерами (создает, редактирует, удаляет), на которые у него есть соответствующие права. Также Рекламодатель сможет видеть статистику контракта/баннеров. Этот уровень прав используется для групп рекламодателей, размещающих свои баннеры на вашем сайте.
  • Менеджер баннеров - доступ к управлению всеми баннерами системы (вне зависимости от контракта).
  • Демо-доступ – ознакомительный доступ. Пользователь видит все контракты, типы баннеров, баннеры, может строить любые графики, но без права модификации чего-либо. Предназначается для ознакомления потенциальных рекламодателей с системой контроля за показом баннеров.
  • Администраторы рекламы - полный доступ, без каких-либо ограничений.

Назначайте необходимые права доступа группам пользователей и разделяйте обязанности и права сотрудников проекта и рекламодателей.

Документация по теме:

  • Настройки модуля


Размещение компонента
226 / 363

Создаём рекламную область

Согласитесь, что рекламные баннеры должны как можно гармоничнее вписываться в дизайн сайта. Тщательно продумайте место их размещения еще на этапе работы над дизайном. Чаще всего для баннеров выделяется специальная рекламная область непосредственно в шаблоне сайта. Но все же в некоторых ситуациях рекламный баннер размещается непосредственно на странице:

Рекламная область - область на сайте, в которой выполняется показ баннеров.

Число рекламных областей ничем не ограничено. В одной из них поочередно может отображаться неограниченное количество баннеров, в зависимости от настроек Контракта или Баннера.

Как создать рекламную область на сайте?

Рекламная область создается с помощью компонента Баннер (bitrix:advertising.banner). Компонент расположен в разделе Сервисы > Реклама панели Компоненты визуального редактора. Так, если баннер должен показываться только на отдельной странице, то компонент разместите непосредственно на этой странице. В случае создания общей рекламной области компонент разместите в шаблоне дизайна сайта.

Настройки компонента производятся после создания Типа баннера и самих Баннеров в системе.

Документация по теме:

  • Описание компонента


Ключевые слова: настройка свойств страницы
227 / 363

Настройка ключевых слов

В уроке мы поговорим с вами о настройке ключевых слов для рекламы. Дело в том, что для показа в рекламной области конкретный баннер может выбираться из общего списка по ключевым словам: обязательным или желательным. Задание ключевых слов возможно для любой страницы сайта, главное - это предусмотреть поля для ввода этих слов.

Для управления показом баннеров необходимо провести некоторые дополнительные настройки системы. Речь идет о полях для ввода ключевых слов для рекламы. Для показа в Рекламной области конкретный Баннер может выбираться из общего списка по ключевым словам: обязательным или желательным. Задание таких ключевых слов возможно для любой страницы сайта. Для задания ключевых слов для каждой страницы нужно предусмотреть поля для ввода этих слов в форме настройки свойств страницы.

В коде системы задано два специальных свойства:

  • SetDesiredKeywords - для добавления желательных ключевых свойств;
  • SetRequiredKeywords - для добавления обязательных ключевых слов.

Эти свойства можно задать:

  • в специальных полях окна настройки свойств страницы, если заранее выполнены настройки модуля Управление структурой (рекомендуемый способ);
  • модифицируя код конкретной страницы (способ для разработчиков).

Способ №1: рекомендуемый способ

Для создания полей в окне настройки страницы:

  • Перейдите на страницу Настройки > Настройки продукта > Настройки модулей > Управление структурой.
  • В группе параметров Настройки сайта в полях Типы свойств задайте указанные выше свойства и дайте их описание.
  • Сохраните внесенные данные и перейдите в публичный раздел.
  • Откройте форму редактирования свойств страницы и убедитесь, что появились дополнительные поля для ввода ключевых слов.

Способ №2: для разработчиков

Указанные функции можно добавить в код страницы.

  • Для желательных ключевых слов:
    CAdvBanner::SetDesiredKeywords (array("Partners", "Cooperation", "Company", "Contacts"), "RIGHT");
  • Для обязательных ключевых слов:
    CAdvBanner::SetRequiredKeywords (array("Partners", "Cooperation"), "RIGHT");

Функции содержат следующие параметры:

  • keywords – одно или несколько ключевых слов страницы;
  • TYPE_SID – тип баннера, для которого будут заданы ключевые слова. Если данный параметр оставить пустым, то ключевые слова будут заданы для всех типов баннеров.

    • Примечание: следует отметить, что keywords может включать в себя и более сложные конструкции. Подробнее об этом читайте в документации (SetDesiredKeywords и SetRequiredKeywords).

    Заключение

    Итак, вы познакомились, как настраивать ключевые слова. Почитайте материалы следующего урока и узнайте, как правильно загружать базу данных по регионам и городам.


Загрузка баз данных по регионам и городам
228 / 363
При показе баннеров на сайте учитывайте интересы посетителей из разных городов и стран

Используйте такую возможность системы, как задание ограничений по географическому принципу (геотаргетинг). Для этого вам всего лишь следует загрузить базы данных для определения страны и города.

Как загрузить базу данных стран и городов?

Пo умолчанию в дистрибутиве продукта предусмотрена поставка только базы по странам. Для загрузки баз данных необходимо выполнить следующие действия:

  • Откройте страницу Настройки > Настройки продукта > Настройки модулей > Веб-аналитика и перейдите на закладку Страна и город.

    В таблице перечислены возможные источники определения города и страны, поддерживаемые модулем Веб-аналитика.
    • mod_GeoIP - модуль для Apache, позволяет не только определять посетителя по IP адресу, но и блокировать посещение.
    • PECL-расширение php geoip.
    • Модуль доступа к базе данных geoip, написанный на php.
    • Определение страны или города по таблицам модуля статистики.
  • С помощью колонки Будет использован выберите доступный и необходимый вам источник определения города и страны по IP-адресу.

Можно использовать любые способы определения страны и города посетителя. Рекомендуется использовать специальный мастер (четвертая строка в таблице). Все дальнейшие действия описаны для данного способа определения геоположения посетителя.

  • Нажмите на ссылку мастер в четвертой строке таблицы. Откроется Мастер создания индекса .
  • Выберите тип индекса: Создание индекса для определения страны и города по IP адресу.
  • Если у вас базы не загружены, то дополнительно выполните следующее:
    • В окне мастера нажмите на ссылку подходящего из трех представленных источников (для Российской федерации рекомендуется последний - IpGeoBase) .
    • Скачайте базу с открывшегося сайта.
    • Распакуйте скачанный архив на сайт в папку /bitrix/modules/statistic/ip2country .
  • В окне мастера нажмите кнопку Далее.

    Если базы все же не были загружены, то система выдаст предупреждение и предложит скачать необходимые файлы (для этого воспользуйтесь кнопкой Назад и выполните действия по загрузке).
  • Мастер проверит папку и предложит выбрать файл:

    Действия по созданию индекса выполняются в 2 этапа:

    • Сначала отметьте файл cities.txt и нажмите Далее. По окончании процесса нажмите кнопкуНазад.
    • Теперь выберете файл cidr_optim.txt и снова нажмите на кнопку Далее. Мастер полностью выполнит создание индекса.
  • Нажмите Далее, просмотрите информацию по загрузке и выйдите из мастера.

Теперь система может определять место проживания посетителя по IP-адресу.

Заключение

Итак, вы узнали, что используя средства модуля Веб-аналитика, можно загрузить базу данных стран и городов и использовать ее для ограничения показа баннеров по географическому принципу.


Вывод нескольких тизеров в верхней части сайта
229 / 363

Немного теории

Тизер (от англ. teaser - дразнилка) - разновидность баннера, определённым образом настроенная под дизайн сайта. Например, на сайте СМИ тизером может быть "горячая новость" - баннер с вызывающим заголовком. Обычно он используется как инструмент для рекламы собственных материалов, разделов и сервисов веб-проекта.

"Ушки" - тизеры, которые располагаются в ряд в верхней части страницы. Чаще всего они применяются на новостных сайтах и содержат анонсы свежих статей или горячие новости.

Пример вывода

Для вывода навигационных "ушек" в верхней части сайта, при условии, что на странице не должно быть двух одинаковых "ушек", следует выполнить последовательный вызов рекламы одного типа, при котором возвращаются еще не показанные баннеры, например:

$aEarsAdv = array();
if(CModule::IncludeModule("advertising"))
{
   for($i=0; $i<3; $i++)
   {
      $sAdv = CAdvertising::GetAdv("EARS");
      if(!empty($sAdv))
         $aEarsAdv[] = $sAdv;
      else
         break;
   }
}

После чего следует осуществить вывод "ушек" из массива.


Менеджер идей
230 / 363

Менеджер идей (второе название Есть идея!) — это сервис, позволяющий предложить свою идею для развития бизнеса компании, оценить идеи своих коллег. Каждая идея имеет свой рейтинг, который строится на основе мнения сотрудников компании.
Для удобства поиска в Менеджере идей все идеи сортируются по категориям и статусам.


Возможности Менеджера идей
231 / 363
Модуль позволяет:
  • Добавлять новые идеи и прикреплять файлы.
  • Располагать на сайте всплывающую форму добавления идеи. Требуется установка компонента Форма добавления идеи (popup).
  • Добавлять категории для сортировки идей.
  • Просматривать предложенные идеи в зависимости от интересующей категории и комментировать их.
  • Голосовать за понравившуюся идею и выводить рейтинги.


Создание сервиса
232 / 363
Менеджер идей настраивается и работает через компонент

Сами идеи, как и комментарии к ним, функционируют на основе блогов, а категории идей являются разделами соответствующего инфоблока . Поэтому необходимо сначала создать соответствующий блог, а далее создать инфоблок и подключить в публичной части компонент.

Настройки Блога, выполняемые Администратором сайта.

  • Если комментирование будущих Идей разрешается, то:
    • на закладке Параметры блога отметьте опцию Разрешить комментарии в блоге
    • на закладке Права на доступ настройте права доступа к блогу, чтобы пользователи могли создавать идеи и комментировать их.

  • По умолчанию модерировать сервис Менеджер идей (Есть идея!) могут только пользователи группы Администраторы. Чтобы разрешить другим группам пользователей модерировать сервис, необходимо в настройках прав доступа к блогу идей задать уровень Администрирование к сообщениям и комментариям для авторизованных посетителей.

    Конкретную же группу лиц, имеющих право модерировать сервис, указывает Контент-менеджер в настройках комплексного компонента идей (bitrix:idea) в параметре Группы пользователей, которые могут добавлять специальный ответ

  • Чтобы пользователи смогли голосовать за идеи, необходимо в административной части (Сервисы > Рейтинги > Список рейтингов, Рейтинг) во вкладке Блог отметить пункты :
    • Голосование за сообщения пользователя в блогах
    • Голосование за комментарии пользователя в блогах

    Подробнее с настройками рейтинга можно ознакомиться в уроке Рейтинги (курс Администратор. Базовый)

Подробнее о создании и управлении Менеджером идей можно ознакомиться в уроке Менеджер идей (курс Контент-менеджер)


Создание и редактирование статусов
233 / 363

Создание и редактирование статусов

Каждой предложенной идее присваивается свой статус. Статус - характеристика объекта, отражающая его состояние в настоящий момент. В модуле Менеджер идей статус служит идентификатором этапа, на котором сейчас находится идея. По умолчанию задано три типа статусов :

  • новые
  • в работе
  • внедрено
Эти статусы при желании можно легко отредактировать, либо не менее легко создать новые (это делает Администратор сайта).
Давайте добавим новый статус:

  1. Перейдите на страницу Пользовательские поля (Настройки > Настройки продукта > Пользовательские поля)

  2. В закладке Список откройте форму редактирования пользовательского поля UF_STATUS. С помощью кнопки Еще добавьте новую строку и заполните строки Значение и XML_ID:

  3. Сохраните внесенные изменения.
  4. И в заключении для вступления настроек в силу перейдите в публичную часть сайта на страницу со списком идей и сбросьте кеш.


Конверсия
234 / 363
Конверсия - это процентное отношение числа посетителей сайта, выполнивших на нём какие-либо целевые действия, к общему числу посетителей сайта. Соответственно, конверсия - ключевой показатель эффективности работы сайта.


Что влияет на конверсию
235 / 363
Целевые действия зависят от типа сайта: для интернет-магазина это заказы, для новостных и информационных изданий - количество регистраций или кликов на баннер.

Узнайте, что влияет на конверсию Вашего сайта:

  • Сколько пользователей пришло на сайт и с каких устройств (смартфоны / десктоп / планшеты);
  • Сколько из пришедших на сайт совершили целевые действия (например, сколько заказов оформлено / оплачено / добавлено в корзину);
  • С каких браузеров заходят посетители чаще всего;
  • Какие источники приводят наибольшее количество клиентов (почтовые рассылки / контекстная реклама и т.д.);
  • Создайте собственные атрибуты и счетчики для решения новых задач.


Настройка модуля
236 / 363

Настройка модуля

Форма настроек модуля находится на странице Настройки > Настройки продукта > Настройки модулей > Конверсия и содержит следующие закладки:

  • В закладке Настройки указывается базовая валюта для вывода экономических показателей сайта, например: Оплачено заказов, Оформлено заказов и т.п.
  • В закладке Модули выбираются модули, для которых нужно рассчитывать конверсию.

Нажмите на рисунок, чтобы увеличить

Внимание! Данный модуль пока не является автоустанавливаемым, поэтому его требуется установить самостоятельно из страницы Настройки > Настройки продукта > Модули в административной части сайта.

Примечание: Подробнее о работе с модулем читайте в курсе Продвижение сайта и Маркетинг.


Создание собственных счетчиков и атрибутов
237 / 363

Внимание! Для правильной работы примеров необходима версия модуля Конверсия не ниже 15.5.6.

Счетчики

Для подсчета числа посетителей в день модуль Конверсия поступает следующим образом:

$context = Bitrix\Conversion\DayContext::getInstance(); // контекст текущего дня и текущего пользователя
$context->addDayCounter('conversion_visit_day', 1);     // прибавить 1 к счетчику 'conversion_visit_day' в этом контексте

Для примера рассмотрим задачу подсчета количества посещений корневой '/' страницы сайта. Код необходимо поместить в bitrix/php_interface/init.php.

Внимание! Ошибка в файле init.php приводит к полной потере работоспособности сайта, поэтому внесение изменений в него стоит предоставить разработчику.

class MyConversionHandlers
{
   // накрутка наших счетчиков
   static function addCounters()
   {
      if ($_SERVER['REQUEST_URI'] == '/' && Bitrix\Main\Loader::includeModule('conversion'))
      {
         $context = Bitrix\Conversion\DayContext::getInstance();
         $context->addDayCounter('my_page_day', 1); // прибавить 1 к счетчику my_page_day один раз в день
         $context->addCounter   ('my_page_all', 1); // прибавить 1 к счетчику my_page_all
      }
   }

   // информация о наших счетчиках для модуля Конверсия
   static function getCounterTypes()
   {
      return array(
         'my_page_day' => array('MODULE' => 'my', 'NAME' => 'Количество посещений в день', 'GROUP' => 'day'), // дневная группа информирует о счетчике действий
         'my_page_all' => array('MODULE' => 'my', 'NAME' => 'Общее количество посещений'),
      );
   }
}

// регистрируем обработчики в системе
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('main'      , 'OnProlog'         , array('MyConversionHandlers', 'addCounters'    ));
$eventManager->addEventHandler('conversion', 'OnGetCounterTypes', array('MyConversionHandlers', 'getCounterTypes'));

Метод addDayCounter добавляет один счетчик для пользователя один раз в день, вне зависимости от того сколько раз он будет вызван. Он и используется для вычисления конверсии.

Метод addCounter увеличивает счетчики столько раз, сколько он будет вызван. Его целесообразно использовать для накопления информационных данных.

Теперь нужно перейти в настройки модуля Конверсия и убедиться, что для модуля 'my' стоит галочка учета конверсии. Это все что нужно, для того чтобы начать подсчет посещений корневой страницы нашего сайта. Чтобы посчитать и вывести конверсию по этим счетчикам, нужно добавить еще один метод в наш класс:

 // информация для вычисления конверсии
   static function getRateTypes()
   {
      return array(
         'my_page' => array(
            'NAME'      => 'Посещения главной',
            'MODULE'    => 'my',
            'SORT'      => 100, // порядок отображения конверсии
            'SCALE'     => array(0.5, 1, 1.5, 2, 5), // шкала: Плохо 0% - Отлично 5%

            // счетчики которые будут переданы в функцию вычисления конверсии
            'COUNTERS'  => array('conversion_visit_day', 'my_page_day', 'my_page_all'),

            // функция вычисления конверсии
            'CALCULATE' => function (array $counters)
            {
               $denominator = $counters['conversion_visit_day'] ?: 0; // знаменатель
               $numerator   = $counters['my_page_day'         ] ?: 0; // числитель
               $quantity    = $counters['my_page_all'         ] ?: 0;

               return array(
                  'DENOMINATOR' => $denominator,
                  'NUMERATOR'   => $numerator,
                  'QUANTITY'    => $quantity,
                  'RATE'        => $denominator ? $numerator / $denominator : 0, // формула конверсии
               );
            },
         ),
      );
   }

Зарегистрируем новый обработчик:

$eventManager->addEventHandler('conversion', 'OnGetRateTypes'   , array('MyConversionHandlers', 'getRateTypes'   ));

Теперь конверсия по счетчикам будет посчитана и отображена на странице Пульс конверсии.

Контекст

Контекст - это уникальный набор атрибутов.

Эти атрибуты, которые фиксируются счетчиками, задаются для каждого пользователя и действуют в течение дня. Например модуль Конверсия устанавливает атрибуты контекста таким образом:

$context = Bitrix\Conversion\DayContext::getInstance();
$сontext->setAttribute('conversion_site', $siteId); // задает атрибуту 'conversion_site' значение переменной $siteId

Благодаря атрибуту 'conversion_site' можно будет отфильтровать все счетчики только по определенному сайту.

Допустим, стоит задача определить настроение и пол человека зашедшего на сайт. Для примера сгенерируем эти данные случайным образом. Добавим два новых метода в класс MyConversionHandlers:

// установка наших атрибутов контекста
   static function setDayContextAttributes(Bitrix\Conversion\DayContext $context)
   {
      // установить атрибут 'my_mood' со значением от 1 до 3
      $context->setAttribute('my_mood', rand(1, 3));

      // установить атрибут 'my_male_gender' или 'my_female_gender' без значений
      $context->setAttribute('my_'.(rand(0, 1) ? '' : 'fe').'male_gender');
   }

   // информация о наших атрибутах для модуля Конверсия
   static function getAttributeTypes()
   {
      return array(
         'my_mood' => array(
            'NAME'   => 'Настроение',
            'MODULE' => 'my',
            'SORT'   => 100, // порядок установки атрибутов
            'GET_VALUES' => function (array $ids) // информация по значениям атрибута
            {
               $values = array();

               $moods = array(
                  1 => array('NAME' => 'Плохое'    ),
                  2 => array('NAME' => 'Нормальное'),
                  3 => array('NAME' => 'Хорошее'   ),
               );

               foreach ($ids as $id)
                  if (isset($moods[$id]))
                     $values[$id] = $moods[$id];

               return $values;
            },
         ),
         'my_male_gender' => array(
            'NAME'     => 'Мужчины',
            'MODULE'   => 'my',
            'SORT'     => 200,
            'GROUP'    => 'gender',  // группировка атрибутов
            'BG_COLOR' => '#be6ac4', // цвет шапки атрибута на странице Пульса конверсии
            'SPLIT_BY' => 'my_mood', // вывод в разрезе настроения на детальной странице
         ),
         'my_female_gender' => array(
            'NAME'     => 'Женщины',
            'MODULE'   => 'my',
            'SORT'     => 300,
            'GROUP'    => 'gender',
            'BG_COLOR' => '#4bbedb',
            'SPLIT_BY' => 'my_mood',
         ),
      );
   }

Обработчики необходимо зарегистрировать:

$eventManager->addEventHandler('conversion', 'OnSetDayContextAttributes', array('MyConversionHandlers', 'setDayContextAttributes'));
$eventManager->addEventHandler('conversion', 'OnGetAttributeTypes'      , array('MyConversionHandlers', 'getAttributeTypes'      ));

Теперь атрибуты контекста будут устанавливаться для каждого пользователя каждый день.

Если пользователь в определенный день уже заходил на наш сайт до того, как были добавлены новые атрибуты, то контекст для него уже установлен без этих атрибутов. Чтобы переопределить контекст, не дожидаясь следующего дня, нужно очистить куки PHPSESSID и BITRIX_CONVERSION_CONTEXT для сайта в браузере.

Если зайти на страницу Пульс конверсии, то в выпадающем меню со списком групп атрибутов добавится новый пункт 'gender'. Чтобы задать более понятное название созданной группе, нужно добавить еще один метод:

// информация о группах для модуля Конверсия
   static function getAttributeGroupTypes()
   {
      return array(
         'gender' => array('NAME' => 'Пол', 'SORT' => 300),
      );
   }

И зарегистрировать его в системе:

$eventManager->addEventHandler('conversion', 'OnGetAttributeGroupTypes' , array('MyConversionHandlers', 'getAttributeGroupTypes' ));

Как можно заметить, атрибуты могут иметь, а могут и не иметь значений. Все зависит от того, как решено организовать и выводить данные.

Например, можно было бы не вводить два атрибута без значений: 'my_male_gender' и 'my_female_gender', а обойтись одним: 'my_gender', со значениями: 'male' и 'female'. Но в этом случае существует ряд ограничений. Так, если создатель другого модуля решит, что ему нужен еще один вариант атрибута в группе 'gender', то он не сможет попросту добавить еще один атрибут 'his_neuter_gender' в своем модуле, ему придется править всю реализацию.

Также на странице Пульс конверсии можно делать срез только по самим атрибутам, имеющим общую группу, а не по их значениям. Но это вовсе не означает, что атрибуты с группой не должны иметь значений. Например, модуль Конверсия определяет атрибут 'Органический трафик' в группе 'Источники с которых заходили', со значениями в виде поисковых систем. Несколько других модулей добавляют свои атрибуты в эту группу таким же образом. А как раз на детальной странице делается срез по значениям этих атрибутов.

Еще раз подчеркнем главное:
  • Атрибуты имеющие GROUP будут доступны на странице Пульса конверсии.
  • На детальной странице в данный момент реализована выборка по атрибуту имеющему значения, указанному в поле SPLIT_BY, но в будущем будет добавлена возможность строить сложные фильтры с различными вариантами атрибутов и значений.
  • Если несколько атрибутов имеющих одну группу будут установлены, то будет использован тот атрибут, у которого поле SORT будет наименьшим.

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2020 1С-Битрикс


Контроллер сайтов
238 / 363
Контроллер - модуль, который предназначен для группового централизованного администрирования, обновления, мониторинга большого количества сайтов, расположенных как на этом же сервере, так и на удаленных серверах доступных через Интернет. Контролируемых сайтов может быть любое количество и они должны быть разработаны на базе продукта «1С-Битрикс: Управление сайтом» (любой редакции).


Возможности и функционал Контроллера сайтов
239 / 363

Возможности модуля по управлению подчиненными сайтами:

Возможности модуля по управлению подчиненными сайтами

  1. Управление множеством независимых веб-сайтов.

    Контроллер сайтов позволит вам централизованно управлять веб-сайтами, даже если они:

    • физически размещены на различных хостинг-площадках;
    • каждый сайт полностью независим и администрируется отдельной группой сотрудников;
    • сайты разработаны на различных редакциях «1С-Битрикс: Управление сайтом» и обладают различным функционалом.

  2. Администрирование подчиненных сайтов без необходимости знать параметры учетных записей на каждом сайте.

    Администратор контроллера может зайти на любой подчиненный сайт и выполнить необходимые действия. При этом неважно, какие права на веб-сайт установят локальные администраторы. Кроме этого, администратор контроллера может централизованно запустить любую операцию, которая будет выполнена на подчиненных проектах: изменение прав, обновление ядра и т.п.

  3. Централизованная раздача (трансляция) контента на подчиненные сайты.

    С помощью контроллера можно транслировать на подчиненные сайты:

    • единый каталог товаров, который подготовлен и оформлен в головном офисе;
    • единый шаблон дизайна веб-ресурса, выполненный в соответствии с фирменным стилем компании;
    • единую ленту новостей/событий/мероприятий;
    • общую функциональность (конфигуратор, система расчета, калькулятор);
    • и многое другое.

  4. Единая система авторизации и разграничения доступа между всеми веб-сайтами, связанными контроллером.

    Контроллер позволяет объединить списки групп пользователей между всеми подчиненными веб-сайтами и обеспечить работу с ними в режиме единой авторизации (Single Sign On). Если все сайты - независимые интернет-магазины, сообщества, социальные сети или любые другие веб-ресурсы, то посетителям достаточно знать только один логин и пароль для работы с ними.

Функционал по работе с модулем Контроллер сайтов расположен в секции Сервисы административного раздела.

Сайты - функционал по работе с сайтами, добавленными в контроллер: включение, исключение сайтов, управление активностью и другими настройками.

Группы - операции по управлению групповыми настройками сайтов, подключенных к контроллеру. Ограничение функционала подчиненных сайтов и прав локальных администраторов. Настройки модулей подчиненных сайтов.

Задачи - планировщик задач. Содержит список задач, выполненных или ожидающих исполнения в ближайшее время на подчиненных контроллеру сайтах.

Журнал - полный отчет по действиям администратора контроллера над подчиненными сайтами.

Удаленное выполнение команд - функционал по выполнению произвольного PHP кода на заданном множестве подчиненных сайтов.

Передача файла - передачи файлов на подчиненные сайты.

Счётчики - инструмент для выполнения на удалённых сайтах определённого php-кода в заданный период времени.

Авторизация - настройка авторизации пользователей на подчинённых сайтах.

Документация по теме:

  • Контроллер


Настройки модуля
240 / 363
Глобальные параметры модуля определяются на странице настроек Контроллер (Настройки > Настройки продукта > Настройки модулей > Контроллер):
  • на закладке Настройки указываются общие параметры модуля:

    Настройки модуля Контроллер

    Опция Интервал для автоматической установки групповых настроек на клиентские сайты, по умолчанию, минут позволяет задать интервал времени в минутах для автоматической установки групповых настроек на клиентские сайты по умолчанию. Если указано 0, то настройки клиентов не будут обновляться автоматически.

    Примечание: Если имеются клиенты, использующие общее с контроллером ядро (например, редакция Платформа аренды приложений продукта или Бизнес веб-кластер), то дополнительно будет доступна опция Путь к папке с общим ядром (относительно корня сайта-контроллера).

    Подробнее про общее ядро можно посмотреть в статье Установка платформы аренды приложений, раздел 5.6 Выделяем из нашей установки общее ядро.

  • на закладке Доступ можно настроить права на доступ к модулю для всех имеющихся в системе групп пользователей.

Документация по теме:

  • Настройки модуля


Сайты
241 / 363
На странице Сайты (Сервисы > Контроллер > Сайты) администратору контроллера отображается список всех сайтов, подчиненных контроллеру.

Сайт может присутствовать в списке, но быть отключенным от контроллера, если это потребовалось администратору.

Администратор может деактивировать сайт вручную или задать период его активности, когда контроллер автоматически будет сверять период с текущей датой и временем на сервере.

Поддерживается неограниченное количество подчиненных сайтов.

Внимание! Если подчиненный сайт подключен к контроллеру и неактивен, значит, он недоступен для любых посетителей.

Меню действий

Основные операции с подчиненными сайтами выполняются через меню действий.

Примечание: Некоторые пункты меню доступны только для подключенного сайта.

  • Редактировать - переход к форме редактирования параметров сайта;

    Примечание: Для изменения параметров уже подключенного сайта используется форма схожая с формой Регистрация нового клиента , но в ней будет доступна дополнительная вкладка Счетчики.

  • Войти как Администратор - переход в публичный раздел сайта-клиента в качестве администратора.
  • Обновить сайт - установка обновлений на сайт клиента. При использовании этой функции автоматически создастся задача на обновление. Запуск процесса обновления производится со страницы Задачи. Результат обновления виден в Журнале.
  • Обновить настройки - выполнение установки настроек на сайт клиента.
  • Обновить счётчики - обновление счётчиков, заданных для группы сайтов , к которой относится выбранный клиент.
  • Выполнить PHP - переход на страницу удаленного выполнения команды для данного сайта.
  • Лог операций - переход на страницу журнала работы контроллера с установленным фильтром на данном клиенте.
  • Отсоединить - отключение клиента от контроллера. (Отсоединение так же возможно и в форме редактирования клиента с помощью кнопки Отсоединить на контекстной панели.)
  • Удалить - удаление записи данного клиента.

    Примечание:

    Если при удалении клиент не был отсоединен, то запись об этом клиенте из контроллера будет удалена, а сам сайт будет работать с теми настройками, которые были установлены контроллером.

    Если же перед удалением клиент был отсоединен, то на сайте будут возвращены настройки, установленные до подключения к контроллеру.

Подключение подчиненного сайта к контроллеру

Для подключения сайта к контроллеру необходимо выполнить следующее:

  • Нажать кнопку Добавить на контекстной панели страницы Сайты
  • Заполнить поля формы Регистрация нового клиента

    Регистрация нового клиента

    • URL-адрес сайта и его название

      Именно по URL-адресу контроллер впоследствии обращается к удаленному сайту и выполняет все настройки, ограничения и команды. Название и описание помогают ориентироваться в списке сайтов.

    • Логин и пароль администратора

      Знание параметров учетной записи администратора - это первичное условие для подключения самостоятельного сайта к контроллеру. Иными словами, владельцы удаленного сайта, предоставляя административные права администратору контроллера, фактически дают свое согласие на удаленный режим управления их веб-проектом. Тем не менее, рекомендуется дополнительно оформлять данное соглашение юридически.

    • Группа

      Привязка сайта к определенной группе означает автоматическое применение к нему всех групповых настроек и политик безопасности, которыми эта группа обладает.

      По умолчанию сайт привязывается к группе, указанной в настройках модуля.

      Примечание: Если сайт привязывается к новой группе, то соответствующая ей политика безопасности будет применена к сайту на основании настроек заданной группы.
    • Активность

      Администратор контроллера может управлять активностью подключаемого сайта. Активность сайта фактически означает его работоспособность, т.е. возможность принимать и обрабатывать запросы клиентов. Активность может быть установлена на заданный период времени, если, например, предполагается оплачиваемый период удаленного управления или решаются другие задачи.

    • Чтобы сайт-клиент был открыт для доступа посетителям, необходимо отметить опцию Активен (открыт для доступа посетителям).
    • С помощью опции Период активности можно задать период, в течение которого подключаемый сайт будет активен.
  • Нажать кнопку Сохранить. В случае удачного подключения к сайту, он будет отображен в списке сайтов.
Примечание: При редактировании параметров сайта будет доступна еще одна закладка - Счетчики, на которой отображается следующая информация о подчиненном сайте:

Обновление данных происходит как вручную (с помощью ссылки [обновить]), так и автоматически, но при условии, что в настройках группы (Сервисы > Контроллер > Группы) на закладке Счетчики отмечены опции для получения соответствующей информации.

Подробное описание всех полей формы можно посмотреть в пользовательской документации.

Также возможен вариант подключения сайта к контроллеру непосредственно из административной части подчиненного сайта (если на нем не установлен модуль Контроллер).

Для этого:
  • Перейдите на страницу настроек Главного модуля подчиненного сайта, секция Служебные процедуры, закладка Контроллер:

    Cекция Служебные процедуры

    • Примечание: Закладка отображается только в случае, если в системе не установлен модуль Контроллер.

  • Укажите параметры подключения к сайту-контроллеру: URL контроллера, Логин администратора контроллера и Пароль администратора контроллера;
  • Укажите параметры подключаемого сайта: Название текущего сайта и URL сайта;
  • Задайте Настройки прокси (если требуется) и нажмите кнопку Сохранить настройку прокси;
  • Нажмите кнопку Добавить этот сайт к контроллеру.

Если неверно или не полностью заполнены данные, будет выведено соответствующее уведомление.

Важно! Если на управляющем сайте включена Защита административной части , то не забудьте внести IP подчиненного сайта в список разрешенных, иначе при работе с подчиненным сайтом через контроллер может возникнуть ошибка Ответ контроллера подписан некорректно.

Документация по теме:

  • Управление подчиненными сайтами


Группы
242 / 363
Для облегчения управления множествами подчиненных сайтов администратору контроллера предлагается возможность их размещения в группах, для каждой из которых можно установить требуемую групповую политику.

На странице Группы (Сервисы > Контроллер > Группы) находится список всех групп, присутствующих в контроллере.

Меню действий

Для каждой группы в меню действий доступны следующие пункты:

  • Редактировать - переход к форме редактирования параметров группы сайтов;
  • Копировать - копирование группы сайтов;
  • Удалить - удаление группы.

    Примечание: Удаление группы, к которой относится хотя бы один сайт, а также группы, используемой по умолчанию, невозможно.

Создание группы

Для создания новой группы необходимо выполнить нажать кнопку Добавить на контекстной панели страницы Группы и заполнить поля формы:

  • Закладка Параметры

    На вкладке Параметры, помимо названия и описания группы, доступна группа параметров Обновление настроек у сайтов данной группы.

    Дело в том, что многие настройки группы подразумевают соответствующее изменение настроек на удаленном сайте. Например, права доступа локальных групп пользователей или список активных модулей. В этой связи изменение настроек группы заставляет модуль Контроллер сайтов обратиться к каждому из удаленных веб-проектов, авторизоваться, установить сеанс удаленного управления и выполнить необходимые команды. Поэтому если к группе привязано большое количество веб-проектов, то изменение ее настроек может инициировать очень ресурсоемкий процесс, сопряженный с большой нагрузкой на сам контроллер.

    Для решения этой проблемы был предусмотрен механизм отложенного применения групповых настроек. При сохранении группы с новыми настройками, задачи перенастройки параметров каждого сайта помещаются в планировщик задач и исполняются с равномерной нагрузкой на сервер в течение указанного в параметре Период автоматического обновления установок на клиенте, минут значения.

  • Закладка Модули

    В данном диалоге можно управлять списком модулей, которые будут активны на подчиненных сайтах текущей группы.

    Термин Неактивный модуль означает, что данный модуль на удаленном сайте исключен из функциональности. Это не означает его деинсталляцию в продукте, включая удаление связанных с ним данных. Модуль просто исключается из визуализации в административной панели и прекращает свою работу (не отвечает на запросы ядра).

    Зачастую не все модули приобретенной редакции используются в интернет-проекте и в этом случае исключение этих модулей из административной части избавляет техническую поддержку от массы лишних вопросов, а веб-проект - от непреднамеренного внесения ошибок.

  • Закладка Настройки модулей

    Данная закладка позволяет задать некоторые параметры настройки Главного модуля и настройки модуля Управление структурой на подчиненном веб-проекте:

    • Автокеширование компонентов - не позволяет локальному администратору переключать настройку автокеширования в компонентах, тем самым влияя на производительность и визуализацию динамического контента.
    • Режим вывода ошибок - настройка визуализации ошибок на удаленном сайте. Поставив Ошибки и предупреждения, локальный администратор может инициировать вызов служебных сообщений PHP в публичной части сайта, что нецелесообразно. Данная настройка может этому воспрепятствовать. Возможны и другие примеры использования этой настройки.
    • E-mail адреса для дублирования исходящих писем - используется при необходимости администратору контроллера получать на заданный e-mail все почтовые сообщения, генерируемые веб-проектами, отнесенными к данной группе.
    • Дисковая квота - максимальный размер дискового пространства, занимаемый веб-сайтами, отнесенными к данной группе. В рассмотрение включается и размер публичных файлов, включая содержимое папок /bitrix/ и /upload/, и размер базы данных веб-проекта. При превышении дисковой квоты удаленный веб-сайт будет генерировать сообщения об ошибках при операциях добавления новых данных.
    • Настройки регистрации новых пользователей в удаленных проектах позволяют администратору контроллера разрешить или запретить самостоятельную регистрацию новых пользователей на удаленном сайте, разрешить/запретить запоминание авторизации, принудительно включить CAPTCHA для защиты от автоматических регистраций и др. настройки.
    • Настройки системы обновлений позволяют указать настройки обращения к серверу обновлений для сайтов, отнесенных к данной группе. Это может быть стандартный сервер обновлений компании «1С-Битрикс» либо произвольный сервер (например, сам контроллер), с которого локальные веб-сайты будут скачивать обновления ядра и модулей продукта.
    • Список Доступные компоненты в визуальном редакторе дает возможность администратору контроллера указать список компонентов, которыми могут оперировать пользователи подчиненного сайта. Минимально необходимый список компонентов исключит возможность ошибок и некорректного отображения страниц удаленного веб-сайта.

    Внимание! Перечисленные настройки контроллера имеют приоритет над локальными настройками сайтов, подключенных к контроллеру. Пока сайт подключён к контроллеру, будут действовать настройки контроллера. При отключении сайта от контроллера вступят в силу локальные настройки.

    Примечание: Недостающие настройки можно реализовать с помощью PHP-скриптов инсталляции/деинсталляции групповой политики на закладке Дополнительно.

  • Закладка Права доступа.

    На данной закладке администратору контроллера предоставляется возможность внести изменения в стандартную систему разграничения прав доступа на сайте, включенном в контроллер.

    Все эти настройки помогают исключить возможность внесения нежелательных изменений локальными пользователями при управлении сайтом.

    При установленном флаге Отнимать полный доступ у администраторов можно задать для администраторов локальных сайтов иные права на модули, чем предусмотрено локальными настройками сайтов.

    Аналогичным образом администратор контроллера может переопределить права и для других групп на подчиненном сайте.

  • Закладка Счетчики

    На данной закладке можно выбрать счетчики и указать период их автоматического обновления.

    Примечание: Кроме периодического обновления счётчики могут обновляться вручную, а также при смене группы.

    Информация по ним будет доступна в режиме редактирования сайта (Сервисы > Контроллер > Сайты) на закладке Счетчики.

  • Закладка Дополнительно

    На данной вкладке предоставляется возможность указать PHP-скрипты, которые будут выполнены на подчиненных сайтах при установке или отмене данной групповой политики.

    Данная закладка - это расширение настроек групповой политики, которые были перечислены выше. Технический специалист, используя документацию к продукту, может самостоятельно разработать любой функционал, который будет выполнен на удаленном сайте при установке или отмене этой групповой политики.

  • Закладка Доп. поля.

    На закладке создаются пользовательские поля для группы сайтов. При копировании группы пользовательские поля так же копируются.

Документация по теме:

  • Управление группами сайтов
  • Создание и редактирование группы сайтов


Задачи
243 / 363

Какие задачи могут быть запланированы и выполнены?

Планировщик задач - это специализированный инструмент, который накапливает задания, формируемые остальным функционалом контроллера, и выполняет их в ручном или автоматическом режиме.

Могут быть выполнены следующие задачи:
  • установка групповых настроек;
  • обновление сайта;
  • обновление счетчика;
  • выполнение команды;
  • закрытие/открытие клиентов.

В случае если к моменту обращения к данной странице в планировщике есть невыполненные задачи, они немедленно будут запущены на выполнение на удаленных сайтах.

Также возможно использование агентов (или cron), которые будут исполнять задачи на основании заданного расписания (например, в ночное время, при минимальной нагрузке на подчиненные веб-проекты).

Документация по теме:

  • Задачи для выполнения на клиентах контроллера сайтов


Журнал и история
244 / 363
Функционал Журнал (Сервисы > Контроллер > Журнал) предназначен для отладки работы.

В нём фиксируются результаты выполнения всех операций над сайтами, включенными в контроллер, в том числе: журналирование примечаний при смене группы и обновление счетчиков при занесении заметки в журнал.

Для просмотра изменений по конкретному сайту можно воспользоваться функционалом История с помощью одноимённой кнопки на контекстной панели в форме редактирования клиента.

По этой команде откроется список операций, совершённых над сайтом:

Доступна история событий:

  • изменение активности сайта;
  • изменение группы сайта.

Документация по теме:

  • Журнал работы контроллера сайтов
  • История изменений на клиенте


Удаленное выполнение команд
245 / 363
Интерфейс удаленного выполнения произвольных команд на удаленных сайтах (Сервисы > Контроллер > Удаленное выполнение команд) представлен в виде следующей формы:

Администратор контроллера может указать произвольный PHP скрипт, который должен быть исполнен на удаленном проекте (в фильтре предоставляется возможность указать группу сайтов или конкретный сайт).

Операции, выполняемые скриптом, могут быть совершенно произвольными. Все то, что возможно выполнить с помощью API, доступно для выполнения на удаленном проекте:

  • изменение параметров сайта;
  • изменение структуры сайта;
  • добавление произвольного контента: разделы и страницы, новости, каталог и другая динамическая информация;
  • и т.п.

Опция Выполнить команду через планировщик задач дает возможность исполнения скрипта не непосредственно после нажатия кнопки Выполнить, а посредством планировщика задач. Общая задача будет разбита на множество задач для каждого сайта и выполнена последовательно на каждом удаленном веб-проекте.

Выполнение команд для числа сайтов более 50 требует подтверждения. Возможно изменение числа сайтов, подачу команд для которых надо подтверждать:

Option::SetOptionString("controller", "safe_count", 9999999);

Документация по теме:

  • Удаленное выполнение команд


Передача файла
246 / 363
Страница Передача файла на подключенные сайты (Сервисы > Контроллер > Передача файла) служит для отправки файлов на сайты-клиенты контроллера. Файл можно передать на какой-то конкретный сайт, на сайты определенной группы или же на все подчиненные сайты сразу.

Передача файла на подключенные сайты

Для передачи файла:

  • Выберите в фильтре подчиненный сайт, на который необходимо передать файл;

    Примечание: В расширенном фильтре можно также выбрать и группу сайтов, на которые будет происходить передача файлов.

  • В поле Откуда укажите путь к файлу, расположенному на сайте-контроллере;
  • В поле Куда укажите путь на подчиненном сайте, куда будет скопирован файл;

    • Примечание: Если на подчиненных сайтах нет указанного каталога, то он будет создан автоматически.

  • Нажмите кнопу Передать.

После операции передачи файла под таблицей будет отображено название сайта, для которого она выполнялась или же, в случае неудачной передачи, текст ошибки.

Документация по теме:

  • Передача файлов


Счётчики
247 / 363
Модуль Контроллер позволяет создавать и применять на сайтах счётчики.

Счётчик - инструмент для выполнения на удалённых сайтах определённого php-кода в заданный период времени.

В системе созданы и могут быть применены к группам сайтов 4 штатных счётчика:

  • Размер свободного дискового пространства
  • Количество сайтов
  • Количество пользователей
  • Дата последней авторизации

На странице Сервисы > Контроллер > Счётчики можно создать и отредактировать собственные счётчики.

Параметры счётчика настраиваются на странице редактирования конкретного счётчика, параметры запуска - на странице редактирования группы сайтов.

Создание и настройка запуска

Открыв форму создания счётчика, заполните его поля:

Для настройки запуска счётчика откройте форму редактирования группы сайтов (Сервисы > Контроллер > Группы) на закладке Счётчики:

Отметьте нужные для данной группы сайтов счётчики и установите периодичность их запуска. Результаты работы отображаются в форме сайта, подчиненного контроллеру, на закладке Счётчики.

История изменений

Каждый счётчик ведёт свою историю изменений. Для её просмотра воспользуйтесь кнопкой История в форме редактирования Счётчика. Откровется история изменений счётчиков:

Примеры кодов счётчиков

Пользователи экстранета

$counter = 0;
$rsUsers = CUser::GetList($o="ID", $b="asc", array("ACTIVE"=>"Y","=UF_DEPARTMENT"=>false), array("SELECT"=>array("ID")));
while($arUser = $rsUsers->Fetch())
  if($arUser["EXTERNAL_AUTH_ID"] !== "__controller")
    $counter++;
return $counter;

Выставление лимита в 5GB (Тип - Число, формат - как размер файла)

$max_size = 5*1024*1024*1024;
COption::SetOptionString("main_size", "~max_size", $max_size);
return $max_size;

Объем файлов в облаке (Тип - Число, формат - как размер файла)

$file_size = 0.0;
if(CModule::IncludeModule('clouds'))
{
  $rsBuckets = CCloudStorageBucket::GetList();
  while($arBucket = $rsBuckets->Fetch())
    $file_size += $arBucket["FILE_SIZE"];
}

COption::SetOptionString("main_size", "~cloud", $file_size);
$params = array("status" => "d", "time" => time());
COption::SetOptionString("main_size", "~cloud_params", serialize($params));

return $file_size;

Документация по теме:

  • Счетчики
  • Создание счетчика


Авторизация
248 / 363
Страница Авторизация (Сервисы > Контроллер > Авторизация) позволяет настроить авторизацию пользователей на подчинённых сайтах, между подчинёнными сайтами и на контроллере.

Для задания параметров авторизации необходимо выбрать нужный вид авторизации, установить флажок, разрешающий авторизацию и задать соответствие групп между сайтами с помощью Символьных идентификаторов. Символьный идентификатор группы задаётся в настройках группы, в одноимённом поле.

Примечание: даже если Символьные идентификаторы не заданы, то группу Администраторы и Все пользователи (в том числе не авторизованные) всегда можно задать используя коды administrators и everyone соответственно.

Кроме того, необходимо выполнить настройки авторизации и на подчиненных сайтах. В настройках главного модуля подчиненного сайта на закладке Журнал событий доступны следующие параметры:

  • Префикс для авторизации на контроллере - указывается префикс, который будет использоваться для авторизации пользователей контроллера на этом подчиненном сайте.
  • Авторизовывать на этом сайте пользователей других сайтов контроллера - при отмеченной опции пользователи других сайтов контроллера смогут авторизовываться на этом сайте, причем обязательно должна быть разрешена авторизация между подчиненными сайтами на контроллере и настроено соответствие групп (см. выше).

Если разрешена авторизация пользователей контроллера на подчиненных сайтах, задано соответствие групп пользователей и указан префикс для авторизации на контроллере, например controller, то при заходе на подчиненный сайт пользователь должен указать в качестве логина controller\логин_на_контроллере и в качестве пароля пароль_на_контроллере. Пользователь авторизуется, причем на подчиненном сайте будет создан локальный пользователь с соответствующими именем и правами.

Если разрешена авторизация пользователей подчиненных сайтов на контроллере и задано соответствие групп пользователей, то при заходе на контроллер пользователь должен указать в качестве логина доменное_имя_подчиненного_сайта\логин_на_сайте и в качестве пароля пароль_на_сайте. На контроллере будет создан локальный пользователь с соответствующими именем и правами.

Пример

Пользователь, принадлежит группе Сотрудники техподдержки на сайте-контроллере. На странице Авторизация сайта-контроллера, на закладке На подчинённых сайтах задано, что группа Сотрудники ТП соответствует группе Администраторы магазина на подчинённом сайте.

В результате, пользователь, авторизуясь на подчинённом сайте под логином сайта-контроллера (даже если он и не имеет аккаунта на этом сайте), приобретает права группы Администраторы магазина, даже если он и не входит в эту группу.

Примечание: администраторы контроллера всегда могут авторизовываться на подчиненных сайтах с наивысшими правами. При подключении сайта к контроллеру на подключенном сайте создается локальный пользователь-администратор, пароль от которого в зашифрованном виде хранится на контроллере.

Документация по теме:

  • Авторизация


Публикация новостей с контроллера на подключенных сайтах
249 / 363
Идея публикации новостей заключается в формировании на контроллере xml файла, передаче его на подключенные к контроллеру сайты и импорте метаданных инфоблока и значений полей/свойств элемента.

Внимание! Есть вероятность того, что большие по объему новости не будут опубликованы на подчиненном сайте. Это зависит от настроек сайта и хостинга, так как вся новость передается в большом POST запросе.

Внимание! Действие по публикации новостей требует на клиенте версию главного модуля не ниже 11.0.9.

Для публикации новостей с контроллера на подключенных сайтах выполните следующее:

  • Подключите к контроллеру сайт, на который будут транслироваться новости
  • На контроллере и на подключенных сайтах в настройках модуля инфоблоков (по крайней мере, на время) отметьте опцию Показывать код загрузки из внешних источников

    Показывать код загрузки из внешних источников

  • Настройте инфоблок на контроллере:

    Укажите Символьный код - именно по нему будет выполняться синхронизация элементов;

    В поле Участвует в документообороте или бизнес процессах выберите опцию Бизнес процессы;

    Настройка инфоблока на контроллере

    Затем нажмите кнопку Применить.

    На появившейся вкладке Шаблоны бизнес-процессов для бизнес-процесса Публикация на подключенных сайтах отметьте опции Создание и Изменение и сохраните изменения настроек инфоблока.

  • На подключенном сайте создайте инфоблок с таким же значением внешнего кода, как и на контроллере. Кроме привязки к сайту, названия и внешнего кода настройте и права доступа к инфоблоку.

    Создайте страницу, если необходимо, и разместите на ней компонент Новости, в настройках которого укажите созданный инфоблок.

  • На сайте контроллера добавьте новость

  • После чего на подключенном сайте появится новость


Частые вопросы
250 / 363

Компании необходимо несколько интернет-проектов по различным тематикам. Необходимо использовать "контроллер сайтов" или воспользоваться "многосайтовостью" стандартных редакций?

Если управление всеми интернет-проектами будет сосредоточено в "одних руках" и все проекты могут быть размещены на единой хостинг-площадке, то выгоднее использовать "Многосайтовость".

Если каждым веб-проектом управляют отдельные структуры, и требуется полная независимость одного сайта от другого, но при этом существует необходимость глобального централизованного управления ими, то единственным решением будет использование "контроллера сайтов". Кроме того, контроллер необходим, если проекты физически размещаются на различных хостинг-площадках (например, региональные веб-ресурсы, которые работают с локальным трафиком).

Если сайт, на котором размещен "контроллер", прекратит свою работу, скажется ли это на подчиненных ему проектах? И наоборот?

Нет, все сайты независимы друг от друга. Если выйдет из строя контроллер, сайты продолжат работу в обычном режиме с теми настройками, которые были установлены администратором контроллера. Если выйдет из строя подчиненный сайт, то на работе контроллера это также не скажется.

Есть два инфоблока на контроллере: первый с элементами, которые нужно будет реплицировать на подчиненный сайт, и второй - с разделами, к которым привязаны эти же элементы первого инфоблока (свойство привязки к разделам инфоблока). Возможно ли сделать так, чтобы элементы первого инфоблока не теряли привязки к разделам второго инфоблока на подчиненном сайте?

Для этого достаточно совпадения внешних кодов (xml_id) разделов второго инфоблока на контроллере и подчиненном сайте. Необходимо выполнить xml экспорт разделов второго инфоблока на контроллере и импортировать этот файл на подчиненный сайт.

Если на контроллере добавляется новое свойство инфоблока, то будет ли оно при обмене автоматически создано на подчиненном сайте?

Да, будет.


Обучение
251 / 363

Модуль Обучение позволяет организовать систему дистанционного обучения. Курс, который вы прямо сейчас видите - тоже результат работы этого модуля.

Создавать обучающие курсы можно как в публичном разделе, так и в административном. В данном курсе вы узнаете о том, какие действия можно выполнить из административного раздела. Выполнение операций из публичного раздела описано в курсе Контент-менеджер.


Основные понятия
252 / 363

Возможности модуля Обучение

Администратор в модуле Обучение может выполнять следующие задачи:

  • Создавать и редактировать курсы *;
  • Создавать и редактировать главы и уроки *;
  • Привязывать главы и уроки (и даже целые курсы) к разным курсам *;
  • Составлять вопросы к тестам для самопроверки *;
  • Создавать итоговые тесты *;
  • Настраивать модуль;
  • Экспортировать/импортировать курсы;
  • Контролировать прохождение итоговых тестов;
  • Создавать учебные группы для отдельного обучения.

* - данные функции также может выполнять Контент-менеджер из публичного раздела.

Основные понятия

Курс - организованная и логически завершенная последовательность страниц, содержащих информацию о некоторой предметной области.

Чаще всего по итогам курса проводится тестирование, призванное проверить уровень знаний обучающихся (пользователей, прошедших курс).

Стандартный курс включает следующие элементы:

  1. Главы – тематические (смысловые) разделы и подразделы курса. Каждая глава может включать неограниченное количество дочерних элементов (подразделов и уроков), а также относиться к нескольким родителям (главам или курсам).
  2. Уроки – информационное наполнение курса. Урок может входить в состав одной или нескольких глав или курсов (без привязки к главам). Каждый урок представляет собой отдельную страницу.
  3. Вопросы – вопросы для проверки пройденного материала, создаются как отдельные объекты. Созданные вопросы можно использовать для двух типов проверочных тестов:
    • тесты для самопроверки;
    • итоговые тесты.

    4. Информация обо всех попытках тестирования пользователей хранится в справочнике Список попыток. Записи справочника отражают успешность предпринятых попыток прохождения теста, количество набранных баллов и т.д.

    Данные о результатах тестирования пользователей хранятся в журнале Результаты обучения. Результат – это запись с количеством баллов, набранных пользователем при прохождении теста. Результат определяется по итогам самой успешной из предпринятых пользователем попыток прохождения теста.

    Если результаты тестирования определяются автоматически, то для каждого результата выводится сообщение, сигнализирующее, является ли тест пройденным или нет.

    Курсы, созданные с использованием модуля Обучение, могут быть экспортированы во внешний файл для последующей загрузки на другие проекты, работающие на базе системы Bitrix Framework. Операции экспорта и импорта выполняются с помощью специальных механизмов модуля.

    Документация по теме:

    • Пользовательская документация по модулю "Обучение"


Настройки модуля Обучение
253 / 363

Настройки модуля

Модуль Обучение настраивается в Административной части на странице Настройки > Настройки продукта > Настройки модулей > Обучение

Нажмите на рисунок, чтобы увеличить

Значение полей формы настройки понятны из названий. Дадим только некоторые пояснения.

Количество курсов, выводимых в меню, устанавливается любое, но учтите, что длинный список в административном меню не удобен для поиска. Если курсов много, то рекомендуем с помощью значений полей Сортировка вывести на верх списка самые используемые, а само число отображаемых в меню курсов сделать не более 20.

Если публичные компоненты курсов на проекте расположены не в стандартном разделе /learning/, то перенастройте пути к нужному разделу. Это делается в полях Шаблоны путей к публичной части курсов. Настройка задаётся для каждого сайта по отдельности.

Кроме переназначения путей скопируйте файл search.php из папки /bitrix/modules/learning/install/public/site/ru модуля в директорию, где размещена публичная часть модуля.

Документация по теме:

  • Настройки модуля


Экспорт\импорт курсов
254 / 363

Используя средства системы, можно выполнить экспорт и/или импорт учебного курса в формате .tar.gz. Причем, если для курса созданы вопросы и итоговые тесты, то они также экспортируются (импортируются). Это очень удобно при перемещении курсов с сайта на сайт (например, со старого сайта нужно перенести обучающий курс на новый сайт).

Экспорт курса

Экспорт курса выполняется с помощью специальной формы, расположенной на странице Выгрузка курса (Сервисы > Обучение > Экспорт).

С помощью выпадающего списка выберите учебный курс, который необходимо выгрузить, и нажмите кнопку Далее. Откроется следующий шаг процедуры экспорта.

Укажите имя файла данных курса и нажмите кнопку Начать выгрузку.

Система выполнит выгрузку курса и выведет сообщение о завершении экспорта.

Теперь вы можете, например, загрузить курс с локальной установки продукта на ваш Bitrix Framework.

Примечание: При экспорте курса происходит изменение имен файлов картинок, загруженных в систему, в папку /upload. К существующим именам и в названии самой картинки, и в уроке (в коде вызова этой картинки) добавляется префикс из пяти случайных знаков и разделитель. Пример измененного имени файла: 6or1P.bitrix_blog.png. Это не влияет на правильность отображения картинки в уроке.

Импорт курса в систему

Процедура импорта курса также выполняется в несколько шагов с помощью формы, расположенной на странице Загрузка курса (Сервисы > Обучение > Импорт).

С помощью кнопки Открыть укажите имя и путь к загружаемому файлу данных. В поле Сайты отметьте те сайты, к которым должен быть привязан загружаемый курс. Если импортируется курс в формате SCORM , установите флажок в соответствующем поле. Нажмите кнопку Загрузить данные. Система выполнит загрузку курса и выведет соответствующее сообщение.

Примечание: На данный момент поддержка формата SCORM реализована не полностью. В текущей версии после импорта работает только просмотр курсов с публичной части. Мы планируем дальнейшую реализацию формата, но полноценной работы с курсами в формате SCORM как с курсами, созданными вручную, не будет, это связано с особенностями формата.

Документация по теме:

  • Экспорт курса
  • Импорт курса


Результаты обучения
255 / 363

Результаты обучения можно оценить с помощью соответствующих страниц в разделе Обучение Сервисы > Обучение:

  • Попытки прохождения тестов
  • Результат прохождения теста
  • Сертификаты
  • Пример работы со статистикой

Попытки прохождения тестов

По итогам курса пользователям можно предложить пройти один или несколько тестов для проверки полученных знаний. Попытки прохождения тестов фиксируются на странице Попытки (Сервисы > Обучение > Попытки):

Результат прохождения теста

Результат прохождения теста (по итогам наиболее результативной попытки) отражается на странице Журнал (Сервисы > Обучение > Журнал):

Если тест проверяется не автоматически, то в журнале выводится только количество набранных баллов.

Если включен Контроль неправильных ответов, то прохождение теста завершится при первом же неверном ответе.

В параметрах теста можно задать число попыток прохождения. С помощью поля Дополнительные попытки добавляются попытки конкретному пользователю в конкретном тесте:

  1. С помощью фильтра найдите нужного учащегося и тест;
  2. Поставьте флажок в первой колонке и в панели действий выберите команду Редактировать. Все поля, в которых допустимо редактирование данных, станут активными.
  3. Добавьте нужное число попыток в поле Дополнительные попытки и сохраните изменения.

    4.

    Сертификаты

    Список обучаемых, успешно сдавших тесты, со всеми возможными статистическими данными размещается на странице Сертификация (Сервисы > Обучение > Сертификация):

    С сертификатами можно выполнить следующие действия:

    • активировать/деактивировать
    • изменить данные
    • удалить

    Пример работы со статистикой

    Допустим, мы хотим понять, какой материал хуже всего усвоен тем или иным учащимся.

    Выполним следующие несложные действия:

    1. На странице Список попыток с помощью фильтра находим результаты нужного пользователя и нужного теста:

    2. В отдельных вкладках браузера открываем результаты прохождения каждого теста. Результаты открываются по клику на ссылку в колонке Вопросов.
    3. В каждой открывшейся вкладке сортируем вопросы кликом по колонке Верно отвечен, таким образом, чтобы наверху оказались неверно отвеченные вопросы.
    4. Сравниваем результаты и ищем закономерности:

      5. Важно! Если курс был деактивирован, то результаты тестов и сертификаты по этому курсу будут недоступны пользователям. Если курс был удален, то результаты тестов и сертификаты этого курса будут также удалены.

      Документация по теме:

      • Результаты теста
      • Редактирование результата
      • Попытки
      • Журнал
      • Сертификация


Учебные группы
256 / 363

Начиная с версии 14.0.0 модуля Обучение доступен функционал учебных групп, позволяющий контролировать процесс обучения. Теперь в системе не нужно создавать группы пользователей, которые имели бы доступ к тем курсам, по которым проводится отдельное обучение. Для таких курсов создается учебная группа, в которой указываются время ее работы, доступность материалов в процессе изучения курса и список обучающихся пользователей.

Важно! Если участник учебной группы входит в некоторую группу пользователей, которая обладает правом на курс не ниже Просмотр, то ему всегда будет доступен весь этот курс независимо от настроек учебной группы.

Создание учебной группы

Допустим, что курс, по которому будет проводиться отдельное обучение, уже создан и недоступен для обычных пользователей (иначе весь смысл учебной группы теряется). Теперь можно приступить к созданию и настройке учебной группы.

Перейдите на страницу Список учебных групп (Сервисы > Обучение > Учебные группы) и нажмите кнопку Добавить. Откроется форма следующего вида:

  • Обязательно в соответствующих полях укажите название учебной группы и выберите учебный курс, по которому будет проходить обучение.
  • В поле Период активности задайте временной интервал, в течение которого будет доступен курс для изучения, а также отметьте опцию Запись активна, чтобы обучение могло осуществляться.
  • В поле Состав учебной группы укажите пользователей, которые будут проходить обучение в рамках данной группы.

На закладке Доп. поля можно заполнить имеющиеся пользовательские поля для рабочих групп или перейти к добавлению новых.

Примечание: подробное описание каждого поля представлено в документации по продукту.

Нажмите кнопку Применить, чтобы получить доступ к настройкам графика открытия разделов курса и продолжить редактирование учебной группы. Если вам не требуется настройка графика или вы хотите сделать это позднее, то нажмите Сохранить.

Настройка графика открытия разделов курса выполняется для всех глав/уроков верхнего уровня:

Для каждой главы (урока) указывается, через сколько дней после начала обучения она станет доступной. После того, как график составлен, не забудьте сохранить настройки учебной группы.

В результате до наступления начала обучения курс будет недоступен для пользователей, а затем откроется в соответствии с настройками графика.


Создание и редактирование курса
257 / 363
Все операции по созданию и редактированию курсов можно выполнять как из публичного раздела при включенном режиме Правка, так и из административного раздела.

Формы создания курсов, уроков, тестов и вопросов идентичны для публичной и административной частей. В данной главе будет рассмотрена работа с курсом из административной части. Выполнение операций из публичного раздела описано в курсе Контент-менеджер.


Курсы
258 / 363

Создание курса

Управление учебными курсами осуществляется на странице со списком обучающих курсов (Сервисы > Обучение > Курсы):

Для добавления нового курса служит кнопка Добавить курс, расположенная на контекстной панели. Переход к редактированию существующей записи осуществляется с помощью меню действий (пункт Изменить).

Форма создания/редактирования курса состоит из нескольких закладок:

  1. На закладке Курс задаются основные параметры учебного курса.

    А также настроить рейтинг на страницах курса (опции Включить рейтинг и Вид кнопок рейтинга).

    Важно! Если курс был деактивирован, то результаты тестов и сертификаты по этому курсу будут недоступны пользователям. Если курс был удален, то результаты тестов и сертификаты этого курса будут также удалены.

  2. На закладке Анонс задается описание для анонса курса, которое отображается на странице со списком курсов.
  3. Подробное описание курса, которое отображается на странице детального просмотра курса, задается на закладке Подробно.
  4. На закладке Права доступа выполняется настройка прав доступа пользователей и групп пользователей к курсу (подробную информацию об уровнях прав доступа смотрите в документации по продукту).

    На закладке перечисляются пользователи и группы пользователей, для которых настроены права доступа к модулю Обучение. Эти записи отредактировать невозможно, поскольку права доступа на модуль перекрывают права доступа на курс. Таким образом, если пользователям и группам пользователей уже установлены права на модуль Обучение, то они обладают этими же правами доступа и на все курсы системы.

    Настройка прав доступа к курсу некоторым другим пользователям и группам пользователей выполняется с помощью ссылки Добавить. По ее нажатию открывается окно выбора пользователей и групп.

    Выберите пользователей или группы, для которых настраиваются права доступа, и задайте для них нужный уровень прав.

    Примечание: обычно при создании курса доступ к нему предоставляется только для тех групп, пользователи которых осуществляют создание. После того, как курс готов, его делают доступным для всех необходимых групп пользователей.
  5. Дополнительные поля для курса настраиваются на закладке Доп. поля. Здесь можно задать иконку для курса, добавить файлы к материалам курса, указать, за сколько дней предупреждать о закрытии курса и прекращать тестирование и т.д.

  6. В форме редактирования курса доступна еще одна закладка - Связи:

    На данной закладке указываются все взаимосвязи курса: какие главы (уроки) или, может быть, целый курс содержится в текущем курсе, а также включен ли этот курс в какой-нибудь другой курс/главу.

    Примечание: курсы, главы и уроки могут быть как родительскими, так и дочерними элементами по отношению друг к другу.

    По ссылке Добавить элемент, расположенной в списке родительских элементов, с помощью специального окна выбирается курс, к которому необходимо привязать текущий курс. По одноименной ссылке, но расположенной в списке дочерних элементов, привязываются к курсу как любые главы и уроки из других курсов, так и целиком некоторый курс.

    7. Документация по теме:

    • Список курсов, глав и уроков
    • Создание и редактирование курса


Главы и уроки
259 / 363

Начиная с 12-ой версии продукта, курсы, главы и уроки могут быть как родительскими, так и дочерними элементами по отношению друг к другу, т.е. доступна возможность привязки курсов, глав и уроков к любым уже имеющимся в системе главам и курсам.

При этом один и тот же урок может быть привязан к нескольким главам разных курсов. Это очень удобно, когда у Вас есть несколько курсов на схожие тематики. Можно создать один урок с общей для всех курсов информацией и привязать его сразу ко всем этим курсам. Как пример - урок "Как отформатирован текст в курсе", который прикреплен ко всем обучающим курсам «1С-Битрикс». И когда Вы правите этот урок в одном из курсов, то текст правится сразу во всех курсах, к которым он прикреплен.

Когда создается новая глава, она считается просто уроком. И только тогда, когда в нее будет добавлен хотя бы один урок, она становится полноценной главой. Аналогично, если некоторый урок А сделать вложенным в урок Б, то урок Б становится главой. Если же из главы удалить единственный урок, то она превращается в урок.

Создание глав и уроков

Прежде чем приступить к созданию главы (или урока), необходимо перейти в тот раздел курса, где она (он) должна находиться:

  • если в верхнем уровне курса, то перейдите на страницу Сервис > Обучение > Курсы;
  • если в некоторой главе курса, то перейдите на страницу Сервис > Обучение > Курсы > название_главы.

Примечание: в продукте доступна возможность создания свободных глав и уроков, т.е. не привязанных ни к одному курсу или главе. Создание свободных глав/уроков выполняется со страницы Список всех уроков (Сервис > Обучение > Список всех уроков) с помощью кнопки Добавить главу/урок. Привязка к курсу или главе может быть выполнена позже с помощью настройки связей.

Перейти к созданию главы или урока курса можно с помощью кнопки Добавить главу/урок, расположенной на контекстной панели, либо с помощью ссылки [+], расположенной в столбце Всего глав (или Всего уроков):

Примечание: ссылка [+] встречается не только в списке глав/уроков. Она встречается и в других списках системы. Означает она то, что с ее помощью можно создать еще один элемент той или иной сущности. В нашем случае эта ссылка позволяет перейти к созданию подраздела или урока для выбранной главы.

В форме создания главы/урока указываются:

  • основные параметры главы или урока, среди которых обязательно задается название главы или урока (как оно будет отображаться в меню курса в административном и публичном разделах);
  • краткое описание и детальное содержание главы/урока на закладках Анонс и Содержание соответственно;
  • дополнительные поля для глав и уроков курса на закладке Доп. поля.
Внимание! При установке галочки "Не публиковать" данная глава/урок не будет отображаться в списке уроков курса при настройке тестов и к ней невозможно будет привязать тест. Нужно сначала задать такую привязку и лишь затем снимать отметку "Не публиковать".

Примечание: полное описание формы создания и редактирования главы/урока представлено в документации по продукту.

После сохранения урок (или будущая глава) будет добавлен в общий список глав и уроков соответствующего уровня:

Процесс создания урока на этом полностью завершен. Для создания полноценной главы необходимо повторить описанный выше процесс по созданию урока внутри создаваемой главы либо в форме редактирования главы добавить ей дочерние элементы.

Переход к редактированию существующей главы/урока осуществляется с помощью меню действий (пункт Изменить). В форме редактирования главы/урока дополнительно доступны 2 закладки: Связи и Права доступа. Сначала рассмотрим подробно закладку Связи:

В списке родительских элементов указываются курсы/главы, к которым принадлежит редактируемая глава/урок, а в списке дочерних - главы и уроки, включенные в текущую главу (урок).

Чтобы привязать редактируемую главу/урок к другим курсам/главам или, наоборот, включить в главу имеющиеся в системе главы и уроки, выполните следующие действия:

  1. Нажмите на соответствующую ссылку Добавить элемент. Откроется окно со списком всех имеющихся в системе курсов, глав и уроков.
  2. Выберите необходимый курс, главу или урок с помощью меню действий (пункт Выбрать) или двойного клика по соответствующей записи.

    3. Созданная связь отобразится в форме редактирования главы/урока.

    Статус "Не публиковать" устанавливается для каждого родительского курса отдельно.

    Внимание! Один и тот же урок нельзя сделать дочерним несколько раз в рамках одного курса.

    Чтобы отвязать главу/урок от какого-нибудь родителя или открепить некоторые вложенные элементы, удалите соответственно запись о родительском или дочернем элементе по кнопке x, расположенной рядом с названием элемента.

    На закладке Права доступа для главы или урока можно выполнить отдельную настройку прав доступа пользователей и групп пользователей.

    На закладке перечислены пользователи и группы пользователей, для которых настроены права доступа к модулю Обучение. Эти записи отредактировать невозможно, поскольку права доступа на модуль перекрывают права доступа на курс, главы и уроки. Таким образом, если пользователям и группам пользователей уже установлены права на модуль Обучение, то они обладают этими же правами доступа и на все курсы системы, главы и уроки.

    Кроме того, права на курс (главы) перекрывают права на вложенные главы и уроки. Например, если пользователям и группам заданы некоторые права на курс (главы), а на вложенные главы и/или уроки установлены меньшие права, то этим пользователям и группам вложенные главы и уроки будут доступны в соответствии с правами на курс (вышележащие главы). Если же на некоторые главы (уроки) заданы большие права, чем на курс (главу), то конечные права на главы (уроки) суммируются.

    Настройка прав доступа к главе (уроку) дополнительным пользователям и группам пользователей выполняется с помощью ссылки Добавить. По ее нажатию открывается окно, в котором выбираются необходимые пользователи и/или группы, а затем для них указываются нужные права доступа.

    Документация по теме:

    • Список курсов, глав и уроков
    • Создание и редактирование главы/урока


Вопросы
260 / 363

Создание вопросов

В обучающем курсе есть возможность создать вопросы для двух типов тестов:

  • тест для самопроверки
  • итоговый тест

Вопросы создаются как самостоятельные объекты, которые можно включать в тот или иной тест.

Вопросы по материалам курса могут быть привязаны непосредственно к курсу (т.е. созданы в самом верхнем уровне), к главам или урокам курса. Вопросы для самопроверки логичнее создавать для урока, чтобы сперва изучить материал, а затем пройти тест для самопроверки.

Перейти к созданию вопроса можно следующими способами:

  • с помощью ссылки "+", расположенной в столбце Вопросов на странице со списком уроков/глав/курсов (Сервисы > Обучение > Курсы> Название курса):

  • с помощью кнопки Добавить вопрос, расположенной на странице со списком всех вопросов определенного урока/главы/курса (Сервисы > Обучение > Курсы> Название курса > Вопросы):

Если вы осуществляете переход к созданию вопроса с помощью кнопки Добавить вопрос, то следует сразу выбрать тип вопроса:

  • одиночный выбор - в списке предложенных вариантов ответов может быть выбран только один ответ;
  • множественный выбор - в списке предложенных вариантов ответов может быть выбрано несколько ответов.
  • сортировка - в списке предложенных вариантов ответов необходимо расставить ответы в нужном порядке;
  • текстовый ответ - выводится текстовое поле для самостоятельного ответа обучаемым.

    Примечание: для вопросов данного типа доступна возможность отправки письма с ответом преподавателю (т.е. автору) урока. Причем вы можете внести изменения в почтовый шаблон и добавить получателей, которым будет отправляться данное письмо. Оно отправляется по событию NEW_LEARNING_TEXT_ANSWER (Настройки > Настройки продукта > Почтовые события > Типы почтовых событий).

В остальных случаях необходимый тип вопроса указывается в момент создания вопроса с помощью специальной формы создания (редактирования) вопроса. На закладке Вопрос данной формы указывается текст самого вопроса:

Если вам требуется изменить привязку вопроса к уроку, то в поле Урок нажмите ссылку сменить. Откроется окно выбора главы/урока, к которому вопрос должен быть привязан.

Для включения вопроса в тест для самопроверки (данный тест будет доступен пользователям после изучения материалов урока, указанного в поле Урок) отметьте поле Для самопроверки.

Если на вопрос обязательно нужен правильный ответ, то выберите соответствующую опцию Обязателен правильный ответ.

Также при неправильном ответе можно выводить сообщение, которое указывается в поле Сообщение при неправильном ответе.

К вопросу можно добавить изображение с помощью кнопки Добавить файл.

На закладке Ответы указываются варианты ответов на вопрос.

Примечание: Если необходимо добавить больше четырех ответов, то следует нажать кнопку Добавить ответ для добавления поля ответа.

В поле Сорт. указываются порядок отображения ответов в вопросе (сортировка будет учитываться, если в тесте, в котором содержится данный вопрос, отключена опция Случайный порядок ответов).

Важно! Не забудьте отметить правильный вариант (варианты) ответа на вопрос.

Для удаления ответа необходимо нажать кнопку [image] рядом с соответствующей записью.

На закладке Описание можно более подробно описать вопрос, а на закладке Доп. поля заполнить имеющиеся пользовательские поля для вопросов или перейти к добавлению новых полей.

После сохранения вопрос будет добавлен в общий список вопросов урока/главы/курса:

Документация по теме:

  • Вопросы
  • Создание и редактирование вопроса


Тесты
261 / 363

Создание тестов

Тесты для оценки знаний пользователей создаются на основе вопросов, задаваемых к урокам курса. Главное отличие итоговых тестов в том, что вся информация об их прохождении строго фиксируется (количество попыток, число набранных баллов и т.д.).

Тест для самопроверки служит (как это уже понятно из названия) для проверки обучающимся того, как он усвоил материал. Это не итоговая проверка знаний, а промежуточная, без сбора информации о прохождении конкретных пользователей. Тест для самопроверки генерируется автоматически из созданных вопросов, если у них при создании было отмечено поле Для самопроверки.

По этой ссылке откроется вопрос для самопроверки:

Параметры итогового теста для оценки знаний пользователей, прошедших курс обучения, задаются в форме создания теста.

Работа с тестами

Управление тестами курса осуществляется на странице Тесты (Сервисы > Обучение > Курсы > название_курса > Тесты):

Для создания нового теста служит кнопка Добавить тест, расположенная на контекстной панели. В открывшейся форме необходимо задать параметры теста. Параметры сгруппированы по назначению:

  1. Добавление вопросов в тест выполняется на основе параметров, указанных в поле В тесте участвуют. Уроки и подуроки могут быть выбраны из списка, только если они активны и в их параметрах не отмечена опция "Не публиковать".
  2. По умолчанию вопросы, участвующие в тесте для самопроверки, не включаются в проверочный тест. Чтобы включить данные вопросы в тест, нужно отметить соответствующую опцию.
  3. Настройки теста позволяют определить порядок вывода вопросов и ответов на них.
  4. Возможно ограничение количества попыток и времени, предоставляемых пользователю на одну попытку и между попытками.
  5. Чтобы проверка результатов теста выполнялась автоматически (т.е. для того чтобы в журнале выводилось сообщение, является ли тест пройденным или нет), нужно отметить соответствующую опцию и ввести процент вопросов, на которые необходимо ответить правильно для успешного прохождения теста. Проценты вводятся в целых числах.
  6. Настройки прохождения теста задаются в поле Тип прохождения теста.
  7. Дополнительные условия теста могут задать порядок прохождения теста в группе тестов учебного курса и другие условия.

Примечание: подробное описание формы создания и редактирования теста представлено в документации по продукту.

Документация по теме:

  • Тесты
  • Создание и редактирование теста


Публикация курса
262 / 363

Публикация списка курсов

Страница со списком курсов создается с помощью компонента Список курсов (learning.course.list).

Важно! В настройках компонента указывается адрес страницы для детального просмотра курса. Если страница с указанным именем не существует, то ее необходимо создать.

Публикация курса

Публичный интерфейс для детального просмотра курса создается с помощью комплексного компонента Учебный курс (learning.course). С помощью данного комплексного компонента осуществляется показ не только глав и уроков курса, но и созданных к курсу итоговых тестов.

Примечание: размещение компонента выполняется на странице с именем, указанным в настройках компонента Список курсов.

Обратите внимание, если в настройках компонента отмечена опция Включить поддержку ЧПУ, то необходимо указать адреса всех страниц курса. В противном случае следует задать переменные, которым будут передаваться идентификаторы страниц. Без особой необходимости не рекомендуется менять используемые по умолчанию значения переменных.

В обучающем разделе вашего Bitrix Framework вы можете опубликовать дополнительную информацию для пользователей, используя такие компоненты как Отчет по курсам (learning.student.certificates), Журнал студента (learning.student.gradebook) и др.

Важно! Показ детального описания, разделов, страниц и тестов курса выполняется на основе отдельного шаблона дизайна. Условия применения шаблона дизайна, используемого для просмотра курсов, задаются также как и для других шаблонов. Т.е. на странице настроек Bitrix Framework следует указать, к каким страницам или страницам какого раздела будет применяться шаблон.


Подписка, рассылки
263 / 363

Традиционно о событиях на сайте (информация о достижениях компании, новых направлениях в ее деятельности, предоставляемых услугах, планируемых акциях и так далее) пользователей уведомляют почтовыми рассылками. Возможности модуля Подписка, рассылки "1С-Битрикс: Управление сайтом" позволяют решать любые задачи, связанные с ними. Посетители сайта могут самостоятельно подписаться на интересующие их рубрики. При этом подписка на различные тематические рассылки доступна как зарегистрированным, так и анонимным (незарегистрированным) пользователям сайта.


Возможности модуля
264 / 363

Возможности модуля Подписка, рассылки

Модуль Подписка, рассылки:

  • создаёт автоматические или ручные рассылки почтовых сообщений (например: новости компании, анонсы публикаций и так далее),
  • импортирует имеющиеся списки получателей,
  • ведёт статистику рассылок,
  • использует самые разные шаблоны для рассылок с возможностью их создания и редактирования.

Работа с модулем

Администратор производит только настройку модуля и создание и редактирование шаблонов рассылки. Всю остальную работу, как правило, выполняет контент-менеджер и выполняет её в административной части сайта.

Дополнительная информация:

  • Пользовательская документация по модулю "Подписка, рассылки"


Настройки модуля Подписка и Рассылки
265 / 363

Настройки модуля

Модуль Подписка и Рассылки настраивается в Административной части на странице Настройки > Настройки продукта > Настройки модулей > Подписка и рассылки.

Нажмите на рисунок, чтобы увеличить

Отметим некоторые особенности этой формы:

  • Флаг в поле Разрешить анонимную подписку разрешает подписку на рассылки без регистрации на сайте;
  • Флаг в поле Показывать ссылки на авторизацию при анонимной подписке отображает ссылки на авторизацию и регистрацию;
  • В поле Публичный раздел, где находится страница редактирования подписки задаётся путь в публичном разделе к папке со страницей редактирования подписки, относительно корня сайта (в данном поле можно использовать макрос #SITE_DIR#);
  • Интервал в секундах для пошаговой рассылки в режиме "Персонально подписчику" – указывается интервал отправки писем подписчикам (в секундах). Значение зависит от параметров вашего сервера. Режим Персонально подписчику - это отправка индивидуальных сообщений каждому подписчику с адресом подписчика в поле Кому каждого такого письма. Если в поле указать 0, то отправка писем будет осуществляться за один шаг.
  • Максимальное количество адресов в поле BCC не в режиме "Персонально подписчику" – ограничьте количество адресов, выводимое в поле BCC, если не используется режим Персонально подписчику. Если указать 0, то одно письмо будет отправляться всем подписчикам.
  • Поля Адрес отправителя по умолчанию и Адрес получателя по умолчанию - адреса отправителя и адрес получателя, используемых в сообщениях по умолчанию. Эти параметры можно переназначать в каждом сообщении отдельно.
  • В полях Кодировки сообщения в рассылку укажите кодировки для создания сообщений. По умолчанию установлен необходимый минимум;
  • Если установлен флаг Разрешить 8-битные символы в заголовке письма, то в заголовке письма используются символы расширенного ASCII (0-255). В противном случае такие символы (обычно национальные, например, символы русского алфавита) выводятся в кодировке Base-64.
  • В полях Метод автоматической рассылки и Метод автоматической генерации выпусков можно выбрать один из двух методов:
    • Агент - автоматическая рассылка и автоматическая генерация выпусков осуществляются средствами системы. Чтобы выполнение агента произошло в установленное время, на сайте кто-то должен быть. Если сайт редко посещаемый, то агент может и не выполнится вовремя.
    • Крон – этот метод рекомендуется если сайт установлен на сервер под управлением ОС Unix,так как для выполнения задач в этом случае не требуется чтобы на сайте обязательно был посетитель, действие будет выполнено на сервере автоматически по установленному расписанию.
  • Поле Максимальный размер вложений в мегабайтах (0 - без ограничений) ограничивает размер вложения в письмо рассылки. Если 0 - то без ограничений.

На закладке Доступ распределяются права доступа к модулю для групп пользователей.

Документация по теме:

  • Настройки модуля


Шаблон рассылки
266 / 363

Создание и модификация шаблона рассылки

В каждом дистрибутиве продукта есть образец шаблона рассылки. Как любая универсальная вещь, он нуждается в адаптации шаблона под конкретный сайт. Администратор может отредактировать шаблон по умолчанию или создать свой шаблон.

Действия при редактировании шаблона

  1. Из формы создания рассылки перейдите по ссылке с названием шаблона .
  2. Затем на открывшейся странице Менеджера файлов перейдите к редактированию файла шаблона .
  3. В шаблоне сообщения может быть размещена как статическая информация (например, приветствие), так и программный скрипт или визуальные компоненты, использованием которых будет выполняться выборка информации.

    Нажмите на рисунок, чтобы увеличить

Создание шаблона

Создание нового шаблона заключается в копировании папки с текущим шаблоном (в дистрибутиве он называется news и расположен по пути: /bitrix/php_interface/subscribe/templates/ и редактированием его под свои потребности.

Внимание! По умолчанию шаблоны для автоматической генерации выпусков лежат в директории /bitrix/php_interface/subscribe/templates. Для поддержки версионности при разработке сайта в ядре 14.0.1 была введена поддержка папки /local, что облегчает совместную разработку сайта. А с версии 16.5 модуля Подписка, Рассылки шаблоны для автоматической генерации выпусков можно хранить в папке /local/php_interface/subscribe/templates.

Приоритет всегда у папки /local перед /bitrix, т.е если в /local/php_interface/subscribe/templates и в /bitrix/php_interface/subscribe/templates будут находиться шаблоны с одинаковым названием, то шаблон будет выбираться из папки /local.


Почта
267 / 363
Модуль Почта предназначен для получения и обработки почтовых сообщений. При этом применение почтового модуля дает такие преимущества в управлении почтовыми сообщениями, как:
  • централизованное хранение почтовых сообщений, относящихся к функционированию сайта;
  • неограниченное количество определяемых почтовых ящиков (учетных записей);
  • создание и применение правил к входящим сообщениям в автоматическом и ручном режиме;
  • самообучающаяся система фильтрации спама;
  • возможность доставки сообщений без удаления их с почтового сервера и т.д.


Настройки модуля
268 / 363

Настройка модуля производится на странице Настройки > Настройки продукта > Настройки модулей > Почта. Настройка не сложна и в большинстве своем значения полей ясны из их названия.

Если не используется Виртуальная машина VMBitrix , то в настройках модуля почты необходимо указать командную строку запуска php-скрипта.

Есть системные ограничения:

  • На сервере не должно быть приложений, "слушающих" этот же адрес и порт.
  • В Linux "слушать" 25 порт (вернее 1-1024) могут только приложения, запущенные от пользователя root, что не всегда возможно. Поэтому приходится обходить это ограничение при помощи настройки, например, authbind, при этом командная строка будет выглядеть примерно так: authbind php -c /etc/php.ini. Иногда удобнее настроить переадресацию на файрволе , то есть запустить сервер на порту, например, 20225, а перенаправление сделать с внешнего 25 на внутренний 20225.
  • Чтобы внешние почтовые серверы могли достучаться до вашего, необходимо открыть этот порт в файрволе.
  • Домены, выбранные в настройках почтового ящика, должны иметь DNS запись "MX" (или "A") на IP-адрес, на котором "слушает" SMTP -сервер. Обычно сервер, который отвечает по заданному домену по протоколу http, содержит включенный на этом же адресе SMTP. Поэтому в большинстве случаев ничего настраивать не придется.

Если платформа и окружение настроены верно, то при нажатии на Запустить SMTP-сервер будет запущен php-скрипт, который будет слушать заданный порт на указанных хостах. И в случае входящих соединений он будет принимать входящие сообщения при помощи правил фильтрации модуля почты, а также будет сортировать и обрабатывать их.

Примечание: некоторые проблемы в работе почтовой системы (почта отправляется медленно; функция mail подвисает при отправке на некорректные адреса) решаются вынесением почты на cron.

Документация по теме:

  • Настройки модуля
  • Пользовательская документация по модулю "Почта"


Письма
269 / 363

Читаем письма

Список всех полученных почтовых сообщений хранится на странице Письма (Сервисы > Почта > Письма).

Для получения сообщений в ручном режиме служит поле Получить почту, расположенное на контекстной панели. Выберите почтовый ящик, письма которого хотите получить, и нажмите кнопку OK. Отобразится информация о доставке почты.

С помощью кнопок, расположенных на контекстной панели, вы можете перейти к просмотру списка полученных сообщений либо записей журнала работы. В списке сообщений иконки сообщений так же говорят о состоянии писем.

Просмотр письма осуществляется в такой форме:

С помощью полей формы вы можете:

  • обучить систему фильтрации спама (поле Обучить);
  • применить к письму созданное ранее правило (поле Применить ручные правила);
  • пометить прочитанное сообщение на удаление.

Примечание: аналогичные действия могут быть выполнены для каждого сообщения с помощью его меню действий на странице Письма.

Документация по теме:

  • Письма


Журнал работы
270 / 363

Где фиксируется работа с почтой

Журнал обработки почты (Сервисы > Почта > Журнал работы) отображает все события, связанные с функционированием модуля почты и получением сообщений:

  • запросы системы к почтовому серверу;
  • ответы почтового сервера;
  • применение правил и действий.

В записях журнала цветом выделены записи о следующих событиях:

  • зеленым цветом - запросы к серверу;
  • синим цветом - ответы от сервера;
  • красным цветом - описание возникших ошибок.

Документация по теме:

  • Журнал работы


Правила
271 / 363

Как обрабатывать письма

Управление правилами обработки почтовых сообщений осуществляется на странице Правила обработки почты (Сервисы > Почта > Правила).

Для создания нового правила служит кнопка контекстной панели Добавить правило, в выпадающем меню которой необходимо выбрать тип создаваемого правила:

  • ручная настройка - все параметры правила доступны для изменения и настройки;
  • добавление сообщений в форумы соцсети - правило создается на основе специального шаблона (шаблон предназначен для облегчения создания правил фильтрации сообщений, адресованных в форумы соцсети);
  • добавление сообщения в техподдержку - правило создается на основе специального шаблона (шаблон предназначен для облегчения создания правил фильтрации сообщений, адресованных в службу технической поддержки);

    • Для коробочной версии Битрикс24 есть дополнительный тип правила
    добавление события в CRM - правило создается для добавления письма от клиентов в систему CRM в качестве события сущности

Форма создания (редактирования) правила обработки почты разбита на три закладки. На закладке Параметры указываются основные параметры правила:

Большая часть полей ясна из названия, поясним только одно поле. Применять при событиях - выберите события, при которых следует применять это правило:

  • При получении почты - правило будет применяться автоматически при получении почты;
  • При принудительном вызове правила - правило будет применяться при его вызове (например, правило может быть применено вручную при просмотре почтового сообщения).

На закладке Условия задаются условия, при выполнении которых данное правило будет применено к сообщению.

При создании правила с шаблоном Добавление сообщения в техподдержку на данной закладке отображается дополнительная группа настроек.

  • Определять по E-Mail ранее зарегистрированного пользователя – если это условие установлено в да, пытаться привязать обращение к пользователю, то при получении нового сообщения правило будет предпринимать попытки найти зарегистрированного пользователя с таким адресом в базе данных и привязать сообщение к нему. В противном случае, при получении писем с любых адресов сообщения в модуле техподдержки будут создаваться как анонимные.
  • Добавлять новое сообщение в уже открытое обращение – условие определяет, сообщения с какого адреса могут быть добавлены в открытое обращение в техподдержку. При установке флага как скрытое сообщение будет доступно только сотрудникам техподдержки.
  • Шаблоны темы для определения ответа на обращение – регулярные выражения, применяемые для сортировки входящих сообщений. Поле предназначено для разработчиков; не рекомендуется изменять его значение без надобности.
  • Привязывать новое обращение к сайту – указание на сайт, к которому будет привязано вновь создаваемое обращение.
  • Привязывать новое обращение к категории – указание на тематическую категорию, к которой будет привязано вновь создаваемое обращение.
  • Назначить новому обращению критичность – позволяет указать критичность вновь создаваемого обращения.

Если параметры сообщения удовлетворяют условиям правила, то к сообщению будут применены действия, заданные на закладке Действия.

  • Установить статус прочтенности – позволяет отметить все сообщения, к которым будет применяться это правило, как прочитанные.
  • Установить пометку спам – позволяет отметить все сообщения, к которым будет применяться это правило, как сообщения массовой рассылки.
  • Действие на PHP-скрипте – опциональный PHP-скрипт, который исполняется во время применения правила к сообщению.
  • Удалить сообщение – удаляет сообщения, к которым применяется правило.
  • Не обрабатывать другими правилами – указывает, что после применения этого правила к конкретному сообщению остальные правила не будут применены к нему, даже если сообщение удовлетворяет условиям правила.

Документация по теме:

  • Правила


Почтовые ящики
272 / 363

Ящики для почты

Управление учетными записями электронной почты осуществляется на странице Почтовые ящики (Сервисы > Почта > Почтовые ящики). Отметим что система Bitrix Framework позволяет создавать неограниченное число учетных записей электронной почты.

Для добавления новой учетной записи служит кнопка Добавить, расположенная на контекстной панели. Переход к редактированию существующей записи осуществляется с помощью меню действий (пункт Изменить) либо с помощью двойного клика по соответствующей записи. Откроется форма:

Вкладка Почтовый ящик

Пояснения к некоторым полям:

  • Тип - тип почтового сервера, на котором размещен почтовый ящик. При выборе типа Внутренний SMTP сервер сменится ряд полей, и станут неактивными часть прежних.

    Внимание! При настройке параметров запуска при выборе Внутренний сервер желательно заполнить поле Доменные имена, обслуживаемые сервером. Если их не ограничить и сервер находится в интернете, то можно запросто попасть в спам-лист (хотя реально рассылаться ничего не будет).

  • Почтовый сервер (POP3) / порт - имя почтового сервера, на котором размещен почтовый ящик и номер порта, через который пересылаются данные;
  • Параметры получения почтовых сообщений: в автоматическом или ручном режимах .

Дополнительно при создании новой учетной записи вы можете сразу перейти к настройке списка почтовых правил для данного ящика . Созданные правила будут применяться к почтовым сообщениям, получаемым на данный ящик (например, для определения СПАМ-коэффициента, уровня важности сообщения, удаления ненужных сообщений и т.п.).

Правила дают возможность сортировать сообщения в обсуждениях соцсетей. При отправке сообщения на заданный EMail, сообщение автоматически будет публиковаться на форуме. При этом все подписавшиеся на этот форум, будут получать сообщения, на которые можно будет просто отвечать в почтовом клиенте. Т.е. нечто похожее на листы рассылок google или yahoo groups, когда все обсуждения можно вести по почте, а история будет сохраняться в форумах, с возможностью общения и непосредственно на самом форуме через веб.

Вкладка Дополнительные настройки

Здесь указываются дополнительные параметры получения сообщений.

Документация по теме:

  • Почтовые ящики
  • Создание и редактирование почтового ящика


Почтовые сервисы
273 / 363

Управление списком сервисов электронной почты, доступных на странице портала /company/personal/mail/?page=home в блоке "Почтовые сервисы", осуществляется на административной странице Сервисы > Почта > Почтовые сервисы. Пользователи могут подключать почтовые ящики только в сервисах из этого списка. Администратор портала может настраивать этот список, и, тем самым, запрещать или разрешать пользоваться почтой на портале в определенных сервисах.

Примечание: количество доступных почтовых сервисов не ограничено.

Для добавления нового сервиса служит кнопка Добавить, расположенная на контекстной панели. Переход к редактированию существующего сервиса осуществляется с помощью меню действий (пункт Изменить) либо с помощью двойного клика по соответствующей записи.

Работа с параметрами открывающейся формы добавления/изменения аналогична работе в других формах модуля Почта.

Документация по теме:

  • Почтовые сервисы
  • Создание и редактирование почтового сервиса


Работа с почтовыми шаблонами
274 / 363

Почтовые шаблоны расположены на странице Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны. Чтобы отредактировать почтовый шаблон, выберите пункт Изменить в меню действий нужного шаблона:

Откроется форма редактирования почтового шаблона. Суть большинства параметров ясна из названия, опишем только некоторые:

  • От кого - указывается электронный адрес, который будет указываться как e-mail отправителя письма.
  • Кому - указываются адреса тех, кому будут отправлены письма.

    Примечание: Если в поля От кого и Кому не проставлены конкретные адреса электронной почты, то подставляются адреса по умолчанию. Система сначала подставляет адрес из настроек сайта, к которому привязан шаблон, и затем, если такой адрес не обнаружен, из настроек Главного модуля. Поскольку адрес по умолчанию в обоих случаях один, то он будет подставлен в оба поля.

  • Скрытая копия - о факте отправки письма на электронные адреса, указанные в данном поле, не будут знать ни главный адресат, ни получатели, указанные в поле Копия. Кроме того, адресаты, указанные в поле Скрытая копия, также не будут видеть друг друга в получателях письма.
  • Важность - нажмите на стрелочку и укажите степень важности отсылаемого уведомления.
  • Тема - укажите тему письма. Удобно использовать для рассылок определённой тематики. Тема должна быть предварительно создана.

Само сообщение представлено на вкладке Тело сообщения. При редактировании сообщения можно выбрать более удобный для вас в данной форме формат представления сообщения: Текст, HTML или Визуальный редактор.

Доступные значения полей для параметров и тела сообщения можно брать ниже в виде макросов:

Кроме макросов, в почтовых шаблонах можно указать php-код (с версии главного модуля 15.0.7). К примеру:

Добрый день!
Ваш логин: #LOGIN#
Текущая дата: <?=date('d.m.Y')?>

Примечание: в доступных полях, при указании что параметр устанавливается в настройках, зачастую имеются в виду настройки главного модуля.

Добавление шаблона

Нажав кнопку Добавить шаблон на контекстной панели вы откроете форму добавления, кторая фактически идентична форме редактирования шаблона, за исключением того, что вам нужно выбрать тип ранее созданного почтового события, к которому будет привязан шаблон:

Чтобы увидеть все поля формы, нажмите показать дополнительные заголовки....

Визуальный редактор

В визуальном редакторе почтового шаблона допустимо использование компонентов . Но нужно учитывать, что:

  • Подключение компонентов выполняется методом EventMessageThemeCompiler::includeComponent() вместо метода CMain::IncludeComponent , хотя передаваемые аргументы нового метода аналогичны аргументам IncludeComponent.
  • В визуальном редакторе при редактировании почтового шаблона отображаются только почтовые компоненты у которых в файле описания (.description.php) указан тип "TYPE" => "mail". Например:
    <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
    "NAME" => GetMessage("SBBS_DEFAULT_TEMPLATE_NAME"),
    "TYPE" => "mail",
    "DESCRIPTION" => GetMessage("SBBS_DEFAULT_TEMPLATE_DESCRIPTION"),
    "ICON" => "/images/sale_basket.gif",
    "PATH" => array(
        "ID" => "e-store",
        "CHILD" => array(
            "ID" => "sale_basket",
            "NAME" => GetMessage("SBBS_NAME")
        )
    ),
);
?>

    Без этого компонент можно будет подключить только вручную вставив код вызова.

  • Подключенный в почтовом шаблоне компонент может выполняться на хите (отправка письма на хите), соответственно компонент не должен использовать:
    • глобальный объект USER , так как в нём содержатся данные о том кто сделал хит, а не о том, кому отправляется письмо;
    • константы SITE_ID , LANGUAGE_ID , SITE_TEMPLATE_ID .

      Вместо них нужно использовать вызовы методов:
      $this->getSiteId() - сайт, указанный в почтовом событии,
      $this->getLanguageId() - язык сайта, указанного в почтовом событии,
      $this->getSiteTemplateId() - шаблон сайта, указанного в почтовом событии.

    Внимание! При отправке письма по шаблону, будет выполнен код компонента. Языковые файлы в компоненте будут подключены для того языка, который указан в настройках сайта указанного в почтовом событии. Для письма используется та кодировка, которая указана в настройках сайта, код которого передан в событии.

    Таким образом, если на сайте используется многосайтовость с разными языками, то на хите по русскому сайту, может быть отправлено письмо для другого языка.

Темы сообщения

Тема сообщения - это шаблон оформления сообщения. Создаётся из списка тем со страницы Настройки > Настройки продукта > Почтовые и СМС события > Темы оформления. Технология создания темы аналогична созданию шаблона сайта и имеет аналогичную форму. Технически тема оформления - это шаблон сайта в папке /bitrix/templates. При создании именно темы для почтовых сообщений нужно выбрать значение Шаблон для почтовых писем в поле Тип. В этом случае в файле описания (.description.php) будет указан тип "TYPE" => "mail":

<?$arTemplate = array(
    "NAME" => "Тестовая тема оформления",
    "DESCRIPTION" => "Тестовая тема оформления",
    "SORT" => "",
    "TYPE" => "mail",
);
?>

Стили, указанные в файлах стилей будут вставлены в письмо (inline) в том месте, где будет вызов <?=$this->showStyles()?>

Темы оформления, так же как и шаблоны сайта, могут содержать php-код.

Поиск шаблона почтового компонента выполняется по стандартному алгоритму. Если у почтового шаблона, где подключается компонент, проставлена тема оформления, то папка темы оформления используется в качестве текущего шаблона сайта при поиске шаблона компонента.

Документация по теме:

  • Почтовые шаблоны
  • Создание и редактирование почтового шаблона


Типы почтовых событий
275 / 363

Типы почтовых событий описаны на странице Настройки > Настройки продукта > Почтовые события > Типы почтовых событий:

Для редактирования типа почтовых событий выберите пункт Изменить в меню действий. Чтобы добавить новый тип нажмите кнопку Добавить тип на контекстной панели, откроется форма создания:

Введите название создаваемого типа. Поставьте галочки напротив заголовков тех языковых описаний, на которых хотите представить свой новый тип, и заполните поля Сортировка, Название и Описание. В поле Описание введите доступные поля (макросы вида #SOMETHING#,), которые должны использоваться при написании тела сообщения почтового шаблона, который будет принадлежать создаваемому вами типу.

Примечание: Сами же макросы заменяются на вывод значения из массива по ключу названия макроса. Допустим, добавлено событие с массивом полей:
array(
    'ORDER_ID' => 123,
    'ORDER_PAID' => 'Y',
    'BUYER_NAME' => 'Андрей'
)

В почтовом шаблоне можно будет использовать эти поля, указывая макросы:

#ORDER_ID#
#ORDER_PAID#
#BUYER_NAME#

Начиная с версии главного модуля 15.0.7, где разрешается использование PHP в почтовых шаблонах, то же самое можно указать и так:

<=$arParams['ORDER_ID']>
<$arParams['ORDER_PAID']>
<=$arParams['BUYER_NAME']>

Таким образом, в теле почтового шаблона массив переданных полей доступен через переменную $arParams.

Особенности использования тега xml
Текст xml выдаст ошибку:
<?xml version="1.1" encoding="UTF-8" ?>
<tag1>a</tag1>
<tag2>b</tag2>

Дело в том, что тег xml интерпретируется php не как текст. Поэтому, нужно выводить тег xml так:

<?echo '<'.'?'.'xml version="1.1" encoding="UTF-8" ?'.'>'?>

Нажмите Сохранить, после чего новый тип добавится в общий список и его можно будет указывать при создании почтовых шаблонов.

Примечание: подробнее о почтовых шаблонах смотрите в уроке Работа с почтовыми шаблонами .

При редактировании типа почтовых событий появится закладка Шаблоны, на которой видны шаблоны почтовых событий, привязанные к данному типу. Для только что созданного нами типа данная вкладка будет пустой.

Документация по теме:

  • Типы почтовых событий
  • Создание и редактирование типа почтового события


Настройка почты
276 / 363
Работа через Bitrix Framework требует настройки отправки и приема электронной почты. Возможны три варианта отправки:
  • через локальный sendmail или postfix (если портал на Linux);
  • через внешний SMTP-сервер без авторизации (если на Windows);
  • через внешний сервер с авторизацией путем замены функции отправки почты.


Настройка почты
277 / 363

Работа через Bitrix Framework требует настройки отправки и приема электронной почты. Возможны три варианта отправки:

  • через локальный sendmail или postfix (если портал на Linux);
  • через внешний SMTP-сервер без авторизации (если на Windows);
  • через внешний сервер с авторизацией путем замены функции отправки почты.

Самый простой способ - отправка без авторизации. Если у вас портал установлен на Windows, настройте PHP (в конфигурационном файле) адрес smtp-сервера, а в MS Exchange настройте прием почты с ip портала без авторизации.

Если же портал на Linux, то либо настройте msmtp (идет в комплекте с виртуальной машиной), либо почтовый сервер. Больше всего сложностей возникает при настройке сервера при использовании виртуальной машины и при установке продуктов Bitrix Framework на Linux.


Настройка почты на Linux
278 / 363

Рассмотрим вариант настройки почты на примере CentOS 5 (для других ОС команды и пути могут отличаться).

  1. Удалите sendmail:
    # rpm -e --nodeps sendmail
  2. Установите postfix:
    # yum install postfix
# /etc/postfix/post-install upgrade-package
  3. Перекомпилируйте базу алиасов:
    # cd /etc
# newaliases
  4. Измените sendmail_path в /etc/php.ini:
    sendmail_path = /usr/sbin/sendmail -t -i
  5. Запустите postfix:
    # service postfix restart
  6. Перезапустите apache:
    # service zend-server restart
  7. Проверьте наличие postfix в автозагрузке
    # chkсonfig --list|grep postfix

    (по умолчанию есть):

    postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off

    если нет:

    # chkconfig postfix on
  8. Проверьте работу:
    <?
if (mail("moe_mylo@gmail.com","test subject", "test body","From: otpravitel@bitrix.ru"))
echo "Сообщение передано функции mail, проверьте почту в ящике.";
else
echo "Функция mail не работает, свяжитесь с администрацией хостинга.";
?>

Материалы по теме:

  • Настройка Postfix для отправки почты (блог разработчика)


Настройка почты на VMBitrix
279 / 363

Запустите виртуальную машину.

В первом окне нажмите Login, войдите под root (это обязательно). Войдите в пункт меню: 6. Управление сайтами (6. Manage sites in the pool). В этом пункте, в свою очередь, выберите пункт 4. Настройка почтового сервера (4. Change e-mail settings on site).

Для настройки интегрированного почтового сервера выполните следующее:

  1. Перейти в главном меню в 6. Manage sites in the pool > 4. Change e-mail settings on site и ввести имя хоста, для которого нужно настроить отправку почты:

  2. Далее ввести необходимые данные для почтового сервера:

    • from address - адрес отправителя, от которого будет осуществляться пересылка писем.
    • server address or DNS - ip- или dns-адрес почтового сервера. Если нажать Enter, то будет использован адрес по умолчанию (127.0.0.1)
    • server port - порт сервера. Порт зависит от типа соединения, 25 - для обычного и 465 - для зашифрованного (с использованием SSL). Если нажать Enter, то будет использован порт по умолчанию (25).
    • Если необходима SMTP-авторизация, то в строке SMTP authentication наберите y и введите логин и пароль для доступа к SMTP-серверу, в противном случае - n.
    • Если выбрана опция SMTP-авторизации, то понадобится ввести тип авторизации type of authentication method: auto, plain, scrum-sha-1, scrum-md5, gssapi, external, digest-md5, login, ntlm (например для yandex.ru достаточно auto, а для mail.ru - plain).
    • Если необходим TLS-протокол защищенной передачи данных, то в строке TLS enabled наберите y, в противном случае - n.

    Примечание: При настройке укажите данные своего или публичного почтового сервиса.

  3. Дождаться пока задача по настройке почтового сервера будет закончена.
  4. Убедиться в правильности введенных данных настройки почтового сервера можно снова в 6. Manage sites in the pool > 4. Change e-mail settings on site:

Внимание! Задачи могут выполняться довольно длительное время (до 2-3 часов и более) в зависимости от сложности задачи, объема данных, используемых в этих задачах, мощности и загруженности сервера. Проверить текущие выполняемые задачи можно с помощью меню 5. Background tasks in the pool > 1. View running tasks. Если по каким-либо причинам нужно посмотреть лог-файлы выполнения задач, то они находятся в директории /opt/webdir/temp.


Частые проблемы
280 / 363

Частой причиной сообщения Есть ошибки при отправке системных почтовых сообщений на странице Настройки > Инструменты > Проверка сайта является указание отправки почты через cron.

Для исправления этой ошибки отключите отправку через cron в файле /bitrix/php_interface/dbconn.php. Установите:
define("BX_CRONTAB_SUPPORT", false).


Сайты24
281 / 363
Сайты 24 - встроенный в CMS "1С-Битрикс: Управление сайтом" конструктор сайтов, позволяющий создавать веб-страницы без программирования.


Настройки модуля Сайты 24
282 / 363

Для настройки модуля Сайты 24 перейдите на страницу Настройки > Настройка Продукта > Настройки модулей > Сайты 24:

На закладке Настройки указываются пути к лендингам относительно вашего домена, т.е. сайта главного модуля. Именно по такому адресу созданная страница будет доступна после публикации.

На закладке Доступ настраиваются права работы групп пользователей с модулем Сайты 24.

Работа в данной вкладке аналогична таковой для модуля Веб-формы.

Примечание: подробное описание полей формы приведено в Пользовательской документации к продукту.

Как использовать модуль, подробно рассказано в курсе Контент-менеджер в главе Сайты24.

Материалы по теме:

  • Сайты24 и собственный домен в коробке


Сайты 24 на собственном домене
283 / 363

У пользователей довольно часто встречается такая потребность - публиковать сайты и лендинги с привязкой к отдельному домену. Например, чтобы не дезориентировать посетителей или не загромождать интернет-магазин лишними страницами. Тем более, в случае, если создается сайт для какого-то конкретного случая - акции, распродажи, праздника, открытия сезона. То есть существование сайта или лендинга будет ограничено по времени.

В видео-ролике приведен рекомендуемый порядок действий:

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Текстовое описание:

  1. Создать отдельный сайт для публикации лендингов.
  2. При создании сайта в Шаблоне сайта выбрать шаблон Landing 24.
  3. В настройках модуля Сайты 24 напротив нужного сайта указать корневой путь, то есть просто /.
  4. Опубликовать любую страницу на вашем домене. То есть в административной части перейти в меню Сайты 24, далее в папку нужного домена, и именно из нее создать лендинг. Можно выбрать любой шаблон, он автоматически привяжется к домену.

Таким образом создаваемые сайты будут привязаны к домену.

Подробно о публикации Сайтов 24 при многосайтовости

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Текстовое описание:

  1. Создать отдельный домен для публикации Сайтов 24. В случае многосайтовости доменов может быть несколько и они должны быть настроены. Подробно о вариантах многосайтовости и настройках рассказывается в отдельном курсе Многосайтовость.
  2. В папке того сайта, на котором будут публиковаться лендинги, не должно быть индексной страницы. Так как модуль проверяет её наличие при создании лендингов, и если она уже есть, ничего не создает в этой папке. В таком случае в административной части, в Контент > Файлы и папки > папка созданного домена нужно удалить файл index.php. Это единственное действие, выполняемое в "ручном" режиме, не автоматически.
  3. В настройках модуля Сайты 24 напротив нужного сайта указать корневой путь, то есть просто /.
  4. Опубликовать любую страницу на вашем домене. То есть в административной части перейти в меню Сайты 24, далее в папку нужного домена, и именно из нее создать лендинг. Можно выбрать любой шаблон, он автоматически привяжется к домену.

Таким образом создаваемые сайты будут привязаны к домену.


Блок с компонентом внутри
284 / 363

В презентации 1С-Битрикс: Управление Сайтом 18.0 было объявлено, что в модуль Сайты24 можно добавлять стандартные или собственные компоненты. Для этого их нужно "обернуть" в специальный код и разместить в блоках. Таким образом можно реализовать практически любую бизнес-логику.

Создать свой блок достаточно просто. Вам потребуется знание PHP и HTML и тщательное изучение документации о создании блока и о файле манифеста. Также рекомендуем посмотреть вебинар.

Например, давайте разместим в блоке компонент опроса . Это ведь довольно частый кейс, чтобы узнать что-то о наших посетителях или их потребностях. Возьмем для простоты уже готовый опрос, который мы делали в уроке Создание и публикация опроса.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Порядок работы
  1. Создаем в /bitrix/blocks/ папку proba, а в ней папку opros

    Все блоки обязательно размещаются на диске по пути /bitrix/blocks/. Папку для добавления своего блока вы можете назвать как угодно, используя латиницу, цифры, символы "." и "-". Помните, что имя папки будет служить также и символьным кодом блока и должно быть уникально.
  2. Создаем файл block.php. Это тело блока. В нём размещаем код

    <section class="landing-block">
        <div class="landing-node-text">
        Здесь будет опрос
        </div>
</section>
  3. Создаем файл .description.php. Это и есть "обертка" - файл манифеста. В нём размещаем код

    <?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
   die();
}
return array(
    'block' => array(
        'name' => "Опрос",
    ),
    'cards' => array(),
    'nodes' => array(
        '.landing-block-text' => array(
            'name' => "Заголовок",
            'type' => 'text',
        )
        ),
        '.landing-block-node-text' => array(
            'name' => "Текст",
            'type' => 'text',
        )
);
  4. Очищаем кэш с помощью кода и выполнения php-команды

    if (\Bitrix\Main\Loader::includeModule('landing'))
{
   \Bitrix\Landing\Block::clearRepositoryCache();
}
  5. Создаем страницу в разделе Сайты 24
  6. Проверяем, появился ли наш блок в списке блоков . И размещаем его на созданной странице
  7. Теперь можно добавить в файл block.php код самого компонента

    <?$APPLICATION->IncludeComponent(
    "bitrix:voting.current",
    "",
    Array(
        "AJAX_MODE" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "CACHE_TIME" => "3600",
        "CACHE_TYPE" => "A",
        "CHANNEL_SID" => "-",
        "VOTE_ALL_RESULTS" => "N",
        "VOTE_ID" => "6"
    )
);?><br>
  8. Не забываем очищать кэш после каждого изменения в коде блока, то есть в файле block.php.
  9. Если вы хотите редактировать что-то в компоненте, вам нужно будет менять файл манифеста, а именно задавать ключи nodes, style и др. Подробно о полях манифеста рассказано в документации.
  10. В случае возникновения ошибок при выполнении скрипта можно включить расширенный вывод ошибок в файле настройки параметров ядра .settings.php.

Другие компоненты вы можете вставлять таким же образом. Примеры кодов вызова компонентов можно найти в Пользовательской документации.

Дополнительная информация

  • Текущий опрос (комплексный компонент)
  • Создание блока
  • Файл манифеста


Служба сообщений
285 / 363
Модуль Служба сообщений позволит Вам осуществлять маркетинговую рассылку не только на электронную почту, но посредством SMS-сообщений, а также регистрироваться на сайте по номеру телефона! Все, что для этого нужно - установить сам модуль и подключить хотя бы одну из служб отправки SMS.


Настройка SMS-рассылки
286 / 363

Настройка SMS-рассылки включает три этапа:

  1. Настройка модуля
  2. Подключение sms-сервисов:
    • Подключение сервиса SMS.RU
    • Подключение сервиса Twilio.com
  3. Создание маркетинговой рассылки

При верном выполнении всех действий Вы сможете выбирать, какую именно рассылку сделать:

Нажмите на рисунок, чтобы увидеть полное изображение


Настройка модуля
287 / 363

Прежде всего, не забудьте установить этот модуль (Настройки >Настройки продукта > Модули).

Настройка модуля осуществляется в Административном разделе (Настройки >Настройки продукта > Настройки модулей > Служба сообщений):

Нажмите на рисунок, чтобы увидеть рисунок в полномасштабном режиме

Важно! Поля Идентификатор партнера компании SMS.RU и Секретный ключ партнера компании SMS.RU будут заполнены автоматически, и их не нужно менять. Смысл остальных полей понятен интуитивно.

При настройке модуля нужно подключить хотя бы одну из служб отправки SMS.

Для этого в настройке параметров модуля в поле Службы отправки SMS нужно кликнуть по названию компании, и вы перейдете в форму настройки этой службы.

Привяжите сервис в Вашему «1С-Битрикс: Управление сайтом» в соответствии с уроками:

  • Подключение сервиса SMS.RU
  • Подключение сервиса Twilio.com
Примечание: В списке служб отправки SMS есть служба SMS-ассистент — сервис для СМС-рассылки в Республике Беларусь. Укажите логин и пароль своего аккаунта в этом сервисе и нажмите кнопку Подключить , или же можете протестировать работу этого сервиса в демо-режиме (30 бесплатных СМС), указав в специальной форме следующие данные:
  • УНП
  • Контактный телефон
  • E-mail

Отключение сервиса

Чтобы отвязать сервис, откройте настройки модуля Служба сообщений в Административном разделе (Настройки >Настройки продукта > Настройки модулей > Служба сообщений), в поле Службы отправки SMS выберите отвязываемый сервис, и далее кликните по шестеренке в левом верхнем углу и нажмите Сбросить настройки.

Документация по теме:

  • Настройки модуля


Подключение сервиса SMS.RU
288 / 363

Подключение сервиса SMS.RU

Даже если вы уже зарегистрированы на sms.ru, вам нужно выполнить настройку на этой странице. Просто используйте те данные, которые вы указали при самостоятельной регистрации. Разберем по шагам, как подключить сервис SMS.RU:

  1. При выборе сервиса SMS.RU на Рабочем столе откроется окно с описанием возможностей SMS маркетинга и формой регистрации в сервисе SMS.RU, в которую необходимо внести свои данные:

    Нажмите на рисунок, чтобы увидеть окно с описанием возможностей SMS маркетинга

  2. Далее нужно ввести проверочный код , который пришел на указанный Вами телефонный номер.
  3. Теперь можно протестировать работу сервиса и отправить SMS-сообщение на номер, указанный при регистрации.
  4. На четвертом этапе выводится сообщение о дальнейших действиях , которые нужно выполнить непосредственно на самом сайте sms.ru.

    После выполнения всех вышеперечисленных действий нажмите кнопку Завершить тестирование.

Примечание: Сразу после регистрации Вам будет доступно 5 бесплатных SMS для тестирования сервиса. Они будут отправляться только на тот номер, который Вы указывали при регистрации в сервисе. Для подключения полной версии нужно на сайте sms.ru в личном кабинете выполнить три несложных действия.

Три действия для подключения полной версии (для просмотра нажмите +).
  1. Создать буквенного отправителя;
  2. Заключить договор;
  3. Пополнить баланс.


Подключение сервиса Twilio.com
289 / 363

Подключение сервиса Twilio.com

Перед тем, как подключить данный сервис, необходимо сначала зарегистрироваться на одноименном сайте Twilio.com, а уже потом подключить сервис в Вашем «1С-Битрикс: Управление сайтом»:

  1. Регистрация на сервисе Twilio.com
  2. Подключение сервиса Twilio.com к Вашему сайту
  3. Создание списка номеров для отправки

Регистрация на сервисе Twilio.com

  1. На главной странице сайта Twilio.com в правом верхнем углу выберем Sign up
  2. Далее необходимо внести свои данные в форму регистрации:

    На этом этапе происходит проверка указанного вами email – на электронную почту будет отправлено письмо. Необходимо перейти по ссылке в письме.

  3. На следующем этапе нужно указать телефонный номер, на который должен прийти проверочный код.

    Примечание: Этот номер также будет использоваться для аутентификации при входе в Twilio Console. Специалист Twilio onboarding также может использовать этот номер для связи с Вами. Если Вы не хотите, чтобы с вами связывались по этому номеру телефона, отметьте соответствующую опцию.

  4. Далее последовательно ответим на вопросы:
    • Do you write code? – Yes
    • What is your preferred language? – PHP
    • What is your goal today? – Use Twilio in a project
    • What do you want to do first? – Send or receive a SMS

  5. Теперь перейдем в раздел Programmable SMS > Learn and Build > Build:

    Нажмем кнопку Get a number. При нажатии этой кнопки будет сгенерирован телефонный номер, с которого будут оправляться Ваши сообщения.

    Для продолжения регистрации кликнем

  6. И, наконец, выберем страны , в которые планируется отправлять сообщения (Programmable SMS > Settings > Geo Permissions).

На этом регистрация на сайте Twilio.com окончена!

Подключение сервиса Twilio.com к Вашему сайту

А теперь разберем по шагам, как подключить сервис Twilio.com в Вашем «1С-Битрикс: Управление сайтом»:

  1. Сначала на сайте Twilio.com в разделе Dashboard скопируем Account SID и Auth token.
  2. В настройках модуля Служба сообщений (Настройки > Настройки продукта > Настройки модулей > Служба сообщений) кликнем по кнопке Компания Twilio.com.

    На Рабочем столе откроется окно с описанием возможностей SMS маркетинга и формой регистрации в сервисе Twilio.com, в которую необходимо ввести скопированные Account SID и Auth token:

    Нажмите на рисунок, чтобы увидеть окно с описанием возможностей SMS маркетинга

  3. Если все вышеперечисленные действия выполнены правильно, то в результате Вы увидите соответствующие сообщения.

    Создание списка номеров для отправки

    При регистрации на Twilio.com отправлять SMS можно только на подтвержденные номера.

    Для создания списка таких номеров пройдите по этой ссылке и внесите номера в специальную форму.


Социальные сервисы
290 / 363
В настоящий момент модуль предоставляет аутентификацию посетителей сайта на внешних сервисах авторизации. Внешняя авторизация облегчает посетителям регистрацию на сайте: не нужно заводить еще один логин/пароль, можно воспользоваться уже имеющимся на одном из известных сервисов.

Полный и актуальный список поддерживаемых социальных сервисов можно увидеть на странице настроек модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы).


Настройка модуля
291 / 363

Настраиваем модуль Социальные сервисы

Для управления сервисами необходимо перейти в настройки модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы).

Нажмите на рисунок, чтобы увеличить

Настройка параметров модуля

Рассмотрим закладку Настройки:

  • Разрешить отправку активностей пользователей в социальные сети - отправка в соцсети активности пользователей, например при начале или завершении рабочего дня;

    Примечание: Указанная настройка только для Битрикс24 .

  • Транслировать твиты пользователей с хештегом в живую ленту - указываются twitter-хештег, с которым будут транслироваться твиты пользователя в Живую ленту;
  • Далее из списка выбираются необходимые социальные сервисы, с помощью которых будет доступна авторизация;
  • Ниже под каждым сервисом есть рекомендации и ссылки для регистрации сайта в своей системе получения соответствующих уникальных идентификаторов и секретных ключей.

    Примечание: Сервисы OpenID не требуют дополнительных настроек.

Если требуется использовать разные социальные сервисы авторизации на дополнительных сайтах, то перейдите на вкладку нужного сайта и включите их с помощью опции Применить индивидуальные настройки для этого сайта . Дальнейшие настройки аналогичны общим, указанным выше.

На что еще требуется обратить внимание при настройке проекта:
  • Некоторые сервисы требуют обращения только по HTTPS. Поэтому крайне желательно, чтобы PHP был собран с библиотекой openssl.
  • Если на проекте используются различного вида редиректы (mod_rewrite), убедитесь, что при редиректе не перекодируются параметры GET.

Регистрация и авторизация

На вкладке Авторизация разрешите, если необходимо, регистрацию новых пользователей через соцсети . Также определите группы пользователей сайта, для которых запрещена авторизация через соцсервисы и привязка соцсервисов к своим аккаунтам:

Примечание: В опции Регистрация новых пользователей указывается разрешено ли посетителям самостоятельно регистрироваться на сайте. За это отвечает опция Позволять ли пользователям регистрироваться самостоятельно? в настройках главного модуля на вкладке Авторизация (Настройки > Настройки продукта > Настройки модулей > Главный модуль).

Шифрование токенов авторизации

Примечание: Шифрование токенов авторизации доступно с версии 19.0.100 модуля Социальные сервисы.

Нажатие кнопки Включить шифрование токенов авторизации включает хранение авторизационных токенов пользователей социальных сервисов в зашифрованном виде.

После включения функции, а также на всех новых установках продукта , на закладке Шифрование отобразится статус: Шифрование токенов авторизации активировано

Как выглядит форма авторизации

Если модуль установлен и настроен, то посетитель в закрытом разделе увидит стандартную форму авторизации с кнопками социальных сервисов.

Сервисы условно поделим на две группы:

  1. Являются провайдерами OpenID: если сервис использует OpenID, то при нажатии на кнопки соц. сервиса выводится форма, куда пользователь вводит свой openid identity .

  2. Работают по собственным протоколам авторизации: для социальных сетей при нажатии на кнопку открывается окно с собственным диалогом авторизации внешнего сервиса.

После успешной аутентификации пользователь возвращается на сайт и авторизуется. Если это первый вход пользователя, то он добавляется в список пользователей сайта. При этом на вкладке Пользователь (Настройки > Пользователи > Список пользователей > [пользователь]) в поле Тип авторизации указывается сервис авторизации.

Документация по теме:

  • Настройки модуля


Примеры настройки некоторых сервисов
292 / 363


Общие примечания
293 / 363

Внимание: для некоторых сервисов, например: LiveID, Office365, Google, Одноклассники, ВКонтакте, Мой мир@mail.ru, Twitter и Facebook, необходимо зарегистрировать на этих сервисах приложение (ссылки и рекомендации указаны в каждой группе настроек для этих сервисов).

Важно! При настройке приложений обращайте внимание на параметры адрес сайта, домен - они чрезвычайно важны для правильной работы сервисов. Чаще всего авторизация будет работать и для поддоменов.

Примечание: Со временем социальные сервисы могут изменять внешний вид мастеров регистрации приложений.


Яндекс
294 / 363

Яндекс

  • Получение ID приложения и Пароля приложения
  • Настройка работы Битрикс24.Диск и Яндекс.Диск

Получение ID приложения и Пароля приложения

Для Яндекса необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры ID приложения и Пароль приложения, а в настройках сервиса специальную ссылку.

Получить уникальные ID приложения и Пароль приложения нужно на сайте Яндекс OAuth.

Для этого необходимо:

  1. Зарегистрировать новое приложение по одноименной ссылке в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы). При регистрации приложения обязательно указать название приложения в поле Название:

  2. В поле Права выставить права для API Яндекс.Паспорта:
    • Доступ к портрету пользователя
    • Доступ к дате рождения
    • Доступ к логину, имени и фамилии, полу
    • Доступ к адресу электронной почты
  3. Ввести в поле Callback URL адрес из настроек модуля Социальные сервисы (в примере - www.mysite.ru - ваш адрес сайта) и нажать кнопку Сохранить:
  4. Далее откроется страница, где будут указаны ID приложения и Пароль приложения , которые нужно вписать в соответствующие поля в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) :

Настройка работы Битрикс24.Диск и Яндекс.Диск

Для работы Битрикс24.Диск с Яндекс.Диск нужно в поле Права выставить права для Яндекс.Диск REST API :

  • Чтение всего Диска
  • Доступ к папке приложения на Диске
  • Доступ к информации о Диске

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Box.com
295 / 363

Box.com

Внимание! Сервис Box.com поддерживает работу только по протоколу https.

Для Box.com необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры Идентификатор (client_id) и Секретный код (client_secret), а в настройках сервиса специальную ссылку.

Получить уникальные Идентификатор (client_id) и Секретный код (client_secret) нужно на сайте Box Developers.

Для этого необходимо:

  1. Создать новое приложение по одноименной ссылке в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы). Вы можете создать Пользовательское приложение (Custom App) или Корпоративную интеграцию (Enterprise Integration).

    Нажмите на рисунок, чтобы увеличить

  2. При выборе метода идентификации нужно выбрать Пользовательскую идентификацию Standard OAuth 2.0 (User Authentication) .
  3. Далее задайте уникальное имя вашему приложению.
  4. После создания приложения вы сможете перейти к просмотру конфигурации. На странице конфигурации можно скопировать параметры Client ID и Client Secret и вписать их в соответствующие поля в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) .

    Нажмите на рисунок, чтобы увеличить

  5. И в поле Redirest URI ввести адрес из настроек модуля Социальные сервисы (в примере - www.mysite.ru - ваш адрес сайта) и нажать кнопку Save Changes.

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Google
296 / 363

Google

Получение Идентификатора (Client ID) и Секретного кода (Client secret)

Для Google OAuth 2.0 необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры Идентификатор (Client ID) и Секретный код (Client secret), а в настройках сервиса специальную ссылку.

Получить уникальные Идентификатор (Client ID) и Секретный код (Client secret) нужно на сайте Google Developers Console.

Для этого необходимо:

  1. Создать новый проект с помощью кнопки Создать проект на странице Управление ресурсами.

  2. Выбрать в списке нужный проект, если автоматически не произошло перенаправление в созданный проект:
  3. Затем нужно перейти в раздел Учетные данные, нажать на кнопку Создать учетные данные и выбрать Идентификатор клиента OAuth
  4. Чтобы создать идентификатор клиента OAuth, будет предложено указать название продукта для окна запроса доступа. Делается это с помощью кнопки Настроить окно запроса доступа .
  5. На вкладке Окно запроса доступа OAuth нужно ввести необходимые данные для проекта - обязательные Адрес электронной почты и название проекта Название продукта, которое видят пользователи. Остальные поля являются необязательными. Для сохранения нажать кнопку Сохранить.
  6. Далее нужно выбрать тип приложения - в нашем случае это Веб-приложение, вписать необходимые данные для своего сайта (в примере - https://www.mysite.ru - ваш адрес сайта) в поля:
    • Название - может быть любым,
    • Разрешенные источники JavaScript - ваш адрес сайта,
    • Разрешенные URl перенаправления - адрес из настроек модуля Социальные сервисы и адрес редиректа .

    Примечание: Обратите внимание, что можно указать несколько адресов Разрешенные URl перенаправления (Authorized redirect URls), это позволяет использовать одно приложение на разных сайтах/доменах.

  7. После нажатия кнопки Создать на странице появятся необходимые уникальные Ваш идентификатор клиента (Client ID) и Ваш секрет клиента (Client secret) , которые нужно вписать в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы).
  8. Позже Секрет клиента (Client secret) можно найти, кликнув на нужном Идентификатор клиента (Client ID) в списке

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Google+
297 / 363

Важно! С версии 20.0.0 модуля Социальные сервисы возможность авторизации через Google+ недоступна.

Google+

Для подключения Google+ используются параметры приложения Google.

Перейти в меню Библиотека

и найти опцию Google+ API либо быстрым поиском, либо из списка Популярных API:

В настройках приложения необходимо разрешить доступ к Google+ API c помощью кнопки Включить .

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


LiveID
298 / 363

LiveID

  • Получение Live ID Application ID и Live ID Secret Key
  • Настройка работы с документами через MS Office Web Apps

Получение Live ID Application ID и Live ID Secret Key

Примечание: В настройках модуля Социальные сервисы в секции Внешние сервисы не забудьте отметить сервис LiveID как разрешённый.

Для LiveID необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры Live ID Application ID и Live ID Secret Key.

Для этого необходимо:

  1. На платформе Microsoft для разработчиков Microsoft Graph перейти в раздел Мои приложения (потребуется учетная запись Майкрософт) и нажать кнопку Добавить приложение:

  2. Задать имя приложения и нажать кнопку Create.
  3. После создания приложения Код приложения используется как Live ID Application ID в настройках модуля Социальные сервисы - LiveID продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы)
  4. Далее создайте новый пароль , скопируйте и вставьте его в поле Live ID Secret Key в настройках модуля.
  5. Добавьте платформу Веб и вставьте в поле URL-адреса перенаправления адрес из настроек модуля.

Настройка работы с документами через MS Office Web Apps

Для функционала работы с документами через MS Office Web Apps нужно активировать опцию Включить работу с документами через внешние службы (Google Docs, MS Office Web Apps и другие) в настройках модуля Библиотека документов (Настройки > Настройки продукта > Настройки модулей > Библиотека документов).

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Office365
299 / 363

Office365

Важно! Чтобы можно настроить интеграцию вашего портала с Office365, вы должны быть авторизованным или иметь рабочую учетную запись Office365 (xxxx@xxxx.onmicrosoft.com) с подпиской Office365 для Бизнеса. Частные учетные записи LiveID с подпиской Офис365 для Дома не подходят! Для заведения рабочей учетной записи Office365 обратитесь к администратору вашего Битрикс24.

Получение ИД клиента (Client ID) и Ключа (Key)

Для Office 365 необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры ИД клиента (Client ID) и Ключ (Key).

Для этого необходимо:

  1. В Центре администрирования Azure Active Directory перейти в раздел Все службы (потребуется рабочая учетная запись Майкрософт - xxxx@xxxx.onmicrosoft.com, простой логин LiveID не подходит), выбрать раздел Регистрация приложений перейти по кнопке Новая регистрация:

  2. При регистрации приложения нужно задать отображаемое имя и поддерживаемые типы учетных записей. В поле URI перенаправления задайте тот адрес, который прописан в настройках модуля Социальные сервисы. Некоторые параметры можно будет изменить впоследствии.
  3. В настройках приложения выбираем раздел Разрешения API и выбираем нужные для вашего приложения разрешения. Например, для работы с документами, приложению нужны разрешения Files.ReadWrite.All , а также для входа и офлайн-доступа.
  4. Далее в настройках приложения выбираем раздел Сертификаты и секреты, нажимаем кнопку +Новый секрет клиента, заполняем Описание , назначаем срок действия ключа и нажимаем кнопку Добавить .

    После добавления ключа, сам ключ появится в графе Значение .

    Значение ключа вводится в поле Ключ (Key) в разделе Социальные сервисы - Office365 продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) - в примере: mg?2fPjt]v_TT3LOO7f3oK/bQaEu=wOs

    Важно! Значение создаваемого ключа показывается только один раз, если вы не скопируете значение ключа и перейдете в другой раздел, то придется создавать ключ заново.

  5. Значение поля ИД клиента (Client ID) для приложения можно взять в разделе Обзор .
  6. Поле Домен организации (Tenant) - необязательное, представялет собой возможность ограничения на стороне портала для редактирования документов "только для своих" - тех, кто состоит в компании рабочей учетной записи. Также такое ограничение владелец тенанта может сделать еще и на стороне Office365.

    Рабочий аккаунт Office365, как правило, имеет вид user@company.onmicrosoft.com, где: user - имя пользователя, а company - название компании в бизнес-аккаунте Office365.

    Таким образом, Домен организации (Tenant) в нашем случае будет company.onmicrosoft.com.

Многофакторная идентификация

Многофакторная идентификация Azure (MFA) помогает защитить доступ к данным и приложениям. В Azure Active Directory её возможности доступны для защиты учетных записей глобальных администраторов, а в Microsoft 365 бизнес можно полнофункционально использовать MFA с применением политик условного доступа, чтобы требовать многофакторную проверку подлинности.

Развертывание Многофакторной идентификации Azure (Azure MFA) для приложений подробно описано в документации Microsoft.


Одноклассники
300 / 363

Одноклассники

Для Одноклассников необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры ID приложения, Ключ приложенияи Секретный код приложения, а в настройках сервиса специальную ссылку:

Получить уникальные ID приложения, Ключ приложенияи Секретный код приложения нужно на сайте разработчиков Одноклассников.

Для этого необходимо:

  1. Получить права разработчика по адресу: http://ok.ru/devaccess.
  2. Добавить приложение по ссылке.
  3. Далее на странице Настройки приложения указать название и нажать кнопку Подключить OAuth .
  4. В Список разрешённых redirect_uri вставить адрес из настроек модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):
  5. После нажатия кнопки Сохранить на почту, указанную в аккаунте разработчика, придет письмо с данными ID приложения, Ключ приложенияи Секретный код приложения, которые нужно вписать в соответствующие поля в настройках модуля Социальные сервисы продукта «1С-Битрикс»:
Примечание: По умолчанию сервис Одноклассники не имеет доступа к email пользователя.

Для запроса прав (в частности, GET_EMAIL - доступ к email адресу пользователя) необходимо прислать id приложения и перечень нужных разрешений с описанием кейса их использования на адрес api-support@ok.ru.

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Dropbox
301 / 363

Dropbox

Внимание! Сервис Dropbox поддерживает работу только по протоколу https.

Для Dropbox необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры App key и App secret, а в настройках сервиса специальную ссылку:

Получить уникальные App key и App secret нужно на сайте Dropbox Developer.

Для этого необходимо:

  1. Cоздать приложение Dropbox по одноименной ссылке в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы). При регистрации приложения в центре разработчиков нужно выбрать Dropbox API и указать название приложения в поле Name your app:

  2. После нажатия кнопки Create app откроется страница с настройками приложения , где ввести в поле Redirect URIs необходимые данные - адрес из настроек модуля Социальные сервисы (в примере - www.mysite.ru - ваш адрес сайта) и нажать кнопку Add:
  3. На этой же странице получить App key и App secret, которые нужно вписать в соответствующие поля в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) :

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Facebook
302 / 363

Facebook

Для подключения возможности авторизации через социальную сеть Facebook необходимо указать:

    В настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):
  1. Идентификатор приложения (App ID);
  2. Секретный код приложения (App Secret);
    3. В настройках приложения Facebook:
  3. В поле "Действительные URL-адреса для перенаправления OAuth" специальную ссылку вида https://ваш_сайт/bitrix/tools/oauth/facebook.php.

Подключение пошагово

Прежде всего зарегистрируемся в качестве разработчика на сайте Facebook for developers. В открывшемся окне введем название приложения и e-mail для связи, и далее нажмем кнопку «Создайте ID приложения».

Далее поработаем во вкладке Настройки > Основное:

Нажмите на рисунок, чтобы увеличить

1 скопируем идентификатор приложения и вставим его в соответствующее окно настройки параметров модуля Социальные сервисы;
2 в поле Секрет приложения нажмем кнопку Показать и скопируем код в соответствующее окно настройки параметров модуля Социальные сервисы;
3 укажем домен приложения (адрес нашего сайта), URL-адрес страницы Пользовательского соглашения и Политики конфиденциальности (это может быть одна и та же страница). Укажем категорию «Бизнес и страницы» и цель использования - для нужд своей компании. При желании можно загрузить иконку приложения (1024x1024 px на прозрачном фоне);
4 сохраним внесенные изменения;
5 добавим продукт. По умолчанию добавится продукт Вход через Facebook.

Теперь перейдем на страницу Вход через Facebook > Настройки:

Нажмите на рисунок, чтобы увеличить

6 пропишем адрес, указанный в подсказках настройки модуля Социальные сервисы;
7 переключим слайдер в положение ВКЛ., подтвердив свой выбор.

Готово! Теперь на сайте можно будет авторизоваться и через социальную сеть Facebook!

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Twitter
303 / 363

Twitter
  1. Для получения кодов необходимо зарегистрировать приложение Twitter по ссылке .
  2. При регистрации приложения указать в поле Callback URL путь из настроек модуля.
  3. После регистрации приложения в закладке Keys and Access Tokens получить Ключ приложения (Consumer key) и Секретный код приложения (Consumer secret).
  4. По ссылке modify app permissions или в закладке Permissions изменить Access Level на Read, Write and Access direct messages.
  5. Указать выданные сервисом Ключ приложения (Consumer key) и Секретный код приложения (Consumer secret) в соответствующих полях в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


ВКонтакте
304 / 363

ВКонтакте

  1. Пройти по ссылке Зарегистрировать приложение на сайт ВКонтакте для разработчиков:
  2. Выбрать тип нового приложения Веб-сайт, заполнить необходимые данные .
  3. Из раздела Настройки приложения вписать нужные ID приложения и Защищенный ключ в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Битрикс24.Network
305 / 363

Битрикс24.Network

  1. Кликнуть на ссылку Зарегистрировать сайт в Битрикс24.Network .
  2. В всплывающем окошке ввести адрес сайта .
  3. Автоматически будут получены Идентификатор портала и Секретный код портала .
  4. Нажав на кнопку Вставить, полученные идентификаторы автоматически вставятся в нужные поля формы.


Мой Мир@mail.ru
306 / 363

Мой Мир@mail.ru
  1. По ссылке подключить сайт зарегистрировать свой сайт в системе api.mail.ru.
  2. На первом шаге согласиться с правилами использования Платформы@Mail.ru.
  3. На втором шаге задать название и адрес главной страницы вашего сайта.
  4. Скачать файл receiver.html по одноименной ссылке, загрузить на свой сайт и указать путь к нему:

  5. Указать выданные сервисом ID сайта, Приватный ключ, Секретный ключ в соответствующих полях в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Mail.ru
307 / 363

Mail.ru
  1. Создать новое приложение по ссылке.

    Название проекта придумайте сами, загрузите изображение в поле Добавить фото.

    В поле Все redirect_uri внесите адрес из настроек модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):

  2. Нажать кнопку Подключить сайт, при необходимости отредактировать приложение . Можно отметить, на каких платформах будет установлено ваше приложение, сконфигурировать кнопку входа или скопировать её код, выдать права доступа пользователям, пройти модерацию и др.
  3. Указать выданные сервисом ID приложения и Секрет в соответствующих полях в настройках модуля Социальные сервисы продукта «1С-Битрикс» (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы):

Примечание: Со временем социальные сервисы могут менять внешний вид интерфейса настройки своих продуктов.


Apple Sign In
308 / 363

Apple Sign In

Если у вашего сайта есть собственное мобильное приложение в App Store, использующее вход через социальные сети, то вам необходимо добавить в качестве варианта авторизации систему Sign in with Apple.

Для подключения Apple Sign In необходимо указать в настройках модуля Социальные сервисы (Настройки > Настройки продукта > Настройки модулей > Социальные сервисы) параметры ID приложения, ID ключа, Team ID и Секретный ключ в формате pem:

ID приложения (Identifier) и Team ID можно найти в панели Apple.

ID ключа и Секретный ключ в формате pem

Для получения значений параметров ID ключа и Секретный ключ в формате pem выполните следующие действия:

  1. Войдите в свой аккаунт разработчика Apple Developer.
  2. Перейдите на страницу Certificates, Identifiers & Profiles и на вкладке Identifiers выберите ваше приложение, кликнув по нему:

  3. Отметьте пункт Sign In with Apple:

  4. Перейдите в раздел Keys и сгенерируйте ключ Key ID:

    Сконвертируйте этот ключ в формат pem, выполнив в командной строке

    openssl pkcs8 -in AuthKey_123456.p8 -nocrypt -out AuthKey_123456.pem

Далее нужно настроить Service ID — уникальный идентификатор web-приложения.

Настройка Service ID

Настройте Service ID — уникальный идентификатор web-приложения:

  • Вернитесь на вкладку Identifiers и добавьте новый идентификатор, выбрав тип Service ID, заполните необходимые поля и в поле Sign In With Apple нажмите кнопку Configure.
  • В открывшейся форме выберите Primary App ID вашего приложения, укажите домены и перечислите URL для редиректа после успешного логина (каждый URL с новой строки):

    Нажмите на рисунок, чтобы увеличить

Дополнительно

  • Sign in with Apple (документация Apple)


Социальная сеть
309 / 363
Модуль Социальная сеть предназначен для формирования сообществ на сайте, обмена мгновенными сообщениями, организации совместной работы пользователей сайта и реализации других задач, связанных с функционированием социальных сообществ.


Настройки модуля
310 / 363

Управления общими настройками модуля выполняется на странице Настройки > Настройки продукта > Настройки модулей > Социальная сеть:

На закладке Настройки модуля социальной сети содержатся глобальные настройки модуля:

  • Следить за всеми сообщениями Живой ленты по умолчанию - при отмеченной опции в социальной сети каждое новое событие (комментарий, сообщение и т.п) будет "поднимать" данное событие наверх Живой ленты. Пользователь сам решает следить или нет с помощью кнопки Больше не следить под сообщением Живой ленты. При отключенной опции, чтобы следить за событием, необходимо нажать кнопку Следить под нужным сообщением Живой ленты.
  • Разрешать адресовать "Всем" сообщения в Живой ленте - при отмеченной опции появляется возможность указать пользователей или группы пользователей, которым разрешено адресовать сообщения для всех пользователей портала.
  • Отображать адресацию "Всем" по умолчанию - при отмеченной опции будет включена адресация Всем по умолчанию при создании сообщения. Опция появляется при включенной опции Разрешать адресовать "Всем" сообщения в Живой ленте.
  • Отображать в Живой ленте по умолчанию только мои записи, записи моих групп и адресованные лично мне - опция включает режим, при котором выбираются только записи, события, относящиеся к рабочим группам пользователя, а также его собственные или адресованные лично ему.

    Примечание: Эта опция доступна только в продукте «1С-Битрикс: Управление сайтом».

    Режим включается/выключается как глобально, так и каждым пользователем в Живой ленте (пункт Только мои группы в меню Все сообщения).

Параметры, настраиваемые для каждого сайта в отдельности
  • Для включения функционала Друзья установите флаг в поле Разрешить функционал друзей.
  • С помощью полей Шаблон пути для темы групп и Шаблон пути для группы задаются шаблоны адресов для тем групп и групп.
  • В поле Путь к странице сообщений пользователя указывается адрес страницы к просмотру переписки с пользователями.
  • В поле Свойства пользователя для показа во всплывающей информационной карточке выбираются свойства пользователя, которые должны быть отображены во всплывающей карточке.
  • Дополнительные свойства пользователя, которые должны быть показаны во всплывающей информационной карточке, указываются соответственно в поле Доп. свойства пользователя для показа во всплывающей информационной карточке.
  • С помощью опций Выводить рейтинг во всплывающей информационной карточке и Использовать рейтинг включаются использование рейтингов в карточках пользователя и указываются их виды.
  • С помощью секции Настройки для пользователей вы можете запретить или разрешить использование того или иного функционала на личных страницах пользователей путем установки или снятия флагов в соответствующих полях, а также для каждого функционала задать настройки по умолчанию.
  • Настройка секции Настройки для групп аналогична настройке секции Настройки для пользователей и дополнительно определяет возможность работы с контентом архивных рабочих групп.

Закладка Права на доступ предназначена для настройки прав на доступ групп пользователей к модулю. Возможно назначение следующих прав:

  • [D] Работа в публичной части без права создания групп – пользователям разрешается просмотр страниц социальной сети с возможностью редактирования своего профиля. (По умолчанию стоит у всех групп.)
  • [K] Работа в публичной части с правом создания групп – пользователям разрешается просмотр страниц социальной сети с возможностью редактирования своего профиля и создания рабочих групп.
  • [R] Просмотр административной части – управление элементами социальной сети из публичной части и разрешение просмотра в административном разделе без права модификации.
  • [W] Полный доступ – полный доступ к ресурсам модуля.

Примечание: Управлять определенным функционалом можно как для всех сайтов сразу, так и для конкретных сайтов путем установки флагов в соответствующие поля.

Примечание: Подробнее о настройках модуля Социальная сеть см. Пользовательскую документацию по продукту.

Документация по теме:

  • Настройки модуля


Управление темами групп
311 / 363

В модуле Социальная сеть введено понятие темы групп.

Тема групп – это совокупность рабочих групп, обладающих некоторой общей тематикой, признаком.

Таким образом, чтобы иметь возможность создать рабочую группу, необходимо сначала создать в системе темы групп. Управлять темами групп могут только те пользователи, которые имеют полный доступ к модулю.

Важно! Создание, редактирование и удаление тем рабочих групп осуществляется только в административном разделе.

Создание новой темы

Чтобы создать новую тему групп в административном разделе, перейдите на страницу Сервисы > Социальная сеть > Темы и нажмите кнопку Новая тема на контекстной панели.

Примечание: В корпоративном портале также перейти на страницу тем групп можно, нажав в публичном интерфейсе кнопку [image], предварительно необходимо перейти в режим администратора.

Откроется форма создания новой темы:

Укажите Название темы, выберите Сайт темы, на котором будут доступны рабочие группы данной темы, и задайте индекс сортировки в поле Сортировка. Сохраните внесенные изменения, созданная тема добавится в список тем групп.

Создание новой рабочей группы

Теперь можно создать новую рабочую группу, привязанную к данной теме.

Рабочие группы создаются из публичного интерфейса. В административном разделе они выводятся в списке на странице Группы (Сервисы > Социальная сеть > Группы). В этом списке возможно только удаление группы:

Примечание: в «Битрикс24 в коробке» меню раздела Рабочие группы является динамическим и хранится в файле /workgroups/.left.menu_ext.php. В коде должны быть правильно определены шаблоны путей к теме групп и к группе:

$strGroupSubjectLinkTemplate = COption::GetOptionString("socialnetwork", "subject_path_template", "/workgroups/group/search/#subject_id#/", SITE_ID);
$strGroupLinkTemplate = COption::GetOptionString("socialnetwork", "group_path_template", "/workgroups/group/#group_id#/", SITE_ID);

Документация по теме:

  • Создание и редактирование темы групп


Публичный интерфейс модуля
312 / 363

Публичный интерфейс социальной сети создается с помощью комплексного компонента Социальная сеть (socialnetwork). Компонент позволяет, создавая физически одну страницу, организовать полноценную социальную сеть пользователей сайта.

Примечание: при создании публичного интерфейса социальной сети можно использовать два отдельных комплексных компонента Социальная сеть - пользователь (socialnetwork_user) и Социальная сеть - группы (socialnetwork_group).

В результате размещения и настройки компонента создается раздел и выводится Персональная страница пользователя .


Смайлы социальной сети
313 / 363

Добавление и редактирование смайлов, доступных для использования в сообщениях социальной сети, осуществляется на странице Смайлики социальной сети (Сервисы > Социальная сеть > Смайлы):

Для добавления нового смайлика служит кнопка Новый смайлик. Для того чтобы отредактировать уже существующий смайлик, воспользуйтесь соответствующим пунктом меню действий.

Форма создания (редактирования) смайлика имеет следующий вид:

Документация по теме:

  • Смайлы
  • Создание и редактирование смайлика


Техподдержка
314 / 363
Модуль технической поддержки позволяет:
  • организовать на сайте систему обращений посетителей к группе сотрудников, отвечающих за консультирование и техподдержку клиентов;
  • назначать ответственных за решение тех или иных вопросов;
  • управлять уровнями технической поддержки (Service Level Agreement - SLA);
  • отслеживать время и эффективность рассмотрения обращений;
  • анализировать оценку получаемых ответов пользователями.


Организация работы службы поддержки
315 / 363

Процесс создания и обработки обращений, поступающих в службу технической поддержки, регламентируется соглашением об уровне поддержки (SLA).

SLA – это описание обязательств компании по предоставлению определенного уровня сервиса (в данном случае технической поддержки) тем или иным пользователям. Уровни сервиса используются для управления приоритетами пользователей на получение поддержки.

  • Каждой группе пользователей, обладающей правом на создание обращений в службу поддержки, назначается определенный SLA. Уровень поддержки определяет время реакции на сообщения пользователей данных групп, а также некоторые параметры сообщений.
  • Пользователи могут создавать обращения в службу поддержки следующими способами:
    • через стандартные формы на сайте;
    • посредством электронного письма;
    • посредством телефонного звонка.

    Также некоторые сообщения пользователей на форуме, например, имеющие технический характер или выходящие за рамки тематики форума, могут быть перенесены в службу поддержки. Сообщение может быть перемещено администратором Bitrix Framework или администратором форума с помощью специального интерфейса.

    Каждому сообщению присваивается уникальный номер, что позволяет вести строгий учет поступивших обращений и следить за процессом их обработки.

  • Обращение в службу поддержки рассматривается в соответствии с параметрами SLA. Ответ на обращение публикуется в Bitrix Framework, а также отсылается пользователю по электронной почте. При этом просмотр обсуждения проблемы на Bitrix Framework доступен только пользователю, создавшему обращение, и сотрудникам службы поддержки.

Интерфейс техподдержки состоит из двух частей:

  • публичной:

  • административной:

Обычно клиенты техподдержки получают доступ к публичному интерфейсу службы, а сотрудники техподдержки ведут работу из административного интерфейса. В связи с этим административный и публичный интерфейс различаются по внешнему виду и доступному функционалу.

Для регулирования уровня доступа пользователей к модулю технической поддержки предусмотрено использование ролей:

  • Клиент техподдержки - доступ к административному меню Обращения открыт, в административных и публичных файлах разрешено создание и редактирование своих обращений.

    Клиент техподдержки получает почтовые извещения обо всех событиях, связанных с созданным им обращением (об изменении статуса сообщения, назначении ответственного, ответе на обращение и т.д.). Также при создании обращения пользователь получает извещение, содержащее исходную информацию об обращении (номер обращения, имя ответственного по умолчанию и т.д.)

  • Сотрудник техподдержки - доступ ко всем пунктам меню и страницам модуля открыт. Пользователь работает с теми обращениями, в параметрах которых он указан как сотрудник, ответственный за решение проблемы.

    Сотрудник техподдержки получает почтовые извещения обо всех событиях, связанных с обращениями, за рассмотрение которых он отвечает. При назначении сотрудника ответственным за какое-либо обращение ему также направляется извещение с параметрами данного обращения.

    • Примечание: доступ к чему-либо в административном режиме будет открыт если пользователь имеет право доступа минимум Чтение к папке bitrix/admin.

  • Администратор техподдержки - пользователь может редактировать справочник техподдержки и любое обращение, а также назначать ответственных за решение проблем. Администратор получает почтовые извещение обо всех обращениях, создаваемых в службу поддержки.


Настройки модуля Техподдержка
316 / 363

Вы организовываете у себя на сайте техническую поддержку? Настройте параметры модуля. Откройте страницу Настройки > Настройки продукта > Настройки модулей > Техподдержка:

Нажмите на рисунок, чтобы увеличить

Заполните поля на закладке Настройки. При этом обратите особое внимание на следующие параметры:

  • Ответственный по умолчанию для новых обращений - укажите ответственного по умолчанию сотрудника техподдержки.
  • Режим по умолчанию при просмотре обращения - задайте режим по умолчанию при работе с обращением клиента.
  • Значение по умолчанию для поля "Закрыть при отсутствии ответа через" - укажите через какое время обращение должно закрываться автоматически, в случае отсутствия ответа от клиента.
  • Как часто автоматически обновлять область "Сейчас в обращении" в административной части - определите период, через который автоматически обновляется список просматривающих сообщение пользователей.
  • Уровень поддержки по умолчанию - задайте уровень, устанавливаемый для обращений по умолчанию.
  • SLA и Категории - выберите способ настройки категорий обращений в соответствии с уровнями поддержки.

Настройте доступ для работающих с модулем групп пользователей на закладке Доступ.

Документация по теме:

  • Настройки модуля


Создание мастера
317 / 363

С помощью средств модуля Информационные блоки в продукте реализована возможность создания мастера техподдержки.

Для этого необходимо создать тип инфоблока, например Сервисы, и инфоблок Мастер, в котором будут храниться вопросы мастера.

Создание вопросов мастера

Для создания шага мастера с указанием проблемы нажмите кнопку Добавить раздел, расположенную на контекстной панели. Причина обращения в техподдержку указывается в поле Название:

Форма создания шага мастера

Примечание: Количество разделов, подразделов каждого раздела зависит от конкретного вопроса. Таким образом, количество шагов мастера создания обращения зависит от вложенности разделов (разделы могут иметь разный уровень вложенности).

Перейдите в созданный раздел. Нажмите кнопку Добавить вопрос, расположенную на контекстной панели, для создания описания проблемы. В открывшейся форме обязательно заполните поле Вопрос, выберите Тип вопроса (например, текстовое поле):

Форма создания описания проблемы

В результате на странице Мастер (Контент > Сервисы > Мастер) будут содержаться созданные шаги мастера.

При переходе по любой из ссылок отобразятся вопросы для детального описания проблемы.


Справочники
318 / 363

Справочники – группы свойств, относящихся к обращениям в службу поддержки. Данные свойства носят информационный характер и не влияют на общий процесс обработки обращений.

Перед началом работы выполните настройку необходимых справочников. Это позволит:

  • автоматизировать процесс назначения ответственных за рассмотрение обращений в зависимости от их параметров;
  • выполнять группировку поступающих обращений;
  • отслеживать уровни сложности проблем и эффективность их решения.

Основные типы справочников используемые в системе:

  • Категории
  • Критичности
  • Статусы
  • Оценки ответов
  • Частые ответы
  • Источники
  • Сложность

Категории

Категории обращений – это справочник сообщений, характеризующих область, к которой относится обращение (например, «Оформление заказа», «Оплата заказа», «Ошибки установки»).

Настройка категорий выполняется на странице Категории (Сервисы > Техподдержка > Справочники > Категории):

При создании обращения пользователь может выбрать подходящую категорию (из числа доступных), к которой, по его мнению, относится описываемая проблема.

Список доступных пользователю категорий определяется SLA.

Критичности

Критичность обращений – это справочник сообщений, отражающих уровень критичности (необходимость срочного решения) описываемой пользователем проблемы. Например, «Низкая», «Средняя», «Высокая».

Управление справочником осуществляется на странице Критичности (Сервисы > Техподдержка > Справочники > Критичности):

Уровни критичности обращений

Уровень критичности назначается пользователем при создании обращения и носит исключительно информационный характер.

Перечень доступных пользователю уровней критичности определяется SLA.

При более детальном рассмотрении проблемы сотрудник техподдержки может изменить критичность обращения.

Статусы

Статусы – это информационные сообщения, характеризующие этап обработки (или состояние) обращения. Например, «Принято к рассмотрению», «В стадии решения», «Успешно решено» и т.п.

Справочник статусов создается на странице Статусы (Сервисы > Техподдержка > Справочники > Статусы):

Статус обращения назначается при его рассмотрении сотрудником техподдержки.

Оценки ответов

Оценки ответов - справочник содержит список оценок, которые клиент техподдержки может выставить за предоставленный ему ответ.

Управление справочником осуществляется на странице Оценки ответов (Сервисы > Техподдержка > Справочники > Оценки ответов):

Список доступных пользователю оценок определяется SLA.

Оценки ответов используются для контроля качества работы службы технической поддержки.

Частые ответы

Наиболее часто даваемые ответы могут быть сохранены в справочнике Частые ответы (Сервисы > Техподдержка > Справочники > Частые ответы):

Далее типовые ответы могут быть использованы при создании ответов на обращения.

Это позволит сократить затраты времени на обработку часто задаваемых вопросов.

Источники

Источники - справочник содержит список источников, характеризующий откуда или от кого пришло обращение.

Управление справочником осуществляется на странице Источники (Сервисы > Техподдержка > Справочники > Источники):

Источник обращения указывается сотрудником техподдержки при его рассмотрении.

Сложность

Сложность - справочник содержит описание уровней сложности обращений. Уровень сложности обращения может использоваться, например, для контроля времени, затрачиваемого на решение проблемы сотрудниками техподдержки, а также при контроле общего уровня поступающих запросов.

Управление справочником осуществляется на странице Сложность (Сервисы > Техподдержка > Справочники > Сложность):

Уровни сложности обращений

Сложность обращения оценивается сотрудником техподдержки при его рассмотрении.

Документация по теме:

  • Типы справочников техподдержки
  • Создание и редактирование записи справочника


Назначение ответственного за обращение
319 / 363

Администратор техподдержки - сотрудник, имеющий полный доступ к модулю техподдержки. Может выполнять обязанности ответственного по обращению.

Ответственный по умолчанию - сотрудник, назначаемый автоматически согласно настройкам модуля. Может выполнять обязанности ответственного по обращению.

Ответственный за обращение – это сотрудники, отвечающие за рассмотрение и решение того или иного конкретного обращения.

Назначение ответственного сотрудника может быть выполнено:

  • автоматически, в соответствии с установленными параметрами, назначается ответственный по умолчанию;
  • вручную администратором техподдержки (или ответственным по умолчанию) при просмотре конкретного обращения.

Примечание: Чтобы можно было выбрать сотрудников в поле Ответственный, в случаях, описанных ниже, необходимо присвоить им права сотрудник техподдержки на доступ к модулю техподдержки.

Проще всего для этого создать отдельную группу пользователей (Настройки > Пользователи > Группы пользователей) и на закладке Доступ указать соответствующие права.

Автоматическое назначение ответственного сотрудника выполняется исходя из следующих параметров:

  • в соответствии с настройками следующих Справочников: Категория, Критичность, Источник (Сервисы > Техподдержка > Справочники > Категории, Сервисы > Техподдержка > Справочники > Критичность, Сервисы > Техподдержка > Справочники > Источник), в зависимости от типа, к которому было отнесено обращение.

    Параметры категории обращений

  • если ответственный в Справочнике не установлен, то назначается сотрудник, ответственный по умолчанию за решение обращения с тем или иным SLA.

    В соответствии с правами пользователя, каждому сообщению присваивается определенный SLA. В настройках SLA (Сервисы > Техподдержка > Уровни поддержки) может быть указан сотрудник техподдержки, ответственный по умолчанию за решение вопросов с указанным уровнем поддержки.

  • если и ответственный для SLA не установлен, то ответственный по умолчанию сотрудник назначается исходя из настроек модуля техподдержки (Настройки > Настройки продукта > Настройки модулей > Техподдержка).

При просмотре обращения администратор техподдержки (или Ответственный по умолчанию/Ответственный за обращение) может назначить или изменить ответственного за решение проблемы.


Уровни поддержки (SLA)
320 / 363

Настройка уровней сервиса выполняется на странице Уровни техподдержки (SLA) (Сервисы > Техподдержка > Уровни поддержки):

SLA определяет:

  • время реакции на обращение пользователя (т.е. время, в течение которого сотрудник службы поддержки должен отреагировать на обращение пользователя);

    Время реакции на обращение

    Параметр Считать крайний срок от определяет момент, с которого следует отсчитывать время реакции на обращение клиента: с даты его создания, либо даты последнего ответа клиента. Во втором случае счетчик крайнего срока обнуляется после каждого ответа сотрудника техподдержки. Первым ответом считается само обращение клиента.

  • группы, пользователи которых имеют право на создание обращений с данным уровнем поддержки;

    Настройка прав на SLA

    Примечание: Доступные группы определяются в настройках модуля Техподдержка (Настройки > Настройки продукта > Настройки модулей > Техподдержка), закладка Доступ.

  • доступные категории и уровни критичности обращений, а также оценки ответов на обращение.

    Например, пользователям с обычным SLA может быть предоставлено право на создание обращений с низкой критичностью, а клиентам с SLA «Партнеры» – с низкой, средней и высокой.

  • другие параметры.

Документация по теме:

  • Уровни поддержки
  • Создание и редактирование уровня поддержки


Создание публичного интерфейса
321 / 363

Создание интерфейса техподдержки в публичном разделе Bitrix Framework выполняется с помощью компонентов модуля Техподдержка:

  1. комплексный компонент Техподдержка (support.ticket) позволяет создать полноценную систему техподдержки, с помощью которой можно просмотреть список обращений, добавить своё сообщение или написать новое обращение;

  2. комплексный компонент Техподдержка с мастером (support.wizard) служит для организации полноценного публичного интерфейса технической поддержки, создание обращения в котором выполняется с помощью специального мастера.

    Мастер представляет собой информационный блок, а вопросы мастера являются разделами и элементами этого инфоблока.

    3. Примечание: Настройки компонента Техподдержка с мастером позволяют задать привязку разделов мастера к категориям техподдержки. Для этого необходимо в соответствующей секции настроек компонента отметить опцию Включить привязки, выбрать желаемые разделы в списке (после чего необходимо нажать кнопку OK) и указать соответствующие категории для них:

    Привязка разделов мастера к категориям техподдержки

    Таким образом, можно выполнить настройки, чтобы при выборе вопроса в мастере для обращения назначалась соответствующая категория и ответственный (если он задан для конкретной категории).

Документация по теме:

  • Описание компонентов модуля "Техподдержка"


Механизм для создания обращений по почте
322 / 363

Пользователь может создать обращение в техническую поддержку несколькими способами, например, написав электронное письмо на адрес технической поддержки компании.

Чтобы данный механизм получения обращений работал, необходимо выполнить следующие настройки в системе:

  • со стороны модуля "Техподдержка"
  • со стороны модуля "Почта"

Настройки со стороны модуля "Техподдержка"

  • на странице Источники (Сервисы > Техподдержка > Справочники > Источники) создайте источник E-Mail (если он еще не создан), причем в поле Символьный идентификатор должно быть указано email:

    Создание нового источника

  • на странице Категории (Сервисы > Техподдержка > Справочники > Категории) создайте категорию, которая будет использоваться для обращений, поступающих в техподдержку по почте. В поле Символьный идентификатор обязательно укажите значение email:

    Создание категории обращений

Настройки со стороны модуля "Почта"

  • на странице Почтовые ящики (Сервисы > Почта > Почтовые ящики) должна быть заведена учетная запись электронной почты службы технической поддержки:

    Список учетных записей (почтовых ящиков)

    Примечание: Подробная информацию по добавлению почтовых ящиков представлена в главе Почта, урок Почтовые ящики.

  • на странице Правила обработки почты (Сервисы > Почта > Правила) добавьте новое правило обработки почтовых сообщений. При создании правила выберите тип добавление сообщения в техподдержку.
  • В форме создания правила на закладке Параметры обязательно укажите название правила и выберите почтовый ящик, к сообщениям которого будет применяться правило.
  • На закладке Условия укажите условия, при которых почтовое сообщение будет добавлено в техподдержку:

  • Кроме того, в поле Определять по EMail ранее зарегистрированного пользователя отметьте опцию да, пытаться привязать обращение к пользователю. Затем укажите, к какому сайту привязывать обращение, и выберите категорию, при создании которой в качестве символьного идентификатора было указано значение email (см. вышеизложенное описание по созданию категории Обращения по почте).

    Условия применения правила

    При необходимости можно назначить уровень критичности для новых обращений, полученных по почте (уровни критичности должны быть созданы заранее на странице Сервисы > Техподдержка > Справочники > Критичности.

В результате, если пользователь напишет письмо на адрес технической поддержки компании, то оно будет добавлено в список обращений.


Административный интерфейс
323 / 363
Функционал административного раздела позволяет настраивать доступные параметры обращений (уровень критичности, статусы обращений, оценки ответов и т.д.), а также просматривать и отвечать на обращения пользователей в службу технической поддержки.


Рабочий стол
324 / 363

Общая статистика по поступившим обращениям, а также набор сводных отчетов по работе службы техподдержки доступны в форме, представленной на странице Рабочий стол (Сервисы > Техподдержка > Рабочий стол ТП):

Сводные отчеты реализованы при помощи обзорных таблиц, отображающих количество назначенных, закрытых и открытых обращений:

  • по ответственным сотрудникам службы;
  • по критичности;
  • по текущему статусу;
  • по уровню сложности;
  • по категории;
  • по источнику обращения;
  • по оценкам ответов на обращения;
  • по уровню поддержки.


Обращения
325 / 363

На странице Обращения (Сервисы > Техподдержка > Обращения) представлен список всех обращений, поступивших в службу технической поддержки. Специальные индикаторы помогают пользователю наглядно оценить текущее состояние обращений:

- последний раз в обращение писал клиент техподдержки (вы ответственный);
- последний раз в обращение писал клиент техподдержки (вы не ответственный);
- последний раз в обращение писали вы;
- последний раз в обращение писал сотрудник техподдержки;
- обращение закрыто.

Кроме того, рядом с индикатором может отображаться служебная надпись:

  • Пора отвечать! – заканчивается период, в течение которого на данное сообщение должен быть дан ответ (в соответствии с параметрами SLA);
  • Просрочено! – срок ответа на сообщение истек.

Фильтр страницы настроен таким образом, что по умолчанию для сотрудника техподдержки отображаются обращения, за рассмотрение которых он отвечает:

  • вверху списка отображаются просроченные сообщения (Просрочено!);
  • затем идут сообщения, для которых подошел срок ответа (Пора отвечать!)
  • далее следуют все остальные сообщения в порядке очереди. Очередность обращений устанавливается исходя из даты ответа (в соответствии с параметрами SLA).

Если сотрудник службы поддержки ответил на обращение, то обращение отмечается зеленым индикатором и перемещается в конец списка.

Примечание: Положение обращения в очереди не изменится, если:
  • автор изменил либо выполнил последовательное дополнение созданного им обращения новыми сообщениями;
  • сотрудник службы поддержки добавил в обращение комментарий или скрытое сообщение.

Для администратора техподдержки по умолчанию отображаются все обращения, на которые в ближайшее время должен быть дан ответ (т.е. с желтым и красным индикатором).


Работа с обращениями
326 / 363

Чтобы ответить на обращение, нужно перейти к его изменению с помощью двойного клика по записи в списке либо через соответствующий пункт контекстного меню:

Примечание: администраторам техподдержки отображаются все сообщения, сотрудникам – только те обращения, за рассмотрение которых они отвечают.

Форма просмотра обращения состоит из трех частей:

  • Информационная часть
  • Обсуждение
  • Ответ

Информационная часть

Данная часть содержит следующие данные:

  • сайт, на котором было создано обращение;
  • источник обращения (е-mail, телефон, web (форма на сайте), форум) и автор обращения;

    Примечание: обращение пользователя в службу поддержки (например, если пользователь создал обращение посредством телефонного звонка) может быть зарегистрировано администратором либо сотрудником техподдержки. При этом с помощью поля Автор обращение привязывается к конкретному пользователю в системе. Таким образом, дальнейшее обсуждение вопроса может проходить в рамках обращения.

  • дату создания и изменения обращения;
  • дату и время последнего результативного ответа на обращение (т.е. ответа, приведшего к изменению индикатора обращения на зеленый).
  • ссылку на историю заказов пользователя - автора обращения. Отображается при условии наличия установленного модуля Интернет-магазин.

Обсуждение

Данная часть содержит:

  • список всех сообщений в рамках обращения;
  • записи (логи) о действиях сотрудников техподдержки и создателя обращения (выделяются желтым фоном). Например, об ответе на обращение, изменении или дополнении обращения, назначении ответственного и т.д.;
  • записи о действиях системы (отображаются розовым цветом). Например, об изменении индикатора обращения, истечение даты ответа, автоматическом закрытии обращения и т.п.

Ответ

Данная часть служит для создания ответа на обращение. Сообщение открывается в одном из следующих режимов:

  • Просмотр;
  • Ответ.
Примечание: выбор режима работы с сообщением по умолчанию осуществляется в настройках модуля Техподдержка (Настройки > Настройки продукта > Настройки модулей > Техподдержка):

Если сообщение открыто в режиме Просмотр, то для того чтобы начать отвечать на обращение, нужно переключиться в режим ответа.

Примечание: кнопка режима, в котором ведется работа с обращением, является неактивной.

В специальной области, расположенной в левой части формы, отображается список пользователей, открывших сообщение.

Для каждого пользователя отображается иконка режима, в котором выполняется просмотр сообщения:

- режим просмотра;
- режим ответа.

Это позволяет организовать коллективную работу над обращениями и избежать ответа на сообщение одновременно несколькими сотрудниками.

Примечание: обновление списка пользователей, просматривающих сообщение, выполняется автоматически в соответствии с настройками модуля Техподдержка:

Иконка [image] позволяет обновить список пользователей, просматривающих сообщение в данный момент, вручную.

При переключении в режим ответа начинается учет времени, затрачиваемый сотрудником на ответ на обращение.

Таким образом, если по умолчанию обращение открывается в режиме Ответ, то подсчет времени начинается немедленно.

При работе с сообщением сотрудник техподдержки может:

  • Создать ответ на обращение.

    • Примечание: если созданный ответ не является окончательным или является пояснением, например, к текущим действиям сотрудников, то может возникнуть необходимость в сохранении текущего статуса обращения. Для этого нужно установить флажок в поле Не изменять статус обращения.

  • Создать скрытое сообщение в рамках обращения.

    Скрытое обращение будет доступно для просмотра только сотрудникам техподдержки.

  • Определить статус, критичность, сложность, категорию, уровень поддержки для обращения, а также назначить сотрудника, ответственного за решение проблемы.
    Примечание: при изменении уровня поддержки или категории, в качестве сотрудника, ответственного за решение проблемы, может быть назначен сотрудник, установленный в параметрах категории или уровня поддержки по умолчанию. Для этого служит иконка [image], расположенная рядом с соответствующим полем.
  • Если ответ на обращение не может быть дан в ближайшее время либо необходимо поддерживать его актуальность, то сообщение может быть сохранено в качестве отложенного. При этом текущий статус (индикатор сообщения) изменен не будет.
  • Для того чтобы закрыть сообщение, следует установить флаг в поле Закрыть сообщение.
  • Использование поля Закрыть при отсутствии ответа через позволяет определить период, по истечении которого обращение будет закрыто автоматически:
    Обращение закрывается автоматически при условии, что после ответа сотрудника техподдержки автор не добавлял в это обращение новые сообщения.

    Примечание: значение поля Закрыть при отсутствии ответа через по умолчанию задается на странице настроек модуля Техподдержка:

В соответствии с настройками почтовых шаблонов сообщения обо всех изменениях в рамках обращения (ответе на вопрос, изменении ответственного или статуса обращения и т.д.) дублируются на электронный адрес создателя обращения, ответственного сотрудника и администратора службы поддержки.

Документация по теме:

  • Обращения
  • Создание и редактирование обращения


Графики
327 / 363

На странице Графики (Сервисы > Техподдержка > Графики) можно построить отчет в виде графика или диаграммы по следующим показателям:

  • по нагрузке на техподдержку. График отображает количество обращений и сообщений в системе техподдержки по дням. График отражает загрузку службы техподдержки на конкретную дату и может использоваться для принятия управленческих решений по функционированию службы техподдержки:

    График нагрузки на техподдержку

  • по длительности решения проблем. Круговая диаграмма наглядно показывает типичное количество времени (в днях), которое тратится на решение проблем службой техподдержки:

    График длительности решения проблем

  • по количеству сообщений, необходимых для решения проблемы. На данной диаграмме представлено процентное соотношение количеств сообщений в закрытых обращениях:

    График количества сообщений, необходимых для решения проблем

Документация по теме:

  • Графики


Расписания и исключения
328 / 363

Настройка расписаний, в соответствии с которыми будет оказываться техническая поддержка, выполняется на странице Расписания (Сервисы > Техподдержка > Расписания > Расписания):

В форме создания/редактирования расписания указывается название расписания, например, 5-дневная рабочая неделя:

На закладке Часы выполняется детальная настройка режима работы:

Расписание работы задается для каждого дня недели.Возможны следующие режимы работы техподдержки:

  • 24 часа - круглосуточный режим работы;
  • не работает;
  • часы работы (HH24:MI) - позволяет задать интервалы времени работы техподдержки (используется 24-х часовой формат). Ведется проверка корректности указанных дат.

    Кнопка Копировать служит для копирования текущего значения времени работы в нижнее поле.

Созданные в системе расписания используются при настройке уровней техподдержки (SLA).

Для уровней техподдержки можно настроить некоторые исключения в оказании технической поддержки (например, техподдержка по некоторому уровню оказывается с понедельника по пятницу, но в связи с переносом праздничного дня необходимо сделать субботу рабочим днем). Настройка исключений осуществляется на странице Исключения (Сервисы > Техподдержка > Расписания > Исключения):

В форме создания/редактирования исключения указывается название, действие исключения (отдых или работа), период действия исключения и выбираются уровни поддержки, для которых будет использоваться это исключение:

Документация по теме:

  • Расписания
  • Создание и редактирование расписания
  • Исключения
  • Создание и редактирование исключения


Группы
329 / 363

Группы созданы для облегчения коллективной работы с обращениями. Они могут быть как клиентскими, так и для сотрудников поддержки. Клиентские группы включают, как правило, пользователей от одного клиента компании. Группы техподдержки включают в себя, как правило, сотрудников одного отдела.

Например, у компании есть сотрудники техподдержки. К ним поступают обращения от сотрудников клиента.

Каждый сотрудник техподдержки работает только лишь с теми обращениями, в параметрах которых он указан как сотрудник, ответственный за решение проблемы. Но как быть, если необходимо для упрощения работы отдела техподдержки обеспечить лёгкий доступ всех или части сотрудников к общим обращениям?

Для этого достаточно создать группу (Сервисы > Техподдержка > Группы), отметить в настройках опцию Группа сотрудников техподдержки

Группа сотрудников техподдержки

а на закладке Пользователи включить в неё нужных сотрудников и указать, смогут ли они видеть сообщения группы или получать уведомления

Тогда обращения для любого члена группы станут видны его соседям по группе (другим сотрудникам техподдержки).

Примечание: В состав такой группы могут входить только сотрудники техподдержки.

В свою очередь, у клиента есть сотрудники, которые обращаются в техподдержку компании. Там аналогичная ситуация: обращение, отправленное в техподдержку, видит только его автор, что не всегда удобно. Если, к примеру, сотрудник ушёл в отпуск, то его обращения должен вести кто-то другой, при этом передавать логин/пароль, естественно, некорректно. Поэтому клиент обращается в компанию с просьбой дать доступ к обращениям сотрудника, ушедшего в отпуск, например, всем другим его сотрудникам, зарегистрированным на сайте.

Для этого администратору техподдержки необходимо лишь объединить сотрудников клиента в одну группу и убрать опцию Группа сотрудников техподдержки в настройках:

Документация по теме:

  • Группы
  • Создание и редактирование группы


Спецобращения
330 / 363

На странице административного раздела Сервисы > Техподдержка > Купоны спецобращений вы можете сгенерировать купоны спецобращений для ваших клиентов.

Спецобращение - обращение в техподдержку, время реакции на которое ограничено одним часом вне зависимости от времени суток.

Для добавления купона нажмите Добавить купон на контекстной панели, откроется форма добавления:

О полях данной формы читайте в документации.

После того, как купон будет создан, его последовательность символов можно узнать либо в форме его редактирования, либо в общем списке купонов:

Данную последовательность клиенту следует вводить в специальное поле при создании обращения:

Важно! В настройках компонента должна быть отмечена опция Показывать поле ввода купона.

На странице Сервисы > Техподдержка > Журнал использования купонов показана информация об использовании купонов:

Документация по теме:

  • Купоны спецобращений
  • Создание и редактирование купона
  • Журнал использования купонов


Универсальные списки
331 / 363
Иногда функционала информационных блоков не хватает для работы с необходимой информацией. В этом случае на помощь приходит модуль 1С-Битрикс Универсальные списки.


Возможности модуля
332 / 363

Модуль может:

  • Сконструировать произвольные хранилища информационных объектов;
  • Предоставить доступ к функционалу из публичной части сайта;
  • Создать произвольную иерархию хранения объектов;
  • Фильтровать и сортировать данные, настраивать колонки и поля карточки элемента и списков элемента, выполнять групповое редактирование, управлять правами доступа и другое.

Универсальные списки используются в следующих сценариях:

  • FAQ (часто задаваемые вопросы);
  • Cправочники и базы знаний;
  • Cписки контрагентов;
  • Cтруктурированные архивы;
  • Библиотеки и файловые хранилища;

Примечание: Подробнее о работе с модулем Универсальные списки читайте в курсе Контент-менеджер.

Документация по теме:

  • Универсальные списки
  • Настройки модуля


Настройка модуля Универсальные списки
333 / 363

Настройка модуля Универсальные списки производится в Административном разделе на странице Настройки > Настройки продукта > Настройки модулей > Универсальные списки.

Нажмите на рисунок, чтобы увеличить

Закладка "Права доступа"

Внимание! Универсальные списки имеют расширенные права задания прав независимо от настроек информационных блоков в Административной части.

На закладке Права доступа определяется, какие группы пользователей имеют доступ к инфоблокам, используемыми в качестве списков. Для настройки доступа нужно в столбце Группы пользователей выбрать нужную группу пользователей, а в столбце Типы инфоблоков - назначить соответствующий тип инфоблока для выбранной группы.

Группы пользователей, указанные на данной закладке, смогут создавать свои собственные списки (инфоблоки) в указанном типе инфоблоков или редактировать существующие, в отличие от остальных групп.

Закладка "Социальная сеть"

Установив флажок в поле Включить поддержку социальной сети, вы дадите разрешение на то, чтобы Универсальные списки появились в Рабочих группах.

В поле Тип инфоблока необходимо выбрать нужный тип инфоблока, который будет использован в качестве списков в Соцсети. Допустимо использование разных типов инфоблоков в качестве источника данных для Соцсети и для списков на других страницах проекта.

Закладка "Живая лента"

Снятие флажка в поле Включить функционал работы с живой лентой отключает отображение Бизнес-процессов списков в Живой ленте. Также отключается отображение пунктов меню Мои процессы и Процессы. Но только отображение, зная прямой URL до этих страниц пользователь может открыть эти страницы. Если флажок отмечен, то необходимо отметить тип инфоблока для работы с живой лентой, а также папку, в которой работает компонент.

Документация по теме:

  • Пользовательская документация по модулю "Универсальные списки"


Форум
334 / 363
Форум дает пользователям сайта возможность общаться между собой, задавать вопросы посетителям и администрации сайта. Форум также дополняет собой службу техподдержки. Кроме того, форум - средство привлечения дополнительных посетителей на сайт, поскольку поисковые машины индексируют текстовое содержимое сообщений форума в дополнение к содержанию сайта.


Возможности модуля
335 / 363

Модуль Форум "1С-Битрикс: Управление сайтом" предназначен для управления форумами сайта. С помощью этого модуля решаются следующие задачи:

  • создание необходимого числа форумов;
  • построение и гибкая модификация публичной части (внешнего вида) форума;
  • распределение прав доступа клиентов на чтение и отправку сообщений в форум;
  • создание модерируемых и постмодерируемых форумов;
  • назначение модераторами форума группы пользователей;
  • присвоение звания (статуса) посетителям согласно количеству баллов, полученных за активность на форуме;
  • управление настройками форумов.

В данной главе рассматриваются основные операции по настройке и работе с форумами.

Документация по теме:

  • Пользовательская документация по модулю "Форум"
  • Часто задаваемые вопросы


Настройка модуля
336 / 363

Системная настройка модуля Форум

Управление настройками выполняется на странице настройки модуля Форум (Настройки > Настройки продукта > Настройки модулей > Форум).

Нажмите на рисунок, чтобы увеличить

На закладке Настройки задаются глобальные настройки параметров, которые определяют:

  • выбор галереи смайлов форума (Начиная с версии 15.5.2 модуля Форум используются смайлы ядра системы;
  • возможность редактирования личных сообщений;
  • отображение имени пользователя и ограничения размера его аватара;
  • настройки персональных сообщений;
  • количество документов, индексируемых за один шаг.

Примечание: подробное описание каждого параметра приведено в пользовательской документации по модулю Форум.

На закладке Доступ настраиваются уровни прав доступа к модулю для групп пользователей.

Примечание: чтобы пользователи имели возможность редактировать профиль на форуме, дайте группе пользователей форума права не ниже [Р] Изменение профайла в настройках Главного модуля.

Для фильтрации нецензурных слов на страницах форума включите опцию Включить фильтр нецензурных слов, расположенную на закладке Фильтр нецензурных слов .

При включенном фильтре указывается действие, которое выполнится с найденными словами:

  • ничего – никакие действия над нецензурными словами выполняться не будут;
  • удалить – нецензурные слова будут удалены из текста;
  • заменить – слова будут заменены на значение, заданное в поле Замена.

Кроме того, для каждого языка необходим Словарь слов и регулярных выражений, в которых хранятся нецензурные слова. Фильтрация текста сообщений выполняется на основании словаря.

Примечание: подробнее о настройке фильтра рассказано в уроке Фильтр нецензурных слов.

Документация по теме:

  • Настройки модуля


Группы форумов
337 / 363

Группировка форумов

Если на сайте много форумов, то может возникнуть сложность в работе с ними: пойди, найди нужный. Для решения этой проблемы можно сгруппировать форумы по какому-то общему для них признаку.

Группа форумов – это совокупность форумов, обладающих общим признаком, тематикой.

Просмотр уже созданных групп форумов, их редактирование и создание новых выполняется на странице Группы форумов (Сервисы > Форумы > Группы форумов).

Нажмите на рисунок, чтобы увеличить

Создание группы форумов

Для создания группы форумов используйте кнопку Новая группа форумов расположеную на контекстной панели. Для редактирования уже созданной группы выберите соответствующий пункт меню действий.

Форма создания (редактирования) группы форумов очень простая и значение полей ясно из их названия. Поясним только пару из них:

  • Сортировка – индекс сортировки, который определяет положение группы в списке. Чем меньше значение сортировки, тем выше в списке будет отображаться группа форумов.
  • Родительская группа – указывается группа, в которую будет вложена данная группа форумов. Выбор многоточия означает верхний уровень вложенности.

Документация по теме:

  • Группы форумов
  • Создание и редактирование группы


Форумы: создание и управление
338 / 363

Управление форумами

Управление форумами осуществляется, как правило, в Административном разделе. Создание новых форумов возможно только в административном разделе. Список всех форумов размещается на странице Список форумов (Сервисы > Форумы > Список форумов):

Нажмите на рисунок, чтобы увеличить

Создание форума

Для создания нового форума используется кнопка Новый форум, расположенная на контекстной панели. Откроется форма создания форума. Поясним поля формы, значение которых может не совсем понятно из названия или имеет особенности.

  1. на закладке Форум :
    • Активность - при отмеченной опции форум будет включен. Если форум неактивен, то он доступен только пользователям с правами на полный доступ к ним.
    • Сайты, на которых доступен форум (Шаблон пути к сообщению на сайте) - укажите сайт(ы), на которых доступен форум и шаблон пути к сообщению.
  2. на закладке Настройки :
    • Индексация - установленный флажок разрешает индексировать поиском сообщения форума;
    • Модерация - при отмеченной опции сообщения пользователей будут публиковаться на сайте только после проверки модератором;
    • Одинаковые сообщения в теме - запрет создания двух одинаковых сообщений в теме;
    • Сортировать по и Направление сортировки - выберите вариант сортировки сообщений, а также направление сортировки;
    • Позволить загрузку - разрешить загрузку присоединенных к сообщению файлов указанного типа;
    • Допустимые расширения загружаемых файлов - расширения файлов, разрешенных к загрузке;
    • Пользовательские настройки - при отмеченных опциях для незарегистрированных пользователей будет запрошен e-mail при добавлении сообщения и будет использована CAPTCHA;
    • Регистрация новых сообщений в модуле статистики - здесь настраиваются идентификаторы, с использованием которых создание нового сообщения на форуме будет регистрироваться в модуле Веб-аналитика;
    • Настройки парсера - указываются дополнительные настройки форума: ссылки, изображения, видео, теги, HTML-код, смайлики и т.д.

  3. на закладке Доступ определите права доступа к форуму для групп пользователей:
    • Нет доступа - запрет на доступ к форуму.
    • Чтение - доступ на чтение сообщений форума без права создания новых тем.
    • Ответ - доступ к обсуждению тем без права создания новых тем.
    • Новая тема - доступ к обсуждению и созданию тем.
    • Модерирование - доступ к модерации форума. Например, модераторы могут скрыть или показать сообщение, но не могут отредактировать или удалить его. Члены группы с этим уровнем прав имеют возможность подписаться на получение копии всех сообщений форума по почте.
    • Редактирование - доступ к управлению чужими сообщениями на форуме.
    • Полный доступ - полный доступ к форуму, включая доступ к настройкам форума и прав доступа.

Чтобы отредактировать форум воспользуйтесь пунктом контекстного меню Изменить , откроется форма, аналогичная форме создания.

Примечание: Подробнее о значении полей формы создания/редактирования см. в пользовательской документации .

Корректировка шаблонного текста

Частая задача администратора - корректировка шаблонного текста страниц Помощь по форуму и Правила форума. Простой вариант решения этой задачи:

В свойствах комплексного компонента bitrix:forum в группе параметров Основные настройки убираем флажок в поле Использовать простой режим настройки. Появляются поля Путь к файлу, содержащему "Правила форума" и Путь к файлу, содержащему "Помощь по форуму". Создаем файл с правилами, выкладываем в нужное место, прописываем путь к файлу в этих полях.

Документация по теме:

  • Список форумов
  • Создание и редактирование форума


Управление темами и подписками
339 / 363

Управление темами форумов

Темы форумов создаются только в публичном разделе. В панели управления можно только менять название тем, но не создавать их.

Информация о темах форумов представлена на странице Управление темами (Сервисы > Форумы > Управление темами):

Нажмите на рисунок, чтобы увеличить

Используя панель Действия, можно быстро отредактировать или удалить отмеченные записи, а также переместить выбранные темы в указанный форум. Для этого выполните следующее:

  • В колонке флажков отметьте темы, которые хотите перенести.
  • В списке действий выберите Переместить.
  • С помощью выпадающего списка укажите форум, куда будут перенесены темы.
  • Нажмите кнопку Применить.

Управление подписками пользователей

Список пользователей с подпиской на форумы представлен на странице Управление подпиской (Сервисы > Форумы > Управление подпиской):

Для просмотра подписок некоторого пользователя используйте меню действий (пункт Изменить ) либо двойной клик по соответствующей записи.

Документация по теме:

  • Управление темами
  • Управление подпиской


Звания и баллы
340 / 363

На любом форуме есть проблема оценки сообщений пользователя и его квалификации. В "1С-Битрикс: Управление сайтом" для этого используются стандартные механизмы: баллы и звания.

Баллы за сообщения

Баллы присваиваются пользователю форума за каждое отправленное сообщение. При этом можно легко настроить кумулятивную систему начисления баллов, т.е. количество баллов за одно сообщение будет увеличиваться согласно числу отправленных сообщений.

Настройка количества баллов за сообщение происходит на странице Баллы за сообщения (Сервисы > Форумы > Баллы за сообщения):

Нажмите на рисунок, чтобы увеличить

Для создания новой записи используется кнопка Новая запись, расположенная на контекстной панели. В форме создания (редактирования) записи о количестве баллов за сообщение заполните поля:

  • Необходимо сообщений - число сообщений, начиная с которого за каждое сообщение будет начисляться указанное в записи количество баллов.
  • Баллов за сообщение – количество баллов, начисляемое за сообщение, при достижении указанного в предыдущем поле числа сообщений.

Внимание! Пересчет баллов пользователей при изменении записи автоматически не происходит. Пересчет баллов каждого пользователя произойдет при написании очередного сообщения, при голосовании за него и т.п.

Звания

Звания посетителей форума устанавливаются согласно количеству набранных баллов. Пользователь получает баллы как за количество сообщений, созданных на форуме, так и в результате голосования других посетителей форума.

Примечание: Для получения звания за количество сообщений на форуме включите опцию Включить бонусную систему в настройках модуля Форум. Если эта опция неактивна, то звания будут устанавливаться на основе рейтингов.

Для настройки званий используйте страницу Звания (Сервисы > Форумы > Звания):

Нажмите на рисунок, чтобы увеличить

Для создания новой записи нажмите кнопку Новое звание, расположенную на контекстной панели. Откроется форма создания (редактирования) звания. Заполнение формы не должно вызвать у вас проблем, она полностью понятна.

Документация по теме:

  • Звания
  • Создание и редактирование звания
  • Баллы за сообщения
  • Создание и редактирование баллов за сообщение


Фильтр нецензурных слов
341 / 363

Следим за грубостями

Фильтр нецензурных слов используется для работы с нецензурными словами в сообщениях форумов. В дистрибутиве уже поставляются заполненные словари, вы можете дополнить их или отредактировать.

Для использования на форуме фильтра нецензурных слов включите данную возможность в настройках модуля Форум, при этом укажите, какое действие будет выполняться с найденными словами, и задайте языкозависимые параметры.

На странице Словарь нецензурных слов (Сервисы > Форумы > Фильтр нецензурных слов > Словарь нецензурных слов) представлен список словарей с нецензурными словами:

Нажмите на рисунок, чтобы увеличить

Добавление словаря, слов и букв транслита

Это требуется редко, но если потребовалось, то для добавления нового словаря воспользуйтесь кнопкой Добавить, расположенной на контекстной панели страницы. В открывшейся форме укажите Название и Тип словаря .

Для добавления нецензурных слов в словарь используется страница Словарь слов (Сервисы > Форумы > Фильтр нецензурных слов > Словарь нецензурных слов > <имя_словаря>). В открывшейся форме добавьте корень слова с символами изменяемых частей слова и выберите тип шаблона . Необязательно, но можно добавить слово или фразу, которые заменят добавляемое слово в тексте.

Для добавления информации об аналоговом написании букв в словарь транслита используется страница Словарь транслита (Сервисы > Форумы > Фильтр нецензурных слов > Словарь транслита > <имя_словаря>). Создание записи словаря Транслита не представляет сложности.

Документация по теме:

  • Список словарей нецензурных слов/транслита
  • Создание/редактирование словаря
  • Словарь слов
  • Создание/редактирование записи словаря нецензурных слов
  • Словарь транслита
  • Создание/редактирование записи словаря транслита


Создание комментариев к различным элементам сайта
342 / 363

Форум как комментарии

На популярных и посещаемых сайтах гости пишут комментарии на форумах, в блогах, оставляют отзывы к товарам и фотографиям, а также обсуждают новости. Поэтому в Bitrix Framework в комплексные компоненты фотогалерей, новостей и каталога товаров по умолчанию встроен компонент отзывов. В каждом компоненте представлена опция Разрешить отзывы и необходимые настройки.

Но иногда возникает потребность добавления отзывов и комментариев там, где они изначально не предусмотрены. Например, в разделе опросов, на странице просмотра видеотеки и т.д.

В этом случае проблема решается использованием компонента Комментарии к инфоблоку (forum.topic.reviews).

Рассмотрим пример добавления функционала комментариев к видеотеке. Допустим, что предварительные операции по настройке видеотеки уже выполнены и на сайте создан публичный интерфейс.

Создание форума

Создайте форум, например, Комментарии к видеороликам , в котором будут храниться комментарии к роликам из видеотеки. Укажите необходимые настройки форума. На закладке Доступ для всех пользователей задайте право на создание новых тем .

Все комментарии к видеотеке будут храниться в этом форуме в темах с названием элемента (ролика) инфоблока видеотеки.

Чтобы комментарии проходили премодерацию перед публикацией, в настройках форума выберите опцию Модерация: премодерируемый.

Настройка компонента Комментарии к инфоблоку

Откройте страницу где размещена видеотека в визуальном редакторе. Разместите компонент Комментарии к инфоблоку на странице:

Настройте параметры компонента, уделив внимание следующим моментам:

  • В списке ID форума для отзывов выберите созданный форум для комментариев, в нашем случае это Комментарии к видеороликам.
  • В параметрах Тип информационного блока и Код информационного блока укажите тип инфоблоков и сам инфоблок, в котором хранится видеотека.
  • В поле ID элемента задайте идентификатор любого из элементов (ролика) в инфоблоке видеотеки. Этот параметр задается для отображения формы добавления комментариев.

Создание интерфейса для модерации комментариев

В некотором разделе сайта (или создайте новый) создайте страницу на которой разместите комплексный компонент Форум bitrix:forum. Доступ к странице дайте только тем пользователям, кто будет выполнять модерацию комментариев.

В настройках компонента в параметре Показывать только выбранные форумы отметьте Комментарии к видеороликам. Все остальные параметры настройте необходимым для вас образом.

В результате страница с видеотекой и комментариями будет выглядеть так:

Для использования других опций при работе с комментариями воспользуйтесь дополнительными модулями:

  • Счетчик комментариев
  • Панель комментариев


Назначение модератора форума
343 / 363

Модерирование форума - одна из задач, которую поручают контент-менеджеру. Чтобы он мог выполнять эту задачу нужно дать ему расширенные, по отношению к обычному посетителю сайта права. Пользователь с правами модератора форума может скрывать\показывать сообщения и темы, переносить их в другие форумы, закрывать\прикреплять темы.

Постановка задачи

Возьмем ситуацию, когда у нас есть три форума:

На партнерском форуме модератором нужно сделать пользователя Егор, на форуме компании - пользователя Иван. А общий форум они должны модерировать оба вместе.

Создание групп пользователей

Создадим группы пользователей, члены которых будут иметь права модератора на работу с соответствующими форумами. Для этого перейдите на страницу административного раздела Настройки > Пользователи > Группы пользователей и нажмите Добавить группу на контекстной панели. Откроется форма создания новой группы.

Заполните поля на закладке Параметры. На вкладке Пользователи в группе отметим галочкой пользователя Егор и сохраним внесенные изменения.

Аналогично создадим группу Модераторы форума компании и включим в нее пользователя Иван.

Для обеих групп в настройках вкладки Доступ для модуля Форум укажите право Запись. Для остальных модулей оставьте право По умолчанию.

Установка прав доступа

Перейдите на страницу Сервис > Форумы > Список форумов и кликните левой кнопкой мыши пункт Изменить в меню действий партнерского форума:

На закладке Доступ для созданной нами группы пользователей Модераторы партнерского форума зададим право доступа модерирование:

Аналогичным образом задайте такое же право доступа на Форум компании для группы Модераторы форума компании.

Для общего форума следует выставить право на модерацию для обеих групп:

Всё, настройка произведена, модераторы могут приступать к работе.

Дополнительно

  • Также о работе с форумами в публичной части читайте в курсе Контент-менеджер.


Фотогалерея
344 / 363
Модуль Фотогалерея 2.0 - это современный и удобный инструмент для создания и управления галереями и фотоальбомами пользователей, групп пользователей и сайта в целом.


Настройка модуля
345 / 363

Настройка модуля

Настройка модуля крайне проста и заключается в загрузке шрифтов для авторского знака. Это выполняется на странице настройки модуля Фотогалерея 2.0 (Настройки > Настройки продукта > Настройки модулей > Фотогалерея 2.0):

Нажмите на рисунок, чтобы увеличить

В секции Загруженные шрифты отображаются системные шрифты и добавленные пользователем шрифты для нанесения авторского знака. Загруженный шрифт для нанесения авторского знака выбирается в настройках комплексных компонентов :

  • Фотогалерея 2.0 (bitrix:photogallery)
  • Фотогалерея 2.0 (многопользовательская) (bitrix:photogallery_user)

С помощью ссылки Загрузить шрифты загрузите собственные шрифты. Поддерживаются TTF-, OTF- и PS-шрифты.

Примечание: Обычно администратор выполняет только настройку модуля. Непосредственную работу по созданию и наполнению галерей ведёт Контент-менеджер.

Документация по теме:

  • Настройки модуля
  • Описание компонентов модуля


Фотогалерея в социальной сети
346 / 363

Настройки в Социальной сети

Для использования фотогалерей в Социальной сети сайта активируйте этот функционал в настройка модуля Социальная сеть на странице Настройки > Настройки продукта > Настройки модулей > Социальная сеть в секциях:

  1. Настройки для пользователей:

    Настройка прав доступа к функционалу

  2. Настройки для групп:

    Настройка прав доступа к функционалу

Далее в этих же секциях задайте права по умолчанию для фотогалерей.

Если сайтов несколько, то управление фотогалереями выполняется отдельно для каждого сайта.

Документация по теме:

  • Настройки модуля "Социальная сеть"


Работа с комментариями многопользовательской галереи
347 / 363

Видеоурок

Модерировать комментарии к фотографиям, если фотогалерея развитая, трудозатратно. Приходится открывать все фотографии, смотреть есть ли комментарии. Гораздо удобнее модерировать всё в одном месте. Сделать это не сложно.

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».

Операции с форумом

Отзывы в Фотогалерее реализуются через функционал модуля Форум. Как узнать, какой именно форум для нее используется? Перейдите к настройкам компонента Многопользовательская фотогалерея и в группе параметров Настройки отзывов вы увидите ID форума для отзывов:

Задайте для модераторов необходимые права доступа к этому форуму. Перейдите на страницу административного раздела Сервисы > Форумы > Список форумов > ваш_форум. Далее, в форме редактирования форума, на закладке Доступ, для группы модераторов задайте право доступа Редактирование :

Создание страницы для модерации

Создайте страницу и закройте страницу от всех, кроме группы модераторов комментариев к галерее. Затем разместите на странице комплексный компонент Форум. В настройках компонента, среди прочего, укажите форум многопользовательской галереи в опции Показывать только выбранные форумы:

В результате модераторы будут видеть форум многопользовательской галереи, в темы которого будут добавляться комментарии. Непосредственно в теме можно модерировать комментарии.


Дополнительные модули
348 / 363
В главе содержится информация по модулям, которые не входят в штатную поставку.


1С-Битрикс: Интерактивная карта объектов
349 / 363
Модуль 1С-Битрикс: Интерактивная карта объектов — это удобный инструмент, который выводит важные объекты, события и туристические маршруты. Он поможет создать схему проезда до офиса или склада, карту офисов компании или даже карту региона.


Возможности модуля
350 / 363

Возможности модуля

Карта объектов и событий:

  • отображение объектов на Яндекс.Карты или Google Maps
  • группировка объектов по категориям
  • список объектов
  • поиск объектов по их названию
  • детальная информация об объекте
  • прокладка маршрута до объекта

Карта маршрутов:

Доступность с мобильных устройств:

  • шаблон для мобильной версии сайта
  • шаблон для мобильного приложения

Управление картой (API):

  • поддержка Яндекс.Карты и Google Maps
  • задание пользовательских маркеров
  • кастомизация внешнего вида с помощью настройки параметров и CSS: стили инфоокон, текстовые сообщения, высота карты, цвет линий и т.п.
  • настройка маршрутов

Материалы по теме:

  • Документация для пользователей и разработчиков по модулю "1С-Битрикс: Интерактивная карта объектов" (docx). Версия от 07.10.2015.


Установка модуля
351 / 363

Установка модуля

Модуль "1С-Битрикс: Интерактивная карта объектов" можно установить двумя способами:

  • через административную часть сайта
  • со страницы модуля в Маркетплейс

После загрузки модуля, в разделе Установленные решения должна появиться строка "Интерактивная карта (bitrix.map)" разработчика "1С-Битрикс".

Примечание: При установке модуля у вас будет возможность установить также демонстрационные данные, чтобы сразу можно было посмотреть на работу карты.
Отметьте опцию Установить демо-данные, укажите сайт, для которого будут устанавливаться данные, и путь к папке относительно корня сайта, где будут установлены примеры использования компонента карты.

Внимание! Если вы пропустите установку демонстрационных данных и решите сразу настроить компонент карты на свои данные, вам может потребоваться создать несколько свойств для ваших инфоблоков. Подробнее про необходимые дополнительные свойства смотрите в главе Предварительная настройка.

После установки у вас должны появиться:

  • Новый тип инфоблоков Карта (bx_map);
  • Три инфоблока: Объекты, События, Туристические маршруты (Контент > Карта);


Настройка и наполнение контентом
352 / 363
Решение 1С-Битрикс: Интерактивная карта объектов устанавливается на редакции "1С-Битрикс: Управление сайтов" версии 12.0 и выше, начиная с редакции Старт.
В главе описаны настройки модуля, а также принципы заполнения следующих элементов:
  • объектов
  • маршрутов
  • событий


Предварительная настройка
353 / 363

Предварительная настройка

Если вы выполнили установку демонстрационных данных, то все необходимые поля для инфоблоков у вас уже созданы. В противном случае, если вы решили сразу использовать свои данные, вам нужно учесть несколько моментов.

Для разделов туристических маршрутов должны быть созданы два пользовательских свойства:

  • Замкнутый маршрут;
  • Тип маршрута.

Свойство Замкнутый маршрут (в стандартном решении имеет код UF_CLOSED) должно быть типа Да/Нет. Свойство влияет на отрисовку линии маршрута – если маршрут замкнутый, то его линия автоматически соединяется между последней и первой точкой маршрута.

Свойство Тип маршрута (в стандартном решении имеет код UF_ROUTE_TYPE) должно быть типа Список. Это свойство обязательно для заполнения для вывода маршрута на карте. Все маршруты при выводе группируются по типу.

Внимание! При настройке списка в поле XML_ID значений вводится позиция иконки для этого типа маршрута. В стандартном шаблоне иконки хранятся в одном спрайте с шагом 30 пикселей. Следующие значения соответствуют стандартным иконкам типов маршрутов:
  • 0 – Пешеходный маршрут.
  • 30 – Транспортный маршрут.
  • 60 – Водный маршрут.

Для разделов инфоблока объектов должно быть создано дополнительное свойство Позиция иконки (в стандартном решении имеет код UF_ICON_POS). Свойство должно иметь тип Число (предпочтительней) либо Строка. Позиция иконки влияет на то, какая иконка для данной категории объектов будет выведена в списке на карте, а так же какой маркер будет использоваться для всех ее объектов. Как и с типами маршрутов, иконки хранятся в отдельном спрайте с шагом в 30 пикселей.

Так же следует обратить внимание на то, что все объекты должны содержаться внутри категорий.

В стандартной поставке существуют следующие категории со стандартными иконками:

АЗС | Детям | Парковки
Аптеки | Инфоматы | Православные храмы
Аэропорты | Католические храмы | Рестораны
Больницы, поликлиники | Кафе, бистро | Синагоги
Ведомства | Колледжи | Спортивные площадки
Вокзалы | Метро | Стадионы
Вузы | Мечети | Театры
Выставки, выставочные залы | Музеи | Школы
Гостиницы | Памятники | Ярмарки
Детские сады | Парки |

Значение 0 позиции иконки соответствует маркеру/иконке по умолчанию. Все остальные иконки идут, начиная со значения 30. То есть 30 – иконка для АЗС, 60 – для аптек, 210 – для ВУЗов, 870 – для ярмарок.

Все стандартные иконки можно посмотреть в каталоге модуля /install/images/bitrix.map.


Настройки модуля
354 / 363

Примечание: Обратите внимание на два информационных поля , которые появятся сразу после установки модуля:
  • Для корректной работы нового функционала компонента map.map следует использовать шаблон modern, mobile_modern или mobileapp_modern.
  • Для корректного отображения не рекомендуется выводить на карте описание объектов длиной более 100 символов.

Настройки модуля

Модуль настраивается в шести вкладках. Часть настроек является общей для всего продукта, часть делится по сайтам и по версиям карты.

  • Вкладка "Настройка"
  • Вкладка "Интерфейс"
  • Вкладка "Значки и цвета"
  • Вкладка "Геокодирование"
  • Вкладка "API-ключи"
  • Вкладка "Доступ"
    •

    Вкладка "Настройка"

    Здесь собраны основные настройки модуля.

    Параметры по умолчанию
    • Высота карты, пикселей - Высота карты по умолчанию. Это значение будет подставляться в параметры компонента при установке его на страницу. Так же это значение будет использовано, если параметр компонента не задан (пустая строка). Доступно только для десктоп-версии. Параметр скрипта - mapHeight.
    • Высота верхнего тулбара, пикселей - Высота верхней области под служебные области управления. Это значение будет подставляться в параметры компонента при установке его на страницу. Так же это значение будет использовано, если параметр компонента не задан (пустая строка). Доступно только для мобильной версии. Параметр скрипта - barHeight.
    • Высота верхней области детальной информации, пикселей - Высота верхней области детальной информации об объекте, маршруте, событии. Это значение будет подставляться в параметры компонента при установке его на страницу. Так же это значение будет использовано, если параметр компонента не задан (пустая строка). Доступно только для мобильной версии. Параметр скрипта - plateHeight.
    • Высота области информации о количестве объектов по одному адресу, пикселей - Высота видимой части панели выбора объектов в случае совпадения их координат. В случае совпадения координат у нескольких объектов маркер меняет свой вид, и показывается краткая информация одного из них. Для выбора другого объекта следует вытянуть за эту часть всю панель целиком, в которой и находится полный список всех объектов, находящихся по этому адресу. Параметр скрипта - fewObjectsHeight.

    Настройки анимации
    • Время анимации контейнера, мс - Время анимации при передвижении панелей. Этот параметр лучше не менять без особой на то необходимости. Используется только в десктоп-версии. Параметр скрипта - animationTime.
    • Время плавного вертикального движения, мс - Используется при отпускании плашки с краткой информацией для плавного вертикального движения блока с подробной информацией об объекте в нужное положение. Доступно только для мобильной версии. Параметр скрипта - itemTime.
    • Время плавного горизонтального движения, мс - Используется для плавного горизонтального движения блока со списком и формой прокладки маршрута. Доступно только для мобильной версии. Параметр скрипта - listTime.

    Загрузка скриптов
    • Максимальное время ожидания загрузки пула скриптов, мс - Используется как для загрузки основных скриптов компонента для построения интерфейса и его обслуживания, так и загрузки скриптов, указанных для выбранного типа карты. По истечении этого времени проверяется состояние загрузки и, при наличии незагруженных скриптов, загрузка прекращается. Параметр скрипта - responseTime.
    • Минимальное время ожидания загрузки контента, мс - Во избежание резкой смены элементов интерфейса некоторые действия намеренно ставятся в очередь с указанной отсрочкой. Это означает, что отдельные изменения интерфейса не будут осуществляться раньше, чем указанное время. Это используется при отправке/получении запросов и обработке полученной информации. Параметр скрипта - loadTime.
    • Режим "Без карты" - Такой режим означает, что компонент осуществляет навигацию, не используя слой карты, отображая только текстовую и графическую информацию.

    Прокладка маршрута

    Разделы Прокладка маршрута Яндекс.Карт и Прокладка маршрута Google Maps позволяют указать виды транспорта, которые пользователь может выбрать при прокладке маршрута. Виды транспорта зависят от типа карт.

    Вкладка "Интерфейс"

    Здесь настраиваются строковые константы интерфейса карты. Вы можете настроить их сразу для всех сайтов (по умолчанию) или задать индивидуальные значения для каждого сайта.

    Вкладка "Значки и цвета"

    В этой вкладке устанавливаются значки маркеров, цвета и параметры линий маршрутов, параметры кластеризации.

    Для маркеров используются спрайты. Вы можете загрузить свой файл со спрайтом и настроить расположение значков маркеров в нем, указав размер иконок. Параметр Точка привязки отвечает за расположение точки привязки маркера к точке с координатами на карте.

    Для линий маршрутов вы можете настроить цвет, толщину и прозрачность для каждого из состояний.

    Примечание: Настройки различаются для десктоп и мобильной версий.

    Вкладка "Геокодирование"

    Здесь можно настроить автоматическое геокодирование адресов в координаты (широту и долготу). Геокодирование может быть применено к любому инфоблоку.

    Настройка заключается из последовательного выбора:

    • Инфоблока, для которого применяется геокодирование;
    • Свойства, в котором хранится текстовый адрес (он будет геокодирован);
    • Свойств, в которые будут сохранены долгота и широта;
    • Сервиса, который будет использоваться для геокодирования.

    Внимание! Если при добавлении элемента в инфоблок, для которого настроено геокодирование, вручную задать значения долготы и широты, то данные значения не будут перезаписаны.

    Вкладка "API-ключи"

    На этой вкладке вводятся ключи для работы с Google Maps и Яндекс.Карты.

    Google Maps

    Чтобы получить ключ нужно выполнить следующие шаги:

    1. Перейти по адресу https://code.google.com/apis/console, осуществить вход в свой аккаунт или же зарегистрировать новый аккаунт Google.
    2. Создать проект (в названии проекта можно указать название домена, например yoursite.com).
    3. Перейти в раздел Библиотека. В этом разделе находятся все API, которые можно подключить. Для использования компонента Google Maps используем пункт Google Maps JavaScript API. Подключим API, используя кнопку Включить.
    4. Далее необходимо получить сам ключ. Переходим в раздел Учетные данные.
    5. Нажимаем Создать учетные данные и выбираем пункт API Key.
    6. Ключ будет создан и появится во всплывающем окне. Копируем ключ и вставляем в поле выше.

    Яндекс.Карты

    Обратите внимание, получение ключа требуется для использования платной версии Яндекс.Карт.

    Чтобы получить ключ нужно выполнить следующие шаги:

    1. Перейти по адресу developer.tech.yandex.ru, осуществить вход в свой аккаунт или же зарегистрировать новый аккаунт Яндекс.
    2. Нажать кнопку Получить ключ, ввести название ключа (в названии можно указать название домена, например yoursite.com) и выбрать API Яндекс.Карт.
    3. Заполняем форму и нажимаем кнопку Отправить.
    4. Далее необходимо подписать лицензионный договор с Яндексом, подробности которого вам придут на почту.

    Внимание! Для установки модуля на продукт "Битрикс24" необходимо получить коммерческую версию карт.

    Вкладка "Доступ"

    Данная вкладка позволяет настроить права доступа к настройками модуля.


Заполнение объектов
355 / 363

Заполнение объектов

Данные объектов заполняются в административном разделе через редактирование элементов инфоблока Объекты, либо через созданный вами интерфейс для работы с элементами этого инфоблока. Разделы инфоблока соответствуют категориям, по которым объекты группируются на карте. Элементы инфоблока соответствуют самим объектам.

Нажмите на рисунок, чтобы увеличить

Для появления объекта на карте у него должны быть заполнены следующие свойства: Название, Широта, Долгота. Все остальные свойства, показанные на рисунке ниже, носят информативный характер и не являются обязательными для заполнения.

При использовании Геокодирования достаточно ввести только адрес объекта в соответствующее поле. При условии правильной настройки Геокодирования, после сохранения параметров объекта координаты для него будут автоматически добавлены в соответствии с указанным адресом.

Если заполнено фото и/или описание на вкладке Анонс - они так же будут выведены во всплывающем описании при клике на объект на карте.

Внимание! При первом открытии карта автоматически масштабируется, чтобы вмещать все объекты. Если вы заполняете объекты для одного конкретного города, но на карте видите всю область или половину страны, то вам нужно проверить правильность введенных координат. В частности подобные проблемы могут возникать при автоматическом определении координат по адресу через различные сервисы.

Примечание: Если вы создали объект, но он не выводится на карте, то вам так же нужно проверить правильность заполнения координат. Координаты должны быть в таком же виде, как показано на рисунке выше.


Заполнение туристических маршрутов
356 / 363

Заполнение туристических маршрутов

Данные туристических маршрутов заполняются в административном разделе через редактирование элементов инфоблока Туристические маршруты. Разделы инфоблока соответствуют самим маршрутам, а элементы инфоблока соответствуют точкам этих маршрутов.

Нажмите на рисунок, чтобы увеличить

У маршрута есть два дополнительных поля:

  • Тип маршрута - используется для группировки маршрутов, как и категории для объектов.

    Про настройку типов маршрутов более подробно написано в главе Предварительная настройка.

  • Замкнутый маршрут — используется, если точки начала и конца маршрута совпадают. Если опция отмечена, то линия маршрута будет автоматически продолжена до начальной точки.

Точки маршрутов заполняются внутри маршрута аналогично объектам. При построении линии маршрута точки будут выводиться в порядке увеличения значения поля Сортировка. При открытии карты маршруты неактивны. При выборе одного из маршрутов линия меняет цвет, и на ней начинают отображаться точки. При клике на точку маршрута будут выведены её адрес и описание.


Заполнение событий
357 / 363

Заполнение событий

Данные событий заполняются в административном разделе через редактирование элементов инфоблока События. Разделы инфоблока при выводе данных на карту не используются. Элементы инфоблока соответствуют самим событиям.

События заполняются точно так же как объекты и точки маршрутов, но есть одно отличие: для события обязательно должны быть заполнены поля Начало активности и Окончание активности.

В зависимости от этих полей события автоматически группируются по категориям:

  • Идут сейчас;
  • Будущие;
  • Прошедшие.


Вывод карты в публичной части
358 / 363
Карта выводится традиционным для сайтов на CMS "1С-Битрикс: Управление сайтом" способом - компонентом Карта (bitrix:map.map) .


Основная информация
359 / 363

Карта выводится традиционным для сайтов на CMS "1С-Битрикс: Управление сайтом" способом - компонентом Карта (bitrix:map.map) .

В вашем распоряжении три шаблона:

  • modern для использования в версии сайта для обычных компьютеров и планшетов, включает себя новые режимы отображения (используется с типом представления данных "Объекты").
  • mobile_modern – улучшенная версия шаблона mobile для использования в версии сайта для мобильных телефонов.
  • mobileapp_modern – улучшенная версия шаблона mobileapp для использования в версии сайта для мобильного приложения.

    • Примечание: Ранее в стандартной поставке этот компонент имел шесть шаблонов (дополнительные шаблоны: .default, mobileapp, mobile). Эти шаблоны не рекомендуется использовать в новых установках, т.к. они уже не поддерживаются и не обновляются (они оставлены для тех клиентов, которые уже пользуются данными шаблонами).

    Список всех шаблонов (в т.ч. и устаревших)
    • .default для использования в версии сайта для обычных компьютеров и планшетов.
    • mobileapp для использования в версии сайта для мобильного приложения.
    • mobile для использования в версии сайта для мобильных телефонов.
    • modern для использования в версии сайта для обычных компьютеров и планшетов, включает себя новые режимы отображения (используется с типом представления данных "Объекты").
    • mobileapp_modern – улучшенная версия шаблона mobileapp.
    • mobile_modern – улучшенная версия шаблона mobile.

    Шаблон .default рассчитан на использование всей ширины страницы. Если у вас в шаблоне есть правая или левая колонка с меню или другими блоками, то вам потребуется отредактировать шаблон сайта так, чтобы на странице с картой эти колонки убирались. В противном случае карта может отображаться не правильно.

    В параметрах компонента карты вам нужно задать:

    • Тип и код информационного блока;
    • Представление данных (объекты / маршруты / события);
    • Тип карты (Google/Яндекс);
    • Высоту области с картой;
    • Адрес для AJAX (для шаблонов modern_*, указано значение по умолчанию).

    Внимание! Если данные на карте не отображаются – проверьте правильность значений параметров Код информационного блока и Представление данных. Объекты, события и маршруты имеют разную структуру хранения и если тип данных не соответствует – скорее всего, вы получите пустую карту, либо ошибку.

    Также следует проверить, чтоб в разделе Свойства элементов карты были правильно указаны требуемые свойства в зависимости от типа данных, выбранных ранее в пункте Представление данных.

    Особенности применения шаблона modern

    В параметрах компонента для шаблона modern доступна новая опция Карта на весь экран. При ее включении будет выведено уведомление о том, что пользователю нужно самостоятельно разместить "кнопку", отвечающую за показ карты. Так же будут отображены два параметра: Разворачивать на весь экран сразу и Использовать скользящие панели (подробнее про организацию работы в полноэкранном режиме можно посмотреть на странице Полноэкранный режим отображения карты.

    Карта автоматически позиционируется, чтобы вместить все заполненные объекты. Если при открытии раздела карта показывает не только ваш город, а половину страны или весь мир — значит, координаты как минимум для одного из объектов при заполнении были введены неверно.

    Особенности применения шаблонов для мобильной версии

    При использовании шаблона для мобильной версии появляется два обязательных для заполнения параметра: Адрес для AJAX и Ссылка на страницу с прокладкой маршрута.

    Этот параметр содержит путь к скрипту для ajax запроса текстового описания выбранного на карте объекта.

    Пример кода стандартного скрипта для получения описания

    <?
define("NO_KEEP_STATISTIC", true);
define("BX_STATISTIC_BUFFER_USED", false);
define("NO_LANG_FILES", true);
define("NOT_CHECK_PERMISSIONS", true);
define("BX_PUBLIC_TOOLS", true);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
Cmodule::IncludeModule("iblock");

function fixEncoding($value)
{
    return \Bitrix\Main\Config\Configuration::getValue("utf_mode") ? $value : \Bitrix\Main\Text\Encoding::convertEncoding($value, LANG_CHARSET, "utf-8");
}

if (!empty($_GET["item"]))
{
switch ($_GET["type"])
    {
        case "routes":
            $rsObject = CIBlockSection::GetList(
                array(),
                array("ID" => substr($_GET["item"], -(strlen($_GET["item"]) - 1)))
            );
            if ($arObject = $rsObject->GetNext())
            {
                echo "<p>" . $arObject["DESCRIPTION"] . "</p>";
            }
            break;
        default:
            $rsObject = CIBlockElement::GetList(
                array(),
                array("ID" => substr($_GET["item"], -(strlen($_GET["item"]) - 1))),
                false,
                false,
                array("PREVIEW_TEXT", "DETAIL_TEXT")
            );

            if ($arObject = $rsObject->GetNext())
            {
                echo "<p>" . !empty($arObject["DETAIL_TEXT"]) ? $arObject["DETAIL_TEXT"] : $arObject["PREVIEW_TEXT"] . "</p>";
            }
    }
}
else if (!empty($_GET["cat"]))
{
    switch ($_GET["type"])
    {
        default:
            $rsCategory = CIBlockSection::GetList(
                array(),
                array("ID" => substr($_GET["cat"], -(strlen($_GET["cat"]) - 1)))
            );
            if ($arCategory = $rsCategory->GetNext())
            {
                $arSelect = array("NAME", "IBLOCK_SECTION_ID", "PREVIEW_PICTURE", "PREVIEW_TEXT");
                foreach ($_GET["prop"] as $code)
                {
                    $arSelect[] = "PROPERTY_" . $code;
                }
$rsObjects = CIBlockElement::GetList(
                    array(),
                    array("SECTION_ID" => $arCategory["ID"], "!PROPERTY_" . $_GET["prop"]["latitude"] => false, "!PROPERTY_" . $_GET["prop"]["longitude"] => false),
                    false,
                    false,
                    $arSelect
                );
                $result = array();
                while ($arObject = $rsObjects->GetNext())
                {
                    $result[] = array(
                        "name"        => fixEncoding($arObject["NAME"]),
                        "address"     => fixEncoding($arObject["PROPERTY_" . $_GET["prop"]["address"] . "_VALUE"]),
                        "photo"       => CFile::GetPath($arObject["PREVIEW_PICTURE"]),
                        "url"         => $arObject["PROPERTY_" . $_GET["prop"]["link"] . "_VALUE"],
                        "description" => fixEncoding($arObject["PREVIEW_TEXT"]),
                        "opening"     => fixEncoding($arObject["PROPERTY_" . $_GET["opening"] . "_VALUE"]),
                        "lat"         => $arObject["PROPERTY_" . $_GET["prop"]["latitude"] . "_VALUE"],
                        "lng"         => $arObject["PROPERTY_" . $_GET["prop"]["longitude"] . "_VALUE"],
                        "cat"         => "s" . $arObject["IBLOCK_SECTION_ID"]
                    );
                }
                echo json_encode($result);
            }
    }
}
?>

    Ссылка на страницу с прокладкой маршрута содержит путь к странице с размещенным на ней компонентом map.routing.


Отображение объектов, туристических маршрутов, событий
360 / 363

Отображение объектов, туристических маршрутов, событий

Рассмотрим, как выглядят на карте созданные объекты, туристические маршруты и события.

Вывод объектов

Объекты выводятся с группировкой по категориям. Каждой категории соответствует определенная иконка и тип маркеров, которые задаются через свойство Позиция иконки. При выборе одной или нескольких категорий их объекты будут отображены на карте соответствующими маркерами. Быстро снять выделение поможет кнопка под списком категорий - Отменить выбор.

Если вас интересует какой-то конкретный объект, но вы не знаете, в какой категории его искать, то можно воспользоваться возможностями поиска по названию объекта. При этом в списке категорий останутся только те, в которых содержатся объекты, удовлетворяющие условиям поиска.

Для просмотра информации об объекте кликните на один из маркеров на карте. Так же вы можете открыть текстовый список всех выбранных вами объектов, нажав на кнопку Объекты.

Вывод туристических маршрутов

Отображение маршрутов на карте имеет следующий вид:

Вывод событий

Отображение событий на карте имеет следующий вид:


Особенности мобильной версии карт
361 / 363

Особенности мобильной версии карт

Т.к. в мобильной версии на карту выводятся не все маркеры, а только указанного раздела, вместе с модулем поставляется специальный шаблон для компонента Структура раздела(catalog.section.list), который позволяет вывести категории объектов.

Для удобства размещения и настройки был разработан комплексный компонент Карта мобильная(map.objects.mobile), который содержит в себе три страницы: список разделов, карту и прокладку маршрута (в Событиях категории отсутствуют).

Параметры и принцип настройки полностью аналогичен компоненту map.map.


Полноэкранный режим отображения карты
362 / 363

Полноэкранный режим отображения карты

Для вывода карты в полноэкранном режиме достаточно разместить «кнопку», отвечающую за перевод в этот режим отображения, и в параметрах компонента установить опцию Карта на весь экран:

При этом станут доступны два дополнительных параметра: Разворачивать на весь экран сразу и Использовать скользящие панели:

  • Разворачивать на весь экран сразу - при включении этой опции карта в полноэкранном режиме открывается сразу же при загрузке страницы. В случае если параметр отключен, карта будет скрыта, и в этом случае для отображения карты необходимо разместить элемент со специальным атрибутом для отображения слоя с картой.
  • Скользящие панели - в случае включения этого параметра, данные выводятся в режиме с тремя панелями: категории – подкатегории – объекты. В этом интерфейсе при клике на маркер информация об объекте размещается как четвёртая панель, позволяя размещать любое количество информации.

    Структура категорий (разделов инфоблоков) для этого режима строго предполагает использование 2-х уровней вложения категорий:

    В случае отсутствия у категории родительской, будет сформирована искусственная категория с названием, определенным в параметре компонента.

Примечание: Подробнее про работу с категориями и полноэкранный режим карты можно посмотреть в документации для разработчиков.


Пример создания маршрута
363 / 363

Пример создания маршрута

Рассмотрим пример создания небольшого маршрута на карте.

Маршрут мы будем строить уже на основе установленного модуля с демо-данными. Это позволит сократить объем работы по созданию пользовательских свойств инфоблоков и проведения прочих настроек, необходимых для работы модуля.

  • Создание маршрута
  • Создание точек маршрута
  • Настройка компонента и вывод карты

Создание маршрута

В инфоблоке Туристические маршруты (Карта > Туристические маршруты) сделаем неактивными все существующие демо-маршруты, чтобы они не мешали строить свой собственный маршрут в другом городе.

Затем с помощью соответствующей кнопки, создадим новый маршрут:

Затем произведем его настройку:

  • На вкладке Маршрут укажем название (в нашем случае Центр города) .
  • На вкладке Доп. поля необходимо выбрать тип маршрута (в нашем случае Пешеходный) и является ли он замкнутым (в нашем случае - нет):

Создание точек маршрута

Для построения маршрута на карте необходимо создать точки. Для этого перейдем к созданному маршруту и воспользуемся соответствующей кнопкой:

Затем произведем настройку:

  • На вкладке Точка маршрута укажем Название, Сортировку, Координаты и Адрес:

    Поля Название и Координаты обязательно должны быть заполнены.

    Поле Сортировка в последующем позволит строить маршрут из точек на карте в требуемой последовательности.

  • На вкладке Анонс добавим Картинку и Описание.

Создадим остальные точки маршрута по схеме указанной выше.

Настройка компонента и вывод карты

Для вывода карты на отдельной странице разместим и настроим компонент Карта (bitrix:map.map):

  • В секции Основные параметры укажем следующие значения параметров:
    • Тип информационного блока - [bx_map] Карта - выберем тип инфоблока, используемый модулем Интерактивная карта объектов (в нашем случае это [bx_map] Карта, который уже создан вместе с демо-данными).
    • Код информационного блока - Туристические маршруты - инфоблок, который используется для хранения маршрутов.
    • Представление данных - Маршруты - укажем, что на карте будет использоваться режим отображения именно маршрутов.

  • В секции Источник данных для параметра Поле для первой сортировки элементов выберем значение Сортировка.

    Это позволит расположить точки маршрута на карте в последовательности, согласно значению Сортировка, которое заполнялось ранее, при их создании.

  • В секции Свойства элементов карты для параметров проверить и указать все соответствующие свойства.

    В нашем случае это будут:

    • Тип маршрута - UF_ROUT_TYPE;
    • Замкнутый маршрут - UF_CLOSED;
    • Широта - [LAT] LAT;
    • Долгота - [LNG] LNG;
    • Адрес - [ADDRESS] ADDRESS.

После всех действий на странице будет отображена карта с маршрутом на основе созданных точек:


Администратор. Модули
0 / 363

Для кого этот курс?

Курс предназначен пользователям, администририрующим сайты на платформе "1С-Битрикс: Управление сайтом". Курс Администратор. Модули позволяет освоить методы выполнения расширенных задач по администрированию модулей не относящихся к коммерческой деятельности .

Получаемые навыки:

  • методы работы с модулями системы некоммерческого плана;
  • работа со специальными инструментами: Push&Pull, Служба сообщений и другие ;
  • работа с модулями, обеспечивающим общение пользователей: форум, блоги и другие;
  • организация документооборота и бизнес-процессов;
  • настройка инструментов Веб-аналитики;
  • и другие.

Начальные требования

Необходимый минимум знаний для изучения курса:

  • базовые навыки компьютерной грамотности и навыков работы с ОС Windows;
  • базовые знания о WWW и организации доступа к веб-серверу;
  • знание системы в рамках курса Контент-менеджер , чтобы банально не путаться в интерфейсе.
  • знание системы в рамках курса Администратор. Базовый

Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.

Тесты и сертификат

После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.

Комментарии к урокам

На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий - не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 4 дня (32 академических часа).

Если нет интернета

Экономите время и учитесь по дороге на работу или в ВУЗ? Для этого нужны файлы. Мы предоставляем две возможности оффлайнового изучения: файлы в формате PDF и CHM, они открываются на любых устройствах. Программы для чтения доступны в AppStore и Play Market. Файлы обновляются периодически, но всё равно будут отставать от онлайновой версии курса. Поэтому, всё же, мы рекомендуем он-лайн версию курсов, тем более, что мобильный интернет сейчас не проблема.

Скачать материалы курса в формате PDF .

Скачать материалы курса в формате CHM .

Если не видно содержание файла CHM
Внимание! Если вы не видите содержимое файла формата .chm, то причина - настройки безопасности операционной системы: скачанные из интернета файлы находятся под наблюдением системы, которая ограничивает доступ к ним.

Чтобы отключить подобное отношение к файлу необходимо:

  • перейти в свойства файла на вкладку Общие. Внизу у Вас отобразится сообщение о том, что этот файл был заблокирован системой с целью защиты компьютера.

  • нажать кнопку Разблокировать.

Отсутствие кнопки Разблокировать возможно в двух случаях:

  1. Файл лежит не локально, а на сетевом ресурсе.
  2. Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).

Как проходить учебный курс?

Просмотр видео в наших курсах в формате CHM невозможен. Ролик можно просмотреть на сайте компании «1С-Битрикс».