Имя: Пароль:
1C
1С v8
Присоединить электронную подпись к xml файлу
,
0 slnes
 
21.03.23
12:11
Имеется файл запрос.xml.
Получил его подпись в другой файл запрос.xml.p7s.
Помогите присоединить подпись к запрос.xml.
1 Garykom
 
гуру
21.03.23
12:11
уточни стандарт подписи
2 slnes
 
21.03.23
12:13
PKCS7/DER
3 Garykom
 
гуру
21.03.23
12:13
4 Garykom
 
гуру
21.03.23
12:13
(2) ты что то путаешь
5 slnes
 
21.03.23
12:22
(1),(4) алгоритм подписи - GR 34.10-2012 256
6 Garykom
 
гуру
21.03.23
12:25
7 Garykom
 
гуру
21.03.23
12:27
комменты смотри
https://forum.infostart.ru/forum9/topic286333/
8 slnes
 
21.03.23
13:50
Я подписываю вот так
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
МенеджерКриптографии.Подписать(ФайлЗапроса, ФайлЗапроса + ".p7s", Сертификат);
получаю файл запрос.xml.p7s

как мне поместит эту подпись в начало файла запрос.xml, что бы получить запрос с подписью.
9 slnes
 
24.03.23
13:38
Все ссылки не подходят, нужно подписать как обычный текстовый файл, не нужно встраивать подпись в структуру XML, как это например делает КриптоАРМ, там можно убрать галочку ЭЦП в отдельный файл.
Возможно помогло бы вот это из БСП ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Форма, ОбработкаРезультата, ТипПодписи) (https://its.1c.ru/db/bsp318doc#content:2154:hdoc), но непонятно как оно работает, мне файл с подписью получить не удалось, и работает ли в синхронном режиме (мне для встраивания в существующий код нужен именно синхронный), при выполнении просто выскакивает окно с сертификатом, после нажатия ок непонятно, что происходит.
10 Garykom
 
гуру
24.03.23
13:41
наймите уже программиста
11 Garykom
 
гуру
24.03.23
13:42
6.  laperuz 45 24.08.22 11:48
(5) Тогда примерно так:

ОбработкаРезультата = Новый ОписаниеОповещения("ПослеПодписанияДанных", ЭтаФорма);
    
    СтруктураПодписи = Новый Структура("Конверт,ПараметрыXMLDSig");                

    ПараметрыКонверта = ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML();
    ПараметрыКонверта.СообщениеXML = "<test></test>";
    
    СтруктураПодписи.Конверт = ЭлектроннаяПодписьКлиент.КонвертXML(ПараметрыКонверта);
    СтруктураПодписи.ПараметрыXMLDSig = ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig();

    
    ОписаниеДанных = Новый Структура;
    ОписаниеДанных.Вставить("Операция", "ПодписаниеДанных");
    ОписаниеДанных.Вставить("ЗаголовокДанных", "Подписание хмл файла - " );
    ОписаниеДанных.Вставить("Данные", СтруктураПодписи);

    ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Неопределено, ОбработкаРезультата);

Скрыть


В ПараметрыКонверта.СообщениеXML передаете свой XML. Конверт, содержащий дайджест и подпись, будет в Результат.СвойстваПодписи.Подпись
12 slnes
 
27.03.23
11:10
(11) ошибку выдает
Поле объекта не обнаружено (КонвертSOAP)
{ОбщийМодуль.ЭлектроннаяПодписьСлужебныйКлиент.Модуль(4798)}:        Результат.Данные.Вставить("КонвертXML", Результат.Данные.КонвертSOAP);
{ОбщийМодуль.ЭлектроннаяПодписьСлужебныйКлиент.Модуль(4783)}:        ПолучитьДанныеИзОписанияДанныхПродолжение(Новый Структура("Данные", ИсточникДанных), Контекст);
{ОбщийМодуль.ЭлектроннаяПодписьСлужебныйКлиент.Модуль(4095)}:    ПолучитьДанныеИзОписанияДанных(Новый ОписаниеОповещения(
13 Garykom
 
гуру
27.03.23
14:43
(12) наймите программиста
14 slnes
 
28.03.23
05:38
(13) пытались, как и на форуме никто не справился. Garykom бот? Все ответы не имеют смысла.
15 DES
 
28.03.23
07:44
(14) +
16 АгентБезопасной Нацио
 
28.03.23
08:23
хм. Увидел тут знакомые буквы...
чтоб не открывать новую тему - кто-нибудь скажет, конверт SOAP (Всё это "<soap:Envelope xmlns:....") можно как-то получить фабрикой? а то во вполне типовой конфиге это сделано чисто строковым шаблоном:
    // Заранее подготовленный тестовый запрос (получение несуществующей квитанции с неверной подписью. Главное - получить
    // номер версии сервера).
    КонвертSOAP =
    "<soap:Envelope xmlns:lb=""http://svc.center-inform.ru/serviceLabel/rev111111""
    |               xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd""
    |               xmlns:sudt=""http://sudt.eek.ru/rev111111""
и т.д.
17 АгентБезопасной Нацио
 
28.03.23
08:26
(0) подпись обычно вкладывается в конверт вместе с подписанными данными. для XML понятие "в начало" практически не имеет смысла.
18 slnes
 
28.03.23
08:42
(17) не нужно встраивать подпись в структуру XML, мне нужно подписать как обычный текстовый файл, как это например делает КриптоАРМ, там можно убрать галочку "ЭЦП в отдельный файл".
19 АгентБезопасной Нацио
 
28.03.23
08:53
(18) ну вы ж пишете "Помогите присоединить подпись к запрос.xml"
20 slnes
 
28.03.23
11:45
(19) у меня таким образом именно xml файл подписывается, после снятия подписи становится обычным xml без кракозяблей.
21 Garykom
 
гуру
28.03.23
12:31
22 arsik
 
гуру
28.03.23
13:04
23 Garykom
 
гуру
28.03.23
13:30
(22) см (3)
24 АгентБезопасной Нацио
 
28.03.23
14:50
(21) это я видел. Но я ж специально сказал - фабрикой, а не "ручной сборкой". Так и я могу...
	КонвертXML = 
	"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:ns=""urn://...
25 Garykom
 
гуру
28.03.23
15:38
26 АгентБезопасной Нацио
 
28.03.23
16:36
(25) слушай, ну ты точно бот...
столько ответов, и ни одного по теме...
Даже ТелепатБот, и тот был адекватнее...
27 Garykom
 
гуру
28.03.23
17:07
(26) я не понимаю что ты хочешь
ты примером кода объясни как тебе надо
28 Garykom
 
гуру
28.03.23
17:13
(26) Не уподобляйся ТС которому даже готовый код дали и он не может запустить
29 Garykom
 
гуру
28.03.23
17:14
(12) https://i.paste.pics/9d87dfcb045121a8e8134993f41d224e.png

прочитай условие и подумай???

куда ты потерял Результат.Данные.Свойство("КонвертXML") ?
30 slnes
 
29.03.23
05:48
(26) это ЗлобныйБот, сколько сообщений и результата ноль

(29) результат будет после выполнения ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Неопределено, ОбработкаРезультата);
ошибка происходит во время выполнения, т.е. до процедуры ПослеПодписанияДанных не доходит.
При подписании выходит окно с запросом пароля, хотя пароль я установил МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "", нажимаю ок в окне ввода пароля и ошибка
31 DES
 
29.03.23
06:30
(30) пароль "" - равен отсутствию пароля
32 slnes
 
29.03.23
06:40
(31) именно, пароль пустой
33 Garykom
 
гуру
29.03.23
11:58
(30) Наймите уже программиста
Программист всегда исправляет последнюю ошибку.