Closed bbslipers closed 8 years ago
Дело в том, что TestApp это инструмент для отладки движка, а не отладки скриптов. Указанное поведение, пожалуй, имеет смысл реализовать, но в любом случае, мы рекомендуем разрабатывать скрипты в специальных редакторах, с подсказкой и подсветкой, а не в TestApp. Он не для этого.
Пока не подскажите как передать указатель на функцию (использую WSO) в обработчик события button.OnClick?
Функция CloseFormHandler(Sender) Экспорт
Возврат Sender.Form.Close();
КонецФункции
wso = Новый COMObject("Scripting.WindowSystemObject"); wso.EnableVisualStyles = true;
form = wso.CreateForm(0,0,0,0); form.ClientWidth = 150; form.ClientHeight = 120; form.CenterControl();
input = form.CreateEdit(10,10,100,25); button = form.CreateButton(10,70,75,25,"Close"); button.OnClick = "CloseFormHandler";
form.Show(); wso.Run();
Script started: 08.08.2016 0:57:01
{Модуль C:\Users\Администратор\Desktop\1CScript\bin\test.os / Ошибка в строке: 15 / Внешнее исключение: Параметр задан неверно. (Исключение из HRESULT: 0x80070057 (E_INVALIDARG))}
button.OnClick = "CloseFormHandler";
Error detected. Exit code = 1 Script completed: 08.08.2016 0:57:01 Duration: 00:00:00.0227158
bbslipers , Если хочешь сделать GUI на 1script посмотри сюда: https://github.com/ret-Phoenix/oscript-simple-gui
@bbslipers я не знаком с WSO, поэтому не знаю ответ про обработчик. Правильный путь в GUI вам уже подсказали )
Пока использую такое решение: ActiveX
Регистрируем: regsvr32 InputDlg.dll
В скрипте:
Функция ВвестиЗначение(ЗаголовокОкна,ЗаголовокПоляВвода,ЗначениеПоУмолчанию) InputDlg = Новый COMObject("InputDlg.Dialog"); Возврат InputDlg.InputBox(ЗаголовокПоляВвода,ЗаголовокОкна,ЗначениеПоУмолчанию); КонецФункции
Сообщить(ВвестиЗначение("Заголовок окна","Заголовок поля ввода","Значение по умолчанию"));
Я понимаю, что TestApp "не для этого", но я ребенка учу процедурному программированию в 1С, и данное приложение как нельзя лучше подходит для этой задачи. Просто, быстро, понятно, ни чего не отвлекает (работа с объектами метаданных пока не нужна, а писать вполне работающие обучающие скрипты - одно удовольствие). Ввода строки реально не хватало.
Поставь SublemeText. интерфейс минималистичен и удобен ) сам сижу на VSCode
Ну да. Есть же редакторы от @nixel2007. Я с телефона, коллеги, дайте ссылку, пожалуйста.
SublemeText, EmEditor - прекрасные редакторы, и подсветка и подсказки, все это очень удобно для программистов давно и плотно работающих. Ребенку не нужен список всех методов после точки и многое еще что не нужно. В TestApp есть все, написал - выполнил - увидел результат или описание ошибки, автомат Калашникова: Заряд - Выстрел - Выброс - Заряд :)
Выдается сообщение "Строка введена", реального же ожидания ввода строки не происходит. Это доставляет огромное неудобство при отладке скриптов.