1с размер формы по содержимому

Размеры управляемой формы

Как известно, у управляемой формы нельзя определить реальные размеры. То есть у нее имеются свойства «Ширина» и «Высота», но при изменении размеров самой формы эти свойства не изменяются.
Если поискать в интернете, то предлагают использовать поле HTML документа. Я применял этот способ несколько раз, поэтому опишу как это делается.

Чтобы рассчитать ширину формы или элемента, необходимо разместить на ней поле HTML документа и установить ему признак «Растягивать по горизонтали». Тогда можно прочитать его «clientWidth» (или «clientHeight» для опреледения высоты). Это делается, например, из подписки «ДокументСформирован». Но как отследить момент, когда размер формы или элемента изменяется?
Можно поставить обработчик ожидания, который будет постоянно опрашивать поле HTML. Но это плохое решение.
Гораздо лучше подписаться на изменение размеров документа. Приведу код страницы, и опишу как это работает.

Итак, применяем идею, предложенную в статье Javascript и 1С. Кросс-платформенное взаимодействие.
Поместим на HTML страницу невидимую кнопку, а в свойстве документа «onresize» пропишем, чтобы при изменении размера страницы выполнился клик по этой кнопке. У элемента поле HTML сработает событие ПриНажатии(). Вот в этом событии и надо будет считать новые размеры страницы и выполнить необходимые действия при изменении. Кроме того, при загрузке страницы тоже вызывается клик, чтобы обработку изменения размера не дублировать в событии ДокументСформирован().

Вот как это выглядит на примере.

7ef07f36b7857410cd25b9cc05e80c29

Итак, принцип понятен. Отстался один недостаток, само поле HTML будет видно на форме и это выглядит некрасиво. Необходимо его спрятать.
Если конфигурация имеет режим совместимости 8.3.7 и выше, то можно сделать так. Создаем страницы, на одну страницу помещаем основные элементы, на другую страницу помещаем служебное поле HTML документа. У страницы выставляем «ОтображениеСтраниц»=»Нет».
Вот как это выглядит.

d6a93dcbdf3c0f55ffc1a7f2d29f7e7e

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

1dde5293394efa1447711fc6b685cb6f

При изменении размеров формы количество картинок по горизонтали пересчитывается и изменяется, без появления горизонтального скрола

Источник

Заметки из Зазеркалья

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

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

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

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

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

В клиентских приложениях

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

afcb646f5ee28574a9ce10178599fe54

Диалог установки масштаба открывается в правом верхнем углу, но вы можете переместить его в любое удобное вам место экрана:

c29d564622f0cff0d4761ddf61b07a15

Масштаб формы можно изменять в диапазоне от 50% до 400%. При этом не просто увеличивается или уменьшается размер шрифта и элементов, а вся форма перестраивается под новые размеры элементов.

Например, вы можете увеличить её до 200%.

fe72b97d18bfb77f74a0820878ef591b

Или наоборот, уменьшить до 70%.

5c0b5cf9934d4d0dd0561720a1d037ba

Изменение масштаба выполняется на клиенте и не требует вызова сервера.

Масштабирование применяется только к содержимому формы. Системные панели, диалог избранного и диалог истории не масштабируются. Также не масштабируются рамки и полосы прокрутки внутри формы. Изменения размера этих элементов можно добиться путём изменения разрешения экрана (DPI).

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

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

Сохранение масштаба

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

Масштаб формы в конфигураторе

В конфигураторе вы тоже можете задать масштаб, в котором форма будет показана пользователю. Для этого мы реализовали у формы свойство Масштаб. Это свойство мы рекомендуем использовать в тех случаях, в которых раньше вы использовали ВариантМасштаба: Компактный. Исходить нужно из того, что в компактном режиме масштаб формы равняется примерно 80%.

Предварительный просмотр формы в масштабе

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

36b03a30d0b8a4122e180b2f5727e660

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

d404314fa9c7b4ade3e924cd1a8f8f59

Показ картинок

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

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

Например, теперь картинка флажка это набор нескольких вариантов: для платформы 8.2 (обычный интерфейс), для платформы 8.3 (интерфейс Такси), для компактного режима, для разных масштабов.

085980f507d3bb06d0efb24b4793f6ba

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

Источник

Как сделать высоту строки в макете по содержимому

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

tickКак сделать QListView, изменяющий высоту по содержимому?
Установка вручную выстоты вот так работает.

Установить высоту строки по содержимому в ListView
Уважаемые форумчане! Подскажите пожалуйста, как в ListView установить высоту строки по.

Как сделать переменную высоту строки в отчете?
Мне необходимо, чтобы высота строки (т.е. фактически высота всех полей в области данных отчета).

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

Я так делал, но перенесенный текст не растягивает существующую строку.
Поясню. Есть строка в макете, к примеру:
1.»ООО Организация по
Организации Организаций».
И строка:
2.»Просто организация».
Мне нужно, чтобы высота строки в макете по умолчанию была размером с «Просто Организация». А, когда,
в это поле выводится
«ООО Организация по
Организации Организаций» строка должна растягиваться.

Установил поле в макете высотой с первый вариант, поставил «переносить строки», но
на экран выводится только «ООО Организация по». А вот эта часть «Организации Организаций» не входит.

Источник

Заметки из Зазеркалья

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

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

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

f38e8552c5e4f7de551798aa65062537

Теперь пустая таблица занимает всего лишь 3 строки, а при её заполнении тремя и более строками, пустого пространства внизу таблицы не остаётся.

b860d3aaf06c211706bcd7d744696d56

Мы видим два основных сценария использования нового режима отображения таблицы.

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

868ed2dbe8ce907b415598e843a5d400

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

128c1da72c8ca448090dc8259f45c12f

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

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

Источник

Программное изменение размера табличного документа на форме. Пример, как вписать макет по размеру формы. Масштабирование табличного документа на форме

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

Было решено менять размер Табличного документа под конкретное окно!

В результате родилась функция пересчета размера ячеек с пунктов и единиц в пиксели)

В итоге на разных дисплеях все видели всю информацию.

Опубликую свое решение, может, кому пригодится.

Тестировал на 8.2.19.

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Обновление 13.05.19 15:00

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

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

09.09.2019 17668 34 bmk74 7

Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)

Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.

17.10.2021 2251 4 Патриот 48

Самые красивые шахматы для 1С на управляемых формах

Здравствуйте, представляем Вашему вниманию классическую игру – Шахматы! Написана игра средствами 1С, на управляемых формах. Программный код представляет собой с аккуратностью составленную систему, содержащую лаконичные логические приемы и описательные имена переменных, объектов и функций. Программа полностью отлажена и многократно протестирована. Оригинальный авторский дизайн фигур, иконок и кнопок приятен глазу. Игра содержит большое количество функций, настроек и режимов игры, включая сетевую игру, тренировку с ботом или игру на двоих. Не упустите возможность найти ряд технических решений, применимых для реализации различных задач, а также поиграть в вечную игру с отличным оформлением! Желающие научиться программировать на управляемых формах могут многое почерпнуть в этой конфигурации.

18.02.2021 5433 13 compmir 30

Интерактивная справка по объектам 1С (подключаемое расширение)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

29.09.2020 15554 82 sapervodichka 45

Расширенная настройка динамического списка УФ Промо

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

31.05.2017 38984 161 tormozit 25

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с раздельный учет ндс без способов учета
  • 1с раздельный учет корректировка поступления