Ошибка генерации элемента формы форма не выровнены заголовки

19.05.2015

Новый механизм размещения элементов в форме

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

Чтобы было понятно, о чём идёт речь в этой статье, необходимо сделать небольшое пояснение.

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

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

Почему понадобился новый механизм?

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

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

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

Основные изменения

Схематично представить работу прежнего механизма можно следующим образом:

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

Основное действие, которое выполнялось на сервере при создании описания визуальной формы, это расчет длин строк. Имеются в виду всевозможные заголовки, надписи и так далее. Зная длины строк можно уже просчитать расположение элементов в форме.

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

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

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

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

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

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

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

Некоторые новые возможности

Элементы адаптивного интерфейса

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

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

Если в форме есть длинные строки, которые можно разбить на отдельные слова, то такие строки переносятся, если в этом есть необходимость. Соответственно высота формы увеличивается, потому что нижняя её часть «отъезжает» вниз. В результате форма будет выглядеть нормально даже на узких экранах. Более того, этот механизм работает динамически, а значит, вы можете сжимать форму в реальном режиме времени, и вместе с этим будут переноситься длинные строки.

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

Вторым элементом адаптивности является изменение ориентации групп. У групп и у формы в целом появился новый вариант ориентации — «Горизонтально, если возможно». В этом варианте, если клиентский дисплей позволяет расположить элементы горизонтально, они располагаются горизонтально. Если нет, то они располагаются вертикально.

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

Горизонтальное и вертикальное выравнивание

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

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

Управление внешним выравниванием

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

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

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

Выравнивание элементов и заголовков

Ещё одна новая возможность, которая появилась, это возможность управлять взаимным расположением элементов и заголовков. Как во всей форме, так и в отдельных группах. Например, заголовки и элементы вы можете «растянуть» к разным краям формы, или наоборот, «стянуть» их друг к другу, выровняв заголовки вправо, а элементы — влево.

Ограничение максимальной ширины элементов

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

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

Управление расстоянием между элементами

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

Отключение растягивания формы

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

Отключение прокрутки у страниц

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

Резюме

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

Теги:
UI 
8.3.7 

Описание ошибки

Ошибка в том что, при заимствовании формы в расширение происходит потеря метаданных. Расширение с заимствованной формой становится нерабочим и EDT не может обновить разрабатываемое приложение после заимствования формы.

Как воспроизвести

Тестирование и изучение проблемы производилось на конфигурации
Демонстрационная конфигурация «Библиотека стандартных подсистем», редакция 3.1 версия: 3.1.6.180
Разрабатываемое приложение размещено в файловой информационной базе
Платформа 8.3.20.1789 64бит

Вводная:

Создано два рабочих пространства:

  • PEN007_WS — рабочее пространство в котором есть проект конфигурации и проект расширения который создан в EDT Это проблемное рабочее пространство.
  • PEN008_WS — рабочее пространство в котором есть проект конфигурации и проект расширения, причем расширение создано в конфигураторе и потом импортировано в EDT одновременно с основной конфигурацией.

В расширении, которое создано в EDT и в расширении, которое создано в конфигураторе было выполнено только одно действие, а именно заимствована ФормаЭлемента справочника Пользователи. Пример на скриншоте.
2022-04-09 22-03-11 PEN007_WS - 1C Enterprise Development Tools

Наблюдение 1

В рабочем пространстве PEN007_WS, где расширение было создано в EDT есть отличия в метаданных Базовой формы и Заимствованной формы. Важно то, что в расширении над формой никаких действий после заимствования не производилось. Проблема видна на скриншоте:
2022-04-09 22-11-51 PEN007_WS - Двухстороннее сравнение'PEN007_PFI_PROJECT src Catalogs Пользователи Forms ФормаЭлемента B

при этом, в рабочем пространстве PEN008_WS, где расширение было создано в конфигураторе такого отличия нет. Базовая форма в точности равна заимствованной форме. Это видно на скриншоте:
2022-04-09 22-16-47 PEN008_WS - Двухстороннее сравнение'SSL_31_PROJECT PEN008_PFI_CONF src Catalogs Пользователи Forms Фор

Наблюдение 2

