Скрипт загрузки в virtuemart из 1с. Полностью автоматический метод наполнения

Данная тема сегодня волнует многих, как разработчиков 1С, так и web студии, занимающиеся разработкой и внедрением интернет магазинов. И это не удивительно, электронная коммерция стремительно развивается и причины этому действительно есть, ведь:

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

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

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

Проанализировав существующие на рынке решения по интеграции 1С8 и интернет магазинов, я понял, что достойных решений немного, а те которые есть, стоят хороших денег. А значит есть поле для деятельности, тем более, что я имею опыт не только в разработке приложений на 1С, но и в установке, настройке и доработке интернет магазинов, построенных на движкахvirtuemart, oscommerce и некоторых других. Были разработки и по интеграции 1С, но, ни о какой универсальности речи просто не шло. Это были заточенные под конкретные магазины решения, которые реализовывались – быстро, но жестко.

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

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

Первым делом необходимо было выбрать движок для нового интернет магазина. С учетом того, что кроме, собственно, магазина на сайте планировалось вести блог, публиковать статьи, проводить опросы и в планах подключить фото-галерею выбор был сделан в пользу бесплатной CMS - joomla 1.5 и бесплатного компонента магазина для нее – virtuemart.

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

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

  1. Режим выгрузки данных из 1С в интернет магазин:

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

    К запросу устанавливается два типа переменных – обязательные и дополнительные. Это позволило получать дополнительные свойства товара, например производитель, вес и т.д.

    К каждой таблице базы данных сайта можно установить дополнительный отбор на запись. Например, записывать в таблицу категорий данные по товару, только если это группа, или записываем производителя, только если свойство «производитель» у товара заполнено.

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

    Автоматическое создание уменьшенных копий изображений. Это очень важно, т.к. на сайте, как правило, хранится два изображения, оригинал и его уменьшенная копия для предпросмотра.

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

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

    Режимвыгрузки данных – полная выгрузка, обновление данных, выгрузка только новых и удаление.

  1. Режим загрузки данных в 1С из интернет магазина:

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

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

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

Сервисные возможности:

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

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

    Настройки подключения к базе данных, ftp, параметры прокси сервера и т.д.

    Все настройки сохраняются автоматически при закрытии в XML и восстанавливаются при открытии, существует возможность выгрузить или загрузить настройки из внешнего файла XML.

Основные возможности описаны, теперь разберемся, как на практике выглядит процесс подготовки и запуски обмена.

Первым делом для удобства работы я внес некоторые незначительные изменения в структуру 1С:

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

    В документе «Реализация товаров и услуг» я добавил новый реквизит – отгружен. Он потребовался для корректности отражения статуса выполнения заказа на сайте, проведенная накладная списывает товар и меняет статус на «Готов к отправке», возведенный флажок - присваивает статус отгружен (не обязательно).

    Выполнил стандартную процедуру настройки конфигурации – заполнил необходимые учетные данные, данные о компании и т.д.

    Создал свойства товаров – производитель, размер, вес – то, что мне нужно было выгружать.

    В 1Св справочнике «Номенклатура» создал структуру каталога. В точности такая же, которая должна быть на сайте, создал товары.

Некоторые изменения я сделал и в движке сайта. Эти изменения необходимы были только для автоматической отправки покупателям писем при изменении заказов, а также для уведомления о поступлении товаров на склад. Для этого я написал отдельный компонент для joomla 1.5, который подключает методы магазина и выполняет отправку писем. Если отправка не нужна, то и изменений вносить нет необходимости.

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

После настройки всех связей 1С и базы данных сайта можно смело приступать к работе.

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

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

Описанный механизм успешно работает на сайтеsunduchok.in.ua .

Первая версия данной обработки уже выпущена!

Подробней о ее стоимости, условиях покупки, возможных скидках и правилах использования Вы можете прочитать здесь -

Выкладываю в свободное пользование компонент для Joomla 1.5 + Virtuemart 1.x синхронизацию с 1с по протоколу OS Commerce 2.0. Делаю это в виду того, что эта версия устарела и более не представляет коммерческого интереса (то есть денег на ней не заработать больше). Это последняя моя разработка, претерпевшая кучу изменений и дополнений с улучшениями. Что оно умеет:

  • Поддержка хостингов с ограничением выполнения скриптов по времени (директива progress)
  • Поддержка ZIP с 1с (можно отключить)
  • Автоматическое создание миниатюр
  • Поддержка Полного экспорта и экспорта Только изменений
  • Обмен данными о пользователе
  • Поддержка нескольких групп покупателей и цен
  • Минимум настроек, максимум качества
  • По сравнению с конкурентами - минимальная нагрузка на сервер + нереальное быстродействие
  • Автоматически сохраняет выгруженные заказы и меняет статусы
  • Поддерживает полный обмен информации о заказах (изменеия из 1с вносятся и на сайт)

