Как мы реализовали загрузку транзакционных данных в 1С
Один из самых сложных архитектурных кейсов из практики ALP Group
Задача:
Реализовать функциональность загрузки данных в импортонезависимом окружении Astra Linux и PostgreSQL.
Причина:
Комплексный перевод цифровой экосистемы холдинга на российские ИТ-решения.
Импортозамещение со звездочкой
Импортозамещение цифровых решений в крупном холдинге — это не просто смена софта, а перезапуск всех архитектурных решений с оглядкой на информационную безопасность, производительность и часто — совершенно новые подходы к взаимодействию компонентов. Один из самых напряженных и, пожалуй, инженерно интересных кейсов из нашей практики — переработка модуля загрузки транзакционных данных в кастомной системе коммерческого учета на базе 1С.
Изначально функциональность загрузки данных разрабатывалась для взаимодействия 1С с системой управления базами данных (СУБД) Microsoft SQL Server под управлением операционной системы Windows Server. Решение было выполнено через технологию Component Object Model (COM) — стандарт Microsoft, который позволяет разработчикам использовать в коде независимые компоненты программного обеспечения, даже если они написаны на разных языках программирования, и не волноваться насчет их совместимости.
Все работало быстро и стабильно. Но в рамках импортозамещения архитектуру требовалось полностью переделать: теперь все те же бизнес-задачи должны были решаться на Astra Linux и PostgreSQL. Классический механизм интеграции Microsoft в этом окружении попросту отсутствует. При этом требования со стороны заказчика по скорости загрузки больших объемов данных никто не отменял.
Новое окружение не должно было стать узким горлышком. И все это — при строжайших требованиях к информационной безопасности.
Мы оценили три возможных решения проблемы:
- Использовать механизм «Внешние источники данных» платформы 1С.
Казалось бы, готовое решение. Но при тестировании стало ясно: показатели производительности вряд ли в полной мере устроят заказчика. - Использовать внешние компоненты при взаимодействии с СУБД.
Теоретически, они могли бы решить проблему. Но требования к информационной безопасности у заказчика, по понятным причинам, предельно высокие. Найти внешнюю компоненту с открытым программным кодом, которая бы удовлетворяла всем регламентам, почти невозможно. Написать свою с нуля — нереально по срокам. - Придумать собственное решение.
Рискованный, но единственно рабочий путь.
Как мы наладили работу 1С с PostgreSQL на Astra Linux
В рамках базы данных были созданы необходимые хранимые процедуры с адаптированным под PostgreSQL кодом. Базу данных мы подключили к системе коммерческого учета через механизм «Внешние источники данных», но сама функциональность механизма 1С и его методы задействованы не были ввиду недостаточной производительности — он просто стал «транспортом» для вызова нужной бизнес-логики с корректными параметрами.
Такой подход позволил обойти проблемы с безопасностью (все оставалось внутри допустимого технологического стека), обеспечить высокую производительность и при этом не выйти за рамки лицензий и требований заказчика.
Работа над кастомной системой коммерческого учета велась на территории клиента, и это добавило остроты. У заказчика — закрытый контур, а у нас — нет прав администратора и root-доступов для проведения экспериментов. Сразу возник вопрос: как же нам тогда настраивать окружение для корректного взаимодействия 1С и PostgreSQL в операционной системе Astra Linux?
Развернуть у себя полностью аналогичную среду мы не могли — стояли жесткие временные сроки. В итоге мы строили стенд у себя «по мотивам», при поддержке наших администраторов воспроизводили баги в собственном контуре внутри компании, писали подробные инструкции по их разрешению и передавали их ИТ-отделу заказчика.
Стоит сказать, что проект делала наша небольшая команда крутых технических экспертов. Одну из ключевых ролей сыграл руководитель проекта — именно он договаривался с заказчиком, распределял ресурсы и добивался согласований промежуточных результатов. Без него вся эта заковыристая архитектура могла бы так и остаться в черновиках, прикрытых корпоративными регламентами и сроками согласований.
Конечно, наличие полноценного тестового окружения и разумные сроки на интеграцию сэкономили бы массу нервов и ускорили бы разработку. Но порой обстоятельства диктуют свои правила. Иногда архитектурные прорывы рождаются не из свободы, а из ограничений. Этот кейс — живое подтверждение того, что даже в стесненных условиях можно найти элегантное решение — без «костылей» и с учетом всех требований к производительности, безопасности и масштабируемости.
По итогам работы у нас получился новый модуль, позволяющий мгновенно загружать в систему коммерческого учета данные о миллионах транзакций, проводимых холдингом.
Рубрики
Интересное:
Новости отрасли:
Все новости:
Публикация компании
Достижения
Контакты
Социальные сети
Рубрики



