Top.Mail.Ru
РБК Компании
Заморозили скидки: делитесь новостями бизнеса и читайте эксклюзивы на РБК
Успеть до 14.12
Заморозили скидки:
делитесь новостями бизнеса
и читайте эксклюзивы на РБК
Успеть до 14.12

Как мы реализовали загрузку транзакционных данных в 1С

Один из самых сложных архитектурных кейсов из практики ALP Group
Загрузка данных
Источник изображения: DC Studio / Freepik.com
Задача и причина

Задача:

Реализовать функциональность загрузки данных в импортонезависимом окружении Astra Linux и PostgreSQL.

Причина:

Комплексный перевод цифровой экосистемы холдинга на российские ИТ-решения.

Импортозамещение со звездочкой

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

Изначально функциональность загрузки данных разрабатывалась для взаимодействия 1С с системой управления базами данных (СУБД) Microsoft SQL Server под управлением операционной системы Windows Server. Решение было выполнено через технологию Component Object Model (COM) — стандарт Microsoft, который позволяет разработчикам использовать в коде независимые компоненты программного обеспечения, даже если они написаны на разных языках программирования, и не волноваться насчет их совместимости.

Все работало быстро и стабильно. Но в рамках импортозамещения архитектуру требовалось полностью переделать: теперь все те же бизнес-задачи должны были решаться на Astra Linux и PostgreSQL. Классический механизм интеграции Microsoft в этом окружении попросту отсутствует. При этом требования со стороны заказчика по скорости загрузки больших объемов данных никто не отменял.

Новое окружение не должно было стать узким горлышком. И все это — при строжайших требованиях к информационной безопасности.

Мы оценили три возможных решения проблемы:

  1. Использовать механизм «Внешние источники данных» платформы 1С.
    Казалось бы, готовое решение. Но при тестировании стало ясно: показатели производительности вряд ли в полной мере устроят заказчика.
  2. Использовать внешние компоненты при взаимодействии с СУБД.
    Теоретически, они могли бы решить проблему. Но требования к информационной безопасности у заказчика, по понятным причинам, предельно высокие. Найти внешнюю компоненту с открытым программным кодом, которая бы удовлетворяла всем регламентам, почти невозможно. Написать свою с нуля — нереально по срокам.
  3. Придумать собственное решение.
    Рискованный, но единственно рабочий путь.

Как мы наладили работу 1С с PostgreSQL на Astra Linux

В рамках базы данных были созданы необходимые хранимые процедуры с адаптированным под PostgreSQL кодом. Базу данных мы подключили к системе коммерческого учета через механизм «Внешние источники данных», но сама функциональность механизма 1С и его методы задействованы не были ввиду недостаточной производительности — он просто стал «транспортом» для вызова нужной бизнес-логики с корректными параметрами.

Такой подход позволил обойти проблемы с безопасностью (все оставалось внутри допустимого технологического стека), обеспечить высокую производительность и при этом не выйти за рамки лицензий и требований заказчика.

Работа над кастомной системой коммерческого учета велась на территории клиента, и это добавило остроты. У заказчика — закрытый контур, а у нас — нет прав администратора и root-доступов для проведения экспериментов. Сразу возник вопрос: как же нам тогда настраивать окружение для корректного взаимодействия 1С и PostgreSQL в операционной системе Astra Linux?

Развернуть у себя полностью аналогичную среду мы не могли — стояли жесткие временные сроки. В итоге мы строили стенд у себя «по мотивам», при поддержке наших администраторов воспроизводили баги в собственном контуре внутри компании, писали подробные инструкции по их разрешению и передавали их ИТ-отделу заказчика.

Стоит сказать, что проект делала наша небольшая команда крутых технических экспертов. Одну из ключевых ролей сыграл руководитель проекта — именно он договаривался с заказчиком, распределял ресурсы и добивался согласований промежуточных результатов. Без него вся эта заковыристая архитектура могла бы так и остаться в черновиках, прикрытых корпоративными регламентами и сроками согласований.

Конечно, наличие полноценного тестового окружения и разумные сроки на интеграцию сэкономили бы массу нервов и ускорили бы разработку. Но порой обстоятельства диктуют свои правила. Иногда архитектурные прорывы рождаются не из свободы, а из ограничений. Этот кейс — живое подтверждение того, что даже в стесненных условиях можно найти элегантное решение — без «костылей» и с учетом всех требований к производительности, безопасности и масштабируемости.

Результат

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

Интересное:

Новости отрасли:

Все новости:

Достижения

I место в рейтинге фирмы «1C»Крупнейшее внедрение «1С» в ФГУП «Почта России», автоматизировано 47 612 рабочих мест
Внедрение «1С: Консолидация 8»Одно из самых масштабных внедрений «1С: Консолидация 8» в ПАО «Газпромнефть», автоматизация >5к мест

Контакты

Адрес
123022, Россия, г. Москва, ул. 2-я Звенигородская, д. 13, корп. 41, 7 этаж
Телефон

Социальные сети

ГлавноеЭкспертыДобавить
новость
КейсыМероприятия