1с обычные формы свернуть панель

Обновлено: 17.05.2024

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

Что? Где? Когда?

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

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

Развернуть ( ЗаголовокОкна ) — разворачивает окно на полный экран

Свернуть ( ЗаголовокОкна ) — сворачивает окно в панель задач

Скрыть ( ЗаголовокОкна ) — скрывает окно(при этом код формы продолжает исполняться)

Показать () - показывает последнее скрытое функцией Скрыть() окно

СвернутьВОкно ( ЗаголовокОкна ) — в осстанавливает исходное состояние окна

ИСТИНА Видимость ( ЗаголовокОкна ) — п роверяет видимо ли окно на экране

ИСТИНА Развернуто ( ЗаголовокОкна ) — проверяет развернуто ли окно на полный экран

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

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

Управление положением окна:

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

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

ПолучитьРазмеры ( ЗаголовокОкна , Ширина , Высота ) – получает размеры окна в пикселях. Значения возвращаются через соответствующие параметры.

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

ПолучитьТекущееРазрешение ( Horz , Vert ) – получает текущее разрешение экрана. Значения возвращаются через соответствующие параметры.

ПолучитьСписокРазрешений () – получает список доступных в системе разрешений экрана. Данные возвращаются в виде «РАЗРЕШЕНИЕ1,РАЗРЕШЕНИЕ2,РАЗРЕШЕНИЕ3. ». В демонстрационной обработке есть пример формирования списка разрешений на форме.

УстановитьРазрешение ( ВыбранноеРазрешениеЭкрана ) – устанавливает разрешение экрана. В качестве параметра указывается порядковый номер разрешения. В демонстрационной обработке показан пример установки разрешения из ранее сформированного списка.

Спать ( ВремяСна ) – реализация классической функции sleep(). ВремяСна указывается в миллисекундах.

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

Итого

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

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

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

Решение, понятно, для обычных форм) в управляемых за нас делают разрабы)

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

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

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

Пример очень сложной установки привязок ПРОГРАММНО элементам формы, для их скрытия/ отображения. Схлопывание элементов на форме

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

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Программная свертка элементов на форме

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

К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.

(0) молодец, но 5 стартмани.
Вообщем здесь многие выкладывают свои детища куда более сложные и всего за 1 монетку (кто то и бесплатно выкладывал бы, но платформа не позволяет), хотя если написать автору и очень хорошо попросить, можно получить бесплатно. Это я к чему, можно и 10 монет запросить, а можно поделиться знаниями и получить отзывы :-)
спасибо, буду стараться и дальше. цену изменю. может и так благодарны пользователи найдутся как вы и говорите

Спрос рождает предложение. За 5 см обработку скачают 1 раз, за 2 см - пять раз, за 1 см - сто раз. Автор этого не понимает (к счастью для нас).

ЗЫ: вот у меня есть обработка из одной строки кода . И ее уже 21 раз скачали за 1 см. Предположу, что за 2 см ее бы не скачали ни разу )))
ЗЫЗЫ: а в комментах есть ответ, почему ее качают.

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

К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.


ну я обработку выложил для тех кто ищет.
опытным ясно, что в управляемых, привязки не надо настраивать) это делает платформа.
а цена 5 может и действительно великовата, но полдня для того чтобы осилить, и пол для написания.
автор пока бедный новичок здесь, того и такую цену поставил. а цена 5 может и действительно великовата, но полдня для того чтобы осилить, и пол для написания. Смешно)) Интересно, сколько дней было потрачено на стратер, который предлагается в соседней теме)) (7) сядь сделай, размести и напиши сколько ты потратишь) (10)Эээ, я немного о другом. О сравнении трудозатрат и стоимости. (3) Видишь, коллеги правильно тебе сказали. 1 СМ и все пойдет , как по маслу. Не гонись за ценой, бери качеством продукта. Спасибо за обработку, кстати. Я только сейчас это узнал .
В некоторых случаях, пригодился бы. (6) так вы правы. но многие конфигурации на обычных формах. и это как 7ка уже не поддерживается, но пользователей еще хватает!!
Спасибо! Что это за типовая конфигурация, в которой подобные вещи делают через изменение размеров элементов? В типовых видел только с использование сверки и установки привязок.

Сейчас с похожим вожусь, но там сразу несколько элементов нужно сворачивать, а они привязанны друг к другу

Левый эл1
Левый эл2

Эл свертки 1
Эл свертки 2
Эл свертки 3
Эл свертки 4
Эл свертки 5

И сворачивает любые элементы хорошо, но вот когда разворачивает, тч1 которая привязана к нижней границе Эл свертки 5, через раз остаётся на месте, а элементы все на неё лезут ), не сталкивались с таким?

P.S. Даже если закрыть и открыть форму ей всё так же плохо) только перезапуск помогает)

(16) а мой пример не включает вашу ситуацию?
там главное понять логику работы и вам откроются тайны)
алгоритм прост, сначала перепривязываем те елементы которые будут принимать участие в свертке, потом сворачиваем.
когда включаем видимовсть вновь привязываем разворачиваем привязываем (17) с 1-2 эл проблем и у меня не было, а когда их сразу дофига, там какие то проблемы были. в итоге забил на всё и после сверток перемещал 1 эл программно, а остальное к нему привязывал )

Просмотры 10302

Загрузки 29

Рейтинг 13

Создание 13.05.19 17:00

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

№ Публикации 1059057

Конфигурация Конфигурации 1cv8

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

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

