Інтернет Windows Android

1с 8.3 управління видимістю елементів форми. Оптимальне зміна видимості елементів на керованої формі

Ця стаття продовжує цикл статей «Перші кроки в розробці на 1С». Матеріал передбачає, що ви вже ознайомилися з попередніми нашими статтями, присвяченими інтерфейсу. В цей же статті ми продовжимо знайомство з новими можливостями інтерфейсу «Таксі» і розглянемо, які цікаві нововведення отримали керовані форми в цьому інтерфейсі.

застосовність

У статті розглядається інтерфейс «Таксі» конфігурації, розробленої на платформі 1C 8.3.5.1098. Доповнення до поточних релізів платформи (8.3.11) наведені в ув'язненні. Тому вся представлена \u200b\u200bінформація актуальна.

Нове в керованих формах в «1С: Підприємство 8.3»

Розробники платформи «1С: Підприємство 8.3» в черговий раз грунтовно попрацювали над зручністю роботи користувачів з керованими формами.

Введення по рядку

Раніше, в полях введення, при введенні з клавіатури початкових символів, система шукала відповідні елементи.

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

У конфігураторі у довідкових об'єктів метаданих для настройки введення по рядку, була створена окрема закладка "Поле введення":

На ній представлені наступні можливості для формування списку вибору при введенні по рядку:

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

У властивості "Спосіб пошуку рядка при введенні по підрядку" можна вибрати - чи слід шукати тільки по перших символах рядка або в будь-який її частини.

У призначеному для користувача режимі пошук по будь-якій частині рядка виглядає наступним чином: користувач послідовно вводить з клавіатури символи, а система здійснює пошук.

Причому не тільки з перших букв назви, але і по входженню набраної рядка:

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

У файловому режимі поки користувач набирає рядок, пошук проводиться в тлі тільки в тому випадку, якщо в цей момент не виконується інше фонове або регламентне завдання.

Якщо встановлена \u200b\u200bвідповідна настройка, то при введенні даних в полі введення може бути використаний повнотекстовий пошук.

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

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

Результати повнотекстового пошуку, відповідного введеної пошуковому рядку, наведені на малюнку:

Нагадаємо, що в платформі 8.3 з'явилася можливість перевизначити уявлення посилального типу даних за допомогою процедур ОбработкаПолученіяПредставленія і ОбработкаПолученіяПолейПредставленія в модулі менеджера об'єкта.

При спільному використанні цього функціоналу та введення по рядку існує наступна особливість.

Зазначені вище обробники не впливають на уявлення значень в списку вибору - в списку відбивається основне уявлення об'єкта.

Однак після вибору в поле відображається очікуване переопределенное уявлення об'єкта.

Для збільшення натисніть на зображення.

Розробники вважають, що помилок в такій поведінці платформи немає, і що більш цінно показати, чому конкретний результат знайдений (виділити, наприклад, подстроку, по якій об'єкт був знайдений), ніж відобразити відірване від результату пошуку уявлення відповідного значення.

Розглянуті вище властивості введення по рядку задавалися на рівні всього об'єкта метаданих.

У конкретному місці конфігурації розробник може перевизначити ці властивості.

Наприклад, за допомогою обробників подій авто підбором і ОкончаніеВводаТекста конкретного поля введення або за допомогою обробника події ОбработкаПолученіяДаннихВибора в модулі менеджера об'єкта.

Для цього в цих процедурах призначений параметр з ім'ям Параметри типу Структура, у властивостях якої містяться спосіб пошуку рядка, режим отримання даних вибору, настройка використання даних вибору.

Для збільшення натисніть на зображення.

Список, що випадає для поля введення

У платформі 8.3, що випадає для поля введення отримав додаткову функціональність для підвищення зручності роботи з системою.

Тепер цей список може відображати історію обраних раніше значень. Список з історією показується на екрані при установці курсора в поле, при натисканні кнопки Вибрати зі списку, або кнопки на клавіатурі зі Стрілкою вниз.

Включити відображення історії можна у полів введення, пов'язаних з даними типу довідник, документ, бізнес-процес, завдання, план видів характеристик, план видів розрахунку, план рахунків і план обміну. У конфігураторі для цього передбачено властивість, розташоване на закладці "Поле введення":

Для збільшення натисніть на зображення.

Використання історії можна перевизначити для конкретного реквізиту об'єкта або елемента форми.

Крім цього, якщо в списку поля введення користувач не знайшов цікавить елемента, він може натиснути кнопку "Показати всі" для відкриття форми списку, щоб вибрати елемент з усього довідника.

Також в списку поля введення є команда "Створити новий об'єкт". При цьому буде відкрита форма нового елемента.

У цій формі користувач заповнює необхідні поля. Після запису і закриття форми посилання на щойно створений елемент буде підставлена \u200b\u200bв поле введення.

Типовий шаблон використання команди "Створити новий елемент" виглядає наступним чином. Користувач вводить назву потрібного елемента в полі введення.

Якщо такого елемента в базі даних система не виявить - буде виведено повідомлення про це. Після натискання кнопки в списку, на екрані відкриється форма нового елемента з заповненим найменуванням.

Розглянуті нововведення дозволяють збільшити швидкість введення інформації в систему.

Збереження налаштувань динамічних списків

У платформі 8.3 настройки динамічного списку можна зберігати автоматично. Для цього в конфігураторі, для потрібного реквізиту форми, необхідно встановити властивість "Автоматичне збереження налаштувань". За замовчуванням, при створенні списку ця настройка включена.

У кореневого елемента конфігурації з'явилася нова властивість - Сховище налаштувань динамічних списків.

Це властивість вибирається зі списку сховищ налаштувань, визначених у конфігурації.

Для збільшення натисніть на зображення.

Налаштування списків в режимі користувача викликається за допомогою відповідного пункту меню:

Зовнішній вигляд форми схожий на настройку звітів.

Для збільшення натисніть на зображення.

Умови, за якими виконано відбір списку, автоматично відображаються в нижній частині налаштувань. Ці налаштування будуть включені в форму списку.

У режимі конфігуратора для цього необхідно заповнити властивість таблиці форми Група налаштувань.

У ньому потрібно вказати окрему групу форми, всередину якої і будуть додаватися елементи для відображення відбору.

При такій настройці форма буде мати поля у вигляді "швидких відборів".

Для збільшення натисніть на зображення.

Якщо користувач налаштував список під себе, то настройки автоматично збережуться і при повторному відкритті список матиме той же самий вид.

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

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

Якщо режим сумісності конфігурації встановлено в значення «Не використовувати", то для динамічного списку, у якого в якості основної таблиці вказана таблиця журналу документів, кнопка "Створити" автоматично формується у вигляді підміню зі списком документів, що входять в журнал.

Для збільшення натисніть на зображення.

Цим спростилося створення нових документів користувачем з форми журналу. Також стало можливим швидко створювати на командній панелі форми окремі кнопки для створення нового документа певного виду.

Для цього була створена стандартна команда СоздатьПоПараметру. Якщо ця команда призначена кнопці на формі, то стає доступним властивість Параметр, в якому можна вибрати тип створюваного документа при натисканні на цю кнопку.

Для збільшення натисніть на зображення.

У призначеному для користувача режимі ця кнопка буде виглядати наступним чином:

Для збільшення натисніть на зображення.

Оскільки матеріал в статті описаний для платформи 8.3.5, то актуалізуємо його.

  • До версії 8.3.7 введення по рядку працював недостатньо швидко, тому в цьому релізі була змінена структура даних індексу повнотекстового пошуку, що призвело до підвищення швидкості при роботі системи в тих місцях, де використовується даний механізм. Відзначимо, що новий формат повнотекстового пошуку використовується в тому випадку, якщо режим сумісності встановлений в значення «Не використовувати». У режимі сумісності з з версією 8.3.6 поведінка не змінилося. Також відзначимо, що в наступному релізі платформи 1С (8.3.8) механізм введення по рядку і при використанні рядка пошуку динамічного списку був також поліпшений, і тепер він забезпечує пошук даних, які ще не потрапили в повнотекстовий пошук. Раніше такої поведінки не спостерігалося.
  • Список, що випадає поля введення керованої форми також зазнав деяких поліпшення. У версії 8.3.8 він став автоматично підлаштовувати свою ширину під ширину відображаються в ньому даних, плюс клавіші Home і End стали оброблятися прямо в поле введення. Завдяки цим поліпшень стало зручніше використовувати поле введення з списком, що випадає.
  • Механізм збереження налаштувань динамічних списків також був поліпшений, і в версії 8.3.6 властивості розширення таблиці форми для динамічного Виберіть дати і Відображення стали зберігатися в тих же розрізах, що і інші настройки динамічного списку, що сильно спростило роботу з ними розробнику. Тепер вони стали доступні в обробнику керованої форми ПріЗагрузкеПользовательскіхНастроекНаСервере (), Чого раніше не було.

На цьому знайомство з керованими формами в інтерфейсі «Таксі» ми завершимо, але в наступній статті познайомимося з новими можливостями, які представила платформа «1С: Підприємство» редакції 8.3.

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

дано

Форма параметрів обробки, з трьома сторінками «Параметри підключення», «Логування» і «Додатково».

завдання

За замовчуванням приховати закладку «Додатково», але з можливістю його відобразити при необхідності з режиму 1С: Підприємство.

Рішення

Реалізується дана вимога досить просто, в конфігураторі для сторінки «Додатково» переходимо в властивість Призначена для користувача видимість і знімаємо галочку «Видимість». властивість Призначена для користувача видимість задає видимість елемента за замовчуванням.

Тепер форма відкриється з прихованою сторінкою «Додатково», для її відображення необхідно перейти в меню «Ще» і встановити видимість для сторінки.

При зміні видимості користувачем значення буде збережено і в подальшому буде відкриватися налаштована форма.

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

Стаття входить в цикл «Перші кроки в розробці на 1С». У ній ми продовжуємо знайомитися з керованим інтерфейсом «Таксі» і приступаємо безпосередньо до його конфігурації.

Як відомо, розробка інтерфейсу інформаційної бази починається зі створення структури його меню, адже наскільки зручним і логічним воно буде, настільки зрозумілим користувачеві буде вся система в цілому.

Прочитавши статтю, ви дізнаєтеся:

  • Яку роль у формуванні структури меню грає підсистема?
  • Як сформувати розділи меню 1-го і 2-го рівня?
  • Як налаштувати склад команд, які відображаються в розділах меню?
  • Для чого потрібен редактор Командного інтерфейсу і як з ним працювати?
  • Як налаштувати Командний інтерфейс основного розділу?

застосовність

У статті розглядається інтерфейс «Таксі» конфігурації, розробленої на платформі 1C 8.3.4.496. Інформація актуальна для поточних релізів платформи.

Підсистеми. Налаштування інтерфейсу за допомогою підсистем

Підсистеми відносять до загальних об'єктів. Вони забезпечують можливість класифікації об'єктів конфігурації з підсистем.

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

Надалі можна вибудувати фільтр дерева об'єктів по підсистем.

При цьому є можливість управління: включати для обраних підсистемоб'єкти підлеглих підсистемі батьківських підсистемчи ні.

Класифікація об'єктів по підсистемстворює зручність при створенні ролей.

для об'єкта рольможна визначити відповідні права і вказати, що дану рольможна побудувати тільки по тих об'єктах, які входять в обрані підсистеми.

схожим чином підсистемивикористовуються при створенні інтерфейсів. інтерфейсипотрібні тільки в тому випадку, якщо конфігурація запускається в режимі Звичайного додатки.

Класифікація об'єктів по підсистемвикористовується також при об'єднанні конфігурацій. Тобто можна об'єднувати об'єкти, відфільтровані по підсистем.

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

для існуючих підсистемможна визначати вкладені (підлеглі). дані підсистемибудуть утворювати групи панелі навігації.

Коли ми класифікуємо об'єкт по підсистем, Можливо включити об'єкт тільки у вкладену підсистему, Можливо в Підсистему першого рівня, можливо і в ту і в іншу.

В останньому випадку об'єкт буде відображатися двічі: і всередині вкладеної Підсистеми і окремо в панелі навігації. У більшості випадків це не зовсім правильно.

В принципі, Підсистеми не є обов'язковим об'єктом. Тобто конфігурація, розроблена на Платформі 8.3, цілком зможе працювати без будь-яких Підсистем.

Але в цьому випадку Панелі розділів взагалі не буде, все буде відображатися на робочому столі. Дуже прості конфігурації з малим набором об'єктів зможуть працювати і без Підсистем.

Але якщо в конфігурації досить багато Документів, Довідників і Регістрів, використання підсистемістотно полегшує роботу користувача.

Відзначити, що деякий об'єкт конфігурації належить будь-якої підсистеміможна трьома способами.

По-перше, це можна зробити в Вікні редагування об'єкта на закладці підсистеми. Даний варіант ми вже розглядали.

По-друге, можна використовувати Вікно редагування самої Підсистеми. на закладці складможна вказати об'єкти, що входять в дану підсистему.

І нарешті, для об'єктів конфігурації через контекстне меню можна викликати спеціальне діалогове вікно, яке називається додатково.

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

При переміщенні курсора по об'єктах дерева конфігурації в вікні додаткововисвічується відповідна інформація по підсистемах.

При створенні об'єкта конфігурації за замовчуванням Платформа 8.3 непроставляється прив'язку об'єкта ні до якої підсистемі.

Тобто розробник повинен сам зайти на цю закладку і проставити відповідні галочки.

Якщо розробник цього не виконає, то система визначить відсутність приналежності до підсистемяк помилку.

Але помилка не є критичною, тому з цим можна погодитися.

Фактично система довідково повідомляє про те, що, можливо, Ви забули включити нові об'єкти в підсистеми. В цьому випадку об'єкти не будуть відображатися в командному інтерфейсі.

До таких об'єктів користувач може звернутися тільки через Головне меню, Використовуючи команду всі функції.

Природно, щоб об'єкт можна було відкрити, необхідно, щоб користувачеві було надано відповідні права.

Існує ряд випадків, коли розробникам зручніше включати додані в типову конфігурацію об'єкти в свою окрему підсистему.

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

При цьому підсистемине показуються в командному інтерфейсі. Якщо немає жодної Підсистеми, яка повинна бути включена в командний інтерфейс, то для нових об'єктів Платформа 8.3 не перевіряє належність до будь-якої підсистемі.

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

Даний редактор можна викликати з вікна редагування Підсистеми натисканням на кнопку командний інтерфейс (На закладці Основні).

Можна для кожної підсистемивикликати даний редактор. З редактора є можливість управляти відкриттям списків в панелі навігації, Доступністю команд в панелі дій.

За замовчуванням прапорці для команд по створенню елементів Довідників і Документів зняті, але їх можна проставити. В панелі дій можна також відкривати звіти.

Елементи в редакторі можна переміщати. При цьому з панелі навігації в панель дій і в зворотному напрямку переміщення неможливо. Переміщати елементи можна або всередині панелі навігації, Або всередині панелі дій.

Існують колонка загальної видимості і колонки видимості за ролями. Для кожної ролі, визначеної в конфігурації, буде своя колонка. Те значення, яке встановлено в колонці загальної видимості, є значенням за замовчуванням для видимості за ролями.

Видимість за ролями може приймати три значення: або для даної ролі елемент буде невидимим (1); або буде видно завжди, не залежно від того, який прапор виставлений в колонці видимості (2); або прапор видимості за роллю буде успадковуватися від прапора загальної видимості (3).

Якщо користувачеві призначені дві ролі і для однієї з них вказаний прапорець, а для іншої немає, то буде працювати стандартне правило системи 1С: Підприємство 8 - дія користувачеві дозволено, якщо воно дозволено в одній з ролей.

Іноді буває необхідно відразу міняти командний інтерфейс в декількох підсистемах. У платформі 1C: Підприємство 8 існує сервісний інструмент, який дозволяє редагувати командний інтерфейс відразу декількох підсистем.

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

У вікні можна швидко переміщатися по підсистемі редагувати командні інтерфейси. Крім того, в даному вікні можна редагувати склад підсистеми. Також можна переміщати об'єкти в панелі навігації і панелі дій.

Крім того, можна навіть змінити підлеглість підсистеми. Для цього є спеціальна кнопка перемістити підсистему.

Щоб налаштувати командний інтерфейс основного розділу також використовується редактор командного інтерфейсу.

Викликається він вже не для підсистем, А через контекстне меню кореневого вузла конфігурації, пункт відкритикомандний інтерфейс основного розділу.

У вікні, ми можемо вказувати: які Довідники, Документи та інші об'єкти входять до даного командний інтерфейс. Також можна включати їх видимість і управляти видимістю за ролями.

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

після видалення підсистемипри збереженні конфігурації ніяких повідомлень про реструктуризацію інформаційної бази не виводиться.

На цьому завершимо наше знайомство з налаштуванням структури меню інформаційної бази. У наступній статті ми продовжимо наше знайомство з Керованим інтерфейсом і розглянемо, які можливості надає платформа «1С: Підприємство 8» для роботи зі списками.

У попередній статті була описана причина, по якій зміна видимості елементів на керованої формі не є хорошим способом перестроювання інтерфейсу, управлінням доступності елементів форми для користувачів.

Сьогодні ми розглянемо альтернативний спосіб змінити видимі елементів керованої форми, який не ініціює звернення до сервера. Тим самим ми зможемо заощадити трафік і увлічіть швидкодію програми.

Все на клієнті

Вся суть описаного нижче способу полягає в зміні видимості / доступності елемента форми тільки на клієнтській стороні, без звернень до сервера. Прапор "Видимість" нам не підійде. Звернемося до інших можливостей.

Є два варіанта. Перший - використовувати властивість елемента форми "Доступність". Але тоді, хоч польлзователь і не зможе працювати з елементів форми для котрого доступність встановлена \u200b\u200bв БРЕХНЯ, бачити він його все ж буде. Ось так виглядає обробник зміни доступності елемента форми:

& НаКліенте Процедура СкритьКомандуВідімость (Команда) Елементи. Попередити. Доступність \u003d НЕ Елементи. Попередити. доступність; КонецПроцедури

Недоступні елемент приймає наступний вигляд:

При зміні доступності елемента звернень до сервера для перемальовування форми, як це було з прапором "Видимість", не відбувається.

Але що, якщо нам потрібно повністю приховати елемент форми з поля зору? Продемонструємо як це зробити на елементі динамічного списку представленой вище форми. Додамо на форму групу елементів з видом "Сторінки" і дві підлеглих групи з видом "Сторінка". Елемент динамічного списку перенесемо в одну з них.

На порожню сторінку, де немає динамічного списку, додамо декорацію вигляду "Напис", щоб сторінка була не порожній і на неї можна було переключатися. У групи сторінок властивість "Відображення сторінок" встановимо в БРЕХНЯ, щоб закладки були не видно.

Тепер в команді "Приховати динамічний список" напишемо наступний оброблювач:

& НаКліенте Процедура СкритьКомандуВідімость (Команда) Якщо Елементи. Сторінки. ТекущаяСтраніца \u003d Елементи. Сторінка1 Тоді Елементи. Сторінки. ТекущаяСтраніца \u003d Елементи. Страніца2; Інакше Елементи. Сторінки. ТекущаяСтраніца \u003d Елементи. Сторінка1; КонецЕсли; КонецПроцедури

Команда перемикає сторінки. При перемиканні сторінок звернень до сервера не відбувається, все виконується на стороні клієнта. При цьому якщо ми перемкнемося на сторінку "Страніца2", де був додана лише декорація написи, то форма буде виглядати як на скріншоті нижче:

Таким чином, ми приховали елемент керованої форми оптимальним чином без звернень до сервера, контекстних викликів сервера. Отже, заощадили обсяг переданого трафіку і прискорили роботу програми.

Проектуючи інтерфейс на керованих формах, особливо якщо рішення буде працювати в режимі тонкого клієнта, завжди необхідно враховувати поведінку платформи при тих чи інших дії. Так, наприклад, вище вже було сказано, що при зміні видимості елементів виконується повна перерисовка форми на сервері, а при зміні властивості "Доступність" або перемиканні сторінок - всі дії виконуються на стороні клієнта.

Використовуйте можливості керованих форм правильно!