1с закрепить окно программно
Управляемые формы. Новая разработка 1С призванная облегчить труд разработчика, дать ему больше времени на написание кода за счет упрощения проектирования интерфейса. На деле часто получается, что т. н. «управляемые формы» являются совершенно неуправляемыми. УФ не умеют таких банальных вещей как сворачивание/разворачивание окна, не говоря уже о его позиционировании на экране и задании размера в пикселях. Возможно эти функции посчитали невостребованными и не стали включать в новый интерфейс, но практика показывает, что их порою очень сильно не хватает. Некоторое время проблема частично решалась за счет WSH, но хотелось чего-то большего. Так была реализована внешняя компонента для того что бы сделать «управляемые формы» чуть более управляемыми.
Что? Где? Когда?
Данная ВК представляет собой библиотеку функций для управления состоянием и положением окон. Так же в библиотеке есть несколько полезных системных функций.
Управление состоянием окна:
Развернуть ( ЗаголовокОкна ) — разворачивает окно на полный экран
Свернуть ( ЗаголовокОкна ) — сворачивает окно в панель задач
Скрыть ( ЗаголовокОкна ) — скрывает окно(при этом код формы продолжает исполняться)
Показать () - показывает последнее скрытое функцией Скрыть() окно
СвернутьВОкно ( ЗаголовокОкна ) — в осстанавливает исходное состояние окна
ИСТИНА Видимость ( ЗаголовокОкна ) — п роверяет видимо ли окно на экране
ИСТИНА Развернуто ( ЗаголовокОкна ) — проверяет развернуто ли окно на полный экран
ИСТИНА Свернуто ( ЗаголовокОкна ) — проверяет свернуто ли окно в панель задач
УстановитьПрозрачность ( ЗаголовокОкна , Коэффициент ) — устанавливает прозрачность окна. Степень прозрачности задается через коэффициент (0-255).
Управление положением окна:
ПолучитьПозицию ( ЗаголовокОкна , X , Y ) – получает координаты левого верхнего угла окна относительно экрана. Координаты возвращаются через параметры X,Y.
Переместить ( ЗаголовокОкна , X , Y ) – перемещает окно на заданную позицию XY. В данном случае XY являются координатами левого верхнего угла окна.
ПолучитьРазмеры ( ЗаголовокОкна , Ширина , Высота ) – получает размеры окна в пикселях. Значения возвращаются через соответствующие параметры.
УстановитьРазмеры ( ЗаголовокОкна , Ширина , Высота ) – устанавливает размеры окна в пикселях.
ПолучитьТекущееРазрешение ( Horz , Vert ) – получает текущее разрешение экрана. Значения возвращаются через соответствующие параметры.
ПолучитьСписокРазрешений () – получает список доступных в системе разрешений экрана. Данные возвращаются в виде «РАЗРЕШЕНИЕ1,РАЗРЕШЕНИЕ2,РАЗРЕШЕНИЕ3. ». В демонстрационной обработке есть пример формирования списка разрешений на форме.
УстановитьРазрешение ( ВыбранноеРазрешениеЭкрана ) – устанавливает разрешение экрана. В качестве параметра указывается порядковый номер разрешения. В демонстрационной обработке показан пример установки разрешения из ранее сформированного списка.
Спать ( ВремяСна ) – реализация классической функции sleep(). ВремяСна указывается в миллисекундах.
Сигнал ( Частота , Длительность ) – реализация классической функции beep(). Позволяет задать частоту и длительность звука.
Итого
Библиотека писалась для собственных нужд и возможно будет дорабатываться еще по мере необходимости. Если у кого-то возникнет светлая мысль по расширению ее функционала в рамках той предметной области для которой она задумывалась, то пишите пожелания. Если идеи окажутся стоящими, они будут реализованы.
В комплект поставки входят: База с подключенной ВК в виде общего макета и демонстрационной обработкой. ВК в zip архиве.
Часто в работе пользователю приходится открывать несколько окон. Особенно это актуально в период отчетности. Для удобства отображения в программе можно использовать функционал закрепления как двух окон рядом, так и друг под другом. Как это сделать, поделимся в нашем лайфхаке!
Рассмотрим вопрос на конкретных примерах.
Закрепление окна. Отображение двух окон рядом друг с другом
Допустим, у пользователя в программе 1С открыто несколько окон.
Шаг 1. Нажав на кнопку с тремя точками в правом верхнем углу окна, выберите команду «Окно». В списке имеются варианты закрепления:
В результате выбора окно закрепится в указанном положении.
В нашем примере окно «Счета покупателей» закреплено слева. Вверху окна появится «кнопка-скрепка». В правой части отображается окно, выбираемое пользователем.
Шаг 2. Для отмены действия «закрепления окна» в этом же пункте меню (где три точечки) выберите команду «Открепить/разъединить».
Этот же набор команд доступен при нажатии правой кнопкой мышки на «кнопке-скрепке».
Кроме этого здесь же можно выполнить действия с окнами:
• Закрыть все другие;
• Закрыть все справа (в нашем примере, т.к. закреплено левое окно).
Отображение двух окон друг под другом
Рассмотрим другой пример: как отобразить два окна друг под другом?
В списке окон укажите второе окно для отображения.
В нашем примере окно «Счета покупателям» отображается горизонтально со вторым окном – «Оборотно-сальдовая ведомость по счету 62».
Шаг 2. Для отмены разделения окон выберите команду «Открепить/разъединить» в том же разделе «Окно».
Вернуть первоначальный вид можно, просто закрыв окно.
Вот такие нехитрые фишечки способны очень сильно упростить работу бухгалтеру.
Иногда возникает желание открыть два окна в 1С одновременно, например, когда нужно поработать с документами или справочниками, глядя на сформированный отчет. К счастью, во всех современных программа от фирмы "1С" это можно сделать, и в этой статье мы покажем как.
В качестве примера закрепим отчет "Движение денег" (закрепить можно все что угодно документы, отчеты, справочники, формы их списков ит.д.), для этого - сначала его откроем.
В нижнем левом углу мы видим "Панель открытых" - там отображаются все справочники, документы, списки, отчеты итд., которые у нас открыты на текущий момент.
Кстати, в управляемых формах внешний вид программы можно настраивать, поэтому у кого-то эта панель может быть в другом месте, например, сверху.
Если мы нажмем по нашему отчету на панели открытых правой клавишей мышки, откроется меню :
Выбрав, соответствующий пункт мы можем закрепить объект ( в нашем примере - это отчет) на экране. Где именно закрепить - сверху, снизу, слева или справа - решайте сами, как вам будет удобнее. Мы закрепим сверху.
Теперь программа выглядит так:
Что бы мы не открыли, наш отчет всегда будет сверху:
А так выглядит закрепление снизу, справа и слева:
Сдвигая полосу, которая отделяет одно окно от другого можно регулировать размер открытых окон:
Чтобы убрать закрепление - кликаем по объекту на панели открытых правой клавишей мышки и выбираем "Открепить/разъединить":
Закрепляем два окна
В примере выше мы закрепили одно окно - какой бы объект мы не открыли - закрепленное окно всегда будет на экране. А что если нам нужно сделать страницу, на которой будет два закрепленных окна, к которой мы можем возвращаться в случае необходимости?
Очень просто. Для начала откроем объекты, которые мы хотим закрепить - пускай это будет справочник "Покупатели" и список "Заказов":
Теперь кликаем правой клавишей по любому их них и выберем "Показать вместе с другим" (вертикально или горизонтально), далее нужно выбрать второе окно (если мы кликнули правой клавишей по "Заказам", то в качестве "Другого" нам нужно выбрать "Контрагентов":
В результате будет сформирована отдельная страница, на которой всегда будут открыты два окна, к которой можно будет всегда вернутся:
Есть еще один способ. Допустим мы хотим зафиксировать в одном окне список покупателей и расходов со счета.
Откроем список покупателей, затем правой кнопкой мышки кликнем на "Расходы со счета" и выберем "Показать вместе с текущим" (вертикально или горизонтально). Результат будет ровно такой же.
Если мы захотим разъединить окна, то действуем точно так же как и в случае с одним закрепленным окном.
Открываем один и тот же список с разными отборами
И напоследок - лайфхак, мы расскажем как на одном экране открыть один и тот же список два раза, при этом в каждом из них можно будет использовать разные отборы.
Допустим мы хотим это провернуть с "Счетами на оплату". Для начала зайдем в раздел "Продажи", откроем и закрепим "Счета на оплату".
После того как мы закрепили "Счета на оплату", вернемся в раздел "Продажи" и нажмем на "Счета на оплату" правой клавишей мыши, затем выберем "Открыть новое".
Вот что у нас получилось:
Как вы можете заметить - одна и та же форма списка открыта в двух окнах, при этом, для каждого окна можно установить свои отборы.
Будем рады, если эта статья принесет вам пользу! А если вам понадобится помощь профессиональных 1Сников - вы всегда можете обратиться к нам!
Любой начинающий разработчик управляемого приложения 1С, который дошел до открытия управляемых форм заметил, что новая форма открывается всегда не поверх текущего окна, а в соседнем окне. Этот режим открытия называют Независимым. Но очень часто для удобства работы пользователей форму нужно открыть именно поверх всех имеющихся окон. Разберемся, как это работает.
Прежде чем изучать открытие формы программно, познакомимся с очень интересным свойством управляемой формы 1С, которое называется РежимОткрытияОкна. Именно это свойство отвечает, каким образом откроется новое окно. Это свойство принимает три значения: Независимый, Блокировать окно владельца и Блокировать весь интерфейс.
Если у формы 1С установлен Независимый режим открытия окна, то форма откроется в отдельном окне, как на рисунке ниже.
Здесь и далее приведена конфигурация из книги «Основы разработки в 1С: Такси».
В том случае если установлен режим Блокировать окно владельца или Блокировать весь интерфейс, то форма откроется по верх всех окон.
Только в случае режима Блокировать окно владельца, будет заблокирована форма, в которой было инициализировано открытие новой формы. А в случае режима Блокировать весь интерфейс заблокируется весь интерфейс программы 1С. По сути, форма откроется в модальном режиме.
Со свойством формы разобрались, перейдем к открытию формы при помощи программного кода. Делать мы это будем при помощи уже знакомого нам метода ОткрытьФорму. Как работает этот метод, читайте в моей статье:
У этого метода есть последний седьмой параметр, который называется РежимОткрытияОкна, этот параметр имеет тип системное перечисление РежимОткрытияОкнаФормы, которое содержит в себе уже знакомые нам режимы: Независимый, Блокировать окно владельца и Блокировать весь интерфейс.
Если мы в методе ОткрытьФорму установим в седьмой параметр какое-либо значение, то форма откроется согласно этому значению.
Ниже приведены все три варианта открытия окна формы с использованием параметра РежимОткрытияОкна:
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . Независимый );
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . БлокироватьОкноВладельца );
ОткрытьФорму ( «Документ.УстановкаЦен.Форма.ФормаДокумента» .
РежимОткрытияОкнаФормы . БлокироватьВесьИнтерфейс );
Изучайте управляемые формы 1С с моими статьями:
Открытие управляемой формы существующего объекта
Открытие управляемой формы 1С на основании другого объекта
Открытие обычной формы в управляемом приложении 1С
Очень подробно вопросы по работе с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.
Книга «Основы разработки в 1С: Такси» отлично подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 15% — 48PVXHeYu
Многие начинающие думают, что изучить язык программирование в 1С сложно и трудно. В действительности программировать в 1С — легко. Помогут Вам легко и быстро освоить программирование в 1С мои книги: «Программировать в 1С за 9 шагов» и «Основы разработки в 1С: Такси»
Изучите программирование в 1С с помощью моей книги «Программировать в 1С за 9 шагов»
- Без сложных технических терминов.
- Более 500 страниц практического материала.
- Каждое задание сопровождается рисунком (скриншот).
- Сборник задач для домашней проработки.
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Промо-код на скидку в 16%: vCph8bW3rE
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
Программный объект КлиентскоеПриложение позволяет управлять такими настройками клиентского приложения, запускаемого на рабочем месте пользователя, как:
- заголовок главного окна приложения
- отображение панели заголовка ОС
- режим отображения окна (обычное или рабочее место)
Однако, объект доступен только для новых версий платформы 1С:Предприятие 1С 8.3.10+
Доступ к функциям данного объекта осуществляется через предопределенное свойство глобального контекста КлиентскоеПриложение , доступное как на клиенте, так и на сервере (закономерно, что данное свойство недоступно в режиме внешнего соединения).
Заголовок главного окна приложения
Получение и установка заголовка главного окна (системного заголовка) производится методами ПолучитьЗаголовок() и УстановитьЗаголовок() на стороне клиента:
Выглядеть это будет примерно так (обычное и управляемое приложение):
Как видите, от надписи «1С:Предприятие» избавиться полностью не удалось, но теперь, хотя бы, в управляемом приложении она не мелькает в панели задач Windows.
Кроме системного заголовка можно установить краткий заголовок, который будет выводиться перед системным и отделяться от него точкой. Для этого предназначены соответственно методы ПолучитьКраткийЗаголовок() и УстановитьКраткийЗаголовок(), также на стороне клиента:
Однако на практике оказывается, что это работает только в режиме управляемого приложения:
Если вывести эту функцию под настройку, то можно предоставить пользователям самостоятельно идентифицировать программу в панели задач.
Отображение панели заголовка ОС
Если Вы застали ранние версии управляемого приложения, то помните, что привычная панель заголовка диалогового окна исчезла вместе с его появлением. И только в версии 8.3.10 разработчики решили устранить эту недоработку. Для управляемых приложений появилась возможность отображать панель заголовка окна ОС. Для этого предназначен метод УстановитьОтображениеЗаголовкаОС():
Теперь наше приложение выглядит так:
Думаю, владельцам макбуков это только на руку))
Режим отображения окна
Программистам, которые «съели собаку» на разработке рабочих мест известно, что режим рабочего стола был недоступен с самого появления управляемого приложения на платформе 1С:Предприятие 8.2. Наконец-то и это недоразумение было устранено: объект КлиентскоеПриложение теперь позволяет его реализовать даже в управляемом приложении. Всего есть четыре режима работы:
- Обычное — внешний вид клиентского приложения не отличается от тех, что Вы видели обычно
- РабочееМесто — открывается рабочая область начальной страницы без привычных панелей разделов, истории и избранного. При этом пользователь все еще может закрыть приложение
- ПолноэкранноеРабочееМесто — аналогично предыдущему режиму, но в полноэкранном режиме
- Киоск — открывается рабочая область начальной страницы в полноэкранном режиме без панелей и без возможности закрыть окно приложения
Читайте также: