Расширение "Интеграция с блокчейнами" для работы с Биткоин и Лайткоин (ERP 2.4 и УТ 11.4)

12.11.20

Разработка - Математика и алгоритмы

Расширение "Интеграция с блокчейнами" позволяет получать и отправлять Биткоин и Лайткоин из 1С, привязывать входящие и исходящие платежи в криптовалюте к объектам базы (справочники или документы). Расширение работает с основными типовыми конфигурациями 1С для России и Беларуси (ERP 2.4, УТ 11.4, ERP для Беларуси 2.4, УТ для Беларуси 3.4). В качестве провайдера платежей используется сервис BLOCK.IO.

Скачать исходный код

Наименование Файл Версия Размер
Расширение "Интеграция с блокчейнами" для работы с Биткоин и Лайткоин (ERP 2.4 и УТ 11.4):
.cfe 211,33Kb
1
.cfe 1.00 211,33Kb 1 Скачать
 
 Требования

1. Минимальный режим совместимости типовой конфигурации: 8.3.12.

2. Минимальная версия платформы платформы 1С: 8.3.13.

3. Наличие аккаунта в сервисе BLOCK.IO.

 
 Подключение и настройка

 1. Для возможности обмена с сервисом BLOCK.IO (через http-запросы) расширение должно быть подключено без флага "Безопасный режим, имя профиля безопасности":
 

 

2. Для начальной настройки расширения необходимо выбрать соответствующий пункт командного интерфейса:
 


 

3. В открывшемся окне помощника настройки следует:

3.1. отметить флагами блокчейны (сети), которые будут использоваться.

3.2. для используемых сетей необходимо ввести ключи API аккаунта BLOCK.IO.

3.3. ввести в соответствующее поле PIN, введенный при регистрации в аккаунте BLOCK.IO

3.4. для введенного PIN вычислить ключ шифрования путем нажатия соответствующей кнопки (примечание: введенный PIN в дальнейшем сохраняется в базе данных в зашифрованном виде).

3.5. нажать кнопку "Применить настройки" для сохранения введенных данных в базе данных (примечание: при сохранении настроек будут загружены активные счета аккаунта BLOCK.IO и последние транзакции по этим счетам). 
 

 

 
 Функциональность
 
 Платежные запросы

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

  1. Варианты создания платежного запроса:

    1.1. Интерактивно через форму списка:



    1.2. Через команду "(1) Запросить платеж" в подменю "Блокчейн" на форме объекта платежа:


     
  2. Заполнение платежного запроса:

    2.1. Блокчейн - обязательное поле.
    2.2. Сумма - обязательное поле.
    2.3. Метка - заполняется по умолчанию номером документа "Платежный запрос" с префиксом "PR_", может быть изменено пользователем.
    2.4. Криптосчет - при проведении генерируется новый уникальный адрес с указанной меткой (при необходимости может быть указан существующий криптосчет).

    Примечание: количество адресов, которое можно сгенерировать, ограничено и зависит от используемого тарифного плана.


     
  3. Просмотр платежных запросов. Для просмотра уже созданных платежных запросов можно или открыть форму списка документов "Платежный запрос" или воспользоваться командой "(2) История запросов" в подменю "Блокчейн" на форме объекта платежа.
     
  4. Анализ оплат по платежным запросам. Для анализа оплат по платежным запросам в системе имеется отчет "Оплаты по платежным запросам":

      

    Примечание: в графу "Сумма оплачено" попадают только подтвержденные транзакции из блокчейна. 
 
 Вывод криптовалюты - одиночные платежи

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

  1. Варианты создания платежа:

    1.1. Интерактивно через форму списка:



    1.2. Через команду "(3) Оплатить" в подменю "Блокчейн" на форме объекта платежа:



    1.3. интерактивно на закладке "Платежи" обработки "Вывод криптовалюты":


     
  2. Заполнение платежа:

    2.1. Блокчейн - обязательное поле.
    2.2. Отправитель - обязательное поле.
    2.3. Получатель - обязательное поле, может указан или адрес строкой или существующий криптосчет.
    2.4. Сумма - обязательное поле, при вводе суммы рассчитывается ожидаемая комиссия за проведение транзакции (примечание: для ввода максимально возможной суммы списания с учетом комиссии можно воспользоваться кнопкой "Максимальная сумма"). 


     
  3. Подпись и отправка в блокчейн. Для подписи и отправки транзакции в блокчейн необходимо:

    3.1. ввести PIN в соответствующее поле на форме (примечание: для введенного PIN ранее должен быть вычислен ключ шифрования в настройках).
    3.2. нажать кнопку "Подписать транзакцию и отправить в блокчейн".

    Примечание: в случае успешной отправки транзакции в блокчейн, в документе будет заполнен идентификатор транзакции (txid), документ будет автоматически проведен и заблокирован для изменения. 


     
  4. Просмотр платежей. Для просмотра уже созданных платежных запросов можно или открыть форму списка документов "Платеж" или воспользоваться командой "(4) История платежей" в подменю "Блокчейн" на форме объекта платежа.
     
  5. Анализ платежей. Для анализа исходящих оплат в системе имеется отчет "Остатки и обороты криптовалюты" (колонка "Расход за период"):

      

    Примечание: в графу "Приход за период" и "Расход за период" попадают только подтвержденные транзакции из блокчейна. Поле "Текущий остаток" содержит актуальный остаток из блокчейна на момент формирования отчета. 
 
 Вывод криптовалюты - множественные платежи

Для быстрого создания нескольких платежей (например, для перемещение криптовалюты со всех криптосчетов на один) в системе имеется отдельная обработка - "Вывод криптовалюты".

