Головна особливість модуля в тому, що він дозволяє створювати всілякі списки прямо з публічної частинисайту. Не заходячи в «адмінку», ви створите свої довідники, переліки, реєстри тощо та заповніть їх даними. Робити це - створювати інтерфейс та налаштовувати
зовнішній вигляд списків ви будете за допомогою зручних візуальних інструментів. А, увімкнувши в налаштуваннях модуля підтримку Бізнес-процесів, Ви організуєте та впорядкуєте колективну роботу зі списками.
![]() | Можливості модуля:
|
Включення бізнес-процесів
Допустимо, у вас буде потреба організувати прийом веб-формна сайті від бізнес-партнерів. При цьому, звичайно, не захочете надати доступ до адміністративної частини стороннім користувачам. Готовий механізм «Універсальних списків» і дозволяє вже наявний Інфоблок з великим обсягом накопичених даних подати в «публічці» і дати партнерам можливість шукати по ньому, фільтрувати інформацію. Тобто, партнери тільки працюватимуть з даними списків і додаватиму до них записи.
Модуль «Універсальні списки» – це практичне рішення «Гриди + Інфоблоки». За допомогою цього рішення ви можете налаштувати на сайті роботу з найрізноманітнішими списками - з будь-якими даними, з будь-яким джерелом. Задіяна в модулі технологія Гридов успішно дозволяє це робити - створювати FAQ, довідники та бази знань, списки контрагентів, структуровані архіви, бібліотеки, файлові сховища та інше.
Модуль "Універсальні списки" - досить потужний та функціональний. Його можна успішно використовувати для надання користувачам сайту можливості додавати та редагувати свої елементи інфолоку в публічній частині. Однак принцип роботи з ним дуже відрізняється від того, до чого ми звикли, працюючи, наприклад, з компонентом "Додавання елементів інфоблоку". Насамперед це стосується налаштування прав доступу. У цій статті я розповім як налаштувати модуль для виконання завдання, аналогічного тому, яке раніше вирішувалося за допомогою компонента "Додавання елементів інфоблоку", тобто. щоб користувач міг додавати елементи інфоблоку, та редагувати елементи, але тільки додані ним самим, з можливістю модерації редактором сайту.
1. Створюємо тип інфоблоку
Т.к. комплексний компонент "Універсальні списки" (bitrix:lists) не працює з окремими інфоблоками, створюємо тип інфоблоку "Компанії".
2. Налаштовуємо тип інфоблоку для роботи з універсальними списками
Для цього заходимо в налаштування модуля "Універсальні списки" (Налаштування > Установки продукту > Установки модулів > Універсальні списки) та на вкладці "Права доступу" дозволяємо групі "Адміністратори" керувати списками у створеному типі інфоблоку "Компанії".
Цей крок є обов'язковим, т.к. без нього при розміщенні компонента наш тип інфоблоку не з'явиться у списку, що випадає, в параметрах компонента.
3. Розміщуємо компонент
Створюємо на сайті розділ і розміщуємо в ньому компонент "Універсальні списки".
У параметрах компонента вибираємо наш тип інфоблоку та включаємо підтримку ЧПУ (у режимі не-ЧПУ особисто мені не вдалося змусити компонент працювати).
Додаємо інфоблок (список)
Після розміщення компонента ми побачимо на сторінці панель з однією кнопкою "Додати". За допомогою неї ми зможемо додати інфоблок.
Натискаємо кнопку "Додати". Відкриється форма додавання інфоблоку.
На вкладці "Доступ" встановлюємо для групи "Зареєстровані користувачі" право "Додати", а для категорії користувачів "Автор" - право "Зміна". Остання дасть можливість користувачеві редагувати свої елементи. Якщо ж встановити для групи "Зареєстровані користувачі" право "Зміна", то користувач зможе редагувати всі елементи інфоблоку, а не лише свої. Замість групи "Зареєстровані користувачі" можна також використовувати категорію "Всі авторизовані користувачі".
Примітка: Інфоблок також можна додати через адміністративну частину бітрикс, якщо увімкнути розширені права доступу.
Після виконання цих дій користувачі групи "Зареєстровані користувачі" побачать наступне на головній сторінці розділу:
При виборі інфоблоку (списку) Компанії, користувачу буде доступний список його елементів.
При натисканні кнопки "Додати компанію" відкриється форма редагування:
Додавання полів
Інтерфейс додавання полів один для власне полів та властивостей інфоблоку. При цьому можна встановити власну назву для будь-якого поля, як і в компоненті "Додавання елементів інфоблоку".
Надсилання повідомлень та затвердження
Надсилання повідомлень адміністратору сайту та затвердження документів під час роботи з універсальними списками зазвичай здійснюється за допомогою бізнес-процесів. Т.к. використовувати стандартні бізнес-процеси в даному випадку не є зручним, то доведеться створити свій бізнес-процес. Можна також використовувати замість бізнес-процесів модуль "Документообіг", але налаштовувати інфоблок працювати з документообігом доведеться через адміністративну частину бітрикс, т.к. у компоненті "Універсальні списки" такої можливості немає).
Для використання бізнес-процесів зі списком (інфоблоком), у налаштуваннях списку має бути встановлена галочка "Включити підтримку бізнес-процесів". Тоді для адміністратора на панелі інструментів списку з'явиться кнопка "Бізнес-процеси".
Після натискання кнопки ми побачимо список шаблонів бізнес-процесів.
Натискаємо кнопку "Створити послідовний бізнес-процес". Відкриється сторінка редагування шаблону бізнес-процесу.
Це трохи модифікований стандартний бізнес-процес "Твердження по першому голосу". Т.к. стандартний механізм публікації використовувати не вдалося - при знятті з публікації елементи не відображаються в списку (навіть під адміном), я використовував замість блоків "Публікація"/"Зняття документа з публікації" блоки "Зміна документа" з простою активацією/деактивацією. Крім того, замість поштових повідомлень я використовував повідомлення соцмережі.
У параметрах шаблону встановлюємо галочку "Автоматично запускати при додаванні".
Якщо ж встановити галочку "Автоматично запускати при зміні", процес буде запускатися користувачем при зміні елемента. Або можна створити для цього окремі бізнес-процес, який функціонуватиме за іншим сценарієм, наприклад, не деактивувати елемент, а просто надсилати повідомлення редакторам сайту.
Примітка: майте на увазі, що якщо для групи користувачів не встановлений доступ до списку (інфоблоку) хоча б "Читання", то ця група не з'явиться в діалозі вибору груп користувачів у дизайнері бізнес-процесів, і ви не зможете, наприклад, запрограмувати відправлення повідомлення цій групі.
Виправлення шаблону компонента
Редагування шаблону компонента в нашому випадку буде зводиться в основному до спрощення та відключення зайвого функціоналу.
Наприклад, щоб змінити вигляд списку за замовчуванням (за замовчуванням відображаються всі колонки полів, колірна схема - синя), додамо в шаблон компонента lists.list у файл result_modifier.php, наступний код:
$aOptions = CUserOptions :: GetOption ("main.interface.grid" , $arResult [ "GRID_ID" ], array()); $aOptions ) ( $aOptions = array ( "views" => array ( "default" => array ( "name" => "<Представление по умолчанию>" , "columns" => "NAME,BIZPROC" , "sort_by" => "NAME" , "sort_order" => "asc" , "page_size" => "20" , "saved_filter" => "" , ), ), "filters" => array ( ), "current_view" => "default" , "filter_rows" => "list_section_id" , "theme" => "grey" , ); CUserOptions :: SetOption ("main.interface.grid", $arResult ["GRID_ID"], $aOptions); |
Цей код встановить виведення лише колонок "Назва", "Бізнес-процеси", сіру колірну схему та ін. Якщо ж користувач уже вибирав колонки або щось інше, його вибір не буде змінено.
У тому ж файлі result_modifier.php приберемо посилання на бізнес-процес у списку, залишаємо лише назву. Саму назву колонки "Бізнес-процеси" змінюємо на "Статус". Таким чином, у цій колонці буде відображатися статус бізнес-процесу, наприклад, ми можемо в самому бізнес-процесі встановлювати статуси "На модерації", "Опубліковано", "Відхилено".
Щоб усунути можливість запуску бізнес-процесу з контекстного меню, в тому ж файлі вставляємо код:
foreach($arResult [ "ELEMENTS_ROWS" ] as $i => $arRow ) ( $arActions = Array(); $arRow [ "actions" ] as $a => $arAction ) if(! $arAction [ "MENU" ]) $arActions = $arAction ; $arResult [ "ELEMENTS_ROWS" ][ $i ][ "actions" ] = $arActions ; |
array("id" => "tab_se" , "name" => $arResult [ "IBLOCK" ][ "SECTION_NAME" ], "icon" => "" , "fields" => $arTabSection ), |
Загалом використання модуля "Універсальні списки" для вирішення цього простого завдання не є виправданим і навіть зручним (довелося виконувати занадто багато дій, не обійшлося без виправлення шаблону компонента). Компонент "Додавання елементів інфоблоку" набагато краще підходить для цього, якби не одне але - цей компонент більше не підтримується компанією 1С-Бітрікс, і найпростіші речі доводиться допрацьовувати майже з нуля. Тому у багатьох випадках описаний метод може мати переваги.
Хочеться представити дуже важливий для багатьох розробників функціонал, який знайде (і вже знаходить) широке застосування в продуктах "1С-Бітрікс" - як в "Управлінні сайтом", так і в "Корпоративному порталі". Особливо важливий, якщо врахувати актуальну тенденцію теперішнього часу – що сайт зараз – не просто сайт, як презентація компанії, а все більше як бізнес-додаток, як функціонал для організації взаємодії з партнерами та клієнтами. Йтиметься про Універсальні списки, що використовують технологію Гридів. Про самих Грід ми поговоримо небагато - тільки на рівні "що це таке". Докладніше зупинимося на Універсальних списках - про те, як саме використовується "кухня" Гридів у цьому модулі, чому це сильно спрощує роботу веб-розробника зі створення усіляких списків на сайтах, а користувачеві дозволяє з ними працювати легко та зручно.
Трохи про Гриди
На техпідтримку «1С-Бітрікс» постійно надходять питання на тему: "А як би ось те, що в "адмінці" та винести "на вулицю" - людям?" Справді, як уявити у "публічці" якийсь функціонал, наприклад, універсальні гриди? І не просто уявити, а й дати можливість вводити туди дані?
При розробці нового продукту - "Корпоративний портал" розробники "1С-Бітрікс" зіткнулися з тим, що всі публічні інтерфейси вийшли розрізненими. І тільки тому, що не було інструмента створення однотипного інтерфейсу. Рішенням стали візуальні Гриди – набір компонентів ядра для створення уніфікованого інтерфейсу. Що ж це за Гриди, що треба знати про них? Це насамперед інструмент розробника! Це не компонент користувача, тому ніякого сенсу в додаванні його на сторінку проекту через дерево компонентів немає. Це API для розробника – для того, щоб він представляв свої дані.
Багатофункціональний компонент для відображення списків
У вас може скластися помилкове уявлення про Гриди, що вони можуть виводити лише інфоблоки. Це зовсім не так - Гриди можуть працювати з абстрактними даними і виводити все, що їм "підсовують". Також Гриди навантажені типовим функціоналом для роботи зі списками та формами. Тобто те, що є загальним моментом, гриди полегшують та спрощують. І одна з відмінних рис гридів - це те, що вони надають досить широкі можливості кастомізації для користувача - "під себе". Це означає, що кожен з користувачів може виконати свої налаштування Гридів, які будуть зручні лише для нього.
Налаштування власних уявлень
Як виглядає загальна схема використання Грідів? Оскільки Гриди працюють у публічному розділі, то, швидше за все, ви створюватимете компонент для публічного розділу, який представляє дані, сортує, фільтрує тощо. Щоб представити ці дані, ви в шаблоні свого компонента викликає компонент Гридів, компонент форми і просто передаєте з них дані для відображення. І, якщо необхідно, ви можете використовувати готові компоненти, скажімо один із найпростіших – "тулбар", який ваш тулбар і відображає кнопками.
Універсальні списки
Компоненти гридів впроваджуються у продуктах «1С-Бітрікс», зокрема, Бібліотека документів у «1С-Бітрікс: Корпоративний портал» використовує компоненти гридів, модуль «Бізнес-процеси без документів» використовують гриди. Все це дозволяє користуватися уніфікованим інтерфейсом з одними й тими самими налаштуваннями для користувача та функціональними можливостями. Один із таких модулів, заради якого, власне, і затівалася "кухня" Гридов, це модуль Універсальних списків. Що це за модуль?
Список - Уряд РФ
Часто виникають завдання з супроводу даних у публічному розділі, і для цього досі не було жодних інтерфейсів, крім, природно, адміністративного. Створений модуль є надбудовою для Інфоблоків, організований як публічного комплексного компонента і дозволяє користувачеві внести свої дані у вигляді списку. Компонент працює із зазначеним типом Інфоблоку (у дистрибутиві виведено "Списки"), це за замовчуванням встановлено в налаштуваннях компонента. Це означає, що всі Інфоблоки, що створюються в цьому компоненті, будуть додаватися до цього типу.
Налаштування компонента – тип Інфоблоку
Також можна зазначити, які групи користувачів мають право працювати з нашими універсальними списками. Допустимо, в налаштуваннях для Адміністратора можна встановити, що він може змінювати та додавати розділи та елементи списків. Але так само можна надати це право іншим групам користувачів, наприклад, співробітникам компанії.
Списки, вони ж Інфоблоки
Що ми бачимо на веб-сайті? Власне, перелік Інфоблоків. Тобто, додаючи новий список, наприклад "Партнери", ми додаємо новий Інфоблок. У цьому списку-інфоблоку ми можемо налаштувати підписи, написи до елементів та розділи списку. Наприклад, якщо йдеться про список партнерів, то "Додати елемент" можна перейменувати на "Додати партнера". Власник списку може відразу визначити доступ до свого списку: якійсь групі - читання, якийсь - зміна елементів. Таким чином, можна відразу ж визначитися і налаштувати порядок колективної роботи зі списками, що створюються.
Щоб почати працювати зі списками, потрібно створити сторінку, створити тип Інфоблоку, розмістити на сторінці компонент "Універсальні списки", вибрати тип інфоблоку "Списки" і почати роботу.
У планах розвитку Списків у продуктах «1С-Бітрікс» передбачено таке:
Контроль над списками опустити рівня робочої групи, щоб у межах групи працювати зі своїми списками;
Щоб можна було самостійно створити свій особистий список у своєму профілі. Поки для того, щоб "завести" списки на своїй сторінці, користувач повинен звертатися до адміністратора, щоб той розмістив компонент на його сторінці та налаштував його, після чого зі списками можна починати працювати.
Налаштування полів списку
Що можна настроювати у списку? Про підписи та права ми вже говорили. А найцікавіше, що у списках можна налаштовувати поля! Причому потрібно особливо відзначити, робиться це так само, як ви робили в адміністративному розділі в Інфоблоках. При цьому можна додавати як стандартні поля - такі як Назва, Дата активності, так і властивості Інфоблоку, такі як Число, Дата, Файл, Прив'язка до елементів Інфоблоку. Можна також встановити значення за замовчуванням та використовувати розділи Інфоблоку.
Основні параметри поля
Давайте подивимося, як налаштовується список. Додамо якесь поле. Нехай це буде дата останнього контакту. Додаємо поле, кажемо, що це Дата \ Час, значення за замовчуванням не проставляємо - з'явилося поле, наприклад, "Дата дзвінка". Тепер редагуємо параметри списку та, відповідно, маємо нове поле типу "Дата". Як бачите, ми таким чином можемо гнучко налаштувати свій список, додаючи поля, що нам потрібні, і вести на сайті, скажімо, реєстр якихось документів.
Як ми вже говорили, модуль Списків використовує стандартні можливості Гридів, тобто він підтримує сортування елементів, підтримує фільтрацію елементів, форму редагування елементів та групове редагування\видалення.
Списки + Бізнес-процеси
Ще однією дуже цікавою можливістю Універсальних списків є підтримка вбудованих Бізнес-процесів. У вас у публічному розділі, ймовірно, поки що цього немає. Щоб включити бізнес-процеси до своїх списків, ви повинні перейти в адміністративний розділ цього Інфоблоку і там включити для нього бізнес-процеси.
Бізнес-процеси у списках включаються в адмінці - у властивостях інфоблоку
Використання бізнес-процесів дозволяє організувати на списках серйозні речі. Наприклад, у реєстрі вхідних документів - властивість Лічильник дозволяє автоматично нумерувати всі документи, і ви можете відкрити бізнес-процес, який відправить кінцевий документ на виконавця, який якось реагуватиме на цей документ. Таким чином, можна організувати злагоджену колективну роботу зі списками.
Списки підтримують бізнес-процеси
Приклади використання списків
Модуль Універсальних списків включений у всі редакції «1С-Бітрікс: Корпоративний портал» (www.1c-bitrix.ru/products/intranet/) – зрозуміло, що там він потрібен для ведення списків якогось внутрішнього порядку, наприклад, це можуть бути списки контактів із клієнтами. В "1С-Бітрікс: Управління сайтом" (www.1c-bitrix.ru/products/cms/) модуль присутній у 3-х старших редакціях, починаючи з Бізнесу. Передбачається, що списки будуть використовуватись, наприклад, для створення закритих розділів для бізнес-партнерів. Партнери зможуть у цьому випадку вести свої конфіденційні списки. Тобто ми можемо організувати додатковий сервіс для відвідувачів сайту.
Списки на сайті державної організації
Можна навести приклад конкретніше – організувати прийом веб-форм на сайті. Насправді, веб-форми стають формою введення в елемент інфоблоку. В адміністративній частині ви ведете різні інфоблоки і, природно, не хочете допускати до адмінки різні групи користувачів - там працюють лише ваші контент-редактори. Однак потрібно дати можливість, скажімо, партнерам компанії обробляти дані з цих Інфоблоків – здійснювати пошук за ними, додавати нові записи. Причому робити це потрібно швидко, до того ж саме в "публічці" - без заходу, повторимо, до адміністративного відділу. Тут і приходить на допомогу готовий механізм Універсальних списків, що й дозволяє Інфоблок, що вже наявний, з великим обсягом накопичених даних представити в "публічці" і дати можливість шукати по ньому, фільтрувати інформацію - загалом, працювати з цими даними.
Ще раз нагадаємо, Гриди – це технологія, за допомогою якої ви можете працювати з будь-якими своїми даними, з будь-яким джерелом. Наприклад, ви берете дані з проекту на MySQL, на Грідах організовуєте роботу - введення та обробку цих даних. А ось Списки – це вже практичне рішення "Гриди + Інфоблоки". Як вони пов'язані? Список та Інфоблок - це по суті те саме - ті ж дані, тільки доступні для організації з ними прямо з "публічки".
Отже, за допомогою Універсальних списків ви можете швидко створювати на своєму веб-проекті такі списки, як часті питання. Ще раз підкреслимо – прямо з «публічки» – не заходячи до адміністративної панелі! Візуальний редактор універсальних списків допоможе вам швидко створити та налаштувати сховища будь-якого типу інформації. А задіявши візуальні компоненти за допомогою drag&drop, ви це зробите запросто. Причому зможете не тільки вводити дані в сховища, а й редагувати їх.
Наталія Сергєєва для Softomania
Списки- Зручний інструмент зберігання інформації з власною структурою та полями. Крім того, списки можна автоматично обробляти за допомогою бізнес-процесів.
Створювати списки може лише адміністратор.
Перейдіть на сторінку Спискита натисніть Створити новий.
У вкладці Налаштуваннявкажіть назву списку та його опис.
Введіть значення сортування. Чим нижчою вона буде, тим вище розташовується список серед інших. Додати картинку для вашого списку.
Якщо планується використовувати бізнес-процеси у роботі списків, активуйте опцію Включити підтримку бізнес-процесів.
На закладці Підписиможна вказати власну назву елементів та розділів списку. Наприклад, якщо створюється список Постачальники, варто замінити слово елемент на постачальник, а слово розділ - на група постачальників, тощо.
За допомогою кнопки Додативиберіть потрібну групу або конкретного користувача, для яких хочете змінити права доступу та встановіть їх.
Для того, щоб вивчити додаткові можливості бізнес-процесів, розберемо ситуацію, коли у вашу компанію потрапляє комерційна пропозиція (КП) постачальника, партнера або іншого контрагента.
Насамперед нам треба зрозуміти, що з цим документом робити. Для цього відправляємо його на погодження компетентному співробітнику (експерт), який прийме рішення про подальшу долю КП: воно або видаляється, або зберігається на диск і потрапляє до реєстру для подальшої роботи, або, якщо КП вважається корисним, одразу створюється правочин і починається робота.
Для автоматизації цього бізнес-процесу потрібно вміти працювати зі списками.
У списки бувають 2х видів:
Починаємо роботу над БП із створення двох різних списків:
Відмінність першого списку «Узгодження КП» у тому, що співробітник може максимально швидко надіслати потрібному експерту комерційну пропозицію на узгодження. Тут потрібно лише задати необхідні поля, а саме: