![](https://habrastorage.org/getpro/habr/upload_files/698/c61/948/698c61948dfc344d4e2c53db02e77007.png)
Существует огромное множество скриптовых языков. Существует множество графических интерфейсов для скриптовых языков (англ. graphical user interface, GUI). И существует какое то количество дизайнеров для этих интерфейсов. Добавлю к этим разработкам и свои а именно - графический интерфейс и дизайнер форм для сценарного языка OneScript.
Реализован представляемый GUI и дизайнер в виде библиотек dll, написанных на языке C# и подключаемых в коде сценария OneScript. Особенность библиотек в том, что они используют как англоязычный, так и русскоязычный синтаксис, просты в освоении, или по другому у них низкий порог вхождения при обучении. Всё это свободно и бесплатно.
Узнал о OneScript прочитав статью на сайте infostart.ru и мысль дополнить его формами возникла сразу. Было это в 2016 году, и вот только год назад закончил работу над первым релизом. Много чему пришлось учиться с нуля, например, учить C#.
Бывает так, что вам нужна программа с набором определенных возможностей, или вы создаете своё рабочее место системного администратора, или просто решили попробовать свои силы в программировании, попробуйте использовать OneScript и эти формы. Начать можно с прочтения статьи: Как решать повседневные задачи с помощью OneScript. OneScript можно скачать здесь: 1Script - язык сценариев для специалистов по 1С.
Библиотеки находятся в свободном доступе на github по ссылкам: Графический интерфейс, Дизайнер форм. Разработку можно вести в обыкновенном текстовом редакторе, ведь это скриптовый язык. Но лучше и удобнее использовать редактор с подсветкой синтаксиса, например Notepad++ или среду разработки Visual Studio Code. Ну и конечно на компьютере должен быть установлен OneScript.
Для примера небольшой фрагмент кода.
Подключаем библиотеку форм и создаем кнопку:
ПодключитьВнешнююКомпоненту("ВашКаталогНаДиске\OneScriptForms.dll");
Ф = Новый ФормыДляОдноСкрипта();
Форма1 = Ф.Форма();
Форма1.Текст = "Форма1";
Форма1.Отображать = Истина;
Форма1.Показать();
Форма1.Активизировать();
Кнопка1 = Форма1.ЭлементыУправления.Добавить(Ф.Кнопка());
Кнопка1.Границы = Ф.Прямоугольник(10, 10, 75, 25);
Кнопка1.Текст = "Кнопка1";
Ф.ЗапуститьОбработкуСобытий();
Подключаем библиотеку дизайнера и запускаем его:
ПодключитьВнешнююКомпоненту("ВашКаталогНаДиске\OneScriptFormsDesigner.dll");
ДФ = Новый ДизайнерФормДляОдноСкрипта();
ДФ.Дизайнер();
Из приведенного выше кода вам теперь понятен синтаксис языка. Собственно это синтаксис платформы 1С:Предприятие.
Возможности форм:
методы СвернутьКонсоль(), СкрытьКонсоль(), ВосстановитьКонсоль() позволяют управлять окном консоли, связанной с вызывающим процессом. То есть ДОСовским черным окном
использование буфера обмена
графика позволит рисовать кистью геометрические фигуры, заливать поверхности паттернами и рисунками, копировать области экрана
обработка событий с получением аргументов события
отправка нажатия клавиш активному приложению
поиск окна по заголовку
имитировать программно нажатие кнопок мыши
воспроизведение системных звуков и ".wav" файлов
создание окон сообщений
календари двух видов для удобного выбора даты
горизонтальный и вертикальный индикаторы (ProgressBar)
работа с кодировкой
использование класса Цвет (Color)
имеется набор коллекций - МассивСписок (ArrayList), СортированныйСписок (SortedList), СписокЭлементов (ListView), ХэшТаблица (HashTable), Коллекция (Collection)
класс Математика (Math) позволит делать математические вычисления
форму можно закрепить на рабочем столе и соответственно открепить от рабочего стола. Можно создать виджет, и он не будет свёрнут при использовании команды "Свернуть все окна"
работа с иконкой в системном трее
наблюдатель файловой системы проинформирует Вас о событиях, произошедших с файлами/каталогами
таймер даст возможность выполнять действия в запланированное время
есть диалоги для выбора шрифта, цвета, каталога, открытия/сохранения файла
при работе с классом Картинка (Bitmap) Вы сможете попиксельно изменять изображение
класс Разделитель (Splitter) обеспечит разделение формы на отдельные, регулируемые мышью по размеру, области
конечно, есть классы Меню (Menu) и КонтекстноеМеню (ContextMenu)
используя сетку свойств, можно например создать настройки интерфейса, доступные пользователю
таблицы
Возможности дизайнера:
создание форм, размещение на форме элементов управления с помощью мыши
работа с несколькими формами одновременно
установка/изменение свойств элементов управления, в том числе работа с редакторами коллекций
установка обработчиков событий в виде не заполненных кодом процедур
спроектированную форму можно сразу запустить на исполнение и увидеть результаты
сохранение формы в файл ".osd" с последующим восстановлением для возобновления работы
формирование сценария с синтаксисом OneScript или просмотр кода сценария непосредственно в дизайнере
редакторы коллекций и свойства представлены только на русском языке
Можно написать множество диалоговых и просто форм, кодируемых в отдельных файлах и работающих как одно приложение. Подробнее об этом написано в справке к библиотекам. Дизайнер дополняет формы. Его назначение понятно. Это визуальное проектирование, размещение объектов на форме, установка свойств объектов, генерирование кода скрипта, готового для исполнения.
Для наглядности приведу скриншоты дизайнера.
![Меню дизайнера Меню дизайнера](https://habrastorage.org/getpro/habr/upload_files/131/c12/ce7/131c12ce7416bfdae2bbf234593807df.png)
![Настройка объекта Дерево Настройка объекта Дерево](https://habrastorage.org/getpro/habr/upload_files/34e/153/d6b/34e153d6b7661de85cbdd23b814e70e5.png)
![Просмотр кода сценария Просмотр кода сценария](https://habrastorage.org/getpro/habr/upload_files/f7a/b0e/e98/f7ab0ee9816b4f022a99db4dcf07d78a.png)
Описанный выше набор для создания программ с оконным интерфейсом, простой в применении, позволяет быстро создавать полезные инструменты для работы системных администраторов, программистов и просто любителей. Думаю, возможность писать код на русском языке является большим плюсом, по крайней мере, для меня это так.
В заключение ещё несколько ссылок касающихся описанных библиотек. Подробнее по формам: справка по формам. Подробнее по дизайнеру: справка по дизайнеру.
Рекомендую так же ознакомиться с языком программирования Перфолента.Net. Он предоставляет среду разработки (англ. Integrated development environment - IDE), может тесно взаимодействовать с OneScript (разработка - Библиотека для запуска кода Перфоленты из скриптов OneScript), и много чего ещё интересного.
Экосистема OneScript успешно развивается, и надеюсь, моя работа поспособствует популяризации языка.
BellaLugoshi
... а потом вам нужно поделиться кодом с общественностью и им для этого нужно поставить кириллические шрифты и изучить русский язык...
ahyahy Автор
Инструмент нужно использовать по назначению. Возникла задача, находишь подходящий инструмент и решаешь её. Я думаю у тех, кому пригодятся эти библиотеки кириллические шрифты уже установлены и русским они владеют.
Ну и некоторые фрагменты кода библиотек (c#) может быть кому то пригодятся. А в формах английский присутствует.