ЭЦП по гостам Украины в 1С - Внешняя компонента BilboSign.dll

11.12.17

Разработка - Разработка внешних компонент

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ЭЦП по гостам Украины в 1С - демонстрационная конфигурация
.zip 16,20Mb ver:2.0.0.1
38
38 Скачать (1 SM) Купить за 1 850 руб.

Bilbosign.dll по сути является адаптером комплекса "IIT Користувач ЦСК", который разработан АТ "ІІТ", и сейчас широко используется всеми системами, использующими ЭЦП. Функционал комплекса "Користувач центру сертифікації ключів" описан на сайте производителя.

Компонента работает на сервере и на клиенте. Опыт успешного использования - 3 года.

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

 

Описание некоторых свойств и методов библиотеки Bilbosign.dll

Подробное описание приведено во встроенной справке, здесь же я приведу только синтаксис  и описания некоторых основных функций.

Свойства
БиблиотекаИнициализирована (IsInitialized)
Описание: Тип: Булево. При первой загрузке = Ложь, после инициализации библиотеки = Истина

АвтономныйРежим (OfflineMode)
Описание: Тип: Булево. Содержит признак использования библиотеки в Ofline-режиме (без подключения к серверам АЦСК)

ЛичныйКлючСчитан (IsPrivateKeyReaded)
Описание: Тип: Булево. После успешного чтения личного ключа = Истина

НеобходимоУстановитьПараметры (NeedSetSettings)
Описание: Тип: Булево. Содержит признак необходимости выполнить установку параметров работы библиотеки.
Если инициализация компоненты выполняется впервые, то значение = Истина

Методы

Инициализировать (Initialize)
Синтаксис: Инициализировать()
Описание: Инициализирует работу EUSignCP.dll. Результат инициализации можно проверить через свойство БиблиотекаИнициализирована (IsInitialized)

ЗавершитьРаботу (Finalize)
Синтаксис: ЗавершитьРаботу()
Описание: Завершает работу EUSignCP.dll и выгружает её из памяти. Желательно завершать работу компоненты, если в ней больше нет необходимости.

ПолучитьОписаниеОшибки (GetErrorDescription)
Синтаксис: ПолучитьОписаниеОшибки(<КодОшибки>, <Язык>)
Описание: Возвращает локализованное представление ошибки по коду.

УстановитьНастройки (SetSettings)
Синтаксис: УстановитьНастройки()
Описание: Установка параметров работы с библиотекой с помощью графического интерфейса библиотеки.

ПоказатьСертификаты (ShowCertificates)
Синтаксис: ПоказатьСертификаты()
Описание:Отображение сертификатов из файлового хранилища с помощью графического интерфейса библиотеки.

ПоказатьСпискиОтозванныхСертификатов (ShowCRLs)
Синтаксис: ПоказатьСпискиОтозванныхСертификатов()
Описание:Отображение списков отозванных сертификатов из файлового хранилища с помощью графического интерфейса библиотеки.

ОпределитьПараметрыНосителяЛичногоКлюча (GetPrivateKeyMedia)
Синтаксис: ОпределитьПараметрыНосителяЛичногоКлюча(<ТипНосителя>, <Устройство>, <Пароль>)
Описание: Вызывает интерактивный выбор носителя ключа и ввод пароля при помощи графического интерфейса.
Работает только на клиенте. Используется обычно перед вызовом функции СчитатьЛичныйКлюч

СчитатьЛичныйКлюч (ReadPrivateKey)
Синтаксис: СчитатьЛичныйКлюч(<ТипНосителя>, <Устройство>, <Пароль>, <ДанныеСертификата>)
Описание: Выполняет чтение личного ключа с указанного носителя.

СчитатьЛичныйКлючИзДвоичныхДанных (ReadPrivateKeyBinary)
Синтаксис: СчитатьЛичныйКлючИзДвоичныхДанных(<ДвоичныеДанные>, <Пароль>, <ДанныеСертификата>)
Описание: Выполняет чтение личного ключа в виде двоичных данных.

СчитатьЛичныйКлючИзФайла (ReadPrivateKeyFile)
Синтаксис: СчитатьЛичныйКлючИзФайла(<ИмяФайла>, <Пароль>, <ДанныеСертификата>)
Описание: Выполняет чтение личного ключа из указанного файла.