См. также

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

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

1 стартмани

09.09.2019 18020 35 bmk74 7

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

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

1 стартмани

17.10.2021 2837 6 Патриот 48

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

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

5 стартмани

18.02.2021 5754 13 compmir 30

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

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

3 стартмани

29.09.2020 16011 84 sapervodichka 47

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

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

Режимы панели

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

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

  1. Если поля не влезают в форму, то их можно распределить по закладкам панели по смысловому признаку (важные - вспомогательные, основные - дополнительные и т.д.) или принадлежности к одной информационной группе (например, одна закладка для реквизитов юридического лица, а другая - для реквизитов физического лица)
  2. Если поля четко можно разделить на основные и второстепенные так, что второстепенные будут использоваться крайне редко. В этом случае их удобно поместить на закладку с названием, например, "Дополнительно".
  3. Для создания сложных форм с программным управлением доступностью и видимостью нужных страниц.

Варианты расположения закладок.

Наиболее популярным и понятным для пользователя является вариант отображения закладок "Сверху".


Следом за ним идет вариант "Снизу". Далее по популярности следуют варианты "Слева (горизонтально)" и "Справа (горизонтально)". Все остальные варианты применяются значительно реже:

  • Сверху (с прокруткой)
  • Сверху (в несколько строк)
  • Сверху (в несколько строк с перестановкой)
  • Снизу (с прокруткой)
  • Снизу (в несколько строк)
  • Снизу (в несколько строк с перестановкой)
  • Слева (вертикально)
  • Справа (вертикально)

Особенности отрисовки закладок

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

Картинки в закладках

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


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

Переключение страниц

Интерактивно переключать страницы панели можно несколькими способами:

  1. Щелчок левой кнопкой мыши на соответствующей закладке.
  2. Открытие контекстного меню при помощи щелчка правой кнопкой мыши в панели или области закладок с последующим выбором команды, соответствующей названию нужной страницы (только в режиме редактирования или проверки формы).
  3. Нажатие Ctrl+PgUp (Ctrl+Alt+F) или Ctrl+PgDown (Ctrl+Alt+B) для выбора предыдущей или следующей страницы.

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

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

Одна страница - много закладок

Невидимые страницы

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

Запрещенные страницы

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

Режим прокручиваемых страниц

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


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

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

Управляемая форма в 8.2 не рисуется, как в 8.0 и 8.1, а описывается программистом. Она сделана для того, чтобы на тонких каналах связи (тонкий клиент или веб-клиент, хотя управляемая форма возможна и на толстом клиенте) оптимизировать объем передаваемых данных.

Управляемая форма состоит из следующих разделов:

  • Панель разделов
  • Панель навигации
  • Панель действий
  • Рабочая область
  • Когда необходимо, открываются другие области, например область оповещений.

Панель разделов.


Панель разделов находится вверху рабочего стола:

Панель разделов соответствует подсистемам в ветке «Общие» в дереве метаданных в режиме конфигуратора.



И чтобы появился соответствующий раздел, достаточно добавить подсистему и подчинить ей нужные объекты конфигурации. Для добавления картинки раздела в окне редактирования элемента подсистемы на вкладке «Общие» выбираем поле «Картинка» и выбираем нужную нам картинку или добавляем свою, иначе по умолчанию добавляется такая картинка



Раздел «Рабочий стол» будет присутствовать всегда по умолчанию.

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



И далее снимаем «галочки» у нужных подсистем или у нужной роли. И ещё можем поставить любой нужный порядок следования, двигая по стрелочкам вверху.



Если в конфигурации нет ни одной подсистемы, то панель разделов выводиться не будет вообще.

Панель навигации.

Панель навигации находится сбоку и показывает ссылки на различные объекты конфигурации:



Настраивается панель навигации из контекстного меню подсистемы:



И можем снять или поставить «галочки» видимости у элементов, которые включены в данную подсистему, а также поменять элементы местами, передвигая стрелками:


Панель навигации есть также и у других объектов конфигурации, и настраивается на вкладке «Командный интерфейс формы.



Панель навигации состоит из нескольких групп:

Ссылки, располагающиеся в панели навигации «Важное» выделяются жирным шрифтом:



Группы «Обычное» и «Перейти» показаны простым шрифтом. Первое существует у подсистемы, а второе – у справочников (например подчиненный справочник) , документов (регистр, по которому делаются движения) и т.п.

В самом низу панели навигации расположена группа «См. также» - это дополнительные ссылки.


Кроме этих групп, программист может создавать и свои группы панели навигации.

Панели навигации, как и панели разделов также может и не быть.

Панель действий

Панель действий расположена вверху, под панелью разделов и над рабочей областью:



Она позволяет вызывать служебные окна, например константы, отчеты или обработки.

Настраивается в тех же меню, что и панель навигации, но, как правило, в подсистемах.



Как и у панели навигации, у панели действий есть свои группы:

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

Рабочая область

Рабочая область занимает основную часть формы.



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

Рабочий стол

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

За настройку рабочего стола «отвечают» 2 пункта контекстного меню конфигурации



Пункт «Открыть командный интерфейс рабочего стола» позволяет настроить панель навигации и панель действий рабочего стола

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



Рабочую область можно настроить через пункт «Открыть рабочую область рабочего стола». Именно эту часть пользователь и видит в первую очередь. Мы видим, что есть шаблоны рабочего стола - в одну колонку, в две колонки одинаковой ширины и в две колонки разной ширины.

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

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