Уведомления
Очистить все
1С:Предприятие 8.x
1
Записи
1
Пользователи
0
Likes
1,625
Просмотры
Создатель темы 25/07/2020 9:32 пп
Если нам нужно запустить на клиентской машине какое-нибудь приложение, а клиент привык работать только с 1С, делаем следующее:
//1. Превращаем наш исполняемый файл в строку
ДД = Новый ДвоичныеДанные("C:\НашаПрограмма.exe");
Строка64 = Base64Строка(ДД);
//2. И добавляем его реквизитом в обработку
// в процедуру "ПриСозданииНаСервере".
Объект.ДвоичныеДанные = Строка64;
ОпятьДвоичныеДанные = Base64Значение(Объект.ДвоичныеДанные);
НашаПрограмма = "C:\НашаПрограмма.exe";
ОпятьДвоичныеДанные.Записать(НашаПрограмма);
ЗапуститьПриложение(НашаПрограмма);
При необходимости мы можем добавить произвольное приложение в автозапуск системы:
&НаКлиенте
Процедура ДобавитьПрограммуВАвтозапуск(ПолныйПутьКФайлу = "", ВключитьОтладку = Ложь)
Символ34 = Символ(34);
ВеткаАвтозапуска = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
СтрокаКоманды = "Reg Add "
+ Символ34 + ВеткаАвтозапуска + Символ34
+ " /v "
+ Символ34 + "Notepad" + Символ34
+ " /t REG_SZ /d "
+ Символ34 + ПолныйПутьКФайлу + Символ34
+ " /f"
+ " /reg:64";
ПутьКСкриптуДобавления = "C:\Users\Public\Documents\startNotepad_Autorun.bat";
ЗаписьТекста = Новый ЗаписьТекста(ПутьКСкриптуДобавления, КодировкаТекста.OEM);
Если ВключитьОтладку Тогда
ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды + Символы.ПС);
ЗаписьТекста.ЗаписатьСтроку("pause");
Иначе
ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды);
КонецЕсли;
ЗаписьТекста.Закрыть();
Оповещение = Новый ОписаниеОповещения("IDDQD", ЭтотОбъект);
НачатьЗапускПриложения(Оповещение,ПутьКСкриптуДобавления);
КонецПроцедуры
&НаКлиенте
Процедура IDDQD(Первый, Второй) Экспорт
КонецПроцедуры