В рабочем пространстве PEN007_WS, где форма была заимствована в EDT происходит некорректная обработка команд формы, а именно для команд, которые не были заимствованы в расширение существует возможность установить связь с методами команды. см. скриншот.
2022-04-09 22-54-15 Скриншот экрана

В рабочем пространстве PEN008_WS, где форма была заимствована в конфигураторе EDT не разрешает добавлять метод для незаимствованных элементов форм.
2022-04-09 23-12-33 Скриншот экрана

Наблюдение 3

При обновлении разрабатываемого приложения в рабочем пространстве PEN007_WS (где расширение было создано в EDT) получаем ошибку
Неверное имя команды элемента формы. — WriteAndClose
2022-04-09 23-30-15 PEN007_WS - 1C Enterprise Development Tools

При сравнении метаданных формы элемента справочника Пользователи через VSCode в узле

<items xsi:type="form:Button">
      <name>ФормаЗаписатьИЗакрыть</name>

обнаружено:

  1. в расширении, которое создано в конфигураторе отсутствует значение узла commandName
    2022-04-09 23-38-15 PEN007_Form form ↔ PEN008_Form form - EDT - Visual Studio Code

  2. в расширении, которое создано в конфигураторе отсутствуют узел excludedCommands
    2022-04-09 23-40-31 PEN007_Form form ↔ PEN008_Form form - EDT - Visual Studio Code

Что я попробовал

Закомментировать узел commandName

      <!--
      <commandName>Form.Command.ЗаписатьИЗакрыть</commandName>
      -->

Закомментировать узел excludedCommands

  <!--
  <excludedCommands>WriteAndClose</excludedCommands>
  -->

однако, это не привело к желаемому результату. Обновить конфигурацию так же не получается, однако ошибок на одну меньше.
2022-04-10 00-05-04 PEN007_WS - 1C Enterprise Development Tools

Скриншоты

No response

Ожидаемое поведение

После заимствования формы она работает и позволяет обновить приложение.

Лог рабочей области

  1. Лог области, где расширение создавалось в EDT и где есть проблемы
    metadata_PEN007.zip

  2. Лог области, где расширение создавалось в Конфигуратор
    metadata_PEN008.zip
    е

Версия 1С:EDT

Ruby 2021.2.12

Операционная система

Windows

Установленные плагины

Нет плагинов

Дополнительная информация

No response

Я разрабатываю веб-страницу, которая имеет много форм с некоторым текстом, близким к форме. Эта форма и текст генерируются функцией, но я получаю это

Как видите, формы и текст не выровнены с формами и текстом ниже. Я хотел бы иметь это:

(это работает, потому что я ставлю пробелы вручную). Вот как я создаю формы.

function add_form($product,$name,$productp)
{
  $productpt = "X";

  echo $name;
  echo '<input type = "text" name = "'. $product. '" id = "'. $product. '" style = "font-size:12pt;height:30px"/> x'.$productp. '€
  price:'.$productpt.'€<br>';
}

echo '<form  method = "post" name = "form1" id = "form1" autocomplete = "off">'; //start form    
echo '<div class = "leftpane">'; //start leftpane
echo '<h1>';

echo '<font size = "6" color = "red"> ALIMENTS </font><br>';

//ADD ELEMENTS IN MY MENU
//The first argument is the form name and id, the second is the name that will be printed(to the left of the form), the third argument is the price.
$menu[] = new Menu("pasta", "Pasta", 2);

$menu[] = new Menu("spaghetti", "Spaghetti", 1.50);

$menu[] = new Menu("pizza", "Pizza", 5);

$menu[] = new Menu("chicken_wings_x4", "Chicken Wings X4", 4.50);

$menu[] = new Menu("cheeseburger", "Cheeseburger", 6);

$menu[] = new Menu("Sandwich", "Sandwich", 2);

$menu[] = new Menu("hamburger", "Hamburger", 4.50);

$menu[] = new Menu("stuff", "stuff", 15.50);

//FOR EACH ELEMENT CREATE A FORM
for($i=0; $i<count($menu); $i++){
  add_form($menu[$i]->form_name, $menu[$i]->name, $menu[$i]->price);
}


echo '</h1>';
echo '</div>'; //Close leftpane
...Do Others stuff in middlepane and in rightpane

Чтобы было понятнее в html, например, первая форма будет:

<input type = "text" name = "pasta" id = "pasta" style = "font-size:12pt;height:30px"/> x2€ price:X€<br>

Я думал разделить левую панель на 3 части и разместить $name слева, форму посередине и цену справа. Но проблема в том, что я создаю форму в функции, поэтому я не знаю, как это сделать.
Это мой css:

<style>
input[type=text] {
    width: 10%;
    margin: 7.5px 0;
    box-sizing: border-box;
}
input[type=submit].class1 {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
}
input[type=submit].class2 {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
}
body, html {
  width: 100%;
  height: 100%;
  margin: 0;
}

.container {
  width: 100%;
  height: 100%;
}

.leftpane {
    width: 33%;
    height: 100%;
    float: left;
    border-collapse: collapse;
}

.middlepane {
    width: 33%;
    height: 100%;
    float: left;
    border-collapse: collapse;
}

.rightpane {
  width: 33%;
  height: 100%;
  position: relative;
  float: right;
  border-collapse: collapse;
}
form {
    display: inline-block;
}
h1 {
    font-size: 19.5px;
}

</style>

19.05.2015

Новый механизм размещения элементов в форме

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

Чтобы было понятно, о чём идёт речь в этой статье, необходимо сделать небольшое пояснение.

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

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

Почему понадобился новый механизм?

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

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

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

Основные изменения

Схематично представить работу прежнего механизма можно следующим образом:

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

Основное действие, которое выполнялось на сервере при создании описания визуальной формы, это расчет длин строк. Имеются в виду всевозможные заголовки, надписи и так далее. Зная длины строк можно уже просчитать расположение элементов в форме.

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

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

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

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

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

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

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

Некоторые новые возможности

Элементы адаптивного интерфейса

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

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

Если в форме есть длинные строки, которые можно разбить на отдельные слова, то такие строки переносятся, если в этом есть необходимость. Соответственно высота формы увеличивается, потому что нижняя её часть «отъезжает» вниз. В результате форма будет выглядеть нормально даже на узких экранах. Более того, этот механизм работает динамически, а значит, вы можете сжимать форму в реальном режиме времени, и вместе с этим будут переноситься длинные строки.

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

Вторым элементом адаптивности является изменение ориентации групп. У групп и у формы в целом появился новый вариант ориентации — «Горизонтально, если возможно». В этом варианте, если клиентский дисплей позволяет расположить элементы горизонтально, они располагаются горизонтально. Если нет, то они располагаются вертикально.

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

Горизонтальное и вертикальное выравнивание

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

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

Управление внешним выравниванием

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

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

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

Выравнивание элементов и заголовков

Ещё одна новая возможность, которая появилась, это возможность управлять взаимным расположением элементов и заголовков. Как во всей форме, так и в отдельных группах. Например, заголовки и элементы вы можете «растянуть» к разным краям формы, или наоборот, «стянуть» их друг к другу, выровняв заголовки вправо, а элементы — влево.

Ограничение максимальной ширины элементов

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

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

Управление расстоянием между элементами

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

Отключение растягивания формы

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

Отключение прокрутки у страниц

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

Резюме

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

Теги:
UI 
8.3.7 

Описание ошибки

Ошибка в том что, при заимствовании формы в расширение происходит потеря метаданных. Расширение с заимствованной формой становится нерабочим и EDT не может обновить разрабатываемое приложение после заимствования формы.

Как воспроизвести

Тестирование и изучение проблемы производилось на конфигурации
Демонстрационная конфигурация «Библиотека стандартных подсистем», редакция 3.1 версия: 3.1.6.180
Разрабатываемое приложение размещено в файловой информационной базе
Платформа 8.3.20.1789 64бит

Вводная:

Создано два рабочих пространства:

  • PEN007_WS — рабочее пространство в котором есть проект конфигурации и проект расширения который создан в EDT Это проблемное рабочее пространство.
  • PEN008_WS — рабочее пространство в котором есть проект конфигурации и проект расширения, причем расширение создано в конфигураторе и потом импортировано в EDT одновременно с основной конфигурацией.

В расширении, которое создано в EDT и в расширении, которое создано в конфигураторе было выполнено только одно действие, а именно заимствована ФормаЭлемента справочника Пользователи. Пример на скриншоте.
2022-04-09 22-03-11 PEN007_WS - 1C Enterprise Development Tools

