Работа с современными банковскими API и Системой быстрых платежей (СБП) требует использования протокола HTTPS и защищенных соединений TLS. Старая платформа 1С 7.7 не обладает встроенными средствами для полноценной поддержки современных стандартов шифрования, что делает прямые запросы через устаревшие компоненты нестабильными или невозможными. Давайте разберем, как эффективно решить эту задачу.
Одним из самых надежных способов является применение библиотеки cURL в связке с OpenSSL. Поскольку cURL — это самостоятельный инструмент, он не зависит от ограничений системных библиотек Windows и позволяет использовать актуальные протоколы TLS 1.2 и 1.3.
libcurl и openssl.WScript.Shell для запуска командной строки с передачей параметров запроса.Рассмотрим пример логики вызова через запуск внешнего процесса в 1С 7.7:
// Пример формирования команды для вызова cURL
Команда = "curl -X POST https://api.bank.com/payments -d @data.json -o response.txt";
WshShell = СоздатьОбъект("WScript.Shell");
WshShell.Run(Команда, 0, 1);
// После выполнения считываем файл response.txt
ТекстОтвета = СоздатьОбъект("Текст");
ТекстОтвета.Открыть("response.txt");
Наиболее архитектурно верным подходом при интеграции с СБП является создание собственной «прокладки» (сервиса-посредника). Это особенно актуально, если у вас несколько рабочих мест или сложная схема взаимодействия с банком.
Преимущества этого подхода:
PHP, Go или даже использовать 1С 8.x как шлюз.Рассмотрим ситуацию, когда мы создаем небольшой веб-скрипт. Это самый простой способ, не требующий сложной инфраструктуры.
Разберем этапы работы:
localhost/api.php).PHP принимает этот запрос, выполняет защищенное HTTPS-соединение с банком, используя современные библиотеки cURL.Этот подход позволяет 1С 7.7 работать со стандартными и простыми запросами, оставляя всю «тяжелую» работу по криптографии и безопасности внешнему сервису.
Многие программисты пытаются использовать WinHttp.WinHttpRequest.5.1, однако важно понимать причину потенциальных сбоев. Этот объект опирается на системные настройки Windows. Если сервер банка требует TLS 1.2 или выше, а ваша операционная система (например, Windows Server 2003 или XP) не настроена или физически не поддерживает эти протоколы, соединение будет сброшено. Поэтому для стабильной работы в современных условиях мы настоятельно рекомендуем использовать внешние библиотеки вроде cURL или вынос логики на современный промежуточный сервис.
Если вы ограничены в ресурсах и у вас небольшое количество рабочих мест — попробуйте использовать внешние HTTP-компоненты для 1С в виде DLL, которые уже содержат внутри себя скомпилированные версии OpenSSL. Это позволит инкапсулировать работу с HTTPS внутри одной библиотеки, которую достаточно поместить в папку с базой данных.
Если же архитектура вашей системы предполагает развитие, масштабируемость и высокую надежность при работе с СБП — смело выбирайте вариант с собственным промежуточным сервисом. Это «прокладка», которая позволит вам забыть о проблемах несовместимости версий TLS и упростит поддержку всей системы в будущем.