Жизненный цикл интеграции с 1С: от подключения к внешнему миру до открытия своего API

02.09.26

Архитектура - Проектирование

1С все чаще становится центром обмена данными между магазинами, сайтами, CRM-системами и другими сервисами, но хаотично созданные интеграции сложно поддерживать и безопасно развивать. Разбираем жизненный цикл интеграции на примере двух ролей 1С: клиента, который получает данные, и сервера, который предоставляет их внешним системам через API. Показываем, как избежать зацикливания обмена и зависимости от действий пользователей, зачем нужны версионирование API, защищенное соединение, ограничение запросов, логирование, документация и тестирование. Объясняем, как перейти от точечной «склейки» систем к управляемой интеграционной архитектуре, готовой к развитию и масштабированию.

Интеграции с маркетплейсами, оборудованием, другими конфигурациями, CRM-системами и сайтами часто оказываются сложнее, чем кажется на этапе проектирования. Работа с ними приносит разный опыт – иногда положительный, иногда болезненный, но по большей части он складывается из набивания шишек. В этой статье разберем основные детали, которые важно учитывать новичкам и тем, кто только приступает к работе с интеграциями, чтобы избежать распространенных ошибок уже на этапе проектирования.

 

Бардак интеграций

 

В начале своей карьеры я пришел на проект, где внедрялась система для магазина и оптового представителя, занимавшегося торговлей сантехникой и различным оборудованием. С системой было интегрировано множество маркетплейсов, отдельная CRM-система и сайты.

Эти интеграции были вроде бы автономными, но в то же время иногда переплетались. Из-за отсутствия документации поддерживать и развивать эту систему было очень сложно. В конечном счете все ложилось на группу поддержки, которая часто прибегала в отдел разработки и спрашивала: «А почему у нас все сломалось? Как это исправить?»

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

Я разделил статью на две части. Первая часть – это 1С как клиент, когда мы потребляем данные. Вторая часть – 1С как сервер, когда мы уже непосредственно предоставляем данные внешним системам.

Рассказывать я буду на одном эталонном примере. Это был проект розничной сети из 70 магазинов. Заказчик пришел к нам с идеей оптимизировать процессы, унифицировать розничную торговлю и получать как можно больше статистики. При этом основное требование состояло в том, чтобы каждый магазин в этой сети был автономным. Тогда в любой момент его можно было бы отделить от сети, продать или сдать в аренду.

Почему это важно? Потому что данное требование легло в основу того, как центр мог собирать данные. В каждом магазине было по несколько касс, требовались терминалы сбора данных и другое основное оборудование.

 

1С как клиент

 

Что мы рассматривали в качестве вариантов? Первое, что приходит в голову, когда мы думаем о том, как забирать данные, – это типовые решения: синхронизация однородных программ либо распределенные информационные базы, если мы говорим об однородных базах.

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

 

Ошибка 1. Файловый обмен

Файловый обмен – очень простой и легко настраиваемый вариант. В подобном кейсе мы реализовывали его через FTP-сервер, и центр всю ночь забирал данные из множества магазинов.

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

 

Ошибка 2. Зацикливание обмена

 

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

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

К чему это обычно приводит? К тому, что учет рушится, а поддержка не может справиться с наплывом сообщений, если системе оставили возможность самостоятельно обмениваться данными в том порядке, в котором она захочет.

В основном это ошибка проектирования. Она быстро устраняется, но сделать это хорошо получается не всегда.

 

Ошибка 3. Надежда на ответственность пользователей

 

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

 

 

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

 

Как избежать ошибок проектирования

 

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

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

К чему мы пришли в описанном кейсе? Мы использовали интерфейс OData, который позволил нам оперативно получать данные об остатках и движении товаров. Центр при этом отдавал только минимальные данные об изменении цен.

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

 

1С как сервер: предоставление данных внешним системам

 

Система развивается, и мы добавляем новые интеграции. Теперь центральной 1С нужно отдавать данные дальше.

В приведенном примере у клиента помимо розничной сети открылся интернет-магазин. Он существовал уже некоторое время, но был отделен от общей учетной системы. Нам было необходимо интегрировать центр с сайтом и системой «Комплексная автоматизация», в которой было очень много доработок и которой тоже нужно было каким-то образом получать данные.

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

А на поддержке у нас было множество клиентов с сайтами, которые получали данные по API.

Первое, что нужно учитывать, – это несогласованное изменение данных, которые мы отдаем, в том числе возможное изменение объектов метаданных.

У нас был случай, когда мы в спешке изменили ключи, по которым API забирал данные. Речь шла о справочнике номенклатуры. В результате обмен с сайтом упал, а обнаружили эту ошибку только спустя два дня. На сайте исчезла возможность создавать заказы, потому что закончились остатки.

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

Главная ошибка была в проектировании и в том, как мы в принципе организовали работу. Отсутствие документации и несогласованные действия с другими командами приводят к подобным историям.

 

Версионирование API

 

К чему мы пришли после этого и что использовали в следующем кейсе? Мы внедрили версионирование API. В нашем случае версия указывалась в заголовках, но ее также можно было указывать в URL. Главное, чтобы версионирование существовало.

 

 

Что оно нам дает? Возможность откатиться и проработать алгоритм безопасных изменений. Этот алгоритм разбивается на три этапа.

Первый этап – расширение. Мы договариваемся с бизнесом и другими командами и дорабатываем API с учетом того, что будут добавлены новые поля или изменены типы объектов, которые мы отдаем. При этом старая версия все еще работает, а новую мы тестируем.

Далее мы уведомляем другие команды о том, что новая версия готова и теперь им нужно подстроиться под нас. Мы планируем переход вместе с другими командами и ждем.

