Решение проблемы отображения управляемых форм на экранах с маленьким разрешением (ОС 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С:Предприятие 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"!

28800 руб.

27.03.2025    61851    37    29    

51

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

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

36000 руб.

28.08.2025    4518    1    2    

4

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

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

5000 руб.

12.05.2020    32539    144    100    

100

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

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

6000 руб.

14.01.2016    58824    20    25    

46

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

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

5160 руб.

29.06.2020    23328    33    6    

52

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

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

5160 руб.

04.05.2018    50533    127    68    

71

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

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

5010 руб.

02.09.2010    81030    75    280    

193

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

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

5000 руб.

17.09.2018    39992    117    128    

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