Собственные скрипты в Turboconf

Добавил: nytlenc, 02 июня 2018 08:48, обновлено: 20 июня 2019 04:36

Раздел: Обсуждение TurboConf

TurboConf SDK Расширения Скрипты Уроки API OneScript Обучение

Скачать

Иногда штатных скриптов может не хватать и нет времени ждать когда выйдет официальный. Есть решение! Можно использовать SDK TurboConf + OneScript.

Инструментарий

Текущее SDK TurboConf:

https://turboconf.ru/Forum/Details/1468
https://turboconf.ru/Forum/Details/1469

Visual Studio Code

https://code.visualstudio.com/

А также расширение языка 1С для него:

https://marketplace.visualstudio.com/items?itemName=xDrivenDevelopment.language-1c-bsl

Очень большим плюсом турбоконфа по моему мнению, это использование языка OneScript для разработки скриптов (за то, что OneScript появился на свет, отдельное спасибо Андрею Овсянкину, он же Evil Beaver). Что же это все значит... А ровно то, что любой уважающий себя одинэснег сможет без труда написать скрип для турбоконфа, потому что OneScript работает на языке 1С. Есть совсем небольшие отличия, например плюсом OneScript является то, что он понимает регулярные выражения.

http://oscript.io/ https://habr.com/post/301064/ https://infostart.ru/public/548028/

Собственно сабж

В каталоге турбоконфа есть каталог "scripts", там и создаем наш новый скрипт. Вставляем директивы Турбоконфа (найти их описание можно в стандартном демоскрипте HeloWorld в том же каталоге):

  
// Обязательный аттрибут. Имя скрипта, без пробелов. Должно быть уникально в папке со скриптами. Может содержать буквы, цифры и знак _
//@script_name HelloWorld

// Представление имени скрипта
//@script_display_name Hello, World!

// Краткое описание скрипта
//@script_description Скрипт демонстрирует основы работы с TurboConf

// Автор скрипта
//@script_author m.bolsun

// Сайт разработчика
//@script_developer_url https://turboconf.ru

// Сочетание клавиш для вызова скрипта. Может быть переопределено пользователем в программе.
// Формат {Модификатор1}+{Модификатор2}+{Модификатор3}+Клавиша
// Значения клавиш содержатся в перечислении Клавиши (Keys)
// Примеры сочетаний: Control+Alt+Shift+A, Control+Alt+D1, Control+Shift+OemTilda, Alt+F
//@script_hotkey Control+D5
                       
//Восстанавливать буфер обмена после выполнения скрипта.
//Если в процессе выполнения скрипта был использован буфер обмена, может быть полезно восстановить пользовательское значение после завершения работы
//@retain_clipboard 1

// Скрипт будет доступен в режиме Предприятия
//@enterprise_mode 1

// Во время выполнения скрипта, скрывать от пользователя все служебные действия с Конфигуратором
//@hide_actions 1
Image https://turboconf.ru/Content/Files/31C694EEA2260A37464FB9F25FA7B436FB000A06/1506_1.png

Нам нужен скрипт для преобразования процедуры в функцию и обратно. Скрипт будет запускаться по горячим клавишам Alt+S .

Далее пишем сам метод и его реализацию:

Image https://turboconf.ru/Content/Files/31C694EEA2260A37464FB9F25FA7B436FB000A06/1506_2.png

Не забываем сохранить и в конфигураторе нажать Ctrl+SHIFT+R - перезагрузка скриптов турбоконфа.

Сам скрипт в работе:

Image https://turboconf.ru/Content/Files/31C694EEA2260A37464FB9F25FA7B436FB000A06/1506_3.png

Текст скрипта:


//@script_name ProcFunc
//@script_display_name Из процедуры в функцию и обратно
//@script_description Заменяет процедуру на функцию и обратно
//@script_author nytlenc
//@script_developer_url https://infostart.ru/profile/44476/
//@script_hotkey Alt+S ИзменитьМетод
//@retain_clipboard 1
//@enterprise_mode 0
//@hide_actions 1
//@script_version 2

