Начальный импорт: RunBsl — пакетное выполнение .bsl.
Внешняя обработка-обёртка для ENTERPRISE /Execute с передачей пути к BSL в /C. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
|
||||
<Form uuid="e5f6a7b8-c9d0-1234-ef01-345678901234">
|
||||
<Properties>
|
||||
<Name>Форма</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Run BSL</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<FormType>Managed</FormType>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UsePurposes>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||||
</UsePurposes>
|
||||
<ExtendedPresentation/>
|
||||
</Properties>
|
||||
</Form>
|
||||
</MetaDataObject>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.20">
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
|
||||
<Events>
|
||||
<Event name="OnOpen">ПриОткрытии</Event>
|
||||
</Events>
|
||||
<Attributes>
|
||||
<Attribute name="Объект" id="1">
|
||||
<Type>
|
||||
<v8:Type>cfg:ExternalDataProcessorObject.RunBsl</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Form>
|
||||
@@ -0,0 +1,85 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
Попытка
|
||||
// /C из командной строки; файл читается на клиенте (локальный путь Mac/Windows).
|
||||
ПутьКФайлу = НормализоватьПутьКлиент(ПараметрЗапуска);
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
|
||||
ПутьКФайлу = ПрочитатьПутьМаркераКлиент();
|
||||
КонецЕсли;
|
||||
|
||||
ТекстКода = ПрочитатьФайлКлиент(ПутьКФайлу);
|
||||
ВыполнитьТекстBSLНаСервере(ТекстКода, ПутьКФайлу);
|
||||
Исключение
|
||||
// В пакетном режиме — в лог /Out, без модального окна клиента.
|
||||
Сообщить("ОШИБКА: " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
Закрыть();
|
||||
ЗавершитьРаботуСистемы(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция НормализоватьПутьКлиент(ПутьКФайлу)
|
||||
|
||||
Результат = СокрЛП(ПутьКФайлу);
|
||||
|
||||
Если СтрДлина(Результат) >= 2 И Лев(Результат, 1) = """" И Прав(Результат, 1) = """" Тогда
|
||||
Результат = Сред(Результат, 2, СтрДлина(Результат) - 2);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПрочитатьПутьМаркераКлиент()
|
||||
|
||||
ПутьМаркера = ПутьМаркераЗапускаКлиент();
|
||||
Файл = Новый Файл(ПутьМаркера);
|
||||
|
||||
Если НЕ Файл.Существует() Тогда
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.Прочитать(ПутьМаркера, КодировкаТекста.UTF8);
|
||||
|
||||
Возврат НормализоватьПутьКлиент(ТекстовыйДокумент.ПолучитьТекст());
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПутьМаркераЗапускаКлиент()
|
||||
Возврат "/Users/kma/projects/crm3-26/data_transfer/crm3-26/.run_bsl_path.txt";
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПрочитатьФайлКлиент(ПутьКФайлу)
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
|
||||
ВызватьИсключение "Не задан путь к BSL-файлу (/C или .run_bsl_path.txt)";
|
||||
КонецЕсли;
|
||||
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
Если НЕ Файл.Существует() Тогда
|
||||
ВызватьИсключение "BSL-файл не найден (клиент): " + ПутьКФайлу;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||
ТекстовыйДокумент.Прочитать(ПутьКФайлу, КодировкаТекста.UTF8);
|
||||
|
||||
Возврат ТекстовыйДокумент.ПолучитьТекст();
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьТекстBSLНаСервере(Знач ТекстКода, Знач ПутьКФайлу)
|
||||
|
||||
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
|
||||
ОбъектОбработки.ВыполнитьТекстBSL(ТекстКода, ПутьКФайлу);
|
||||
|
||||
КонецПроцедуры
|
||||
Reference in New Issue
Block a user