Інтернет Windows Android

1с наскрізне вирівнювання. Робимо "керовані форми" трохи більш керованими

Вступ

Керовані форми. Нова розробка 1С покликана полегшити працю розробника, дати йому більше часу на написання коду за рахунок спрощення проектування інтерфейсу. На ділі часто виходить, що т. Зв. « керовані форми»Є абсолютно некерованими. УФ не вміють таких банальних речей як згортання / розгортання вікна, не кажучи вже про його позиціонуванні на екрані і завданні розміру в пікселях. Можливо ці функції порахували незатребуваними і не стали включати в новий інтерфейс, Але практика показує, що їх часом дуже сильно не вистачає. Деякий час проблема частково вирішувалася за рахунок WSH, але хотілося чогось більшого. Так була реалізована зовнішня компонента для того що б зробити «керовані форми» трохи більш керованими.

Що? Де? Коли?

Дана ВК являє собою бібліотеку функцій для управління станом і становищем вікон. Так само в бібліотеці є кілька корисних системних функцій.

Управління станом вікна:

Розгорнути ( ЗаголовокОкна ) розгортає вікно на повний екран

Згорнути (ЗаголовокОкна) - згортає вікно в панель задач

Приховати (ЗаголовокОкна) - приховує вікно (при цьому код форми продовжує виконуватися)

Показати () - показує останнім приховане функцією Приховати () вікно

СвернутьВОкно (ЗаголовокОкна) - в осстанавлівает початковий стан вікна

ІСТИНА Видимість (ЗаголовокОкна) - п роверяет мабуть чи вікно на екрані

ІСТИНА Розгорнуто (ЗаголовокОкна) - перевіряє розгорнуто чи вікно на повний екран

ІСТИНА згорнути (ЗаголовокОкна) - перевіряє згорнуто чи вікно в панель задач

УстановітьПрозрачность(ЗаголовокОкна, Коефіцієнт) - встановлює прозорість вікна. Ступінь прозорості задається через коефіцієнт (0-255).

Контроль стану вікна:

ПолучітьПозіцію(ЗаголовокОкна, X, Y) - отримує координати лівого верхнього кута вікна щодо екрану. Координати повертаються через параметриX, Y.

перемістити(ЗаголовокОкна, X, Y) - переміщує вікно на задану позиціюXY.В даному випадку XYє координатами лівого верхнього кута вікна.

ПолучітьРазмери - отримує розміри вікна в пікселях. Значення повертаються через відповідні параметри.

УстановітьРазмери(ЗаголовокОкна, Ширина, Висота) - встановлює розміри вікна в пікселях.

Системні функції:

ПолучітьТекущееРазрешеніе(Horz, Vert) - отримує поточний дозвіл екрана. Значення повертаються через відповідні параметри.

ПолучітьСпісокРазрешеній() - отримує список доступних в системі дозволів екрану. Дані повертаються у вигляді «РАЗРЕШЕНІЕ1, РАЗРЕШЕНІЕ2, РАЗРЕШЕНІЕ3 ...». У демонстраційній обробці є приклад формування списку дозволів на формі.

УстановітьРазрешеніе(ВибранноеРазрешеніеЕкрана) - встановлює дозвіл екрана. Як параметр вказується порядковий номер дозволу. У демонстраційній обробці показаний приклад установки дозволу з раніше сформованого списку.

бонуси:

Спати (ВремяСна) sleep ().ВремяСна вказується в мілісекундах.

Сигнал (Частота, тривалість) - реалізація класичної функціїbeep ().Дозволяє задати частоту і тривалість звуку.

Разом

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

У комплект поставки входять: База з підключеною ВК у вигляді загального макета і демонстраційної обробкою. ВК в zip архіві.

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

- вирівнювання елементів - забезпечує автоматичне центрування, або "притискання" елементів управління до гайдлайни один одного, або вирівнювання розмірів елементів управління:

- сітка- через Параметри можна налаштувати відображення сітки, для точного ручного вирівнювання елементів:

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

Питання 10.79 іспиту 1С: Професіонал по платформі.

  1. Нічого не зміниться
  2. Відбудеться зміщення по горизонталі елемента "Надпісь1" і вирівнювання його правої межі по правій межі елемента "Надпісь2"
  3. Відбудеться зміщення по горизонталі елемента "Надпісь2" і вирівнювання його правої межі по правій межі елемента "Надпісь1"
  4. Обидва елементи перемістяться до правої крайової вирівнює лінії форми

