Вот серверный вариант для запуска по расписанию. На сервере должен стоять КриптоПро с актуальной лицензией и сертификат. Писалось для УТ 11.5
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.1.1.0");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.БезопасныйРежим = Ложь;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Обновление Токена";
НоваяКоманда.Идентификатор = "ОбновлениеТокена";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "0123456789");
ОбновитьКлючСессииНаСервере(ОбщегоНазначенияИСМПКлиентСервер.ПараметрыЗапросаКлючаСессии(Организация));
КонецПроцедуры
Функция ПолучитьСертификат()
Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "0123456789");
Пользователь = Справочники.Пользователи.НайтиПоНаименованию("Администратор");
Запрос = Новый Запрос;
Запрос.Текст ="
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Сертификаты.Ссылка КАК Сертификат
|ИЗ
| Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК ПользователиСертификатов
| ПО Сертификаты.Ссылка = ПользователиСертификатов.Ссылка
|ГДЕ
| НЕ Сертификаты.Отозван
| И НЕ Сертификаты.ПометкаУдаления
| И (Сертификаты.ДействителенДо >= &ТекущаяДатаСеанса
| ИЛИ Сертификаты.ДействителенДо = ДАТАВРЕМЯ(1, 1, 1))
| И (Сертификаты.Пользователь = &Пользователь
| ИЛИ ПользователиСертификатов.Пользователь = &Пользователь)";
Запрос.УстановитьПараметр("ТекущаяДатаСеанса", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Пользователь", Пользователь);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Возврат Выборка.Сертификат;
КонецЦикла;
КонецФункции
Функция ОбновитьКлючСессииНаСервере(ПараметрыЗапроса, ОбновлятьКлючСессииНаСервере = Истина) Экспорт
УстановитьПривилегированныйРежим(Истина);
СохраненныеДанныеКлючаСессии = ИнтерфейсАвторизацииИСМПСлужебный.ПолучитьСохраненныеДанныеКлючаСессии(ПараметрыЗапроса.ИмяПараметраСеанса);
СертификатыДляПодписанияНаСервере = СертификатыДляПодписанияНаСервере();
РезультатЗапроса = ИнтерфейсАвторизацииИСМПВызовСервера.ЗапроситьПараметрыАвторизации(ПараметрыЗапроса);
Если РезультатЗапроса.ПараметрыАвторизации = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
СтрокаСертификата = СертификатыДляПодписанияНаСервере.Сертификаты[0];
ПараметрыCMS = ЭлектроннаяПодпись.ПараметрыCMS();
ПараметрыCMS.Открепленная = Ложь;
Если СертификатыДляПодписанияНаСервере.МенеджерКриптографии <> Неопределено Тогда
СертификатыДляПодписанияНаСервере.МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = "12345678";
КонецЕсли;
РезультатПодписания = ИнтерфейсАвторизацииИСМПСлужебный.Подписать(
РезультатЗапроса.ПараметрыАвторизации.Данные,
ПараметрыCMS,
СтрокаСертификата.СертификатКриптографии,
СертификатыДляПодписанияНаСервере.МенеджерКриптографии);
Для Каждого Элемент Из РезультатПодписания Цикл
Сообщить(Элемент.Ключ + " " + Элемент.Значение);
КонецЦикла;
Если СтрокаСертификата = Неопределено
Или Не РезультатПодписания.Успех Тогда
Возврат Ложь;
Иначе
Возврат ИнтерфейсАвторизацииИСМПСлужебный.ЗапроситьУстановитьКлючСессии(
ПараметрыЗапроса,
РезультатЗапроса.ПараметрыАвторизации,
РезультатПодписания.Подпись).КлючСессииУстановлен;
КонецЕсли;
КонецФункции
Функция СертификатыДляПодписанияНаСервере() Экспорт
Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "0123456789");
Подразделение = Метаданные.ОпределяемыеТипы.Подразделение.Тип;
Сертификат = ПолучитьСертификат();
Программа = Неопределено;
Пароль = ОбщегоНазначенияИС.ПарольКСертификату(Сертификат);
СертификатКриптографии = ПолучитьСписокСертификатов();
СертификатыОрганизацийДляОбменаНаСервере = Новый ТаблицаЗначений();
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("Организация");
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("Подразделение");
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("Сертификат");
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("Отпечаток");
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("СертификатКриптографии");
СертификатыОрганизацийДляОбменаНаСервере.Колонки.Добавить("Пароль");
СертификатыОрганизацийДляОбменаНаСервере.Индексы.Добавить("Организация");
СертификатыОрганизацийДляОбменаНаСервере.Индексы.Добавить("Организация,Подразделение");
СтрокаТЧ = СертификатыОрганизацийДляОбменаНаСервере.Добавить();
СтрокаТЧ.Организация = Организация;
СтрокаТЧ.Подразделение = Подразделение;
СтрокаТЧ.Сертификат = Сертификат;
СтрокаТЧ.Отпечаток = Сертификат.Отпечаток;
СтрокаТЧ.СертификатКриптографии = СертификатКриптографии;
СтрокаТЧ.Пароль = Пароль;
Программа = Сертификат.Программа;
МенеджерКриптографии = ЭлектроннаяПодпись.МенеджерКриптографии("Подписание",,, Программа);
СертификатыДляПодписанияНаСервере = Новый Структура;
СертификатыДляПодписанияНаСервере.Вставить("Сертификаты", СертификатыОрганизацийДляОбменаНаСервере);
СертификатыДляПодписанияНаСервере.Вставить("МенеджерКриптографии", МенеджерКриптографии);
Возврат СертификатыДляПодписанияНаСервере;
КонецФункции
Функция ПолучитьСписокСертификатов()
ТипыСертификатов = Новый Массив;
ТипыСертификатов.Добавить(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
ТипыСертификатов.Добавить(ТипХранилищаСертификатовКриптографии.СертификатыПолучателей);
СписокСертификатов = Новый Массив;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
Для Каждого ТипХранилища Из ТипыСертификатов Цикл
Хранилище = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилища);
СертификатыХранилища = Хранилище.ПолучитьВсе();
ТекущаяДата = ТекущаяДата();
Для Каждого Сертификат Из СертификатыХранилища Цикл
Если Сертификат.ДатаОкончания < ТекущаяДата Тогда
Продолжить;
КонецЕсли;
СписокСертификатов.Добавить(Сертификат);
КонецЦикла;
КонецЦикла;
Возврат СписокСертификатов[0];
КонецФункции
Показать