Наблюдение 1

В рабочем пространстве PEN007_WS, где расширение было создано в EDT есть отличия в метаданных Базовой формы и Заимствованной формы. Важно то, что в расширении над формой никаких действий после заимствования не производилось. Проблема видна на скриншоте:
2022-04-09 22-11-51 PEN007_WS - Двухстороннее сравнение 'PEN007_PFI_PROJECT src Catalogs Пользователи Forms ФормаЭлемента B

при этом, в рабочем пространстве PEN008_WS, где расширение было создано в конфигураторе такого отличия нет. Базовая форма в точности равна заимствованной форме. Это видно на скриншоте:
2022-04-09 22-16-47 PEN008_WS - Двухстороннее сравнение 'SSL_31_PROJECT PEN008_PFI_CONF src Catalogs Пользователи Forms Фор

Наблюдение 2

В рабочем пространстве PEN007_WS, где форма была заимствована в EDT происходит некорректная обработка команд формы, а именно для команд, которые не были заимствованы в расширение существует возможность установить связь с методами команды. см. скриншот.
2022-04-09 22-54-15 Скриншот экрана

В рабочем пространстве PEN008_WS, где форма была заимствована в конфигураторе EDT не разрешает добавлять метод для незаимствованных элементов форм.
2022-04-09 23-12-33 Скриншот экрана

Наблюдение 3

При обновлении разрабатываемого приложения в рабочем пространстве PEN007_WS (где расширение было создано в EDT) получаем ошибку
Неверное имя команды элемента формы. — WriteAndClose
2022-04-09 23-30-15 PEN007_WS - 1C Enterprise Development Tools

При сравнении метаданных формы элемента справочника Пользователи через VSCode в узле

<items xsi:type="form:Button">
      <name>ФормаЗаписатьИЗакрыть</name>

обнаружено:

  1. в расширении, которое создано в конфигураторе отсутствует значение узла commandName
    2022-04-09 23-38-15 PEN007_Form form ↔ PEN008_Form form - EDT - Visual Studio Code

  2. в расширении, которое создано в конфигураторе отсутствуют узел excludedCommands
    2022-04-09 23-40-31 PEN007_Form form ↔ PEN008_Form form - EDT - Visual Studio Code

Что я попробовал

Закомментировать узел commandName

      <!--
      <commandName>Form.Command.ЗаписатьИЗакрыть</commandName>
      -->

Закомментировать узел excludedCommands

  <!--
  <excludedCommands>WriteAndClose</excludedCommands>
  -->

однако, это не привело к желаемому результату. Обновить конфигурацию так же не получается, однако ошибок на одну меньше.
2022-04-10 00-05-04 PEN007_WS - 1C Enterprise Development Tools

Скриншоты

No response

Ожидаемое поведение

После заимствования формы она работает и позволяет обновить приложение.

Лог рабочей области

  1. Лог области, где расширение создавалось в EDT и где есть проблемы
    metadata_PEN007.zip

  2. Лог области, где расширение создавалось в Конфигуратор
    metadata_PEN008.zip
    е

Версия 1С:EDT

Ruby 2021.2.12

Операционная система

Windows

Установленные плагины

Нет плагинов

Дополнительная информация

No response

Я разрабатываю веб-страницу, которая имеет много форм с некоторым текстом, близким к форме. Эта форма и текст генерируются функцией, но я получаю это

Как видите, формы и текст не выровнены с формами и текстом ниже. Я хотел бы иметь это:

(это работает, потому что я ставлю пробелы вручную). Вот как я создаю формы.

function add_form($product,$name,$productp)
{
  $productpt = "X";

  echo $name;
  echo '<input type = "text" name = "'. $product. '" id = "'. $product. '" style = "font-size:12pt;height:30px"/> x'.$productp. '€
  price:'.$productpt.'€<br>';
}

echo '<form  method = "post" name = "form1" id = "form1" autocomplete = "off">'; //start form    
echo '<div class = "leftpane">'; //start leftpane
echo '<h1>';

echo '<font size = "6" color = "red"> ALIMENTS </font><br>';

