Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?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.4">
<ExternalDataProcessor uuid="11c5f751-bfaf-480a-92fe-7f30023f2e9a">
<ExternalDataProcessor uuid="94c6b1e7-9eb4-4925-ae3b-86ddb9b56f0e">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
<xr:ObjectId>908d0aaf-e4ec-4668-8d14-3e8075d222fd</xr:ObjectId>
<xr:ObjectId>d5c45041-d9eb-4617-ad45-c5a6420d1f6b</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalDataProcessorObject.УправлениеПриложениями" category="Object">
<xr:TypeId>85629dd2-6be4-49c6-9a69-13411102aa57</xr:TypeId>
<xr:ValueId>3fdd55c8-e92e-4f99-8b28-3ba8957b50ab</xr:ValueId>
<xr:TypeId>27221752-6c79-4c7a-b9f2-2f95bc97f37b</xr:TypeId>
<xr:ValueId>c05f62ba-2037-4948-b0a3-2867a9e7093b</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,15 @@
КодВозврата = 0;

ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt");
ВремКоманда = ТекстКоманды + " > """ + ИмяФайлаВывода + """";

// `2>&1` редиректит stderr в stdout, чтобы весь вывод собрать в одном файле.
ВремКоманда = ТекстКоманды + "> """ + ИмяФайлаВывода + """ 2>&1";

Попытка

ЗапуститьПриложение(ВремКоманда,, ЖдатьОкончания, КодВозврата);

Если КодВозврата = 0 Тогда
Если ФайлСуществует(ИмяФайлаВывода) Тогда
КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8);
КонецЕсли;

Expand Down Expand Up @@ -148,7 +150,7 @@
КонецЕсли;

ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt");
ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """";
ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1";

КонтекстЯдра.Отладка(ТекстКоманды);
//КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды);
Expand All @@ -159,7 +161,7 @@

Рез = WshShell.Run(ИмяВременногоФайлаКоманды, 0, ?(ЖдатьОкончания, -1, 0));

Если Рез = 0 Тогда
Если ФайлСуществует(ИмяФайлаВывода) Тогда
// команда выполнилась успешно
КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8);
КонецЕсли;
Expand Down Expand Up @@ -478,4 +480,9 @@

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

Функция ФайлСуществует(Путь)
Файл = Новый Файл(Путь);
Возврат Файл.Существует() И Файл.ЭтоФайл();
КонецФункции

// } Helpers
Original file line number Diff line number Diff line change
Expand Up @@ -117,13 +117,15 @@
КодВозврата = 0;

ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt");
ВремКоманда = ТекстКоманды + " > """ + ИмяФайлаВывода + """";

// `2>&1` редиректит stderr в stdout, чтобы весь вывод собрать в одном файле.
ВремКоманда = ТекстКоманды + "> """ + ИмяФайлаВывода + """ 2>&1";

Попытка

ЗапуститьПриложение(ВремКоманда,, ЖдатьОкончания, КодВозврата);

Если КодВозврата = 0 Тогда
Если ФайлСуществует(ИмяФайлаВывода) Тогда
КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8);
КонецЕсли;

Expand Down Expand Up @@ -164,7 +166,7 @@
КонецЕсли;

ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt");
ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """";
ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """ 2>&1";

КонтекстЯдра.Отладка(ТекстКоманды);
//КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды);
Expand All @@ -175,7 +177,7 @@

Рез = WshShell.Run(ИмяВременногоФайлаКоманды, 0, ?(ЖдатьОкончания, -1, 0));

Если Рез = 0 Тогда
Если ФайлСуществует(ИмяФайлаВывода) Тогда
// команда выполнилась успешно
КонсольныйВывод = ПрочитатьФайлКакТекст(ИмяФайлаВывода, ИспользоватьКодировкуТекстаUTF8);
КонецЕсли;
Expand Down Expand Up @@ -511,4 +513,9 @@

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

Функция ФайлСуществует(Путь)
Файл = Новый Файл(Путь);
Возврат Файл.Существует() И Файл.ЭтоФайл();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

к сожалению, в режиме асинхронности нельзя юзать синхронные методы Файл.Существует и ЭтоФайл (

Поэтому я делал обходной маневр и не проверяю наличие файла, по возможности.

предлагаю и здесь отказаться от этих методов и сразу читать файл

КонецФункции

// } Helpers