В виду того что разработка прекращена, доработки скрипта не будет. (если только эксклюзивно и за деньги)

Замечания:

во время эксплуатации были замечены следующие проблемы:

  • Собственно ZIP. если его использовать, то выгрузка происходит на порядок быстрее. Но если административный скрипт распаковки использует ZIP-адаптер Joomla! то синхронизатор использует только возможности встроенной библиотеки php ZIP_archive. А не встречал ещё хостинга, который бы его не поддерживал, но ТЕОРЕТИЧЕСКИ использвание его может быть затруднено. Также очень не рекомендую использовать ZIP, если у вас много товаров с кучей картинок.Импорт не будет успешным, если выгрузится архив, больше отведённой памяти для распаковки, к примеру.
  • php Авторизация. Было раз на одном хостинге, php не поддерживало авторизацию. Если при тесте из 1с авторизация не удачна, хотя всё введено правильно, можно этот процесс убрать из файла стыковки.
  • Дла экспорта только изменений в 1с надо будет создать соответствующую таблицу (по умолчанию этого нет)
  • При отсутствии новых заказов для экспорта, скрипт выдаёт 1с команду success. По умолчанию этого в алгоритме синхронизации нет и 1с отлавливает ошибку синхронизации. Варианта выхода 2 - забить на это и знать что ошибка синхронизации заказов - это просто отсутствие новых или попросить штатного 1с-ера добавит в алгоритм обмена 1с добавить этот момент.
  • Ещё один момент - рекомендую почитать отличия полной синхронизации и только изменений, дабы не возникало непонимания и лишних вопросов.
  • Дополнительные поля из 1с вносятся в дополнительное поле в Virtuemart, Таблица "jos_vm_product", поле "aditional" в формате "название=значение" каждое с новой строки.

Если вы захотите отблагодарить меня, то можете сделать это на соответствующей странице на сайте (хотя за 2,5 года ещё никто копейки не прислал)...

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

По специфики своей работы, (а работаю я специалистом 1С по внедрению конфигураций 1С: Управление торговлей, 1С: Управление производственным предприятием 1.3, 1С: Управление небольшой фирмой, 1С: ERP Управление предприятием 2.0), и имея большой опыт внедрения конфигураций 1С на торговых и производственных предприятиях, хорошо знаю 1С: Предприятие со всеми его вытекающими.

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

Я провел аудит и посчитал какие затраты необходимы на открытие интернет-магазина на известной всем платформе
1С-Битрикс.

Почему именно 1С-Битрикс? Потому что это единственная система, где поддерживается интеграция сайта с 1С прямо «из коробки».
Честно говоря эта сумма очень удивляет. Рассмотрим стоимость интернет магазина по принципу:CMS + шаблон сайта + 1С: Управление торговлей 11.1 + интеграция 1С с CMS.
Наполнение сайта, хостинг, стилизация шаблона и т.д. оценивать не будем, т.к. это уже дополнительные работы и их вы можете сделать либо сами, либо нанять людей, либо не делать вообще на ваше усмотрение.

Считаем.

Затраты на 1С-Битрикс:

1) Первоначально потребуется купить редакцию 1С-Битрикс. Самый подходящий и экономичный вариант - 1С-Битрикс: Малый бизнес
В редакцию включен 31 модуль. Базовый интернет-магазин. Стоимость: 28 952 руб.
Описание:
«Откройте свой интернет-магазин с минимальными затратами. Разместите любое количество товаров в каталоге, управляйте скидками и доставкой. Интегрируйте магазин с «1С» и «Яндекс.Маркет».»

2)Хороший шаблон интернет магазина на Битрикс: от 9000 до 19900 руб. Пример: marketplace.1c-bitrix.ru/solutions/dw.electro