//ADD ELEMENTS IN MY MENU
//The first argument is the form name and id, the second is the name that will be printed(to the left of the form), the third argument is the price.
$menu[] = new Menu("pasta", "Pasta", 2);

$menu[] = new Menu("spaghetti", "Spaghetti", 1.50);

$menu[] = new Menu("pizza", "Pizza", 5);

$menu[] = new Menu("chicken_wings_x4", "Chicken Wings X4", 4.50);

$menu[] = new Menu("cheeseburger", "Cheeseburger", 6);

$menu[] = new Menu("Sandwich", "Sandwich", 2);

$menu[] = new Menu("hamburger", "Hamburger", 4.50);

$menu[] = new Menu("stuff", "stuff", 15.50);

//FOR EACH ELEMENT CREATE A FORM
for($i=0; $i<count($menu); $i++){
  add_form($menu[$i]->form_name, $menu[$i]->name, $menu[$i]->price);
}


echo '</h1>';
echo '</div>'; //Close leftpane
...Do Others stuff in middlepane and in rightpane

Чтобы было понятнее в html, например, первая форма будет:

<input type = "text" name = "pasta" id = "pasta" style = "font-size:12pt;height:30px"/> x2€ price:X€<br>

Я думал разделить левую панель на 3 части и разместить $name слева, форму посередине и цену справа. Но проблема в том, что я создаю форму в функции, поэтому я не знаю, как это сделать.
Это мой css:

<style>
input[type=text] {
    width: 10%;
    margin: 7.5px 0;
    box-sizing: border-box;
}
input[type=submit].class1 {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
}
input[type=submit].class2 {
    width: 50%;
    padding: 12px 20px;
    margin: 8px 0;
    box-sizing: border-box;
}
body, html {
  width: 100%;
  height: 100%;
  margin: 0;
}

.container {
  width: 100%;
  height: 100%;
}

.leftpane {
    width: 33%;
    height: 100%;
    float: left;
    border-collapse: collapse;
}

.middlepane {
    width: 33%;
    height: 100%;
    float: left;
    border-collapse: collapse;
}

.rightpane {
  width: 33%;
  height: 100%;
  position: relative;
  float: right;
  border-collapse: collapse;
}
form {
    display: inline-block;
}
h1 {
    font-size: 19.5px;
}

</style>

Название проверки

У элемента формы не заполнен заголовок.

Английское название проверки
??

Правило анализа кода/метаданных

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

Мета-информация (пожалуйста, заполните если знаете):

  • Номер стандарта: 765
  • Код проверки: ??my-check-id
  • Тип ошибки: ERROR SECURITY PERFORMANCE WARNING PORTABILITY LIBRARY_DEVELOPMENT_AND_USAGE CODE_STYLE UI_STYLE SPELLING
  • Критичность: BLOCKER CRITICAL MAJOR MINOR TRIVIAL
  • Код ошибки АПК: 446

Параметры проверки

  • NA

Текст ошибки

У элемента формы не заполнен заголовок.

Пример некорректного решения

  • NA

Описание, почему так делать нельзя

Пример корректного решения

  • NA

Дополнительные материалы

  • Элементы форм: требования по локализации (Раздел обновлен!)

Элементы управления — это объекты формы, определяющие визуальное представление формы и предназначенные для интерактивного взаимодействия с пользователем (например, кнопки, флажки, поля ввода и т.д., визуальное объединение «элементарных» элементов управления).

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

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

В элементах управления данные не хранятся!

Для обычной формы полный список элементов можно открыть из меню «Форма» — «Список элементов управления формы» (рис. отсюда ):

  1. через пункт главного меню «Форма — Вставить элемент управления»;
  2. с помощью командной панели «Элементы управления».

Элемент управления «Панель»

Элемент управления «Панель» предназначен для разделения визуального пространства формы на отдельные закладки, причем на каждой закладке могут быть расположены свои элементы управления.

Особенности использования элемента управления «Панель»:

  1. Если в форму вставлен элемент управления «Панель», то для этого элемента можно задать режим «Автоправила», отличный от одноименного режима формы, причем данный режим будет действовать на все страницы панели. Свойство «Автоправила» обеспечивает автоматическую привязку границ элементов управления. Для Панели автоправила можно выставить в значение, отличающееся от значения родительской формы.
  2. При размещении элементов управления в форме нельзя разместить один и тот же элемент управления на двух страницах.
  3. Многостраничная форма может не иметь закладок, если:
    • для свойства формы «Отображать закладки» установлено значение «Не отображать»;
    • отображение закладок отключено программным способом.
  4. Закладки на форме могут быть расположены сверху, снизу, справа и слева.
    используя пункт контекстного меню формы «Добавить страницу»;

