Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 21:37

О интернет магазинах, xml выгрузках и кусочной автоматизации интернет-бизнеса.

Автор sbelous, 01 апр 2012, 22:52

0 Пользователей и 1 гость просматривают эту тему.

sbelous

О интернет магазинах, xml выгрузках и кусочной автоматизации интернет-бизнеса.
[/u][/b]

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

     Итак, как это все начиналось) Периодически ко мне обращались клиенты с просьбами сделать обработку 1С для загрузки данных в 1С из xml-файла (или файла csv) с данными о заказах на сайте. Долго не думая я выполнял эту несложную работу. Аналогичные просьбы поступали насчет разработки обработки 1С для выгрузки остатков товаров с ценами из 1С в xml-файл (или csv). Программисты 1С подтвердят что такая обработка пишется на раз-два. И в результате вроде бы есть обмен с сайтом, и все прекрасно. Но, настал тот момент когда у меня случился совместный проект с веб-студией по разработке с нуля сайта с интернет магазином. И, на собственном опыте я увидел весь ужас положения. Такие методы обмена практически не упрощают работу, они подразумевают совершенно излишний ручной труд (запуск обработки в 1С, заливка результирующего файла в директорию на сайте, запуск загружающего скрипта на сайте). И, полагаю, все понимают что такой обмен неэффективен, выгружает-загружает совершенно недостаточное количество информации, и в общем и в целом является примитивным шлюзом между сайтом и 1С.
Давайте теперь рассмотрим все существующие методы синхронизации сайта и 1С.


1) Обмен посредством файлов (xml формата или csv).
Это может быть либо выгрузка товаров с остатками и ценами на сайт, либо загрузка заказов с сайта в 1С. Данный метод подразумевает запуск в 1С обработки которая формирует файл с данными и сохраняет его в указанном месте (либо наоборот разбирает файл и формирует необходимые документы в 1С). Данный метод можно частично автоматизировать например так - организовать запуск скрипта загрузчика на сайте по расписанию. Тогда файл данных будет «заливаться» на сайт полностью автоматически с определенной периодичностью. Можно подойти к автоматизации с другой стороны, например так — организовать запуск обработки 1С выгружающей данные в файл в автоматическом режиме, по расписанию, с заданной периодичностью, и «заливающей» файл в определенную директорию сайта. И наконец, можно совместить оба метода.
Недостатки метода:

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


2) Метод так называемого «прямого доступа» к базе MySQL сайта из 1С. Решений на основе данного метода много, и они отличаются методами доступа. Технические ньюансы в данном случае нам неинтересны и мы их опустим.
Данный метод имеет следующие недостатки:

а) Мало кто из хостеров откроет вам прямой доступ к базе MySQL из внешнего интернета. По соображениям безопасности, естественно. Если у вас не виртуальный хостинг, а выделенный сервер, то — пожалуйста. На ваш страх и риск. Но лично я бы не стал открывать внешний доступ.
б) Прямой доступ из 1С к базе MySQL нивелирует производительность сервера хостера, и сервера вашей компании, и приводит скорость обмена к общему знаменателю, а именно — к скорости самого медленного звена. Это может быть сервер вашей компании (если он итак загружен под завязку), либо, что чаще всего - скорость интернет соединения.


3) Технологическое промышленное решение от фирмы ЗАО «1C» и «1C-Битрикс». Данное решение стоит особняком и вообще вряд ли стоило бы рассматривать как метод обмена. Но есть одно «но» - данный метод основан на технологических возможностях платформы 1С 8.2. А именно, данная платформа имеет встроенную поддержку веб-сервисов, имеет встроенные полноценные механизмы запуска фоновых процессов реализующих регламентные задания. А именно это нам и нужно. Нам нужен четко работающий, поддерживаемый на уровне платформы (движка) механизм обеспечивающий соединение программы 1С с сайтом и двусторонний обмен информацией. Именно это и обеспечивает плаформа 1С 8.2 и система управления сайтами «1C:Битрикс». Резюмируя, скажу что стандартный обмен с сайтом на CMS Битрикс реализует ну почти все что нам требуется для отображения консолидированной информации в 1С.
Недостатки метода:

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


Общие системные недостатки всех упомянутых методов:

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

Резюмируя, опишу полноценный модуль синхронизации данных между 1С и сайтом:

1) Модуль должен быть лишен недостатков вышеописанных методов. А именно, предлагаю двухзвеньевую структуру: обработка 1С + скрипт загрузчик запускаемый из 1С с заданными параметрами. Хочу заметить что при обращении к скрипту загрузчику обработка 1С предварительно должна проходить авторизацию. При неудачной авторизации скрипт не обслуживает свои вызовы из обработки 1С. Иначе говоря наш модуль синхронизации работает следующим образом: Обработка 1С запускается по расписанию как регламентное задание и инициирует обмен с сайтом. Перед обменом обработка осуществляет запрос авторизации у скрипта. Если авторизация успешна, то скрипт-загрузчик разрешает (в пределах данной сессии конечно) обработке 1С посылать запросы на выборку, либо обновление данных. После завершения синхронизации обработка 1С выполняет «logout».
2) Модуль должен иметь возможность легкой адаптации к структуре таблиц базы основных интернет-магазинов. В данном случае это реализуется набором скриптов-загрузчиков адаптированных под основные существующие интернет-магазины.
3) Модуль должен уметь инициировать синхронизациях по событиям: а) Проведение документа в 1С изменяющего товарные остатки (расходная накладная, поступление товара) б) Обмен между перефирийными базами 1С.
4) Модуль должен работать по принципу «синхронизирую все изменения касающиеся товарных остатков и денежных потоков». То есть модуль должен предусматривать обмен между 1С и сайтом информацией о движении денежных средств. Информация о оплате клиентом товара электронными деньгами либо банковской картой должна загружаться в 1С и отображаться в виде приходных документов.
5) Модуль должен предусматривать (опционально) синхронизацию статуса заказа клиента на сайте со статусом заказа в 1С.

      Все не так сложно, вполне реализуемо. На настоящий момент я пришел именно к такому пониманию функций необходимых модулю синхронизации. И, именно таким образом спроектированный модуль синхронизации «1C<->сайт»  предлагаю своим клиентам.

      Почему же никому не требовался модуль с таким функционалом ранее? Почему основная масса владельцев интернет магазинов мучатся с xml и csv выгрузками-загрузками? Не знаю. Быть может свою роль сыграло то что веб-программисты плохо понимают что можно реализовать на языке 1С, а 1С программисты плохо представляют как устроен интернет-магазин. А может быть свою роль сыграло то что владельцы компаний выходящих на интернет-рынок плохо представляют себе online-бизнес и, в результате, запускают интернет проекты с неведомой эффективностью, недоступные ввиду непрозрачности для финансового анализа.

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

Оригинал статьи, а также другие статьи на сайте www.legion-service.org

sbelous


Теги:
Рейтинг@Mail.ru

Поиск