Системный интегратор Легион-Сервис
Легион-Сервис - Ваш системный интегратор!
Наш девиз - репутация важнее денег!
Разработка в 1С. Системное администирование. Создание сайтов. Новости Легион-Сервис Контактная информация Легион-Сервис Вакансии Легион-Сервис Архив файлов. Полезные обработки для 1С. Классификаторы. Драйверы Статьи, полезная информация о 1С

Автоматизация бухгалтерского и управленческого учета на ПП 1С

Автоматизация бухгалтерского и управленческого учета. Разработка оригинальных конфигурациий на заказ под платформы 1С 7.7, 8.0, 8.1, 8.2.

ИТ-аутсорсинг. Системное администрирование

Системное администрирование, поддержка пользователей (help desk), абонентское обслуживание компьютеров.

Создание веб-сайтов

Разработка веб-сайтов, SEO-аудит, SEO-оптимизация. Интеграция сайта (интернет-магазина) с 1С.



Нравится

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

29.03.2012

Рубрики: Программирование 1С, Веб программирование

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

Давайте рассмотрим все существующие методы синхронизации сайта и 1С.

1) Обмен посредством файлов (xml или csv). Это может быть либо выгрузка товаров с остатками и ценами на сайт, либо загрузка заказов с сайта в 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С. Нет автоматического обмена по расписанию. Впрочем, данный недостаток легко устраняется вмешательством программиста, так как соответствующие возможности у платформы есть.
б) Недостаток не метода, а собственно рассматриваемого решения. CMS Битрикс — платная. И, к слову сказать, достаточно сложная и громоздкая система требующая серьезных вычислительных ресурсов.

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

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

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

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

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

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


База знаний.
FAQ по 1С

Версии новых релизов 1С

Рейтинг@Mail.ru