Снегопат
https://snegopat.ru/forum/

Хотелки по скриптам
https://snegopat.ru/forum/viewtopic.php?f=3&t=10
Страница 25 из 28

Автор:  boggonzikov [ 02 окт 2012, 14:22 ]
Заголовок сообщения:  Re: Хотелки по скриптам

Предлагаю создать скрипт «Отладчик:Тестирование кода» (debugCodeHelpers), по мотивам статьи http://infostart.ru/public/121612/ .
Скрипт позволит отлаживать код во внешней обработке, что позволит увеличить скорость кодирования/отладки.
Хотел сам реализовать, да знаний js не особенно много. Дошел до копирования кода в обработку (смотрел скрипты debugHelpers.js и refactoring.js).
Что должен делать скрипт:
При нажатии «перенести код для отладки» код из модуля конфигурации переносится во внешнюю обработку. Открывается модуль обработки с отлаживаемым кодом. Было бы хорошо чтобы заменялся код с реквизитами (РеквизитОбъекта на например _ЭтотОбъект.РеквизитОбъекта). Скорее всего достаточно было бы переносить целый модуль процедуры/функции, так же было бы замечательно, если при отладке некоторого количество кода, чтоб создавалась процедура с необходимыми параметрами, как в скрипте рефакторинг – выделить метод.
При нажатии «перенести код отладки в модуль», происходит обратная обработка кода и код вставляется в модуль откуда был перенесен для отладки.

Автор:  sosnae [ 02 окт 2012, 17:38 ]
Заголовок сообщения:  Re: Хотелки по скриптам

Что именно не получается? ИМХО для начала выбрал самые трудные скрипты для понимания.
Для работы с текстом я бы советовал ознакомится с TextWindow и практикой применения методов в скриптах textEditorExt.

Правильно ли я понимаю:
1. Выделили текст.
2. Создали новую обработку (скопировали из шаблона).
3. Открыли обработку, нашли определенную процедуру и там заменили/добавили выделенный код ранее.
4. Сохранили
5. и т.д.

Распиши, дальше твое видение, что смогу подсоблю.

Автор:  boggonzikov [ 03 окт 2012, 14:41 ]
Заголовок сообщения:  Re: Хотелки по скриптам

sosnae писал(а):
Распиши, дальше твое видение, что смогу подсоблю.

Как я это вижу.
Например отлаживаем процедуру, в модуле формы.
1. Выделяем процедуру в модуле формы.
2. Кнопка скрипта «перенести код для отладки».
2.1. Открывается внешняя обработка, которая указана в настройках скрипта.
2.2. В модуль обработки копируется полностью код процедуры. Процедура делается экспортной, для вызова.
2.3. Было бы хорошо чтобы заменялся код с реквизитами, при отладке объектов (РеквизитОбъекта на например _ЭтотОбъект.РеквизитОбъекта).
3. Код процедуры в модуле формы заменяется на вызов процедуры во внешнюю обработку. Например
Отладка = ВнешниеОбработки.Создать("<Путь к обработке для отладки из настроек скрипта>");
Отладка.<ПродедураОтладки>();
После отладки кода в обработке. Необходимо заменить код из конфигурации на код из обработки.
1. Выделяем процедуру.
2. Кнопка скрипта «перенести код отладки в модуль».
3. Обратная обработка кода.
4. Вставка кода в модуль формы конфигурации.

Подскажи как решить или где глянуть примеры:
1. пункт 3. Замена кода процедуры на необходимый текст. Поиск имени процедуры – функции и ее параметров.
2. пункт пункт 2.3. Определение является переменная реквизитом объекта или формы?
3. пункт 4. Поиск модуля откуда код был перенес в обработку для отладки?. Может есть внутренний идентификатор каждого модуля.

Автор:  sosnae [ 05 окт 2012, 09:43 ]
Заголовок сообщения:  Re: Хотелки по скриптам

boggonzikov писал(а):
1. пункт 3. Замена кода процедуры на необходимый текст. Поиск имени процедуры – функции и ее параметров.
2. пункт пункт 2.3. Определение является переменная реквизитом объекта или формы?
3. пункт 4. Поиск модуля откуда код был перенес в обработку для отладки?. Может есть внутренний идентификатор каждого модуля.


