Пишите и звоните нам
с 8-00 до 20-00 каждый
день без выходных.
Руководитель ответит вам лично.

Методика интеграции «1С» и интернет-магазина

Важные моменты, типичные ошибки и нестандартные решения

Интернет-магазины – сайты, на которых розничные покупатели могут самостоятельно выбрать, заказать и оплатить товары, – сейчас распространены повсеместно. Использование интернет-магазина ставит задачу его интеграции в общую информационную систему организации, в частности – настройки обмена данными с основной учетной системой, которая часто базируется на системе «1С: Предприятие 8» (далее – «база 1С»). Разумеется, ничего сложного в такой интеграции нет. Однако есть множество деталей, которые нужно учитывать уже на этапе подготовки связки «База 1С – Интернет-магазин». Игнорирование этих деталей может привести к ряду проблем, решить которые после запуска совместной работы будет сложно, а иногда – и невозможно. В этой статье мы хотим поделиться своим опытом настройки взаимодействия программ «1С» и интернет-магазина, рассказать, как это правильно сделать и не допустить типичных ошибок.

Концепция совместной работы и обмена данными

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

Работа сайта онлайн

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

Преимущества такого подхода:

Недостатки:

Когда мы рекомендуем рассмотреть такой вариант взаимодействия?

Работа сайта офлайн

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

Преимущества классического подхода:

У этого подхода есть и существенные недостатки, о которых, к сожалению, нечасто говорят.

Классический вариант (офлайн) с высокой вероятностью подойдет, если:

Стандартные механизмы обмена с интернет-магазином офлайн в программах «1С: Предприятие 8»

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

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

Интеграция с 1С со стороны интернет-магазина

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

Гибридные варианты

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

Типичные проблемы интернет-магазина

Верификация вводимых пользователем данных

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

Идентификация повторных пользователей

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

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

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

Общая проверка вводимых данных

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

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

Второй вывод: по возможности, вводимые данные следует проверять на корректность и форматировать сразу при вводе, не позволяя вводить заведомый мусор. Например, для номеров телефонов целесообразно делать ввод по стандартной маске «страна с плюсом-код в скобках-номер с разделением разрядов», а адреса вводить по классификатору.

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

Хранение и редактирование ключевых данных

Часто бывает, что работа по администрированию ключевых данных разделена между базой 1С и интерфейсом администрирования (админкой) интернет-магазина. Что-то вводится в базу 1С и выгружается, что-то меняется напрямую в админке. Например, карточки товара с общей информацией создаются в базе 1С и выгружаются, а подробное описание к ним в HTML и картинки вводятся напрямую в админку интернет-магазина.

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

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

Хранение изображений и других двоичных данных

Хранение гигабайтов двоичных данных в базе 1С может быть неудобным. Кроме того, их передача на сайт из-за большого объема может быть очень медленной.

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

Хранение информации в HTML

Традиционным является решение, когда информация в HTML (например, подробное описание товара) хранится «как есть». При необходимости дублировать часть описания для другого товара информация, включая разметку, полностью копируется и редактируется вручную.

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

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

Заключение

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

Если у вас есть любые вопросы, связанные с интеграцией вашей системы «1С» и интернет-магазина, обращайтесь к нам. Мы будем рады вам помочь!

Андрей Леонидович Романченко, руководитель команды Wintersoft.

Выражаю благодарность Марии за помощь в подготовке данной статьи.