|
Предположим, мы хотим создать конфигурацию, которая выполняет какие-то действия с Конфигуратором и обрабатывает результат. Например, выгружает в текущем конфигураторе файлы конфигурации в xml и отправляет в Git.
//@script_name ExtAppExample
//@script_display_name Пример взаимодействия между Конфигуратором и 1С в режиме Предприятия
//@script_description В примере показано как передать данные из Конфигуратора в режим Предприятия и обратно
//@script_author m.bolsun
//@script_developer_url https://turboconf.ru
//@script_hotkey Control+Shift+E
//@turbomenu 1
//@retain_clipboard 0
//@enterprise_mode 0
//@hide_actions 0
//@text_documents_only 0
ТурбоКонф = Новый ТурбоКонф;
ОкноКонфигуратора = ТурбоКонф.ПолучитьАктивноеОкно();
//В данном примере предполагаем, что наша конфигурация уже открыта в режиме ОкноПредприятия
ОкноПредприятия = ТурбоКонф.НайтиОкноПоЗаголовку("Взаимодействие с конфигуратором");
//ToDo: если окна нет, то можно открыть конфигурацию через командную строку 1сv8.exe
ТурбоКонф.АктивироватьОкно(ОкноПредприятия);
Нажимаем в Конфигураторе комбинацию Ctrl+Shift+E которую мы назначили скрипту, или вызываем его через меню. Окно конфигурации активировалось.
В форме нашей конфигурации создадим команду, которая вызывает TurboConf и передает ему путь к скрипту, который нужно выполнить.
&НаКлиенте
Процедура ВыполнитьСкриптИзФайла(ТекстСкрипта, ВернутьФокусПоЗавершении = 0)
ИмяФайла = ДиректорияТурбоКонф + "script.txt";
ЗаписатьТекстовыйФайл(ИмяФайла, ТекстСкрипта);
СтрокаЗапуска = ДиректорияТурбоКонф + "TurboConf.Application.exe --source=""" + ИмяФайла + """" + " --return=" +Строка(ВернутьФокусПоЗавершении);
НачатьЗапускПриложения(Новый ОписаниеОповещения("НачатьЗапускПриложенияЗавершение", ЭтотОбъект), СтрокаЗапуска,, Истина);
КонецПроцедуры
&НаКлиенте
Процедура КомандаВыгрузитьКонфигурацию(Команда)
ВыполнитьСкриптИзФайла(Скрипт, 1);
КонецПроцедуры
&НаКлиенте
Процедура НачатьЗапускПриложенияЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт
Если КодВозврата = 1 Тогда
Результат = ПрочитатьТекстовыйФайл(ДиректорияТурбоКонф +"log.txt");
//Обрабатываем ошибку
Иначе
//Выгрузка завершилась без ошибок
Результат = ПолучитьТекстИзБуфераОбмена();
//Здесь обрабатываем наши файлы, вызываем git с командами
//По завершении можем вызвать еще один скрипт, вернуть фокус конфигуратору и вывести в нем сообщение
КонецЕсли;
КонецПроцедуры // НачатьЗапускПриложенияЗавершение
Ну и собственно сам скрипт, который выгружает файлы конфигурации и который мы передаем в TurboConf для выполнения.
ТурбоКонф = Новый ТурбоКонф;
ТурбоКонф.OpenConfigurationMenu("Выгрузить конфигурацию в файлы...");
ОкноВопроса = ТурбоКонф.ЖдатьОкно("Слишком длинные имена объектов метаданных", 2000, Истина, Ложь);
Если ОкноВопроса <> 0 Тогда
ТурбоКонф.Клавиша(Клавиши.Enter);
КонецЕсли;
Окно = ТурбоКонф.ЖдатьОкно("Выгрузить файлы конфигурации", 2000, Истина, Истина);
//Здесь можем вставить путь для выгрузки. ТурбоКонф.ВставитьТекст(НашПуть);
ТурбоКонф.КонтролКлавиша(Клавиши.Enter);
ТурбоКонф.ЖдатьЗакрытияОкна(Окно, "Выгрузить файлы конфигурации", 10000);
// В качестве демонстрации передадим сообщение через буфер
ТурбоКонф.УстановитьБуферОбмена("Выгрузка успешно завершена.");
Вот что получилось в итоге