Правильна відповідь другий. Написи вирівняються по правій.

Питання 10.82 іспиту 1С: Професіонал по платформі. Що станеться, якщо натиснути кнопку командній панелі, зазначену на малюнку?

  1. Всі написи стануть по горизонталі однакового розміру
  2. Нічого не зміниться
  3. Відбудеться зміщення написів. Вертикальна вісь симетрії кожного елемента управління буде збігатися з вертикальною віссю симетрії форми, тобто центрування кожного елемента управління по горизонталі
  4. Відбудеться зміщення написів по горизонталі. Переміщення елементів управління одна відносно одної всередині групи не відбудеться, тобто центрування як би одного елемента в цілому
  5. Відбудеться зміщення написів по вертикалі. Переміщення елементів управління одна відносно одної всередині групи не відбудеться, тобто центрування як би одного елемента в цілому

Правильна відповідь четвертий. Всі виділені елементи управління відцентруйте щодо їх загальної центральної лінії.

Питання 10.83 іспиту 1С: Професіонал по платформі. Що станеться, якщо натиснути кнопку командній панелі, зазначену на малюнку?

  1. Всі написи стануть по вертикалі однакового розміру. За зразок буде взятий елемент управління "Надпісь1"
  2. Нічого не зміниться
  3. Всі написи стануть по вертикалі однакового розміру. За зразок буде взятий елемент управління "Надпісь3"
  4. Відбудеться центрування кожної написи по вертикалі
  5. Відбудеться рівномірний розподіл написів у вертикальному напрямку. Елементи управління "Надпісь1" і "Надпісь3" залишаться на своєму місці, а елемент "Надпісь2" буде зміщений в потрібну сторону. При зміщенні елемента прив'язка до розмічальної сітці не враховується
  6. Відбудеться рівномірний розподіл написів у вертикальному напрямку. Елементи управління "Надпісь1" і "Надпісь3" залишаться на своєму місці, а елемент "Надпісь2" буде зміщений в потрібну сторону. При зміщенні елемента буде здійснена прив'язка до розмічальної сітці, якщо режим її використання встановлений

Правильна відповідь перший. Висота елементів буде стандартизована

Питання 10.86 іспиту 1С: Професіонал по платформі. Що станеться, якщо натиснути кнопку командній панелі, скасовану на малюнку?

  1. Всі написи стануть по вертикалі і горизонталі однакового розміру. За зразок буде взятий елемент управління "Надпісь1"
  2. Всі написи стануть по вертикалі і горизонталі однакового розміру. За зразок буде взятий елемент управління "Надпісь3"
  3. Нічого не зміниться
  4. Буде виконано автоматичне вирівнювання написів
  5. Для всіх написів буде поставлено прозорий фон

Правильна відповідь четвертий, власне кнопка називається "Вирівняти автоматично"

Питання 10.90 іспиту 1С: Професіонал по платформі. Вийти з режиму вирівнювання за допомогою вирівнюючих ліній в раніше створеної формі:

  1. Не можна
  2. Можна, можливо. Для цього в палітрі властивостей форми треба відключити властивість "Використовувати вирівнюють лінії"
  3. Можна, можливо. Для цього, вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" треба відключити властивість "Використовувати вирівнюють лінії"
  4. Можна, можливо. Для цього в палітрі властивостей форми треба відключити властивість "Використовувати вирівнюють лінії" або, вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" відключити властивість "Використовувати вирівнюють лінії"

Правильна відповідь другий. Вирівнюючі лінії (відзначені стрілкою) відключаються відповідним властивістю форми:

Питання 10.92 іспиту 1С: Професіонал по платформі. При вирівнюванні елементів форми дорожня сітка може бути показана:

  1. безперервними лініями
  2. Точками, розташованими в шаховому порядку
  3. Точками, розташованими в місцях перетину розмічальних ліній
  4. Вірні відповіді 1 і 2
  5. Вірні відповіді 2 і 3
  6. Вірні відповіді 1, 2 і 3

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

