1с закрепить окно программно

Обновлено: 02.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итого

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

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

Особенности использования оконной системы

В системе 1С:Предприятие существуют следующие состояния окон:

Обычное

Окно, находящееся в обычном состоянии, перемещается только в пределах рабочей области главного окна. Список открытых обычных окон доступен с помощью меню "Окна" и с помощью панели окон.


Свободное

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


Прикрепленное

Окно, находящееся в прикрепленном состоянии, закрепляется на одной из сторон главного окна и перемещается по экрану вместе с ним.


Прячущееся

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


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

  • если окно находится в обычном состоянии, то его нельзя перевести в прячущееся и наоборот;
  • если окно находится в прикрепленном или прячущемся состояния, то ему нельзя запретить соединяться.

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

Расстановка окон

Объединение окон

Окна могут быть объединены двумя разными способами: "склеены" друг с другом и сложены в окно с закладками.



Объединение окон также является соединяемым окном, что позволяет собирать сложные конструкции окон. Соединение окон осуществляется с помощью перетаскивания. Во время перетаскивания инверсная рамка показывает примерное положение окна. Если окно соединяется с окном с закладками, инверсный маркер показывает, какое место займет новая закладка.

Прячущиеся окна

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


Получение нескольких представлений (разделение) одного окна

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


Команды "Горизонтально разделить окно" и "Вертикально разделить окно" делят окно между двумя представлениями


Максимизация окон

Оконная система 1С:Предприятия предлагает собственную схему максимизации обычных окон, которая заменяет собой стандартную для Windows приложений схему. В конфигураторе эти схемы объединены. Главным различием схем максимизации является то, что максимизация одного окна не влечет за собой максимизацию всех обычных окон.


Отдельные советы (знаете ли Вы, что. )

Если нужно перетащить соединяемое окно так, чтобы оно лежало рядом с другим, но не соединялось с ним, во время перетаскивания удерживайте клавишу Ctrl.

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

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

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

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

Рассмотрим вопрос на конкретных примерах.

Закрепление окна. Отображение двух окон рядом друг с другом

Допустим, у пользователя в программе 1С открыто несколько окон.

Шаг 1. Нажав на кнопку с тремя точками в правом верхнем углу окна, выберите команду «Окно». В списке имеются варианты закрепления:


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

В нашем примере окно «Счета покупателей» закреплено слева. Вверху окна появится «кнопка-скрепка». В правой части отображается окно, выбираемое пользователем.

Шаг 2. Для отмены действия «закрепления окна» в этом же пункте меню (где три точечки) выберите команду «Открепить/разъединить».


Этот же набор команд доступен при нажатии правой кнопкой мышки на «кнопке-скрепке».

Кроме этого здесь же можно выполнить действия с окнами:

• Закрыть все другие;

• Закрыть все справа (в нашем примере, т.к. закреплено левое окно).


Отображение двух окон друг под другом

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

В списке окон укажите второе окно для отображения.


В нашем примере окно «Счета покупателям» отображается горизонтально со вторым окном – «Оборотно-сальдовая ведомость по счету 62».

Шаг 2. Для отмены разделения окон выберите команду «Открепить/разъединить» в том же разделе «Окно».


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

Вот такие нехитрые фишечки способны очень сильно упростить работу бухгалтеру.

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

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

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

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

Тестировал на 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 эл программно, а остальное к нему привязывал )

Просмотры 10289

Загрузки 29

Рейтинг 13

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

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

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

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

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

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

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

Код открыт Да

54-ФЗ: Онлайн-кассы для 1С 7.7 (с поддержкой маркировки ЕГАИС, ТАБАКА, ОБУВИ, ЛЕКАРСТВ и пр.)

См. также

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

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

1 стартмани

09.09.2019 18020 35 bmk74 7

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

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

1 стартмани

17.10.2021 2834 6 Патриот 48

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

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

5 стартмани

18.02.2021 5754 13 compmir 30

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

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

3 стартмани

29.09.2020 16007 84 sapervodichka 47

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

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

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