Синхронизация 1С и 1С-Битрикс: почему всё не просто!

Часто при синхронизации интернет-магазина с базой товаров или клиентов, несмотря на «стандартность» задачи, могут возникнуть сложности, которые ведут не только к напряжению между заказчиком и исполнителем, но плюсом увеличивают бюджет проекта.
В этом посте попробуем систематизировать проблемы, с которыми сталкивается большинство компаний, делающих синхронизацию 1С с CMS или CRM.
До сих пор синхронизация 1С с сайтом на 1С-Битрикс и его CRM является непростой задачей даже при условии, что есть стандартные решения от разработчиков обеих систем. Многие заказчики ошибочно полагают, что раз в названиях этих платформ есть префикс «1С», то синхронизация должна пройти нажатием одной кнопки. Но это разные компании, которые работают независимо друг от друга. Поэтому имейте в виду, что другие CMS имеют равные условия при синхронизации с 1С.
Почему же синхронизация сайта с 1С может превратиться в серьезную проблему?
Для начала разберёмся, как работает интеграция. Для этого рассмотрим упрощенную схему: со стороны 1С формируются XML-файлы с номенклатурой (разделы, список товаров, их свойства, цены, остатки и статусы заказов) и отправляются по адресу сайта. При получении файла сайт автоматически начинает его обработку и импорт в свою базу данных.
За формирование файлов обмена на стороне 1С отвечает готовое решение, разработанное для подобных интеграций компанией 1С, или отдельное решение от 1С-Битрикс, которое устанавливается разработчиком 1С. Оба модуля имеют свои ограничения, которые осложняют выбор, и зачастую приходится дорабатывать любое выбранное решение в индивидуальном порядке.
А вот обработка файлов происходит на стороне сайта с помощью специализированного модуля, например, от 1С-Битрикс, если ваш сайт разработан на этой CMS.
Отсюда мы видим, что для настройки синхронизации нужны разработчики с обеих сторон – 1С и сайта, а также грамотная координация их работы.
Для настройки интеграции можно использовать как готовые решения, о которых мы говорили выше, так и разработать полностью индивидуальное. Со вторым вариантом обычно возникает меньше трудностей, так как он изначально пишется под конкретный проект, заранее учитывая все его нюансы. Но чаще (в 90% случаев) используется первый вариант. Поэтому мы решили поделить проблемы на 2 типа:
- Общие проблемы, которые могут быть характерны для всех решений
- Проблемы стандартных решений
Обозначим проблемы, которые свойственны при любом сценарии синхронизации:
- Взаимодействие 1С-программистов с платформой сайта. Какой бы опытный ни был разработчик 1С, он практически не сталкивается с разработкой сайтов и логикой их работы, а это процесс настройки интеграции.
- Нестандартные требования по обмену дополнительными параметрами. К примеру, требуется выгружать товары на сайт в виде торговых предложений, а в 1С они идут как обычные товары, что некорректно.
- Старые версии платформ. Обновление 1С и в меньшей степени 1С-Битрикс может вылиться в очень большую сумму, что повлечет за собой рост стоимости интеграции.
- Накопленные технический долг у обеих платформ. Проблема возникает, если заказчик часто выбирал доработки побыстрее и подешевле, не заботясь о будущем росте проекта.
- Отсутствие чёткого ТЗ на обмен между платформами. Очень часто уже в процессе работы заказчик вспоминает о дополнительных условиях для интеграции, которые были не учтены при первоначальной оценке работ, что, в свою очередь, влечет увеличение итоговой стоимости.
- Отсутствие жёстких правил и процессов ведения номенклатуры в 1С. В подавляющем большинстве структура номенклатуры имеет свою логику, удобную для конкретной сферы, поэтому в разных тематиках она может отличаться. Отсутствие стандартов увеличивает время погружения программиста в проект.
- Большой объём данных. Выгрузка файлов (даже в архиве), которые весят десятки мегабайт, может привести к их долгой обработке, а ежечасное обновление может повлечь зависание даже выделенного сервера.
Мы привели наиболее популярные общие проблемы. Каждая из них влечет за собой не только увеличение необходимых для интеграции ресурсов, но и усложняет оценку работ на старте.
Проблемы свойственные исключительно интеграциям с помощью стандартных решений от 1С и 1C-Битрикс:
- Решение от компании 1С. Для настройки синхронизации с любой CMS компания 1С включила в свой продукт стандартный модуль «Обмен данными», имеющий, однако, ряд ограничений. Модуль не предусматривает всех нюансов различных движков сайтов, с которыми может потребоваться синхронизация. К примеру, он не поддерживает выгрузку с учётом многоскладовости товаров. А вот для синхронизации с CRM стандартного решения от компании 1С вовсе нет.
- Решение от 1С-Битрикс. Разработчики Битрикс сделали пользователям своей CMS внутренней модуль для интеграции 1С, но с другими ограничениями. Основной недостаток в том, что при установке вы автоматически слетаете с обновления 1С, так как данный модуль имеет старую архитектуру и вносит изменения непосредственно в ядро. Если клиент просит не затрагивать ядро 1С, это уже индивидуальная доработка на базе решения от 1С. Компания 1С-Битрикс до сих пор не сделала данный модуль в виде расширения, что очень сильно осложняет работу.
- Решение для синхронизации CRM от Битрикс24. Данное решение сделано на современном уровне, но выдает очень много ошибок в ходе синхронизации сделок, заказов и лидов. Этому мы посвятим отдельный блок. Альтернатив нет. Либо писать свой модуль, либо постоянно корректировать существующий. Главное – не запутаться в том, что 1С-Битрикс создал модуль именно для 1С, а не для своей системы, чтобы решить проблемы.
В итоге, имеем 2 варианта стандартного решения. Одно решает задачи, но изменяет ядро, другое не решает задач, но сделано на более современном уровне. Чаще всего для требований компаний любое решение в чистом виде неприемлемо, и приходится дорабатывать стандартный модуль от 1С. Иногда всё усложняется логическими ошибками в коде, что тоже не привносит позитива. Стоит обратить внимание на возможные решения от партнёров 1С, которые могут нивелировать проблемы стандартных модулей.
После структурирования проблем можно сделать вывод: при использовании стандартных решений по обмену сложности неизбежны из-за ограничений самих решений.
Советуем детально проработать сценарий интеграции уже на начальном этапе. Это позволит вам выбрать решение, наиболее подходящее под ваш проект, а также произвести более актуальную оценку стоимости доработок и сохранить свои нервные клетки во время реализации
В следующих постах мы более подробно разберем возможности решений, коснёмся общих проблем и способов их избежать.