Питання 10.95 іспиту 1С: Професіонал по платформі.

  1. Спеціальний маркер вирівнювання, що показує зсув елементів управління. Виділений елемент управління пропонується зрушити вліво
  2. Спеціальний маркер вирівнювання, що показує зсув елементів управління. Виділений елемент управління пропонується зрушити вниз
  3. Спеціальний маркер вирівнювання, що показує накладення елементів управління. Виділений елемент управління пропонується зрушити вліво
  4. Спеціальний маркер вирівнювання, що показує накладення елементів управління. Виділений елемент управління пропонується зрушити вниз

Правильна відповідь перший. Нижнє поле зміщене вправо щодо верхнього, відповідно його пропонується посунути лівіше.

Питання 10.96 іспиту 1С: Професіонал по платформі. Чи можна за допомогою вирівнюючих ліній змінювати розміри і переміщати елементи управління форми?

  1. Не можна
  2. Можна, якщо елементи керування прикріплені до цих ліній
  3. Можна, якщо елементи керування прикріплені до цих ліній, але тільки переміщати
  4. Можна, якщо елементи керування прикріплені до цих ліній, але тільки змінювати розміри
  5. Можна, завжди

Правильна відповідь другий. Елементи, прикріплений до одного гайлайну, можна рухати разом.

Питання 10.97 іспиту 1С: Професіонал по платформі. На малюнку червоним кружком відзначений:

  1. Спеціальний маркер вирівнювання, що показує зсув елементів управління. Виділений елемент управління пропонується зрушити вліво і вгору
  2. Спеціальний маркер вирівнювання, що показує зсув елементів управління. Виділений елемент управління пропонується зрушити вправо і вниз
  3. Спеціальний маркер вирівнювання, що показує накладення елементів управління. Виділений елемент управління пропонується зрушити вліво і вгору
  4. Спеціальний маркер вирівнювання, що показує накладення елементів управління. Виділений елемент управління пропонується зрушити вправо і вниз

Правильна відповідь четвертий. Куди показують стрілочки, туди треба і рухати.

Питання 10.98 іспиту 1С: Професіонал по платформі. На малюнку червоним кружком відзначений:


Питання 10.110 іспиту 1С: Професіонал по платформі. Яким чином за допомогою кнопки командної панелі, показаної на малюнку, вирівняти по правій межі все три написи?

  1. Спочатку виділити елемент керування "Надпісь1", клацнувши по ньому лівою клавішею миші, одночасно натиснувши клавішу. Потім натиснути вказану кнопку
  2. Просто натиснути на зазначену кнопку
  3. За допомогою зазначеної кнопки вирівняти написи не можна, так як вони належать різним панелям
Правильна відповідь третій. Вирівнювання працює в межах однієї панелі.

Питання 10.115 іспиту 1С: Професіонал по платформі. Для відображення в існуючій формі розмічальної сітки досить:

  1. У палітрі властивостей форми встановити властивість "ІспользоватьСетку"
  2. Вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" встановити прапор "ІспользоватьСетку"
  3. Вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" встановити прапор "Відображати сітку"
  4. Вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" встановити прапор "Відображати сітку", після чого в палітрі властивостей форми встановити властивість "ІспользоватьСетку"
  5. Вибравши пункт головного меню "Сервіс-Параметри", на закладці "Форма" встановити прапори "Відображати сітку" і "ІспользоватьСетку"

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

Реалізовано в версії 8.3.7.1759.

Щоб було зрозуміло, про що йде мова в цій статті, необхідно зробити невелике пояснення.

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

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

Чому знадобився новий механізм?

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

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

І, по-третє, ми хотіли закласти в новий механізм можливості майбутнього розвитку.

Основні зміни

Схематично уявити роботу старого механізму можна наступним чином:

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

Основна дія, яке виконувалося на сервері при створенні опису візуальної форми, це розрахунок довжин рядків. Маються на увазі всілякі заголовки, написи і так далі. Знаючи довжини рядків можна вже прорахувати розташування елементів в формі.

Так як ця операція виконувалася на сервері, були присутні два негативних моменти. По-перше, для розрахунку використовувалися не ті шрифти, які будуть використані на клієнті, а ті, які встановлені на сервері. А вони можуть відрізнятися, особливо якщо мова йде про різних платформах (Windows, Linux). Або навіть потрібні шрифти можуть бути зовсім не встановлені на сервері. По-друге, для розрахунку довжин використовувався той «движок» растеризации шрифтів, який є на сервері. А він може працювати не зовсім так, як механізм рендеринга текстових рядків, існуючий на клієнті в інтернет-браузері, наприклад. В результаті могли з'являтися форми або з «обрізаними» текстами, або, навпаки, з надто широкими написами.

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

У новому механізмі генерацію опису візуальної форми, яка раніше цілком виконувалася на сервері, ми розділили на дві частини, серверну та клієнтську:

Серверна частина стала значно менше. У ній не виконуються жодні розрахунків. На сервері створюється тільки «заготовка» опису, яка не містить точних довжин текстових полів, і в ній не вирішені елементи адаптивності. На сервері обробляється видимість елементів, але тільки та, яка визначається функціональними опціями, і та, яка встановлена \u200b\u200bкористувачем. Але тут і не можна інакше, тому що самі функціональні опції доступні тільки на сервері. А інтерактивне зміна налаштувань користувачем в будь-якому випадку приведе до серверного викликом.

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

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

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

Деякі нові можливості

Елементи адаптивного інтерфейсу

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

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

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

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

Другим елементом адаптивності є зміна орієнтації груп. У груп і у форми в цілому з'явився новий варіант орієнтації - « Горизонтально, якщо можливо». У цьому варіанті, якщо клієнтський дисплей дозволяє розташувати елементи горизонтально, вони розташовуються горизонтально. Якщо немає, то вони розташовуються вертикально.

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

Горизонтальне і вертикальне вирівнювання

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

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

Управління зовнішнім вирівнюванням

Наприклад, у вас є форма, в якій розташовані поле підрозділ, групи Адреса і Телефон. Колишній механізм вирівнював поля цих груп так, як показано на лівому малюнку. Поля в формі вирівнювалися між собою, і поля в кожній групі вирівнювалися між собою.

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

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

Вирівнювання елементів і заголовків

Ще одна нова можливість, яка з'явилася, це можливість управляти взаємним розташуванням елементів і заголовків. Як у всій формі, так і в окремих групах. Наприклад, заголовки і елементи ви можете «розтягнути» до різних краях форми, або навпаки, «стягнути» їх один до одного, вирівнявши заголовки вправо, а елементи - вліво.

Обмеження максимальної ширини елементів

Раніше, якщо ви вказали елементу, що він повинен розтягуватися, то елемент розтягувався до тих пір, поки це можливо. Наприклад, на весь екран. Для одних елементів це було добре (наприклад, поле HTML), а для інших елементів це могло бути і не дуже добре. Наприклад, для числових полів. Тому що числові дані, або кнопки, що керують полем, виявлялися десь далеко праворуч.

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

Управління відстанню між елементами

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

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

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

Відключення прокрутки у сторінок

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

резюме

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

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

Будь-яка форма являє сукупність трьох складових:

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

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

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

Редагування діалогу форми

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

Панелі, сторінки, закладки

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

Редактор дозволяє розмістити на формі кілька панелей, кожна з яких може містити кілька сторінок. Наприклад, форма документа може містити панель з двома сторінками: Товари та Додатково:

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

Наприклад, закладки можна розташувати зверху горизонтально:

Або можна розташувати закладки зліва вертикально:

елементи управління

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

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

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

Сітка, вирівнювання

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

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

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

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

Сині вирівнюють маркери вказують бажане напрямки переміщення елемента управління для вирівнювання його по жодному з кордонів сусідньої елемента управління:

Червоні вирівнюють маркери вказують бажане напрямки переміщення елемента управління в разі, коли він перекриває інший елемент управління:

Також слід сказати, що редактор підтримує операції вирівнювання, зміни розмірів і порядку для групи елементів управління:

прив'язки

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

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

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

роздільники

Роздільники є спеціальними елементами управління, за допомогою яких можливо перерозподіл простору форми без зміни її розмірів. У режимі 1С: Підприємство роздільник має здатність "захоплюватися" мишею і переміщатися всередині форми в її межах з урахуванням можливості розташування інших елементів управління і орієнтації роздільник:

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

ActiveX

Редактор дозволяє розміщувати в формі елементи управління типу ActiveX, які розробник може налаштувати і надалі керувати ними, використовуючи засоби вбудованої мови:

Редагування модуля форми

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

Редагування реквізитів форми

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

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

додаткова інформація

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

19.05.2015

Реалізовано в версії 8.3.7.1759.

Щоб було зрозуміло, про що йде мова в цій статті, необхідно зробити невелике пояснення.

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

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

Чому знадобився новий механізм?

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

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

І, по-третє, ми хотіли закласти в новий механізм можливості майбутнього розвитку.

Основні зміни

Схематично уявити роботу старого механізму можна наступним чином:

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

Основна дія, яке виконувалося на сервері при створенні опису візуальної форми, це розрахунок довжин рядків. Маються на увазі всілякі заголовки, написи і так далі. Знаючи довжини рядків можна вже прорахувати розташування елементів в формі.

Так як ця операція виконувалася на сервері, були присутні два негативних моменти. По-перше, для розрахунку використовувалися не ті шрифти, які будуть використані на клієнті, а ті, які встановлені на сервері. А вони можуть відрізнятися, особливо якщо мова йде про різних платформах (Windows, Linux). Або навіть потрібні шрифти можуть бути зовсім не встановлені на сервері. По-друге, для розрахунку довжин використовувався той «движок» растеризации шрифтів, який є на сервері. А він може працювати не зовсім так, як механізм рендеринга текстових рядків, існуючий на клієнті в інтернет-браузері, наприклад. В результаті могли з'являтися форми або з «обрізаними» текстами, або, навпаки, з надто широкими написами.

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

У новому механізмі генерацію опису візуальної форми, яка раніше цілком виконувалася на сервері, ми розділили на дві частини, серверну та клієнтську:

Серверна частина стала значно менше. У ній не виконуються жодні розрахунків. На сервері створюється тільки «заготовка» опису, яка не містить точних довжин текстових полів, і в ній не вирішені елементи адаптивності. На сервері обробляється видимість елементів, але тільки та, яка визначається функціональними опціями, і та, яка встановлена \u200b\u200bкористувачем. Але тут і не можна інакше, тому що самі функціональні опції доступні тільки на сервері. А інтерактивне зміна налаштувань користувачем в будь-якому випадку приведе до серверного викликом.

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

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

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

Деякі нові можливості

Елементи адаптивного інтерфейсу

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

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

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

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

Другим елементом адаптивності є зміна орієнтації груп. У груп і у форми в цілому з'явився новий варіант орієнтації - «Горизонтально, якщо можливо». У цьому варіанті, якщо клієнтський дисплей дозволяє розташувати елементи горизонтально, вони розташовуються горизонтально. Якщо немає, то вони розташовуються вертикально.

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

Горизонтальне і вертикальне вирівнювання

Раніше така можливість була відсутня, і для реалізації нестандартного вирівнювання доводилося вигадувати різні «хитрощі». Тепер формі і групі можна вказати, яким чином повинні вирівнюватися її елементи по вертикалі і по горизонталі. Наприклад, на малюнку нижче, група кнопок показує три можливих варіанти вирівнювання: Ліво, Центр і Право:

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

Управління зовнішнім вирівнюванням

Наприклад, у вас є форма, в якій розташовані поле Підрозділ, групи Адреса і Телефон. Колишній механізм вирівнював поля цих груп так, як показано на лівому малюнку. Поля в формі вирівнювалися між собою, і поля в кожній групі вирівнювалися між собою.

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

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

Вирівнювання елементів і заголовків

Ще одна нова можливість, яка з'явилася, це можливість управляти взаємним розташуванням елементів і заголовків. Як у всій формі, так і в окремих групах. Наприклад, заголовки і елементи ви можете «розтягнути» до різних краях форми, або навпаки, «стягнути» їх один до одного, вирівнявши заголовки вправо, а елементи - вліво.

Обмеження максимальної ширини елементів

Раніше, якщо ви вказали елементу, що він повинен розтягуватися, то елемент розтягувався до тих пір, поки це можливо. Наприклад, на весь екран. Для одних елементів це було добре (наприклад, поле HTML), а для інших елементів це могло бути і не дуже добре. Наприклад, для числових полів. Тому що числові дані, або кнопки, що керують полем, виявлялися десь далеко праворуч.

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

Управління відстанню між елементами

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

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

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

Відключення прокрутки у сторінок

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

резюме

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