INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Маршалкина Анна | HR Generalist | АйТи Капитал

«Пережить интервью и продать себя. Лайфхак для разработчиков 1С»

Поиск работы, составление резюме и прохождение интервью - стресс для многих специалистов. Зачастую, даже самые опытные разработчики 1С могут провалить интервью, так как не подготовили резюме должным образом, а на собеседовании так занервничали, что не ответили и на половину вопросов. Я поделюсь своим опытом анализа резюме и оценки компетенций разработчиков 1С, покажу вам взгляд изнутри, раскрою секреты HR, помогу вам пережить интервью и продать себя. Итак, лайфхаки от меня: 1. Soft и hard skills разработчиков 1С; 2. Как составить идеальное резюме и подготовиться к интервью; 3. Как удачно ответить на самые каверзные вопросы HR и продать себя; 4. Как вести себя после интервью в общении с работодателем; 5. И каким должен быть job offer, чтобы вы сказали "да".

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

Программирование - Внешние компоненты

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

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

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

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

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

К неотключаемым обязательным элементам также можно добавить заголовок и поля окна. Когда "маленький" экран имеет разрешение 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 (файл скрипта, скомпилированный скрипт, внешняя компонента).

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

2

Скачать файлы

Наименование Файл Версия Размер
Скомпилированный скрипт
.exe 884,00Kb
09.04.18
0
.exe 884,00Kb Скачать
Полный комплект скрипта изменения размеров окна
.rar 510,64Kb
09.04.18
0
.rar 510,64Kb Скачать

См. также

Комментарии
Сортировка: Древо
1. Xershi 386 09.04.18 23:06 Сейчас в теме
А не пробовали режим киоск?
Появился кажись с 8.3.10.
2. shard 250 10.04.18 09:07 Сейчас в теме
Оставьте свое сообщение