Элемент управления «Поле HTML-документа»

Элемент управления «Поле HTML-документа» предназначен для просмотра или редактирования HTML-документов и позволяет:

  1. отобразить на форме веб-страницу;
  2. назначить обработчики для множества событий.

HTML-документ в элементе управления «Поле HTML-документа» может быть сформирован:

  1. программно;
  2. загружен из ресурса, указываемого через URL;
  3. загружен из макета типа HTML-документ.

Редактировать HTML-документ, отображаемый в элементе управления «Поле HTML-документа», можно в режиме 1С:Предприятие (в конфигураторе документ не редактируется).

Элементы формы для списочных значений

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

  1. «Поле выбора» (пользователь может выбрать значение из списка, который можно как связать с данными, так и определить произвольный для данной формы через опцию «Строки списка выбора»);
  2. «Поле списка» (пользователю показывается полный список значений, список раскрывать не нужно);
  3. «Поле ввода» (можно выбрать из данных ссылочного типа).

Можно одновременно создать элемент управления «Поле ввода» вместе с поясняющей надписью, представляющей элемент управления «Надпись», для чего необходимо создавать поле ввода через пункт главного меню «Форма — Вставить элемент управления. «.

Особенности работы с элементами формы для списочных значений:

  1. Элемент управления «Поле ввода» предназначен для:
    • ввода значений непосредственно в поле, например, с клавиатуры;
    • выбора ссылок на объекты;
    • выбора значений из предварительно сформированного списка.
  2. Тонкая прерывистая линия красного цвета в поле ввода означает, что данное поле обязательно к заполнению.
  3. Состав кнопок, расположенных справа у элемента управления «Поле ввода», определяется:
    • значением свойства поля ввода «Тип значения»;
    • выбором соответствующего свойства в окне свойств элемента управления.

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

Чтобы было понятно, о чём идёт речь в этой статье, необходимо сделать небольшое пояснение.

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

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

Почему понадобился новый механизм?

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

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

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

Основные изменения

Схематично представить работу прежнего механизма можно следующим образом:

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

Основное действие, которое выполнялось на сервере при создании описания визуальной формы, это расчет длин строк. Имеются в виду всевозможные заголовки, надписи и так далее. Зная длины строк можно уже просчитать расположение элементов в форме.

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

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

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

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

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

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

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

Некоторые новые возможности

Элементы адаптивного интерфейса

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

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

Если в форме есть длинные строки, которые можно разбить на отдельные слова, то такие строки переносятся, если в этом есть необходимость. Соответственно высота формы увеличивается, потому что нижняя её часть «отъезжает» вниз. В результате форма будет выглядеть нормально даже на узких экранах. Более того, этот механизм работает динамически, а значит, вы можете сжимать форму в реальном режиме времени, и вместе с этим будут переноситься длинные строки.

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

Вторым элементом адаптивности является изменение ориентации групп. У групп и у формы в целом появился новый вариант ориентации — «Горизонтально, если возможно». В этом варианте, если клиентский дисплей позволяет расположить элементы горизонтально, они располагаются горизонтально. Если нет, то они располагаются вертикально.

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

Горизонтальное и вертикальное выравнивание

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

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

Управление внешним выравниванием

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

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

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

Выравнивание элементов и заголовков

Ещё одна новая возможность, которая появилась, это возможность управлять взаимным расположением элементов и заголовков. Как во всей форме, так и в отдельных группах. Например, заголовки и элементы вы можете «растянуть» к разным краям формы, или наоборот, «стянуть» их друг к другу, выровняв заголовки вправо, а элементы — влево.

Ограничение максимальной ширины элементов

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

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

Управление расстоянием между элементами

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

Отключение растягивания формы

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

Отключение прокрутки у страниц

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

Резюме

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

если надпись «Вид упаковки» из-за своей длины ровняется как надо, то «Единица» уезжает влево.Растягивать по ширине — не вариант форма ломается очень сильно — группа уезжает вправо.Как поравнять .

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

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

Создали Группу1 в нее элементы Владелец, Наименование, Единицы (в вашем варианте Единицы в отдельной группе и естественно, выравнивание этого элемента идет по группе в которой он и находится). Внутри группы1 создаете группу2 (выравнивание группы2 идет по правилам группы1 т.к. она в нее входит). В группу2 включаете только декорацию и поля ВесНетто, ВесБрутто. Никаких зазоров не будет между декорацией и остальными элементами. Ниже элемент ВидУпаковки — он входит в группу1. Дальше делайте по аналогии и все элементы встанут как надо. Посмотрите еще раз мой скрин в верхней части, там где Форма и ее элементы

Чтобы было понятней. По вашему скрину. Группа1 состав:

поля Владелец, Наименование, Единицы, Группа2, элемент ВидУпаковки, Группа3, поля СостоитИз, ВКоличестве расположение в группе — Вертикальное

Группа2 состав: декорация и поля ВесНетто, ВесБрутто — Горизонтальное

Группа3 состав: декорация и поля Длина, Ширина, Высота — Горизонтальное

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

Попробую завтра, поздно у меня уже. Отпишусь.Спасибо.

Спасибо. Все получилось.

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

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

Результат при добавлении новой строки:

В обычном приложении:

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 3
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 0
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же ВКС — Высококвалифицированные специалисты — какие настройки нужно сделать ЗУП? 0
В этой статье мы вкратце расскажем — какие настройки нужно сделать ЗУП для временно пребывающих высококвалифицированных иностранных специалистов. Гражданство Откройте сотрудника и перейдите в настройки данных о Гражданстве Если сотрудник ВКС то Посмотреть все результаты поиска похожих

Еще в этой же категории

— выравнивание элементов — обеспечивает автоматическое центрирование, либо «прижимание» элементов управления к гайдлайнам друг друга, либо выравнивание размеров элементов управления:

— сетка — через Параметры можно настроить отображение сетки, для точного ручного выравнивания элементов:

Вопрос 10.104 экзамена 1С:Профессионал по платформе. Кнопки командной панели, показанные на рисунке, предназначены для:

  1. Редактирования табличного документа
  2. Выполнения действий с группой выделенных элементов
  3. Для определения положения настраиваемой формы относительно главного окна 1С:Предприятие и его системных окон
  4. Установки привязок для элементов формы

Вопрос 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

Правильный ответ пятый. Расположение точек регулируется опцией Шахматный порядок Параметров системы (см. скриншот в посте).

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

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

Вопрос 10.96 экзамена 1С:Профессионал по платформе. Можно ли с помощью выравнивающих линий изменять размеры и перемещать элементы управления формы?

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

Вопрос 10.103 экзамена 1С:Профессионал по платформе. Какой способ нельзя использовать для выравнивания элементов управления в форме?

  1. По выравнивающим линиям
  2. По разметочной сетке
  3. С помощью специальных маркеров
  4. Используя групповые операции с элементами управления
  5. Нет правильного ответа

Верный вариант пятый — все опции на самом деле рабочие.

Вопрос 10.110 экзамена 1С:Профессионал по платформе. Каким образом с помощью кнопки командной панели, показанной на рисунке, выровнять по правой границе все три надписи?

  1. Сначала выделить элемент управления «Надпись1», щелкнув по нему левой клавишей мыши, одновременно нажав клавишу . Затем нажать указанную кнопку
  2. Просто нажать на указанную кнопку
  3. С помощью указанной кнопки выровнять надписи нельзя, так как они принадлежат разным панелям

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

Читайте также:

      

  • Как открыть игру в другом браузере
  •   

  • Как найти в excel 2010 данные формы
  •   

  • Зачем отключать интернет при установке фотошопа
  •   

  • Программа для переноса данных с андроида на андроид
  •   

  • Как сделать эффект дискотеки в adobe premiere pro

Понравилась статья? Поделить с друзьями:
  • Ошибка геншин импакт после обновления
  • Ошибка во время выполнения программы informatics
  • Ошибка гибридной системы тойота приус 30
  • Ошибка генерации сертификата на налог ру
  • Ошибка высокое положение дроссельной заслонки