1. Замена кода процедуры на необходимый текст. Поиск имени процедуры – функции и ее параметров : смотри Libs\TextWindow.js и его использование, например в textEditorExt.js .
Код:
var w = GetTextWindow();  //для модуля получаем объект TextWindow , можем манипулировать текстом, курсором как душа пожелает.
if (!w) return false;

Парсинг модуля на процедуры/функции смотри в SyntaxAnalysis.js и пример использования в mdnavigator или funcpocpanel .
Код:
               
var text = mdObj.getModuleText(mdPropName);
parseModule = SyntaxAnalysis.AnalyseModule(text, true); //Парсим модуль.  _vtAllMethods - таблица со списком процедур или функций.
for (var z=0; z<parseModule._vtAllMethods.Count(); z++){
  var НоваяСтрока = vtModules.Add();
  var RowMethod = parseModule._vtAllMethods.Get(z);
  НоваяСтрока.Модуль = mdPropName;
  НоваяСтрока.Наименование = RowMethod.Name;
  НоваяСтрока.Module1C = RowMethod._method;
}


2. пункт пункт 2.3. Определение является переменная реквизитом объекта или формы?
является переменная реквизитом - я бы из текущего окошка определял какой это объект метаданных и смотрел бы реквизиты и сопоставлял их, работа с метаданным
является переменная реквизитом формы - это тебе надо к vikad обратиться, я из ее восмерочной обработки переносил в js определение подписок на события элементов формы в funcprocpanel.

3. Поиск модуля откуда код был перенес в обработку для отладки?. Может есть внутренний идентификатор каждого модуля. - есть идентификатор объекта (а там уже можешь получить текст модуля объекта, модуль менеджера) , при переборе метаданных, можешь посмотреть в extSearch в глобальном поиске.

Автор:  artbear [ 06 окт 2012, 06:55 ]
Заголовок сообщения:  Re: Хотелки по скриптам

sosnae писал(а):
является переменная реквизитом формы - это тебе надо к vikad обратиться, я из ее восьмерочной обработки переносил в js определение подписок на события элементов формы в funcprocpanel.

что за обработка?

Автор:  vikad [ 06 окт 2012, 08:34 ]
Заголовок сообщения:  Re: Хотелки по скриптам

artbear писал(а):
sosnae писал(а):
является переменная реквизитом формы - это тебе надо к vikad обратиться, я из ее восьмерочной обработки переносил в js определение подписок на события элементов формы в funcprocpanel.

что за обработка?

Я ее слепила из того, что было...

Вложения:
ОбработчикиСобытийКонтроловФормы.rar [11.09 КБ]
Скачиваний: 391

Автор:  artbear [ 06 окт 2012, 09:37 ]
Заголовок сообщения:  Re: Хотелки по скриптам

vikad писал(а):
artbear писал(а):
sosnae писал(а):
является переменная реквизитом формы - это тебе надо к vikad обратиться, я из ее восьмерочной обработки переносил в js определение подписок на события элементов формы в funcprocpanel.

что за обработка?

Я ее слепила из того, что было...

И как работает? ввожу произвольный текст, далее Выполнить, выдается ошибка
Цитата:
{Форма.Форма.Форма(318)}: Ошибка при вызове метода контекста (Прочитать)
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Document is empty

Автор:  sosnae [ 06 окт 2012, 09:47 ]
Заголовок сообщения:  Re: Хотелки по скриптам

Тебе надо внутреннее представление формы ввести, то которое {#,5c83cba4-7a20-4102-a5be-add0ee74f6a1и т.д. или v8unpack распаковать или же из снегопата записать в файл.

Автор:  the1 [ 10 окт 2012, 14:21 ]
Заголовок сообщения:  Re: Хотелки по скриптам

Скажите, реализуемо ли получение параметров из табличного документа в модуль? То есть хотелось бы, чтобы скрипт анализировал ТабДок.Параметры и переносил в модуль в виде Макет.<ИмяПараметра>

Все хотелки не читал)))

Автор:  boggonzikov [ 12 окт 2012, 13:13 ]
Заголовок сообщения:  Re: Хотелки по скриптам

Сделал 1 релиз скрипт «Отладчик:Тестирование кода» (debugCodeHelpers). Как его положить в хранилище, может кто-нибудь будет пользоваться.

Страница 25 из 28 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/