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

09.04.18

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

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

Файлы

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

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

Подписка 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С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

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

29280 руб.

27.03.2025    70860    42    29    

56

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    5716    2    2    

5

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    1453    3    0    

2

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

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

6100 руб.

14.01.2016    59355    21    25    

46

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18300 руб.

30.05.2017    56356    10    71    

47

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

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

5246 руб.

29.06.2020    23732    33    6    

52

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

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

5094 руб.

02.09.2010    81194    75    280    

193

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

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

5084 руб.

12.05.2020    32780    144    100    

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