СброситьЛичныйКлюч (ResetPrivateKey)
Синтаксис: СброситьЛичныйКлюч()
Описание: Стирает личный ключ из оперативной памяти

ПолучитьИнформациюОСертификате (GetCertificateInfo)
Синтаксис: ПолучитьИнформациюОСертификате(<Издатель>, <СерийныйНомер>, <ДанныеСертификата>)
Описание: По указанному издателю и серийному номеру сертификата получает полную информацию о сертификате.

УстановитьПараметрыФайловогоХранилища (SetFileStoreSettings)
Описание: Устанавливает текущие настройки файлового хранилища

УстановитьПараметрыOCSPСервера (SetOCSPSettings)
Описание: Устанавливает текущие настройки OCSP-сервера

УстановитьПараметрыTSPСервера (SetTSPSettings)
Описание: Устанавливает текущие настройки TSP-сервера

УстановитьПараметрыLDAPСервера (SetLDAPSettings)
Описание: Устанавливает текущие настройки LDAP-сервера

УстановитьПараметрыCMPСервера (SetCMPSettings)
Описание: Устанавливает текущие настройки CMP-сервера

Base64Кодировать (BASE64Encode)
Синтаксис: Base64Кодировать(<ИсходныеДанные>, <СтрокаBase64>)
Описание: Получает строку, закодированную по алгоритму base64.

Base64Раскодировать (BASE64Decode)
Синтаксис: Base64Раскодировать(<СтрокаBase64>), <ИсходныеДанные>)
Описание: Получает из строки закодированной по алгоритму base64 двоичные данные.

ПодписатьФайл (SignFile)
Синтаксис: ПодписатьФайл(<ИмяФайлаСДанными>, <ИмяФайлаСПодписью>, <ИспользоватьВнешнююПодпись>)
Описание: Формирование внешней или внутренней подписи для файла.

ПроверитьПодписьФайла (VerifyFile)
Синтаксис: ПроверитьПодписьФайла(<ИмяФайлаСПодписью>, <ИмяФайлаСДанными>, <ДанныеПодписи>)
Описание: Проверка внешней или внутренней подписи для файла.

ПодписатьФайлУпрощенно (RawSignFile)
Синтаксис: ПодписатьФайлУпрощенно(<ИмяФайлаСДанными>, <ИмяФайлаСПодписью>)
Описание: Формирование упрощенной подписи для файла.

ПроверитьУпрощеннуюПодписьФайла (RawVerifyFile)
Синтаксис: ПроверитьУпрощеннуюПодписьФайла(<ИмяФайлаСПодписью>, <ИмяФайлаСДанными>, <ДанныеПодписи>)
Описание: Проверка упрощенной подписи для файла.

ПодписатьДанные (SignData)
Синтаксис: ПодписатьДанные(<ИсходныеДанные>, <Подпись>)
Описание: Формирование внешней подписи в виде двоичных данных для строки или двоичных данных.

ПроверитьПодписьДанных (VerifyData)
Синтаксис: ПроверитьПодписьДанных(<ИсходныеДанные>, <Подпись>, <ДанныеПодписи>)
Описание: Проверка внешней подписи в виде двоичных данных для строки или двоичных данных.

ПодписатьДанныеBase64 (SignDataBase64)
Синтаксис: ПодписатьДанныеBase64(<ИсходныеДанные>, <Подпись>)
Описание: Формирование внешней подписи в формате Base64 для строки или двоичных данных.

ПроверитьПодписьДанныхBase64 (VerifyDataBase64)
Синтаксис: ПроверитьПодписьДанныхBase64(<ИсходныеДанные>, <Подпись>, <ДанныеПодписи>)
Описание: Проверка внешней подписи в виде строки Base64 для строки или двоичных данных.

ПодписатьДанныеВнутреннейПодписью (SignDataInternal)
Синтаксис: ПодписатьДанныеВнутреннейПодписью(<ВключатьСертификат>, <ИсходныеДанные>, <ПодписанныеДанные>)
Описание: Формирование внутренней подписи в виде двоичных данных для строки или двоичных данных.

ПроверитьВнутреннююПодписьДанных (VerifyDataInternal)
Синтаксис: ПроверитьВнутреннююПодписьДанных(<ПодписанныеДанные>, <ИсходныеДанные>, <ДанныеПодписи>)
Описание: Проверка внутренней подписи для двоичных данных.

ПроверитьВнутреннююПодписьДанныхСтрока (VerifyDataInternalStr)
Синтаксис: ПроверитьВнутреннююПодписьДанныхСтрока(<ПодписанныеДанные>, <ИсходныеДанные>, <ДанныеПодписи>)
Описание: Проверка внутренней подписи для строковых данных. Имеет смысл для работы с обычными текстовыми данными (например, xml, json)

ПодписатьДанныеВнутреннейПодписьюBase64 (SignDataInternalBase64)
Синтаксис: ПодписатьДанныеВнутреннейПодписьюBase64(<ВключатьСертификат>, <ИсходныеДанные>, <ПодписанныеДанные>)
Описание: Формирование внутренней подписи в виде Base64-строки для строки или двоичных данных.

ПроверитьВнутреннююПодписьДанныхBase64 (VerifyDataInternalBase64)
Синтаксис: ПроверитьВнутреннююПодписьДанныхBase64(<ПодписанныеДанные>, <ИсходныеДанные>, <ДанныеПодписи>)
Описание: Проверка внутренней подписи для данных в виде Base64-строки.

ПроверитьВнутреннююПодписьДанныхBase64Строка (VerifyDataInternalBase64Str)
Синтаксис: ПроверитьВнутреннююПодписьДанныхBase64Строка(<ПодписанныеДанные>, <ИсходныеДанные>, <ДанныеПодписи>)
Описание: Проверка внутренней подписи для строковых данных в виде Base64-строки. Имеет смысл для работы с обычными текстовыми данными (например, xml, json)

 

ЭЦП

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18000 руб.

30.05.2017    54230    9    69    

46

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1228    3    4    

3

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77641    73    257    

191

Разработка внешних компонент Программист Платформа 1С v8.3 Платформа 1C v8.2 Платные (руб)

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3712    3    0    

5

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47503    124    66    

67

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    36899    114    127    

115

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2461    bayselonarrend    14    

48

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    5124    kovalevdmv    26    

75
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. efin 11.12.17 21:50 Сейчас в теме
Многие выкладывают готовые Native-компоненты. Но мне, как начинающему разработчику ВК на С++, очень хочется получить работающие исходники хотя бы одного серьезного проекта, чтобы посмотреть где как что сделано и использовать как образец для своих разработок.

В реальности у меня только учебный пример от 1С. Есть ли еще ВК в открытом виде?
2. KAV2 157 12.12.17 06:36 Сейчас в теме
(1) Учебный пример компоненты на C++ весьма годный, там все есть для создания своей компненты в принципе.
3. Zahary 42 12.12.17 11:04 Сейчас в теме
(1) Здесь есть исходники. Проект конечно не серьезный, но как пример - вполне рабочий.
Самое главное - понять технологию, а исходники серьезных проектов начинающему разработчику ни к чему. Учиться нужно от простого к сложному. Лично для меня самое сложное в ВК - это работа со строковыми типами и их указателями (WCHAR_T, wchar_t, char*, CHAR*, PSTR, PCZPSTR, PCNZCH, string, wstring и.т.д. и т.п).
4. Zahary 42 05.01.18 18:11 Сейчас в теме
Вопрос: При попытке передать двоичные данные как аргумент функции внешней компоненты происходит ошибка "Неверный аргумент"
Ответ: Передача двоичных данных во внешние компоненты реализована начиная с версии 8.3.10
Если используется платформа ниже, тогда используйте функции для работы с файлами либо с данными в формате Base-64
5. Online-Ufa 06.01.18 19:47 Сейчас в теме
С Новым годом!
Следующая версия будет называться FrodoSign.dll ? ))
6. user1745067 15.02.22 19:56 Сейчас в теме
Добрый вечер. В строке КодОшибки = Компонента.СчитатьЛичныйКлючИзФайла(ИмяФайла, Пароль, ДанныеСертификата); КодОшибки = 24. Можете подсказать что не так делаю?
Оставьте свое сообщение