Порядок работы с обработкой:

  1. отметить флагом криптосчета, с которых требуется списать средства.
  2. выбрать получателя криптовалюты - или в шапке формы и/или отдельно по каждой строке.
  3. ввести сумму платежа - или вручную или воспользовавшись подменю "Установить максимальную сумму" для установки максимально возможной суммы списания с учетом комиссии. 
  4. ввести PIN и нажать кнопку "Подписать выбранные транзакции и отправить в блокчейн".


 
 Архивирование и активация криптосчетов

В системе имеется механизм активации и деактивации (архивирования) криптосчетов:

  1. Активация криптосчета - для активации криптосчета необходимо на форме списка или форме элемента криптосчета нажать кнопку "Активировать".


     
  2. Архивирование криптосчета:

    2.1. для архивирования произвольного криптосчета необходимо на форме списка или форме элемента криптосчета нажать кнопку "Архивировать".
    2.2. для архивирования криптосчетов с нулевым остатком или остатком, не превышающим (с учетом комиссии) минимальную сумму вывода (0,00002 для Биткоин и 0,0002 для Лайткоин) в системе имеется отдельная обработка "Архивирование криптосчетов".

 
 Загрузка транзакций из блокчейн

Для отражения подтвержденных в блокчейне транзакций в системе имеется отдельный документ "Транзакция". Для загрузки новых транзакций из блокчейна на форме списка документов "Транзакция" следует нажать кнопку "Загрузить новые транзакции". Загрузка новых транзакций также выполняется автоматически при первом после открытия формирования отчета "Остатки и обороты криптовалюты".

Примечание: из блокчейна загружаются транзакции только по активным криптосчетам. 


 
 Загрузка курсов криптовалют

В системе имеется возможность загрузки усредненного курса криптовалют по отношению к USD по данным различных бирж (bitstamp, gemini, coinbase, coinspot, bitfinex).  Для загрузки курсов криптовалют необходимо на форме списка криптовалют нажать кнопку "Загрузить курсы". 


 

Примечание: для возможности загрузки курсов криптовалюты:

  1. в справочнике "Валюты" должен быть элемент "USD".
  2. в настройках должен быть указан ключ API для основной сети блокчейна для криптовалюты.
  3. используемый тарифный план BLOCK.IO должен иметь доступ к основной сети блокчейна.  
 
 Отчетность

В системе имеются следующие отчеты:

  1. Оплаты по платежным запросам - содержит информацию:

    1.1. Сумма по запросу - сумма из документов "Платежный запрос", созданных в периоде отчета.
    1.2. Сумма оплачено - сумма оплат на основании подтвержденных транзакций из блокчейна (документ "Транзакция") за период отчета.
    1.3. Сумма остаток - разница между "Сумма по запросу" и "Сумма остаток".


     
  2. Остатки и обороты криптовалюты - содержит информацию:

    2.1. Приход на период - сумма входящих платежей криптовалюты на основании подтвержденных транзакций из блокчейна (документ "Транзакция") за период отчета.
    2.2. Расход на период - сумма исходящих платежей криптовалюты на основании подтвержденных транзакций из блокчейна (документ "Транзакция") за период отчета.
    2.3. Текущий остаток - остаток криптосчета на текущую дату (примечание: показатель не зависит от периода отчета).
    2.4. Ожидает получения - сумма в процессе подтверждения на криптосчета на текущую дату (примечание: показатель не зависит от периода отчета).



    Примечание: при первом после открытии формировании отчета выполняется загрузка последних транзакций по активным счетам из блокчейна.
 
 Безопасность

Сервис BLOCK.IO заявляет об отсутствии доступа к средствам пользователя. Достигается это путем использования технологии мультиподписи. Сервис хранит только приватный ключ, PIN доступен лишь пользователю, для подписи транзакции необходимо знать и приватный ключ и PIN.

Транзакции, которые формируются через расширение "Интеграция с блокчейнами", подписываются на стороне 1С. Уже подписанная транзакция из 1С через http-запрос передается в сервис BLOCK.IO. Таким образом, информация о PIN не передается в интернет. 

 
 Тестирование

 Расширение тестировалось на следующих версиях платформы 1С:

  1. 8.3.13.1513
  2. 8.3.16.1063

 

блокчейн расширение биткоин лайткоин ERP УТ

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1870    stopa85    12    

34

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4668    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    7659    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7933    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4547    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8938    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

Подробный разбор, с примером использования, встроенного механизма кластеризации 1С.

31.08.2021    7960    dusha0020    8    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. anton.fly7 173 29.06.20 09:21 Сейчас в теме
Block.io стали платными
+
3. NikitaXa 114 29.06.20 09:22 Сейчас в теме
(1), к сожалению, да, на момент начала разработки был бесплатный доступ к рабочим сетям.
+
2. anton.fly7 173 29.06.20 09:22 Сейчас в теме
The Newbie
Free
Developer API Access
Testnets Only
+
4. anton.fly7 173 29.06.20 09:29 Сейчас в теме
посмотрите в сторону coinbase.com там и валют польше и за доступ к АПИ платить не надо
+
5. NikitaXa 114 29.06.20 09:31 Сейчас в теме
(4), ок, спасибо, рассмотрю этот вариант.
+
6. djspike_63 31.08.20 13:18 Сейчас в теме
А какое практическое применение этому на сегодняшний день. Кто уже пользуется - расскажите для чего в реальности вы это используете?
+
7. NikitaXa 114 31.08.20 21:28 Сейчас в теме
(6) Реальных кейсов на текущий момент нет, это публикация экспериментальная.
Потенциальные сферы применения:
1. Прием и безопасная отправка криптовалюты из 1С;
2. Учет криптовалюты в разрезе объектов 1С;
И это все путем установки расширения 1С.
+
Внимание! Тема сдана в архив