• 1С-Битрикс ,
  • Разработка под e-commerce
  • Два слова, что вообще собой представляет ЭЦП. Для подписания и работы с файлами используется два ключа: закрытый и открытый. Закрытый ключ хранится у Вас на токене и используется для подписания или шифрования документов. Открытый ключ должен быть распространен всем пользователям, которые должны работать с подписанным Вами документом. Обычно это происходит автоматически при подписании файла. Далее, есть файл, который нам нужно подписать. С помощью специального ПО из содержания файла и Вашего закрытого ключа создается уникальная символьная последовательность, что-то вроде контрольной суммы. Эта последовательность и есть электронно-цифровая подпись. ЭЦП всегда уникальна для данного пользователя и данного документа. Подпись содержит информацию о дате подписания документа, подписанте, контрольную сумму для подписанного документа и ссылку или сам файл открытого ключа. Подпись может быть добавлена в подписываемый файл или сохранена в виде отдельного файла. Нас, конечно, интересует первый вариант.

    Как всегда, решение задачи начал с изучения того, что уже есть. Нашлось несколько модулей криптографии и ЭЦП для 1С. Но они не подошли. Как правило, они умеют подписывать или XML-файлы, или сохранять подпись и открытый ключ в отдельный файл. А нам нужно было получить на выходе подписанный PDF-документ, который можно будет просто и удобно просмотреть с помощью того же Adobe Acrobat Reader.
    Вторым решением было поискать, так называемые, PDF-принтеры – программы, которые умеют сохранять любой документ в виде PDF-файла. Самым подходящим решением оказался BullZip PDF Printer (http://www.bullzip.com/products/pdf/download.php), который в платной версии имеет функцию подписания создаваемых документов. Решение, в принципе, подошло, но появились серьезные бюрократические проблемы с покупкой, согласованием и установкой нового софта на территории предприятия. Пока решение проходило согласование, я обратил внимание на комплект программ КРИПТО-ПРО, который, как правило, поставляется и работает вместе с ключом ЭЦП.

    Решение первое, полу-ручное

    Подавляющее большинство ключей ЭЦП выпускаются в виде eToken или Rutoken USB-модулей. В моем случае был eToken. Кто не знает, основное отличие состоит в том, что eToken имеет встроенный аппаратный криптографический сопроцессор. Это значит, что при шифровании данных закрытый ключ не покидает токена. В нашем случае эта разница значения не имеет.

    Не буду рассматривать установку драйверов USB-ключей. Они, как правило, поставляются выпускающим удостоверяющим центром вместе с самими токенами и установка проблем не вызывает. Еще с токенами обычно поставляется лицензия на КРИПТО-ПРО и утилита КриптоПро CSP. Я использовал последнюю доступную на данный момент версию 3.9.

    Дальше все просто. Запускаем КриптоПро CSP. Закладка Сервис, кнопка Посмотреть сертификаты в контейнере, нажимаем Обзор для выбора токена с криптохранилищем, и выбираем нужно нам хранилице. Обычно на одном токене одно хранилище.

    Нажимаем Далее и получаем окошко с информацией по сертификату, к которому привязан ключ. Ждем кнопку Установить и устанавливаем сертификат в хранилище Личное для локального пользователя. Обычно, вместе с утилитой КриптоПро CSP в меню Пуск устанавливается ярлык для оснастки Сертификаты. Запускаем оснастку, убеждаемся, что все правильно сделано и сертификат действительно установился в раздел Личное для текущего пользователя.

    Дальше, Кликаем правой кнопкой по установленному сертификату, Все задачи, Экспорт. Обязательно отказываемся экспортировать закрытый ключ и сохраняем сертификат куда-нибудь на локальный компьютер, например, на рабочий стол, в формате файла X.509 (.CER) в кодировке DER. Сохраненный сертификат нам понадобиться дальше для выполнения подписи.

    Последнее, что нам осталось, это скачать с сайта www.cryptopro.ru/downloads утилиту КриптоПро PDF, с помощью которой и будем выполнять подпись PDF-файлов.

    Работа утилиты крайне проста. Выбираем папку в которой находятся PDF-файлы, выбираем папку в которую будут сохранены файлы с подписью (если это одна и так же папка, в дополнительных настройках нужно установить флажок «Перезаписывать файлы с одинаковыми именами») выбираем из контейнера сертификат, который будем использовать для подписи, вводим пин от ключа и, если все указали правильно, через несколько секунд в папке-приемнике появятся подписанные PDF-файлы. Для того, чтоб ЭЦП признавалась юридически, по закону, должна быть установлена еще метка времени, но мне для задачи это не требовалось.

    В принципе, все! Если у Вас небольшая организация и пара десятков контрагентов то можно вообще ничего больше не делать и оставить все в ручном режиме. Кроме того, 1С нам пока вообще не была нужна, документы в формате PDF можно создать многими способами, в том числе и из Microsoft Office.

    Долго не мог разобраться, почему подпись не проходит и выдает ошибку. Оказалось, что успешной работы утилиты КриптоПро PDF на компьютере должна быть установлен Adobe Acrobat Pro (не Reader, это важно! ). Именно с его помощью утилита модифицирует PDF-файлы и добавляет и них подпись.

    Пример подписанного файла на картинке. Выглядит как обычный PDF, только на закладке Подписи появились данные о подписанте. Из важного, указано кто подписал документы (обычно это ФИО и название организации) и что с момента подписания документ не изменялся. Информацию о том, что сертификат ненадежный можно игнорировать. Это говорит только о том, что компания Adobe и ее продукт Acrobat Reader ничего не знают о Вашем сертификате.

    Решение второе, автоматическое

    Как писал выше, в моем случае ручное решение не подошло. Контрагентов много, для каждого за месяц создается несколько десятков документов. Их все нужно сохранить в PDF, подписать, отправить одним письмом. Для решения задачи придумали модифицировать и использовать стандартную для многих конфигураций обработку «Групповая обработка справочников и документов». Для самых популярных конфигураций эта обработка или входит в саму конфигурацию или ее можно найти как внешнюю на диске с ИТС.

    Обработка уже умеет печатать отобранные документы. В последних версиях платформы появился штатный механизм сохранения печатных форм в виде PDF файлов. Осталось совместить эти два механизма и сохранять выбранные пользователем документы в папку на локальном компьютере, а затем запускать командную строку и запускать утилиту КриптоПро PDF для выполнения подписи.

    Немного доработали интерфейсную часть. Убрали из обработки работу со справочниками. Оставили в интерфейсе 4 вида документов, которые нужно отправлять. Изменили систему отборов. Создали новый регистр сведений Настройки ЭЦП. В него для каждого пользователя сохраняется информация о том, по какому пути лежит КриптоПро PDF на локальном компьютере, папки для временного хранения файлов, сертификат, которым будет выполнена подпись. Еще просили сохранять пин от ключа, но мы не стали этого делать из соображений безопасности.

    Чтоб автоматизация была уж совсем полной, пришлось в 1С оживить модуль электронной почты. Дальше все просто. Раз в месяц оператор выбирает список контрагентов и виды документов, которые должны быть отправлены, проверяет результат отбора, нажимает кнопку Выполнить, вводит пин-код от ключа и ждет… В моем случае формирование пакета документов может длится несколько часов.

    Обработка группирует отобранные документы по контрагентам, дальше циклом проходится по каждому контрагенту, выбирает все его документы, сохраняет в виде PDF-файлов на диск, запускает утилиту КриптоПро PDF из командной строки, подписывает сохраненные документы, создает документ Электронное письмо с контактными данными из справочника контрагентов, в качестве вложения прикрепляет подписанные документы из папки на диске, переводит письмо в статус для отправки и переходит к следующему контрагенту. Письма отправляются регламентным заданием раз в 10 минут. Обработку можно оставлять на ночь. Возникшие проблему будут корректно обработаны, а утром пользователь увидит журнал шибок и журнал отправленных писем.

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

    МассивВходящих = НайтиФайлы(КаталогВходящие, "*.pdf", Ложь); КоличествоФайловВходящие = МассивВходящих.Количество(); Сообщить("Обнаружено " + КоличествоФайловВходящие + " файлов для подписи."); КоманднаяСтрока = ИмяФайлаКриптоПро + " sign" + " --in-dir=""" + КаталогВходящие + """" + " --out-dir=""" + КаталогИсходящие + """" + " --report-dir=""" + КаталогЛоги + """" + " --err-dir=""" + КаталогОшибки + """" + " --certificate=""" + ИмяФайлаСертификата + """" + " --pin=""" + ПинКод + """" + " --overwrite-files"; ЗапуститьПриложение(КоманднаяСтрока, "", истина); МассивИсходящих = НайтиФайлы(КаталогИсходящие, "*.pdf", Ложь); КоличествоФайловИсходящие = МассивИсходящих.Количество(); Сообщить("Подписано " + КоличествоФайловИсходящие + " файлов.");

    Современные технологии постоянно развиваются и продолжают совершенствоваться, делая жизнь современного человека все более постой. Очевидно, что это коснулось и его профессиональной деятельности. Оптимизация и автоматизация работы предприятий – это очень важный вопрос, который сегодня актуален для многих предпринимателей. Не удивительно, что для решения данного вопроса существует специальное программное обеспечение, которое известно как 1С: предприятие. Благодаря данной программе существует возможность легко решить большой объем задач, связанных с управлением современными предприятиями.

    ЭЦП в программе 1С предприятие

    В настоящий момент известно, что для программного обеспечения 1С доступна возможность применения электронных цифровых подписей. В связи с этим, очень многие заинтересованы возможностями ЭЦП 1С, для осуществления криптографических операций. Следует отметить, что в настоящий момент не существует отечественных программ-крипто провайдеров, однако вниманию пользователей представлен достаточно большой выбор программ иностранного производства, для работы с электронными цифровыми печатями.

    Сферы применения ЭЦП

    В наибольшей мере, ЭЦП 1С используют в рамках собственных предприятий, для внутреннего документооборота. Установив дополнительную программу – криптопровайдер, вы сможете удовлетворить все свои потребности в использовании электронной подписи при ведении вашей документации.

    Где еще можно применять электронную подпись?

    • При составлении отчетности для налоговых служб
    • При составлении специальных договоров и проведении различных сделок
    • Для подтверждения и авторизация на различных ресурсах, архивах

    Применять ЭЦП 1С вы сможете для подтверждения авторства определенных документов, тем более что использование электронной печати делает практически любой документ юридически значимым. Несомненно, это одно из самых удобных, практичных, и надежных средств для того чтобы обеспечить максимальную безопасность работы вашего предприятия, особенно при ведении различной коммерческой документации.

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

    «1С:Подпись» – удобный способ получить квалифицированный сертификат электронной подписи (КСКПЭП) для обмена юридически значимыми электронными документами прямо в программе «1С» от удостоверяющего центра ООО «НПЦ 1С».

    Продукт «1С:Подпись» рекомендован пользователям ПП «1С», которые хотят перейти на юридически значимый электронный документооборот (ЭДО) со своими контрагентами, но еще не имеют для этого квалифицированного сертификата; или если необходимо увеличить количество сотрудников, использующих сертификат электронной подписи для ЭДО.

    Сертификат, полученный с помощью «1С:Подписи» , не предназначен для отправки регламентированной отчетности в контролирующие органы в электронном виде через телекоммуникационные каналы связи и для участия в торгах на федеральных и коммерческих электронных торговых площадках.

    Преимущества для партнеров

    • Дополнительный доход за счет продаж КСКПЭП, а также услуг по оформлению сертификата,
      если условия эксплуатации программы «1С» у клиента не являются типовыми.
    • Продвижение электронного документооборота.
    • Льготное оформление одного КСКПЭП сроком на 1 год на каждый действующий ИТС ПАРТНЕРСКИЙ (не более 1 раза в год).

    Преимущества для клиентов

    • Подготовка заявления на выпуск квалифицированного сертификата и получение его на рабочем месте в интерфейсе программных продуктов «1С:Предприятия 8».
    • Исключен несанкционированный доступ к ключу электронной подписи, т.к. он создается на компьютере пользователя.
    • Идентификацию пользователя, прием, проверку и отправку комплекта заявительных документов в удостоверяющий центр «1С» осуществляет партнер фирмы «1С».
    • Подготовка заявления и его отправка организованы в удобном Мастере, который позволяет подготовить заявление в удобной пошаговой форме с подробным описанием каждого действия.
    • Поддержка через «1С-Бухфон» (сервис «Поддержка «1С-ЭДО»).

    Программы, в которых реализован сервис:

    В настоящее время продукт «1С:Подпись» доступен пользователям следующих программ:

    • «1С:Бухгалтерия 8», редакция 3.0, начиная с релиза 3.0.37;
    • «1С:Бухгалтерия государственного учреждения 8», редакция 2.0, начиная с релиза 2.0.29;
    • «1С:Розница 8», редакция 2.1, начиная с релиза 2.1.5;
    • «1С:Управление торговлей 8», редакция 11, начиная с релиза 11.1.10;
    • «1С:ERP Управление предприятием», редакция 2.0, начиная с релиза 2.0.10;
    • «1С:Клиент ЭДО 8», ред. 2.0.

    Условия предоставления

    Пользователям с действующим договором 1С:ИТС уровня ПРОФ предоставляется без дополнительной оплаты пробная лицензия на «1С:Подпись» для оформления квалифицированного сертификата. Пробная лицензия может быть использована в течение срока действия договора 1С:ИТС, но не более 1 раза в течение года. Для пользователей ИТС уровня ТЕХНО , а также для нуждающихся в более чем одном действующем сертификате доступно приобретение лицензии на платной основе:

    Как зарегистрироваться на портале «1С:Подпись» ?

    Партнер, заключивший договор коммерческой концессии с фирмой «1С», может зарегистрироваться на партнерском портале «1С:Подписи», а также оформить для своей организации любое число КСКПЭП от удостоверяющего центра фирмы «1С». Регистрация партнеров на портале «1С:Подпись» осуществляется на основании заявки, которую необходимо отправить по адресу [email protected] (см. информационное письмо №19226 от 04.12.2014 , приложение 1). Также необходимо выполнить настройку рабочего места в соответствии с инструкцией .

    1. Заполнить заявку на получение квалифицированного сертификата.
    2. Подготовить комплект заявительных документов:
      • заявление на регистрацию пользователя в удостоверяющем центре «1С» от имени руководителя организации;
      • копия* свидетельства о государственной регистрации юридического лица или индивидуального предпринимателя;
      • копия* свидетельства о постановке на учет в налоговом органе юридического лица или индивидуального предпринимателя;
      • копия* документа, подтверждающего полномочия руководителя действовать от имени юридического лица;
      • копии* удостоверения личности и страхового номера индивидуального лицевого счёта индивидуального предпринимателя или представителя юридического лица, на чье имя оформляется квалифицированный сертификат.

        Два слова, что вообще собой представляет ЭЦП. Для подписания и работы с файлами используется два ключа: закрытый и открытый. Закрытый ключ хранится у Вас на токене и используется для подписания или шифрования документов. Открытый ключ должен быть распространен всем пользователям, которые должны работать с подписанным Вами документом. Обычно это происходит автоматически при подписании файла. Далее, есть файл, который нам нужно подписать. С помощью специального ПО из содержания файла и Вашего закрытого ключа создается уникальная символьная последовательность, что-то вроде контрольной суммы. Эта последовательность и есть электронно-цифровая подпись. ЭЦП всегда уникальна для данного пользователя и данного документа. Подпись содержит информацию о дате подписания документа, подписанте, контрольную сумму для подписанного документа и ссылку или сам файл открытого ключа. Подпись может быть добавлена в подписываемый файл или сохранена в виде отдельного файла. Нас, конечно, интересует первый вариант.

        Как всегда, решение задачи начал с изучения того, что уже есть. Нашлось несколько модулей криптографии и ЭЦП для 1С. Но они не подошли. Как правило, они умеют подписывать или XML-файлы, или сохранять подпись и открытый ключ в отдельный файл. А нам нужно было получить на выходе подписанный PDF-документ, который можно будет просто и удобно просмотреть с помощью того же Adobe Acrobat Reader.
        Вторым решением было поискать, так называемые, PDF-принтеры – программы, которые умеют сохранять любой документ в виде PDF-файла. Самым подходящим решением оказался BullZip PDF Printer (http://www.bullzip.com/products/pdf/download.php), который в платной версии имеет функцию подписания создаваемых документов. Решение, в принципе, подошло, но появились серьезные бюрократические проблемы с покупкой, согласованием и установкой нового софта на территории предприятия. Пока решение проходило согласование, я обратил внимание на комплект программ КРИПТО-ПРО, который, как правило, поставляется и работает вместе с ключом ЭЦП.

        Решение первое, полу-ручное

        Подавляющее большинство ключей ЭЦП выпускаются в виде eToken или Rutoken USB-модулей. В моем случае был eToken. Кто не знает, основное отличие состоит в том, что eToken имеет встроенный аппаратный криптографический сопроцессор. Это значит, что при шифровании данных закрытый ключ не покидает токена. В нашем случае эта разница значения не имеет.

        Не буду рассматривать установку драйверов USB-ключей. Они, как правило, поставляются выпускающим удостоверяющим центром вместе с самими токенами и установка проблем не вызывает. Еще с токенами обычно поставляется лицензия на КРИПТО-ПРО и утилита КриптоПро CSP. Я использовал последнюю доступную на данный момент версию 3.9.

        Дальше все просто. Запускаем КриптоПро CSP. Закладка Сервис, кнопка Посмотреть сертификаты в контейнере, нажимаем Обзор для выбора токена с криптохранилищем, и выбираем нужно нам хранилице. Обычно на одном токене одно хранилище.

        Нажимаем Далее и получаем окошко с информацией по сертификату, к которому привязан ключ. Ждем кнопку Установить и устанавливаем сертификат в хранилище Личное для локального пользователя. Обычно, вместе с утилитой КриптоПро CSP в меню Пуск устанавливается ярлык для оснастки Сертификаты. Запускаем оснастку, убеждаемся, что все правильно сделано и сертификат действительно установился в раздел Личное для текущего пользователя.

        Дальше, Кликаем правой кнопкой по установленному сертификату, Все задачи, Экспорт. Обязательно отказываемся экспортировать закрытый ключ и сохраняем сертификат куда-нибудь на локальный компьютер, например, на рабочий стол, в формате файла X.509 (.CER) в кодировке DER. Сохраненный сертификат нам понадобиться дальше для выполнения подписи.

        Последнее, что нам осталось, это скачать с сайта www.cryptopro.ru/downloads утилиту КриптоПро PDF, с помощью которой и будем выполнять подпись PDF-файлов.

        Работа утилиты крайне проста. Выбираем папку в которой находятся PDF-файлы, выбираем папку в которую будут сохранены файлы с подписью (если это одна и так же папка, в дополнительных настройках нужно установить флажок «Перезаписывать файлы с одинаковыми именами») выбираем из контейнера сертификат, который будем использовать для подписи, вводим пин от ключа и, если все указали правильно, через несколько секунд в папке-приемнике появятся подписанные PDF-файлы. Для того, чтоб ЭЦП признавалась юридически, по закону, должна быть установлена еще метка времени, но мне для задачи это не требовалось.

        В принципе, все! Если у Вас небольшая организация и пара десятков контрагентов то можно вообще ничего больше не делать и оставить все в ручном режиме. Кроме того, 1С нам пока вообще не была нужна, документы в формате PDF можно создать многими способами, в том числе и из Microsoft Office.

        Долго не мог разобраться, почему подпись не проходит и выдает ошибку. Оказалось, что успешной работы утилиты КриптоПро PDF на компьютере должна быть установлен Adobe Acrobat Pro (не Reader, это важно! ). Именно с его помощью утилита модифицирует PDF-файлы и добавляет и них подпись.

        Пример подписанного файла на картинке. Выглядит как обычный PDF, только на закладке Подписи появились данные о подписанте. Из важного, указано кто подписал документы (обычно это ФИО и название организации) и что с момента подписания документ не изменялся. Информацию о том, что сертификат ненадежный можно игнорировать. Это говорит только о том, что компания Adobe и ее продукт Acrobat Reader ничего не знают о Вашем сертификате.

        Решение второе, автоматическое

        Как писал выше, в моем случае ручное решение не подошло. Контрагентов много, для каждого за месяц создается несколько десятков документов. Их все нужно сохранить в PDF, подписать, отправить одним письмом. Для решения задачи придумали модифицировать и использовать стандартную для многих конфигураций обработку «Групповая обработка справочников и документов». Для самых популярных конфигураций эта обработка или входит в саму конфигурацию или ее можно найти как внешнюю на диске с ИТС.

        Обработка уже умеет печатать отобранные документы. В последних версиях платформы появился штатный механизм сохранения печатных форм в виде PDF файлов. Осталось совместить эти два механизма и сохранять выбранные пользователем документы в папку на локальном компьютере, а затем запускать командную строку и запускать утилиту КриптоПро PDF для выполнения подписи.

        Немного доработали интерфейсную часть. Убрали из обработки работу со справочниками. Оставили в интерфейсе 4 вида документов, которые нужно отправлять. Изменили систему отборов. Создали новый регистр сведений Настройки ЭЦП. В него для каждого пользователя сохраняется информация о том, по какому пути лежит КриптоПро PDF на локальном компьютере, папки для временного хранения файлов, сертификат, которым будет выполнена подпись. Еще просили сохранять пин от ключа, но мы не стали этого делать из соображений безопасности.

        Чтоб автоматизация была уж совсем полной, пришлось в 1С оживить модуль электронной почты. Дальше все просто. Раз в месяц оператор выбирает список контрагентов и виды документов, которые должны быть отправлены, проверяет результат отбора, нажимает кнопку Выполнить, вводит пин-код от ключа и ждет… В моем случае формирование пакета документов может длится несколько часов.

        Обработка группирует отобранные документы по контрагентам, дальше циклом проходится по каждому контрагенту, выбирает все его документы, сохраняет в виде PDF-файлов на диск, запускает утилиту КриптоПро PDF из командной строки, подписывает сохраненные документы, создает документ Электронное письмо с контактными данными из справочника контрагентов, в качестве вложения прикрепляет подписанные документы из папки на диске, переводит письмо в статус для отправки и переходит к следующему контрагенту. Письма отправляются регламентным заданием раз в 10 минут. Обработку можно оставлять на ночь. Возникшие проблему будут корректно обработаны, а утром пользователь увидит журнал шибок и журнал отправленных писем.

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

        МассивВходящих = НайтиФайлы(КаталогВходящие, "*.pdf", Ложь); КоличествоФайловВходящие = МассивВходящих.Количество(); Сообщить("Обнаружено " + КоличествоФайловВходящие + " файлов для подписи."); КоманднаяСтрока = ИмяФайлаКриптоПро + " sign" + " --in-dir=""" + КаталогВходящие + """" + " --out-dir=""" + КаталогИсходящие + """" + " --report-dir=""" + КаталогЛоги + """" + " --err-dir=""" + КаталогОшибки + """" + " --certificate=""" + ИмяФайлаСертификата + """" + " --pin=""" + ПинКод + """" + " --overwrite-files"; ЗапуститьПриложение(КоманднаяСтрока, "", истина); МассивИсходящих = НайтиФайлы(КаталогИсходящие, "*.pdf", Ложь); КоличествоФайловИсходящие = МассивИсходящих.Количество(); Сообщить("Подписано " + КоличествоФайловИсходящие + " файлов.");