Сейчас перед многими компаниями стоит вопрос грамотно настроенной синхронизации 1С с интернет-магазином или b2b порталом организации. И вариантов решения данной задачи достаточно много. Обычно для интеграции с веб-системой на стороне 1С используют стандартный обмен с web-сайтом в формате CommerceML. Данное решение является стабильным и проверенным на многих проектах. В данном вопросе мне есть чем поделиться, т.к. не так давно я специально проводил анализ систем интеграции для нужд нашего собственного продукта, поэтому предлагаю вашему вниманию обзор и сравнение формата обмена CommerceML и других способов интеграции:
В типовых конфигурациях 1С:Предприятие существует 2 типа обмена, основанного на формате CommerceML:
Обмен по схеме Поставщик-Покупатель
Обмен по схеме Поставщик-Покупатель можно использовать для обмена с сайтом, если база 1С будет выступать в качестве Поставщика, а сайт в качестве Покупателя. Но обмен по этой схеме возможно использовать лишь в ручном режиме, загрузка и выгрузка производится вручную. Также вручную необходимо обрабатывать загруженные заказы и формировать на них ответы.
Обмен с web-сайтом 1С-Битрикс
Обмен с web-сайтом 1С-Битрикс после настройки выполняется в автоматическом режиме, но заказы необходимо проводить в 1С вручную. Заказ выгружаемый по такой схеме не контролируется на наличие остатка на складе. И при проведении заказа может оказаться, что заказанный товар уже зарезервирован другим заказом.
В ассортименте программных продуктов 1С есть компонента web-расширение для платформы 1С:Предприятие. Данное решение основано на технологии Web Forms, которая интегрирует веб-форму, элемент управления и источник данных. Для доступа к данным элементы управления используют технологию ADO.NET, а пользовательский интерфейс работает на ASP.NET
Основной недостаток этой технологии — ограниченный дизайн компонентов веб-форм, сайт должен использовать ASP.NET, необходимость дополнительного лицензирования и фактически прямой доступ в базу данных.
Подключаемых dll для обмена на рынке нет, нужно писать самому. Есть только примеры. Для автоматического обмена по протоколу sftp из встроенного языка можно использовать существующие утилиты вроде WinSCP.exe. Однако, более надежно написать для этих целей внешнюю компоненту. Тем более, что есть готовые библиотеки для С++.
Использование COM интерфейса предполагает наличие у сайта com-объекта, к которому можно подключиться
Связь по COM-интерфейсу поддерживается многими приложениями в среде Windows, однако, для обмена с web-сайтом это довольно экзотическое решение. Для реализации такого решения также требуется наличие программиста владеющего технологиями COM.
Для web-сервисов необходимо открывать порт со стороны 1С, что представляет потенциальную угрозу проникновения в базу из Интернет.
Наиболее удобно для обмена 1С с сайтом использовать встроенную в платформу 1С:Предприятие технологии web-сервисов. Но использование этого решения отталкивает компании из-за необходимости открывать доступ к 1С из Интернет.
В версии 8.3 1С:Предприятие реализована поддержка SSL, сертификатов в web-сервисах и объектах встроенного языка использующих FTP и HTTP-соединение. В данном случае в web-сервисах уже обеспечивается необходимый уровень безопасности доступа к данным. Для данной платформы пока еще не реализованы типовые конфигурации, что ограничивает ее распространение.
Универсальный механизм обмена XML гибко настраивается без вмешательства программиста с помощью конфигурации «Конвертация данных». Но не позволяет осуществлять обмен в автоматическом режиме. А также, в данном варианте обмена не отслеживаются изменения объектов. Поэтому приходится выгружать все объекты, даже если они не изменялись. В лучшем случае для документов можно установить интервал выгрузки.
1С выгружает файлы формата txt, xml или csv, которые передаются на сайт по протоколам http или ftp. Сайт обрабатывает полученные файлы.
Самописный обмен позволяет достаточно гибко описать все правила и алгоритмы обмена, однако он хорошо работает при обмене небольшими объемами данных, при больших объемах начинаются проблемы с производительностью.
Встроенная в платформу 1С:Предприятие технология web-сервисов позволяет создать конфигурацию с полноценной CMS-системой генерирующей по запросу html-код. Таким образом кардинально решается вопрос обмена с сайтом, его по сути дела нет, так как сайт работает на базе 1С. Данное решение потенциально обладает низкой производительностью производительностью.
Каждый из описанных выше вариантов имеет свои преимущества и недостатки. Какой из них выбрать в конечном итоге зависит от множества факторов. И в каждом случае решается индивидуально. По нашему опыту наиболее оптимальным является решение, использующее сразу несколько вариантов обмена для разных ситуаций. По собственному опыту могу сказать, что когда встал выбор какой тип обмена использовать в масштабном проекте по созданию готовой b2b системы с универсальной интеграцией в большинство конфигураций 1С, на основе глубокого анализа нами был выбран формат CommerceML с доработанным функционалом. Именно он сочетает в себе гибкость настройки универсального обмена XML, высокую автоматизацию и повышенную производительность. В итоге в указанной выше системе интернет-дистрибуции мы использовали оптимизированный CommerceML формат для обмена сайта с базами 1С:Предприятие. При этом есть возможность гибкой настройки объектов обмена без программирования, путем добавления объектов в пакет XDTO. Большие объемы данных система передает по протоколу sftp, что заметно повышает отказоустойчивость и гарантирует безопасность.
Сравнение выполнено по следующим параметрам: производительность, отказоустойчивость, безопасность, эргономика.
Тип обмена |
Преимущества |
Недостатки |
CommerceML |
Есть в стандартной поставке 1С. Приемлемый уровень безопасности, нет доступа в базу 1С из интернет. |
При работе по схеме Поставщик-Покупатель необходимо вручную инициировать обмен. Избыточность данных протокола снижает производительность. Данные не зашифрованы. Большие объемы данных могут вызвать отказ в работе. Нет стандартных средств автоматического мониторинга процесса обмена. |
Web-расширение |
Прямой доступ в базу 1с позволяет упростить процесс отладки. Включено в некоторые стандартные поставки.
|
Под каждого пользователя надо покупать лицензию 1С. Производительность сильно зависит от скорости доступа к базе 1С. Прямой доступ в базу, потенциальная угроза доступа к данным в 1с из интернет. Падение сервера 1С вызовет падение сайта. |
Подключаемая DLL |
Производительность зависит только от объема данных Приемлемый уровень безопасности , доступа в базу 1С из интернет нет. Трафик шифруется при обмене по протоколу sftp. По сравнению с другими вариантами наиболее высокая отказоустойчивость при передаче больших объемов данных. |
Трудоёмкое написание библиотеки. Подойдет только для реализации транспорта данных. |
COM-интерфейс |
Приемлемый уровень безопасности , доступа в базу 1С из интернет нет. |
Производительность сильно зависит от скорости доступа к базе 1С. Возможны сбои при частых таймаутах. Трудоёмкое написание COM интерфейса. |
Web-сервисы 1С |
Прямой доступ в базу 1с позволяет упростить процесс отладки. |
Производительность сильно зависит от скорости доступа к базе 1С Открыты порты доступа в базу, есть потенциальные угрозы Возможны сбои при сбоях в базе 1С |
1С 8.3 |
Высокая степень безопасности, поддержка протоколов шифрования Есть средства для повышения уровня отказоустойчивости. |
Необходима миграция с текущей платформы 1С. |
Универсальный обмен XML |
Приемлемый уровень безопасности, доступа в базу 1С из интернет нет. |
Инициация обмена по умолчанию осуществляется оператором. Обработка больших файлов правил сильно снижает производительность. Данные передаются в открытом виде При больших объемах данных возможны сбои. |
Комбинированный обмен |
Возможны варианты оптимизации Безопасность зависит от реализации решения |
Долгий процесс отладки обмена |
Веб-сервер на стороне 1С |
Нет промышленных внедрений. Решение на уровне прототипа.
|
Производительность ниже, чем у обычных веб-серверов Низкий уровень безопасности, открыт порт доступа в базу данных 1С. Сайт не работает при сбоях с базой 1С. |
Настоящие эксперты в области веб-разработки делают не только красиво, но и функционально. Хотите найти веб-студию, способную обеспечить не только аккуратный, приятный дизайн, но и последующее удобство при использовании интернет-магазина? Тогда обязательно изучите независимый рейтинг разработчиков интернет-магазинов! Он позволяет получить представление сразу о всех лучших веб-студиях, специализирующихся именно на этом типе сайтов, причем сразу по 4 ценовым категориям.
Действительно, вопрос интеграции сайта и 1С перед веб-разработчиками встает все чаще, об этом я могу судить по количеству обращений к нам в веб-студию в последнее время.
Однако на практике мечты клиента об идеальной грамотной синхронизации сайта с 1С разбиваются о достаточно узкую квалификацию специалистов по разработке веб-сайтов, но гораздо ранее о прайс разработчика.
Поэтому варианты «Разработать подключаемую DLL» или «Использовать COM интерфейс» можно рассматривать так же, как транспортным компаниям говорить о возможности телепортации груза, вместо традиционной перевозки.
Обмен информацией по XML, CSV и прочие «ручные» варианты заказчиками, как правило, не рассматриваются в пользу автоматических обменов.
Обмен с сайтом по формату CommerceML действительно является самым популярным. Однако справедливости ради надо сказать, что обмен по этому формату возможен не только с сайтом, разработанным на 1С-Битрикс, но и еще как минимум на пяти платформах, которые указаны на странице http://v8.1c.ru/edi/edi_app/130/ как совместимые.
Чаще всего заказчики выбирают и, я уверен, в дальнейшем будут выбирать уже готовые решения (полу)автоматической интеграции на базе CommerceML. И по сути, этот выбор будет происходить на этапе выбора платформы для создания сайта (CMS), имеющей синхронизацию с 1С.
Несмотря на обилие методов синхронизации между 1С и сайтом перечисленных в статье, на практике в 99% случаев встречается два основных способа обмена данными.
Первый — стандартный обмен из коробки CommerceML, поставляется со многими системами управления сайтами. Способ подходит для тех клиентов, чью бизнес-логику 1С и сайта можно вписать в этот формат. Он является наиболее идеальным вариантом, так как на текущий момент стандарт хорошо проработан и его внедрение не требует существенных затрат, а настройкой может заниматься не специалист.
Второй вариант — разработка своего формата обмена между 1С и интернет-проектом. Им может быть формат XML или CSV.
В зависимости от задачи применяются различные решения для оптимизации обмена:
Разработчикам следует помнить, что обмен лучше проводить по зашифрованному каналу, а также о том, что 1С-Битрикс постоянно дорабатывает процедуру выгрузок и необходимо следить за текущими обновлениями, так как то, что полгода назад можно было сделать лишь с помощью кастомизированной выгрузки, сегодня уже может быть доступно в стандартном решении.
Раньше обмен данных с 1С был для нас одной из самых сложных задач. Мы пробовали несколько вариантов:
И в результате, многим клиентам приходилось отказывать. Сейчас используем функционал 1С-Битрикс (по формату CommerceML).
Практически все задачи им покрываются. До недавних пор существенной проблемой было состыковать структуру базы 1С и web-сайта.
К счастью, разработчики 1С-Битрикс дорабатывают расширения для 1С, и теперь появилась возможность прямо в 1С настраивать выгружаемые разделы.
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.
Генеральный директор в Сибирикс
Хороший обзорчик, спасибо )
Вот от меня стандартные вопросы, которые сразу помогают понять, с чем мы имеем дело, прямо на1-м разговоре.
Чтобы понять, какой тип интеграции подходит именно вам, давайте уточним у вашего технического специалиста ряд вопросов: