Решение проблемы отображения управляемых форм на экранах с маленьким разрешением (ОС Windows)

09.04.18

Разработка - Разработка внешних компонент

Настройка отображения окон управляемых форм.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Скомпилированный скрипт
.exe 884,00Kb
0 1 850 руб. Купить
Полный комплект скрипта изменения размеров окна
.rar 510,64Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

К неотключаемым обязательным элементам также можно добавить заголовок и поля окна. Когда "маленький" экран имеет разрешение 1400х900 или около того - все это безобразие еще можно терпеть, но когда экран имеет физические размеры 240х320 (терминал сбора данных, ОС Win CE, подключение по rdp), то под полезную информацию остается крайне мало места, что делает работу с ним фактически невозможной. Вариант замены ТСД не рассматривается по финансовым соображениям. Вариант переписывать формы на обычные - скажу честно, поленился. Вариант подключения с предустановленным большим разрешением также неработоспособен: вручать кладовщикам еще и стилусы с точки зрения быстродействия - все равно что кассирам в супермаркетах мышь и полноценный GUI выдать.

В итоге решил сдвигать неразвернутое окно за границы экрана.

 

К примеру левый верхний угол (-17,-60) и устанавливать ширину окна 240+17*2 и высоту 60+320+17 (с учетом правой и нижней границ). При этом во всей красе проявилось ограничение Windows (разрабатывалось на win xp и win2008), что максимальный размер окна не может превышать разрешение экрана. Казалось бы тупик.

Однако при внимательном чтении MSDN обратил внимание на описание функции SetWindowPos, в частности на флаг SWP_NOSENDCHANGING, блокирующий обработку сообщения WM_WINDOWPOSCHANGING, в ходе которого и применяется ограничение на максимальный размер окна. В итоге был написан и скомпилирован скрипт на AutoIt, который принудительно выставляет размеры и положения всех открытых окон (а в rdp ТСД ничего, кроме 1С не открыто) по указанным выше условиям без изменения порядка окон. 1С запускалась с ключом /isdi, для принудительного открытия форм в отдельных окнах.

Текст скрипта:

#include <WinAPISysWin.au3>

Example()

Func Example()
	Local $aList = WinList()
	For $i = 1 To $aList[0][0]
		If $aList[$i][0] <> "" And BitAND(WinGetState($aList[$i][1]), 2) Then
			_WinAPI_SetWindowPos($aList[$i][1], 0, -17, -60, 240+37, 320+77, 0x0404)
		EndIf
	Next
EndFunc

Полученный exe-файл можно запускать с помощью процедуры КомандаСистемы, однако тогда мелькает окно консоли. Чтобы этого избежать, можно вызывать через

AutoItX3 = Новый COMОбъект("AutoItX3.Control");
AutoItX3.Run("winsize.exe");

Путь к файлу может быть любой. Конечно же для этого требуется внешняя компонента autoit (входит в полный набор, можно скачать отдельно). Выкладываю собственно скомпилированный файл и архив RAR (файл скрипта, скомпилированный скрипт, внешняя компонента).

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

Вступайте в нашу телеграмм-группу Инфостарт

управляемые формы управляемая форма уф внешняя компонента autoit размер положение окно вк заголовок

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

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

16800 руб.

27.03.2025    5450    12    11    

17

Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3600 руб.

12.05.2020    30126    140    100    

95

Работа с интерфейсом 1С v8.3 Платные (руб)

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

6000 руб.

18.01.2022    11102    2    2    

7

Работа с интерфейсом Системный администратор Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия Платные (руб)

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

6000 руб.

14.01.2016    57114    19    25    

45

Работа с интерфейсом Программист 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    21029    30    6    

46

Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    78854    74    280    

192

Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    37876    117    128    

117

Работа с интерфейсом Программист Стажер 1С v8.3 Бесплатно (free)

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

20.08.2024    32827    mrXoxot    44    

135
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xershi 1536 09.04.18 23:06 Сейчас в теме
А не пробовали режим киоск?
Появился кажись с 8.3.10.
2. shard 282 10.04.18 09:07 Сейчас в теме
(1) тогда еще 8.3.10 не было.
Оставьте свое сообщение