А... Еще одну обязательную функцию пропустил:
//https://infostart.ru/public/156973/
Функция ПодписатьФайл(ИмяФайла,ВыбСертификат,ИмяВыхФайла)
Попытка
JS=СоздатьОбъект("MSScriptControl.ScriptControl");
JS.Language="jscript";
JS.Timeout=-1;
Исключение
ТекстОшибки=ОписаниеОшибки();
Сообщить("Не удалось создать объект MSScriptControl.ScriptControl","!");
Сообщить("Описание ошибки: "+ТекстОшибки,"!");
Возврат 0;
КонецПопытки;
Попытка
СтрКода="function SignFile(FileName,Cert,OutFileName)
|{
| InStream=new ActiveXObject(""ADODB.Stream"");
| InStream.Type=1; // binary data
| InStream.Mode=3; // read/write
| InStream.Open();
| InStream.LoadFromFile(FileName);
| InData=InStream.Read(-1);
|
| Signer=new ActiveXObject(""CAPICOM.Signer"");
| Signer.Certificate=Cert;
| Signer.Options=2; // CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY
| SignedData=new ActiveXObject(""CAPICOM.SignedData"");
| SignedData.Content=InData;
| OutSignedData=SignedData.Sign(Signer,0,0);
|
| OutStream=new ActiveXObject(""ADODB.Stream"");
| OutStream.CharSet=""utf-8"";
| OutStream.Type=2; // text data
| OutStream.Mode=3; // read/write
| OutStream.Open();
| OutStream.WriteText(OutSignedData);
| OutStream.SaveToFile(OutFileName,2);
| OutStream.Close();
|
| return(0);
|}
|";
JS.AddCode(СтрКода);
Рез=JS.Modules("Global").CodeObject.SignFile(ИмяФайла,ВыбСертификат,ИмяВыхФайла);
Исключение
ТекстОшибки=ОписаниеОшибки();
Сообщить("Произошла ошибка при подписи файла!","!");
Сообщить("Описание ошибки: "+ТекстОшибки,"!");
Возврат 0;
КонецПопытки;
Возврат 1;
КонецФункции