Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Зависает выгрузка для "толстых" конфигураций 1С #60

Open
artbear opened this issue Dec 9, 2015 · 2 comments
Assignees

Comments

@artbear
Copy link
Member

artbear commented Dec 9, 2015

Зависает на первой же команде git diff-index --name-status --cached HEAD или git status --porcelain
Проблема в реализации метода ПолучитьВыводПроцесса
Так гарантированно работает

Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)

    ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
    СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
    Лог.Отладка(СтрокаЗапуска);
    ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
    Лог.Отладка("Код возврата: " + КодВозврата);
    ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
    Вывод = ЧтениеТекста.Прочитать();
    ЧтениеТекста.Закрыть();

    Возврат Вывод;

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

а так часто не работает, на локальной машине (Вин7) работает
на нескольких машинх (Server 2012) просто зависает и все :(

Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)

    // Это для dev версии 1.0.11
    Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
    Процесс.Запустить();
    Вывод = "";

    Процесс.ОжидатьЗавершения();

    Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
    Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();

    КодВозврата = Процесс.КодВозврата;

    Возврат Вывод;

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

@EvilBeaver Можешь что-нибудь подсказать?

@artbear artbear self-assigned this Dec 9, 2015
@artbear artbear added this to the 1.0.0-oscript-port milestone Dec 9, 2015
@artbear
Copy link
Member Author

artbear commented Dec 9, 2015

Точнее зависает на репозитариях, в которых используется разбор конфигурации 1С на исходники

artbear added a commit that referenced this issue Dec 9, 2015
Добавил вывод лога в лог-файл,который находится рядом со скриптом
@EvilBeaver
Copy link

Брать отладчик, запускать проблемный код под ним и смотреть, что происходит

-----Исходное сообщение-----
От: "Artur Ayukhanov" [email protected]
Отправлено: ‎09.‎12.‎2015 16:10
Кому: "xDrivenDevelopment/precommit1c" [email protected]
Копия: "Andrei Ovsiankin" [email protected]
Тема: [precommit1c] Зависает выгрузка для "толстых" конфигураций 1С (#60)

Зависает на первой же команде git diff-index --name-status --cached HEAD
Проблема в реализации метода ПолучитьВыводПроцесса
Так гарантированно работает
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)

ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
Лог.Отладка(СтрокаЗапуска);
ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
Лог.Отладка("Код возврата: " + КодВозврата);
ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
Вывод = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();

Возврат Вывод;

КонецФункции
а так часто не работает, на локальной машине (Вин7) работает
на нескольких машинх (Server 2012) просто зависает и все :(
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)

// Это для dev версии 1.0.11
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
Процесс.Запустить();
Вывод = "";

Процесс.ОжидатьЗавершения();

Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();

КодВозврата = Процесс.КодВозврата;

Возврат Вывод;

КонецФункции
@EvilBeaver Можешь что-нибудь подсказать?

Reply to this email directly or view it on GitHub.

@artbear artbear modified the milestone: 2.0.0-oscript-port Mar 22, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants