You've already forked oScript-Examples
mirror of
https://github.com/Stepa86/oScript-Examples.git
synced 2026-04-23 19:31:06 +02:00
Формирование и запуск батника прям из обработки
This commit is contained in:
Binary file not shown.
@@ -61,6 +61,11 @@
|
||||
<CommandName>Form.Command.Записать</CommandName>
|
||||
<ExtendedTooltip name="ЗаписатьРасширеннаяПодсказка" id="5"/>
|
||||
</Button>
|
||||
<Button name="ЗаписатьФайлИЗапустить" id="108">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.ЗаписатьФайлИЗапустить</CommandName>
|
||||
<ExtendedTooltip name="ЗаписатьФайлИЗапуститьРасширеннаяПодсказка" id="109"/>
|
||||
</Button>
|
||||
<Button name="ТестОбработки" id="94">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.ТестОбработки</CommandName>
|
||||
@@ -97,6 +102,21 @@
|
||||
<ContextMenu name="OSCRIPTКонтекстноеМеню" id="25"/>
|
||||
<ExtendedTooltip name="OSCRIPTРасширеннаяПодсказка" id="26"/>
|
||||
</InputField>
|
||||
<InputField name="ОсновнойСкрипт" id="105">
|
||||
<DataPath>ОсновнойСкрипт</DataPath>
|
||||
<ChoiceButton>true</ChoiceButton>
|
||||
<InputHint>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>D:\Folder\CopyBase.os</v8:content>
|
||||
</v8:item>
|
||||
</InputHint>
|
||||
<ContextMenu name="ОсновнойСкриптКонтекстноеМеню" id="106"/>
|
||||
<ExtendedTooltip name="ОсновнойСкриптРасширеннаяПодсказка" id="107"/>
|
||||
<Events>
|
||||
<Event name="StartChoice">ОсновнойСкриптНачалоВыбора</Event>
|
||||
</Events>
|
||||
</InputField>
|
||||
<InputField name="EXE1CV8" id="27">
|
||||
<DataPath>EXE1CV8</DataPath>
|
||||
<DropListButton>true</DropListButton>
|
||||
@@ -542,7 +562,9 @@
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<FillCheck>ShowError</FillCheck>
|
||||
<Save>
|
||||
<Field>OSCRIPT</Field>
|
||||
</Save>
|
||||
</Attribute>
|
||||
<Attribute name="EXE1CV8" id="6">
|
||||
<Title>
|
||||
@@ -865,6 +887,39 @@
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
<Attribute name="ОсновнойСкрипт" id="28">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Скрипт</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
<Save>
|
||||
<Field>ОсновнойСкрипт</Field>
|
||||
</Save>
|
||||
</Attribute>
|
||||
<Attribute name="ТекущийКаталог" id="29">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Текущий каталог</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:string</v8:Type>
|
||||
<v8:StringQualifiers>
|
||||
<v8:Length>0</v8:Length>
|
||||
<v8:AllowedLength>Variable</v8:AllowedLength>
|
||||
</v8:StringQualifiers>
|
||||
</Type>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
<Commands>
|
||||
<Command name="Записать" id="1">
|
||||
@@ -912,5 +967,25 @@
|
||||
</ToolTip>
|
||||
<Action>ТестОбработки</Action>
|
||||
</Command>
|
||||
<Command name="ЗаписатьФайлИЗапустить" id="4">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Записать и запустить</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Записать файл и запустить</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Picture>
|
||||
<xr:Ref>StdPicture.GenerateReport</xr:Ref>
|
||||
<xr:LoadTransparent>true</xr:LoadTransparent>
|
||||
</Picture>
|
||||
<Action>ЗаписатьФайлИЗапустить</Action>
|
||||
<Representation>TextPicture</Representation>
|
||||
</Command>
|
||||
</Commands>
|
||||
</Form>
|
||||
@@ -57,6 +57,7 @@
|
||||
EXE1CV8 = КаталогПрограммы() + "1cv8.exe";
|
||||
|
||||
ПрочитатьСписокФайловНастройки();
|
||||
Прочитать( Неопределено );
|
||||
|
||||
#Иначе
|
||||
|
||||
@@ -74,7 +75,9 @@
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
текФайл = Новый Файл( ИспользуемоеИмяФайла );
|
||||
каталогПоиска = Новый Файл( текФайл.Путь + КаталогПоиска() );
|
||||
ТекущийКаталог = текФайл.Путь;
|
||||
|
||||
каталогПоиска = Новый Файл( ТекущийКаталог + КаталогПоиска() );
|
||||
|
||||
каталогПоиска.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПрочитатьСписокФайловНастройкиЗавершение", ЭтаФорма, Новый Структура("каталогПоиска", каталогПоиска)));
|
||||
|
||||
@@ -159,8 +162,7 @@
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
текФайл = Новый Файл( ИспользуемоеИмяФайла );
|
||||
каталогПоиска = Новый Файл( текФайл.Путь + КаталогПоиска() );
|
||||
каталогПоиска = Новый Файл( ТекущийКаталог + КаталогПоиска() );
|
||||
|
||||
каталогПоиска.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПриЗакрытииЗавершение", ЭтаФорма, Новый Структура("каталогПоиска", каталогПоиска)));
|
||||
|
||||
@@ -242,6 +244,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
файл = Новый Файл( ИмяФайлаНастроек );
|
||||
|
||||
файл.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ПрочитатьЗавершение", ЭтаФорма));
|
||||
@@ -270,6 +273,7 @@
|
||||
ПрочитатьПараметрыРекурсивно( соотПараметры, прочитанныеПараметры );
|
||||
|
||||
OSCRIPT = прочитанныеПараметры.Получить( "OSCRIPT" );
|
||||
ОсновнойСкрипт = прочитанныеПараметры.Получить( "Main_os" );
|
||||
EXE1CV8 = прочитанныеПараметры.Получить( "EXE1CV8" );
|
||||
FileBackup = прочитанныеПараметры.Получить( "FileBackup" );
|
||||
Script_Restore = прочитанныеПараметры.Получить( "Script_Restore" );
|
||||
@@ -321,6 +325,7 @@
|
||||
|
||||
общиеПараметры = Новый Соответствие;
|
||||
общиеПараметры.Вставить( "OSCRIPT" , OSCRIPT );
|
||||
общиеПараметры.Вставить( "Main_os" , ОсновнойСкрипт );
|
||||
общиеПараметры.Вставить( "EXE1CV8" , EXE1CV8 );
|
||||
общиеПараметры.Вставить( "FileBackup" , FileBackup );
|
||||
общиеПараметры.Вставить( "Script_Restore", Script_Restore );
|
||||
@@ -366,6 +371,60 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаписатьФайлИЗапустить(Команда)
|
||||
|
||||
Если Не ПроверитьЗаполнение() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Записать( Команда );
|
||||
|
||||
отказ = Ложь;
|
||||
|
||||
Если Не ЗначениеЗаполнено( ОсновнойСкрипт ) Тогда
|
||||
Сообщение = Новый СообщениеПользователю();
|
||||
Сообщение.Текст = НСтр( "ru='Не заполнен основной скрипт. Нечего запускать.'" );
|
||||
Сообщение.Поле = ОсновнойСкрипт;
|
||||
Сообщение.Сообщить();
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено( OSCRIPT ) Тогда
|
||||
Сообщение = Новый СообщениеПользователю();
|
||||
Сообщение.Текст = НСтр( "ru='Не заполнен путь к OSCRIPT.exe. Нечем запускать.'" );
|
||||
Сообщение.Поле = ОсновнойСкрипт;
|
||||
Сообщение.Сообщить();
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Отказ Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
строкаЗапуска = OSCRIPT + " " + ОсновнойСкрипт + " " + ИмяФайлаНастроек;
|
||||
|
||||
имяВременногоФайла = ПолучитьИмяВременногоФайла("bat");
|
||||
|
||||
файлBat = Новый ЗаписьТекста(имяВременногоФайла, КодировкаТекста.ANSI);
|
||||
файлBat.ЗаписатьСтроку( "chcp 1251" );
|
||||
файлBat.ЗаписатьСтроку( строкаЗапуска );
|
||||
файлBat.ЗаписатьСтроку( "pause" );
|
||||
файлBat.Закрыть();
|
||||
|
||||
кодВозврата = 0;
|
||||
|
||||
ЗапуститьПриложение( имяВременногоФайла, ТекущийКаталог, Истина, КодВозврата );
|
||||
|
||||
УдалитьФайлы( имяВременногоФайла );
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#Область ВыборФайлов
|
||||
|
||||
&НаКлиенте
|
||||
@@ -512,6 +571,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОсновнойСкриптНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие );
|
||||
|
||||
Если ЗначениеЗаполнено( ОсновнойСкрипт ) Тогда
|
||||
|
||||
ДиалогОткрытияФайла.ПолноеИмяФайла = ОсновнойСкрипт;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ДиалогОткрытияФайла.Фильтр = НСтр( "ru='Файл скрипта'" ) + " (*.os)|*.os";
|
||||
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
|
||||
ДиалогОткрытияФайла.Заголовок = НСтр( "ru='Выберите файл скрипта'" );
|
||||
|
||||
ДиалогОткрытияФайла.Показать(Новый ОписаниеОповещения("Файл_НачалоВыбораЗавершение", ЭтаФорма, Новый Структура("ИмяРеквизита", "ОсновнойСкрипт")));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
@@ -612,7 +690,7 @@
|
||||
|
||||
генератор = Новый ГенераторСлучайныхЧисел( ТекущаяУниверсальнаяДатаВМиллисекундах() );
|
||||
|
||||
тестовыеЗначения = Новый Структура("OSCRIPT,EXE1CV8,FileBackup,Script_Restore,
|
||||
тестовыеЗначения = Новый Структура("OSCRIPT,ОсновнойСкрипт,EXE1CV8,FileBackup,Script_Restore,
|
||||
|Source_SQL_Server,Source_SQL_User,Source_SQL_Password,Source_SQL_Base,
|
||||
|Current_SQL_Server,Current_SQL_User,Current_SQL_Password,Current_SQL_Base,
|
||||
|База_СтрокаПодключения,База_Пользователь,База_Пароль,База_ПутьКОбработке,
|
||||
@@ -679,6 +757,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user