Процедура ИзменитьМетод()

	ТК = Новый ТурбоКонф; 

	Поз = 0;
	ВыделенныйТекст = "";
	
	Текст = ТК.ПолучитьТекстМодуля(ВыделенныйТекст, Поз); 

	// Русский язык
	РегВыражениеПроцедура = Новый РегулярноеВыражение("(?:конецпроцедуры)");
	РегВыражениеПроцедура.ИгнорироватьРегистр = Истина;

	Если РегВыражениеПроцедура.Совпадает(ВыделенныйТекст) Тогда
		ТекстПослеЗамены = РегВыражениеПроцедура.Заменить(ВыделенныйТекст, "КонецФункции");
		РегВыражениеПроцедура = Новый РегулярноеВыражение("(?:процедура)");
		РегВыражениеПроцедура.ИгнорироватьРегистр = Истина;
		ТекстПослеЗамены = РегВыражениеПроцедура.Заменить(ТекстПослеЗамены, "Функция");
		ТК.ВставитьТекст(ТекстПослеЗамены);
		Возврат;
	КонецЕсли;

	РегВыражениеФункция = Новый РегулярноеВыражение("(?:конецфункции)");
	РегВыражениеФункция.ИгнорироватьРегистр = Истина;

	Если РегВыражениеФункция.Совпадает(ВыделенныйТекст) Тогда
		ТекстПослеЗамены = РегВыражениеФункция.Заменить(ВыделенныйТекст, "КонецПроцедуры");
		РегВыражениеФункция = Новый РегулярноеВыражение("(?:функция)");
		РегВыражениеФункция.ИгнорироватьРегистр = Истина;
		ТекстПослеЗамены = РегВыражениеФункция.Заменить(ТекстПослеЗамены, "Процедура");
		ТК.ВставитьТекст(ТекстПослеЗамены);
		Возврат;
	КонецЕсли;

	// Английский язык
	РегВыражениеПроцедура = Новый РегулярноеВыражение("(?:endprocedure)");
	РегВыражениеПроцедура.ИгнорироватьРегистр = Истина;

	Если РегВыражениеПроцедура.Совпадает(ВыделенныйТекст) Тогда
		ТекстПослеЗамены = РегВыражениеПроцедура.Заменить(ВыделенныйТекст, "EndFunction");
		РегВыражениеПроцедура = Новый РегулярноеВыражение("(?:procedure)");
		РегВыражениеПроцедура.ИгнорироватьРегистр = Истина;
		ТекстПослеЗамены = РегВыражениеПроцедура.Заменить(ТекстПослеЗамены, "Function");
		ТК.ВставитьТекст(ТекстПослеЗамены);
		Возврат;
	КонецЕсли;

	РегВыражениеФункция = Новый РегулярноеВыражение("(?:endfunction)");
	РегВыражениеФункция.ИгнорироватьРегистр = Истина;

	Если РегВыражениеФункция.Совпадает(ВыделенныйТекст) Тогда
		ТекстПослеЗамены = РегВыражениеФункция.Заменить(ВыделенныйТекст, "EndProcedure");
		РегВыражениеФункция = Новый РегулярноеВыражение("(?:function)");
		РегВыражениеФункция.ИгнорироватьРегистр = Истина;
		ТекстПослеЗамены = РегВыражениеФункция.Заменить(ТекстПослеЗамены, "Procedure");
		ТК.ВставитьТекст(ТекстПослеЗамены);
		Возврат;
	КонецЕсли;

КонецПроцедуры

Файл

Сайт разработчика: http://turboconf.ru

Страница разработки в соцсетях: https://vk.com/turboconf


Скачать К списку тем

Комментарии

bolsun
02 июня 2018 14:44: #1

Спасибо за публикацию!


николай q
20 июня 2019 04:36: #2

+1


TurboConf

Расширение возможностей

Конфигуратора 1С

Скачать

Бесплатный пробный период 14 дней