3) Основная поставка 1С: Управление торговлей 11.1 - 17400 руб + две клиентские лицензии 6300 х 2 = 12600 руб. Почему две? В основной поставке 1 лицензия + 2 дополнительно приобретаем. Получаем одна лицензия для менеджера, вторая для руководителя, ну и третья для склада или бухгалтерии на ваше усмотрение. Если что можно всегда докупить.

3) Честно говоря не знаком детально с 1С-Битрикс, но некоторые конторы (которые я отыскал на просторах интернета) предлагают помощь в настройке синхронизации 1С и 1С-Битрикс. Данная радость стоит от 36 000 руб. и включает в себя:

1. Аудит платформ 1С-Битрикс и 1С на предмет возможности типовой интеграции «из коробки». 4 500 руб.
2. Настройка интеграции с 1С с использованием типовых механизмов обмена со стороны 1с и сайта, настройка параметров импорта и экспорта номенклатуры. 7 500 руб.
3. Настройка интеграции с 1С со стороны сайта, настройка параметров импорта и экспорта заказов. Настройка интеграции на стороне 1С. 7 500 руб.
4. Настройка обмена данными в режиме реального времени. 4 500 руб.
5. Консультации специалиста 1С по техническим вопросам, касающимся настроек интеграции и публичной части каталога в процессе эксплуатации решения (после завершения работ по этапу(ам) оплаченной интеграции). Минимальный пакет - 3 часа. 4 500 руб

Забыл уточнить: мы рассматриваем только лицензионный софт. Других вариантов не предусмотрено и Вам не советую для исключения лишних проблем с законом об авторских правах.

Итого получилось: 114 852 руб.
Космические деньги! Причем это еще без контента сайт и без хостинга.

А теперь считаем альтернативу.
Как ни странно в качестве альтернативы я возьму всемирно известную CMS Joomla .
Для работы интернет-магазина на CMS Joomla используем бесплатный модуль интернет магазина "VirtueMart ".
В качестве характеристик интернет магазина мною была взята CMS Joomla 3.x + модуль VirtueMart 3 + модуль интеграции сайта на Joomla с 1С.

В качестве модуля интеграции Joomla с 1С, современный рынок ИТ-услуг предлагает множество вариантов. Большинство из них основаны на том, что в конфигурацию «1С: Управление торговлей 11.1» встраивается какой то дополнительный код, который в дальнейшем по словам разработчиков не затрагивает работы конфигурации в целом, и взамен вы получаете хороший обмен с сайтом.
Как специалист 1С могу Вам сказать, что при таком «встраивании» кода в конфигурацию, происходит так называемый процесс «снятия с поддержки», о котором так любят говорить все 1С-ники.
«Конфигурация снята с поддержки» - это значит что при очередном обновлении программы 1С Вы обязательно столкнетесь с проблемами, ошибками, и прочим гемором головы. Оно Вам надо?

Мне нет, и поэтому я возьму модуль попроще, который встраивается в корень сайта и работает по принципу стандартного скрипта: Модуль интеграции Joomla 3 и 1С
Стоимость данного модуля около 5 000 руб. Разработчик при покупке предлагает поддержку и обновление данного модуля.

Итак, считаем:

1) CMS Joomla 3.х для работы интернет-магазина - 0 руб, т.к. данная CMS доступна в свободном доступе и распространяется бесплатно.
2) модуль VirtueMart 3 для автоматизации электронной коммерции - 0 руб.
3) Шаблон интернет магазина для VirtueMart 3 - от 1900 руб. до 5000 руб.
4) Основная поставка 1С: Управление торговлей 11.1 - 17400 руб + две клиентские лицензии 6300 х 2 = 12600 руб.
5) Модуль интеграции Joomla 3 и 1С - 5 000 руб. Настройка по инструкции. Лишних затрат не предусмотрено

Итого получилось: 36 900 руб.
Экономия: 114 852 - 36 900 = 77 952 руб. Или дешевле в 3,5 раза!

При этом совместная работа интернет магазина на Joomla 3 c 1C: Управление торговлей 11.1 аналогична работе как в 1С-Битрикс:

При этом для CMS Joomla существует множество дополнительных модулей и плагинов (как платных, так и бесплатных) которые расширят функционал Вашего сайта до не скромных высот. При этом для CMS Joomla подходят также и бесплатные хостинги.
А в с 1С-Битрикс все намного затратнее.

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

Для консультации можете обратиться по почте buh81 собачка narod.ru. Мог ненароком пропустить важные детали. Описываю свой опыт. Разбирался на локальном компьютере - Windows XP и 1C 8.1.13. Поставил Denver (Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12). Затем Joomla 1.5. После чего установил VirtueMart 1.1.5. И джумлу, и магазин ставил с демоданными.

Скрипт интеграции 1с и virtueMart записывается в корневой каталог сайта. Например, такой путь C:\WebServers\home\joomla\www. Там же необходимо создать пустую папку TEMP.

НОВОЕ! Обработка теперь состоит из двух файлов exchange_4 и exchange_4kl. Их надо поместить в корневой каталог. В 1с, в форме обмена с WEB-сайтом надо указать имя exchange_4.php (было Еxchange_2L.php).

В конфигурации 1С Управление Торговлей 10.3 настраиваем - Меню -> Сервис -> Обмен данными с Web-сайтом -> Настроить обмен данными с Web-сайтом. В результате должна получиться следующая настройка. Первая закладка -

В поля Пользователь и Пароль вводим учетные данные администратора Joomla. То есть те, что набираем, когда заходим браузером в джумлу для администрирования.


вторая закладка настроек -



Выполняем обмен с интернет-магазином.(кнопка "Выполнить обмен" на верхней панели настроек.) Должны появиться соответствующие сообщения.


Для начала попробуйте выгрузить из 1с в VirtueMart небольшую группу товаров , чтобы в случае ошибки легко ручками исправить или удалить.

Особенности скрипта интегации 1с и virtueMart-а.

Соответствие позиций в базе 1с и в магазине VirtueMart осуществляется по артикулу . Он должен быть уникальным для выгружаемых позиций.

Картинки обзываются тоже по артикулу, и возникает ошибка при истользовании в артикуле русских букв. Используйте в артикуле цифры и английские буквы.

Характеристики номенклатуры не поддерживаются. Для успешной выгрузки товаров из 1с, у них должен быть отключен учет по характеристикам.

Цены в 1с должны быть в рублях.

В интернет магазине VirtueMart цена для загружаемых позиций должна иметь флаг - Цена по умолчанию(Default). Иначе товар будет виден через административную панель, но не будет появляться в витрине для покупателей.

НОВОЕ! Успешное выполнение всех вышеперечисленных действий теперь приведет к тому, что интеграция 1c и VirtueMart будет работать в демо режиме . Ограничение демо только в том, что цены товаров загружаются умышленно НЕВЕРНО. Будьте внимательны!

Чтобы снять это ограничение необходимо проделать следующее.(см. FAQ)

О защите от копирования этого скрипта интергации 1с и VirtueMart-а.

Обработка состоит из двух файлов, exchange_4.php полностью открыт и доступен для изменений, а еxchange_4kl.php несложно зашифрован и привязан к имени вашего сайта.

Скачать .(~ 0.03 Мб.)

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

Возможности интеграции:

1. Выгрузка на сайт разделов и подразделов номенклатуры

2. Выгрузка на сайт номенклатуры, наименования, краткого описания, полного описания

3. Выгрузка на сайт производителя номенклатуры

4. Выгрузка на сайт типов номенклатуры (Свойства)

5. Выгрузка на сайт габаритов, размера, веса, длинны, ширины номенклатуры

6. Выгрузка на сайт трех типов цен

7. Выгрузка на сайт валюты цены

8. Выгрузка на сайт спецпредложения номенклатуры

9. Выгрузка на сайт только измененных позиций с момента последней выгрузки

10. Выгрузка на сайт сопутствующих товаров

11. Выгрузка на сайт дополнительных категорий товара

12. Выгрузка на сайт количества товара на складе или выбранных складах

13. Выгрузка на сайт изображений к товару из 1С

14. Выгрузка на сайт характеристик номенклатуры их цены и остатков

15. Обновление номенклатуры на сайте, без повторной выгрузки

16. Обновление групп номенклатуры на сайте, без повторной выгрузки

19. Создание отбора при выгрузке на сайт

20. Автономная работа по заданному интервалу времени

21. Индикация в 1С процесса выгрузки, контроль ошибок

22. Автоматическое создания ресайза изображения номенклатуры

23. Автоматическое или ручное управление модулем

24. Возможность скрыть пустые группы на сайте

Что входит в стоимость:

1. Модуль интеграции.

2. доступ к онлайн инструкции.

3. Пол года технического обслуживания.

4. Пол года бесплатных обновлений.