Когда подходит срок перехода на новую версию, мы информируем об этом другие команды и проверяем, кто еще обращается к нашему API. Если другие команды не готовы, мы оттягиваем срок и сдвигаем дедлайн. Это позволяет избежать инцидентов, которые могут возникнуть в дальнейшем.

 

Безопасность API

 

Следующее, что мы проработали, – безопасность API.

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

Отсюда вывод: для каждого внешнего сервиса мы создаем отдельного пользователя API.

Также необходимо использовать аутентификацию – желательно через токены либо через логин и пароль – и обязательно устанавливать защищенное соединение. Незащищенное соединение легко скомпрометировать. В результате можно столкнуться, например, с тем, что на экранах в магазинах появится свастика, как это произошло в одном из наших кейсов.

Решение проблемы было небыстрым, а клиенты остались недовольны. Поэтому в новых проектах защищенное соединение используется обязательно.

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

 

Ограничение запросов

 

Следующее, о чем стоит поговорить, – ограничение запросов. Это тоже связано с безопасностью.

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

Первый уровень – веб-публикация на базе Nginx или IIS, где ограничения можно прописать в конфигурации. Также их можно реализовать на уровне самой 1С или еще глубже – на уровне нашего кода.

Что это дает? Защиту от возможных DDoS-атак и от ситуаций, когда пользователь каким-то чудом нажал кнопку и запросил все данные, накопленные в базе за год.

 

Документация и тестирование

 

В разработке мы используем документацию OpenAPI и mock-серверы для тестирования.

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

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

 

Три принципа надежных интеграций

 

Первое – начинайте с цели. Для чего это нужно бизнесу? Куда мы вообще идем? Чего от нас ожидает заказчик?

Второе – необходимо управлять жизненным циклом интеграции и не пускать все на самотек. Не нужно поддаваться быстрым желаниям клиента и внедрять в систему непродуманные решения.

Третье и, наверное, самое сложное – необходимость договариваться с другими командами, а не диктовать им свои условия. Роль аналитика – быть переводчиком между бизнесом и смежными командами.

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TEAM EVENT.

Инфостарт Tech Event 2026

Инфостарт A&PM Event 2026

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Проектирование 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Бесплатно (free)

Методика проектирования АРМ "Производство" в 1С:УНФ для мелкосерийного производства. Как спроектировать интерфейс для цеховых рабочих, используя только типовые объекты конфигурации: штрихкодирование, сдельная оплата, контроль брака по экземплярам продукции.

27.08.2026    204    0    PD_AD    10    

1

Архитектура решений Россия Бесплатно (free)

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

29.07.2026    564    0    Stella_Vermilion    0    

2

Проектирование Бесплатно (free)

Универсальные «лучшие практики» в IT не работают одинаково везде. Финтех-стартап, лицензированный банк и большая банковская корпорация – это три разные среды. В каждой по-своему распределяются скорость, риск и доверие. Стартапу нужна максимальная скорость и готовность жить в неопределенности. Банку важнее управляемость, документация, процессы и след для аудитов. В статье разбираем, как по мере роста бизнеса меняются IT-стратегия, операционная модель и требования: к команде, к информационной безопасности, к архитектуре, к работе с вендорами и SaaS. Формулируем прикладные правила, которые помогают выбирать подход под контекст, не переносить опыт механически из одной среды в другую и ускоряться без потери контроля.

20.07.2026    272    0    user2194147    0    

0

Архитектура данных Архитектура решений Бесплатно (free)

После замены устаревшего Java-модуля и реализации высоконагруженного биллинга на 1С 8.5 система обрабатывает более 1 миллиарда событий в месяц, формирует около 3 миллионов актов для 700 тысяч клиентов и работает в inFrame-режиме внутри корпоративной ERP. Разбираем архитектуру решения: слои данных, ретроспективность, drill-down до первичной операции, многопоточный конвейер, RabbitMQ, REST API, Grafana, партиционирование и охлаждение данных. Объясняем, почему именно архитектура данных стала ключом к производительности, масштабируемости и устойчивости системы.

18.06.2026    1914    0    _ASZ_    39    

26

Архитектура решений Россия Бесплатно (free)

Как сохранить самостоятельность филиалов и при этом обеспечить прозрачность, контроль и единые правила закупочной деятельности в холдинге? В статье рассмотрен практический подход к построению автоматизированной системы управления закупками (АСУЗ) на платформе 1С с распределённой архитектурой, интеграцией ERP-систем филиалов, единым реестром поставщиков, контролем тендерных процедур и механизмом использования внутренних ресурсов холдинга.

05.06.2026    478    0    Adapta    0    

1

Архитектура решений 1С:Предприятие 8 1С:Документооборот Россия Бесплатно (free)

Практическое руководство по миграции с 1С:Документооборот 2.1 на 3.0: ключевые отличия редакций, совместимость версий, особенности переноса данных, ограничения параллельной работы двух баз и пошаговый план перехода для аналитиков и проектных команд.

21.05.2026    1231    0    Adapta    2    

0

Архитектура решений Бесплатно (free)

Расскажем о результатах исследования рынка WMS-систем, проведенного совместно с фондом «Сколково». Объясним, какие решения соответствуют современным требованиям бизнеса, и по каким критериям стоит выбирать WMS. Разберем подводные камни, которые чаще всего возникают при внедрении. Дополнительно приведем топ-5 доработок 1С:WMS, которые помогают компаниям повысить эффективность складских процессов.

19.05.2026    669    0    user2065225    2    

-1

Архитектура решений Оценка проекта Бесплатно (free)

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

07.05.2026    777    0    user598195_ymin    0    

1
Для отправки сообщения требуется регистрация/авторизация