gifts2017

Командное окно

Опубликовал Олег (uncle_o) в раздел Программирование - Инструментарий

Еще одна консоль кода - после перехода на новую платформу приятно перетащить любимый инструмент

Несмотря на то, что Tormozit боится, что его проект намного удобнее, а coder1cv8 призывает не превращать ресурс в помойку, я все-таки рискну показать свой первый опус. Просьба сильно ногами не пинать

P.S. Все инструкции - в справке

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

Наименование Файл Версия Размер Кол. Скачив.
Командное Окно для 8.0
.1189010902 21,55Kb
11.07.13
36
.1189010902 21,55Kb 36 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Андрей Скляров (coder1cv8) 06.09.07 09:05
Напрасно боишься ;) никто пинать ногами и не собирается... Я свой плюсик поставил )
2. Сергей Старых (tormozit) 07.09.07 07:14
3. Андрей Скляров (coder1cv8) 07.09.07 12:22
(2) А почему свою консоль не сделаешь со встроенной контекстной подсказкой? Или я чего-то пропустил?...
4. Олег (uncle_o) 07.09.07 18:12
Очень хочу контекстную подсказку - времени нет:((( Я и консоль то на коленке сваял, самый минимум, чтобы свою работу немного ускорить.
5. Сергей Старых (tormozit) 07.09.07 22:28
(3) В моей подсистеме есть справочник Алгоритмы. Обычно я открываю форму нового элемента этого справочника и имею ту же самую "консоль кода" только более продвинутую. Ведь обычно результат своего мучения в "консоли кода" в конце нужно сохранять, а у меня просто нужно записать элемент справочника и готово!
6. Олег (uncle_o) 10.09.07 13:13
Ну, я и не претендую, как можно-с... Если бы знал, что существует такой шедевр ... все равно бы написал так же.
Фишка в том, что Командное Окно - это возможность выполнять команды по одной: выполнил - посмотрел, что получилось - выполнил следующую. Не теряя при этом предыдущих выполненных команд, к которым можно всегда вернуться, просто поднявшись вверх по протоколу. И сохраняя, естественно, вычисленные значения. И больше ничего! Просто, как три копейки. Такой механизм есть во всех интерпретаторах. Странно, что в 1С - интерпретирующей по сути системе - нет такого штатного способа работы. Даже для чисто компилятивных языков, как С и Паскаль, давно уже есть возможность выполнять исходный код, не выходя из среды разработки.
Что касается Справочника алгоритмов, то это вещь, нет слов, полезная. Только, что сохранять из командного окна? Текст типа:
%зп = новый запрос("ВЫБРАТЬ ... &пп...")
зп=установитьпараметр("пп", ...)
%тз = зп.выполнить().выгрузить()
смотр(тз)
или
%фф=Документы.МойДок.ПолучитьФорму()
фф.Открыть()
!фф.Открыта()
!фф.ЭлементыФормы.Поле.Реквизит
Его проще написать, чем искать в справочнике.
Опять же, справочник полезных алгоритмов, привязанный к конфигурации, - это что же, сколько у меня конфигураций - столько справочников? А если я чего изменил, мне что, по всем остальным экземплярам справочника изменения дублировать? Или я чего-то недопонял?
С полным уважением ко всем присутствующим, Дядюшка О.
7. Андрей Скляров (coder1cv8) 10.09.07 13:48
(5) Хотелось бы именно "консоль", в виде внешней обработки... )
Totoro; German; +2 Ответить
8. Герман (German) 10.09.07 14:49
(6) смотрите EI там прекрасная "консоль кода" как вы ее называете...
9. Сергей Старых (tormozit) 10.09.07 16:20
По поводу пошагового режима выполнения я согласен (сам хотел реализовать подобный режим, "отладочный", но пока до конца не придумал всю систему).
По поводу внешней обработки я также согласен (в моем случае переход к подсистеме был неизбежен).
10. Олег (uncle_o) 10.09.07 17:30
(8) EI - это круто! Оценил. Только (простите за занудство), хотелось бы, чтобы значения переменных, полученных при выполнении строк по одной, сохранялись бы... Это можно?
11. Герман (German) 11.09.07 09:30
(10) я даже не представляю как это можно реализовать?
12. Геннадий Пиганов (Totoro) 11.09.07 09:52
(11) Я тоже такое бы хотел :), но возникают проблемы с циклами/условиями/попытками. Либо после каждой строки нужно вызывать модальную форму со значениями переменных (код значительно разбухнет) :)
13. Герман (German) 11.09.07 10:11
(12) хотя по идее такое есть .. только переменные нужно определить вначале ...
А потом
Параметры.Эл=25*40-11;

