Поиск по блогу

суббота, 27 августа 2016 г.

Создание ЭП-ОВ для взаимодействия со СМЭВ

Проверка подписи XMLDSIG (WS-Security) с помощью сервиса СПЭП СМЭВ
Проверка подписи XMLDSIG на примере СМЭВ

Для взаимодействия со СМЭВ, все исходящие сообщения информационной системы, подключенной к СМЭВ, должны быть подписаны с целью удостоверения данных. Требования к алгоритмам создания электронной подписи информационной системы следующие:
  • алгоритмы для расчета хеш-сумм - ГОСТ Р 34.11-94;
  • формирования подписи - ГОСТ Р 34.10-2001.
Сообщение СМЭВ представляет собой XML документ, который подписывается ЭП по формату XMLDSIG (спецификация WS-Security). Подробное описание алгоритма создания ЭП находится в методических рекомендациях СМЭВ. Алгоритм можно реализовать самостоятельно, но в данной статье создание ЭП будем выполнять с помощью программных продуктов компании КриптоПро.

Первым делом выполняем установку продуктов КриптоПро CSP и КриптоПро CADESCOM. К сожалению они являются платными, но использовать триальную версию можно 90 дней. Если подпись будет создаваться на клиенте (&НаКлиенте), то устанавливаем на клиентскую машину КриптоПро. Если же создание подписи будет происходит на сервере (&НаСервере), то соответственно устанавливаем КриптоПро на тот компьютер, где установлен сервер 1С:Предприятие.

После установки продуктов КриптоПро, устанавливаем сертификат электронной подписи с привязкой к закрытому ключу в хранилище сертификатов на тот компьютер, где будет выполняться создание ЭП (см. рисунок 1). Хранилище сертификатов делится два типа: хранилище пользователя и локального компьютера. Если создание подписи будет выполнять сервер, то рекомендуется установить сертификат в хранилище локального компьютера, так как в этом случае всем пользователям системы будет доступен сертификат. Если же вы точно знаете от имени какого пользователя будет происходит создание подписи, то можно установить сертификат в хранилище пользователя (например, USR1CV82).

воскресенье, 14 августа 2016 г.

Последовательность вызова обработчиков событий при открытии формы объекта

При открытии формы объекта, задействованы не только обработчики событий формы, но и модуль менеджера и модуль объекта. Перед рассмотрением последовательности вызова событий, хочу заметить, что количество обработчиков событий для модуля объекта и модуля формы равно не количеству отображаемых процедур в подсказке (см. рисунок 1), а на единицу больше.
Рисунок 1. Обработчики событий модуля объекта Документ
У этих модулей дополнительно имеется обработчик, связанный с активацией модуля, т.е. тело модуля это и есть обработчик активации модуля, который не отображается в подсказке.

Последовательность вызова обработчиков событий при открытии формы объекта, например объекта Документ, включая активацию модуля, изображена на рисунке 2.

среда, 10 августа 2016 г.

Загрузка данных табличного документа в таблицу значений

Возникают ситуации, когда требуется считать данные с табличного документа и обработать их. Читать табличный документ по ячейкам утомительно и медленно, но существует способ чтения области ячеек в таблицу значений.

Способ основывается на использовании объекта ПостроительОтчета - это объект, позволяющий на основе заданного текста запроса или источника данных, а так же настроек, получить результат и вывести его в табличный документ или диаграмму.

Описание способа

1. Получаем область ячеек табличного документа, которую требуется поместить в таблицу значений. Получение области нужно задавать таким образом, что бы в неё входила строка заголовков колонок (см. рисунок 1), особенность работы объекта ПостроительОтчета.

ОбластьЯчеек = ТабДокумент.Область(1, 1, ПоследняяСтрока, ПоследняяКолонка);

Рисунок 1. Область ячеек табличного документа

понедельник, 8 августа 2016 г.

Агрегатные функции системы компоновки данных

Важно! Если параметр функции имеет тип Строка и в нем указывается имя поля, которое содержит пробелы, то такое имя поля должно быть заключено в квадратные скобки.
Например: "[Количество Оборот]".

1. Сумма (Total) - рассчитывает сумму значений выражений, переданных ей в качестве аргумента для всех детальных записей. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Пример:
Сумма(Продажи.СуммаОборот)

2. Количество (Count) - рассчитывает количество значений отличных от значения NULL. В качестве параметра можно передавать Массив. В этом случае функция будет применена к содержимому массива.

Синтаксис:
Количество([Различные] Параметр)

В указания получения различных значений следует перед параметром метода Количество указать Различные (Distinct).

Пример:
Количество(Продажи.Контрагент)
Количество(Различные Продажи.Контрагент)

пятница, 5 августа 2016 г.

Проверка подписи XMLDSIG (WS-Security) с помощью сервиса СПЭП СМЭВ

Подготовка SOAP-сообщения перед созданием подписи XMLDSIG на примере СМЭВ
Проверка подписи XMLDSIG на примере СМЭВ
Проверка подписи органа власти с помощью сервиса СМЭВ

В методических рекомендациях по работе с единой системой межведомственного электронного взаимодействия для проверки электронной подписи информационных систем (ЭП-СМЭВ, ЭП-ОВ, ЭП-ПГУ)* и электронной подписи физических лиц (ЭП-П, ЭП-СП)* указывает специализированный сервис проверки - СПЭП (сервис проверки электронной подписи). Данный сервис обеспечивает проверку электронных подписей и сертификатов и включает методы, обеспечивающие:
  • проверку электронной подписи в формате XML digital signature;
  • проверку электронной подписи в формате WS-Security;
  • проверку электронной подписи в формате PKCS#7;
  • проверку статуса сертификата ключа подписи.
  • проверку электронной подписи в формате CAdES
  • проверку электронной подписи в формате XAdES
  • проверку электронной подписи в формате PAdES
  • проверку штампов времени
  • проверку электронной подписи, формируемой от лица пользователя ЕПГУ
Более подробное описание сервиса смотрите на технологическом портале СМЭВ. Рассмотрим пример использования сервиса для проверки электронной подписи в формате WS-Security.