А потом использовать эту переменную в последующих строках....
Сообщить(Параметры.Эл);
в Ei реализовано в "Конструкторе запросов" на закладке "Встроенный язык"
14. Геннадий Пиганов (Totoro) 11.09.07 10:20
(13) Надо будет дома посмотреть (на пока работе файловая)...

Но я имел ввиду следующее. Допустим вызываем код через:
Выполнить(ПодготовитьКод("А = 1; Б= 2;")). Тогда код преобразуется в следующий:

А=1;
ОбработатьТекущуюСтрокуИПоказатьМодульнуюФормуСПеременными();
Б= 2;
ОбработатьТекущуюСтрокуИПоказатьМодульнуюФормуСПеременными();

где на модальной форме будут показаны только доступные сейчас переменные

15. Герман (German) 11.09.07 10:24
(14) этот функционал работает и в файловой версии ... Модальное окно там есть ... где перечислены элементы входящие в структуру параметров
16. Геннадий Пиганов (Totoro) 11.09.07 10:40
(15) Действительно работает (прошу прощения за свою ленивость :) ), но выполняется сразу весь указанный (или выделенный) код (если я правильно понял). Но опять же проблема в циклах и т.п. Сейчас попробую набросать простейший пример построчного выполнения без анализа кода.
17. Олег (uncle_o) 11.09.07 11:20
(11) Я это сделал так: либо Вы определяете переменную через Перем П1, П2, ..., либо при первом присваивании указываете ее имя с % - %П1=10. Перед выполнением текст анализируется и структуре-реквизите формы Локалы заводится поле по каждую определенную таким образом переменную. Затем, к выполняемому тексту впереди добавляется текст П1=Локалы.П1, а в конце Локалы.П1 = П1 для определенных переменных, используемых в исполняемом фрагменте (см.текст обработки).
18. Геннадий Пиганов (Totoro) 11.09.07 12:49
У меня получился такой вариант построчного выполнения. Параметры нужно вводить вручную и они не обновляются при шагах (надо цикл еще один написать), но принцип должен быть понятен :)
Для указанного примера кода параметры будут доступны постепенно:

А = Новый Структура("Поле1, Поле1");
Б = 2;
А.Поле1 = Б;

http://zalil.ru/upload/24840608
19. Геннадий Пиганов (Totoro) 11.09.07 13:05
Подправил автообновление параметров по шагам и выход из выполнения при нажатии "Закрыть"

http://slil.ru/24840694
20. Сергей Старых (tormozit) 13.09.07 07:37
Нечто подобное и я пытаюсь придумать, но пока никак не могу преодолеть все преграды.
Нужно написать практически полноценный парсер текста, который кроме разбивки на командные блоки промаркирует конструкции ЕСЛИ ТОГДА, ПОКА ЦИКЛ, ДЛЯ КАЖДОГО ИЗ ЦИКЛ, ДЛЯ ПО ЦИКЛ, ПОПЫТКА ИСКЛЮЧЕНИЕ. Каждую из этих конструкций придется специфическим образом обрабатывать. Обращение к каждой локальной переменной, которые нужно будет еще отличить от свойств глобального контекста, нужно будет префиксовать типа Переменные.<ИмяПеременной>. Ну есть и еще ряд проблем...
21. Олег (uncle_o) 13.09.07 16:52
А командные блоки зачем разбирать, если не секрет?
22. Герман (German) 13.09.07 16:56
(20) И отличить " ПОПЫТКА -"+"123" от настоящего оператора ПОПЫТКА
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа