Bt-teh.ru

БТ Тех
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Drupal 1С, МойСклад, Класс 365

Drupal + 1С, МойСклад, Класс 365

Оказываем услуги внедрения обмена интернет-магазинов на Drupal Commerce и Ubercart с 1С:Предприятие, МойСклад и Класс365.

Видео нашего доклада про внедрения обменов интернет-магазинов на Drupal на конференции DrupalCamp Siberia 2015:

  • Обмен через встроенный в 1С механизм обмена с сайтами по протоколу CommerceML, не требуется доработки 1С, успешно работает с платформой 1С 8.2+ и конфигурациями УТ 10 и 11+, УНФ, КА.
  • Загрузка номенклатуры, картинок, групп, цен и свойств товаров, максимально гибкая настройка через Drupal Feeds, быстрая работа за счет хеширования полей и обновления на сайте только изменившихся объектов.
  • Выгрузка заказов, информации о доставке, максимально гибкая настройка через Drupal Tokens.
  • Автоматическое создание новых словарей таксономии, полей товаров по свойствам и справочникам из 1С;
  • Возможность настройки обновления статусов заказов на сайте при выгрузке заказа в 1С, поступлении оплаты и отгрузке в 1С.
  • Поддержка ZIP-сжатия и передачи файлов по частям для больших выгрузок, успешная работа с архивами 1Гб+.
  • Поддержка прогрессивного импорта для обхода таймаутов хостинга, успешный импорт 20+ тыс. товаров;
  • Автоматическое создание полей и словарей таксономии для свойств товаров и справочников в 1С.
  • Снятие товаров с публикации на сайте при их отсутствии в полной выгрузке.
  • Возможность настройки нескольких обменов с 1С для импорта нескольких типов нтоваров с разными полями.

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

В 1С настроить и выполнить полную выгрузку товаров в каталог на диске можно тут:

  • В 1C:Предприятие, Управление торговлей 11 в разделе «Администрирование», подразделе «Синхронизация данных» необходимо включить «Обмен данными с сайтами», далее нажать на «Узлы обмена с сайтами».
  • В 1C:Предприятие, Управление торговлей 10 в меню «Сервис» выбрать «Обмен данными с WEB-сайтом» и далее «Настроить обмен данными с WEB-сайтом».
  • В 1C:Предприятие, Управление небольшой фирмой 1.4 в разделе «Администрирование», подразделе «Настройки» необходимо включить «Обмен с сайтами», далее слева появится ссылка «Обмены с сайтами».

В результате выгрузки вы должны получить два файла (import.xml и offers.xml) и, возможно, каталог с картинками и прикрепленными файлами. Заархивируйте все эти файлы и пришлите нам вместе с тех. заданием на разработку и внедрение интернет-магазина на Drupal с полным обменом с 1С.

В нестандартных ситуациях мы делаем интеграцию Drupal и 1С: Предприятие по технологии веб-сервисов SOAP. См. также импорт данных.

REST интерфейс

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

REST интерфейс позволяет читать данные 1С:Предприятия, изменять их, создавать новые объекты данных и удалять существующие.

  • Интеграция прикладного решения с интернет-сайтами и интернет-магазинами;
  • Реализация сторонними средствами дополнительной функциональности прикладного решения без изменения его конфигурации;
  • Загрузка данных в прикладное решение и выгрузка данных из него;
  • Интеграция прикладного решения с корпоративными системами, возможно даже без дополнительного программирования.
  • Получение списка документов, справочников, записей регистра сведений и т.п., возможно с фильтром;
  • Получение данных элемента справочника, документа (по ссылке), данных записи независимого регистра сведений (по ключу), данных набора записей подчинённого регистра (по регистратору);
  • Редактирование данных одного элемента справочника, документа и другого ссылочного объекта;
  • Создание нового элемента справочника, документа, набора записей;
  • Проведение одного документа, старт бизнес-процесса.

В качестве протокола доступа платформа использует протокол OData версии 3.0. Это открытый веб-протокол для запроса и обновления данных. Он позволяет оперировать данными, используя в качестве запросов HTTP-команды. Получать ответы можно в формате Atom/XML или JSON.

В платформе реализована только серверная часть REST сервисов. То есть прикладное решение может автоматически поставлять свою функциональность через REST сервисы. Для взаимодействия со сторонними REST сервисами из «1С:Предприятия 8» (для организации клиентской части) можно использовать имеющиеся в платформе средства работы с HTTP.

REST интерфейс

  • Мобильные: iOS, Windows Phone, Android;
  • Серверные/настольные: .NET, Java, PHP, Objective-C, Ruby, JavaScript;
  • Поддержка в системах управления содержимым (CMS): Drupal, Joomla.
  • В конфигураторе REST интерфейс публикуется на веб-сервере;
  • После этого объекты прикладного решения становятся доступны через этот интерфейс;
  • Способы аутентификации OData клиентов полностью совпадают со способами, используемыми для веб-сервисов;
  • OData клиенты могут запросить через HTTP документ метаданных, описывающий доступные объекты прикладного решения;
  • OData клиенты выполняют операции создания, чтения, модификации и удаления данных прикладного решения.
Читать еще:  Схема регулировки оборотов вентилятора для компьютера

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

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

В случае ошибочной ситуации «1С:Предприятие 8» возвращает ответ с HTTP-статусом 4XX или 5XX. Статус 4XX говорит о неверных действиях клиента, статус 5XX — об ошибке на сервере. В случае статуса 4XX «1С:Предприятие 8» пытается помочь клиенту понять причину ошибки и может передать дополнительный внутренний код ошибки и информационное сообщение.

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

При получении списков данных можно использовать стандартные условия фильтрации ODATA запросов. Например, получить товары, у которых цена меньше или равна 3,5 или больше 200:

Интеграция 1С с Ubercart 3 + Drupal 7 — не обновляются цены

Возникла у меня на днях ситуация, клиенту срочно на скорую руку организовать интеграцию с 1С Розница (не помню уж какая версия) с интернет магазином на Drupal 7 + Ubercart 3.
Начал делать все по науке.

На изображениях порядок настроек 1С:

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

Далее переходим в каталог куда делалась выгрузка. Там видим файлы offers.xml, import.xml и каталог import_files, где хранятся картинки товаров интернет магазина.
По FTP все это добро выгружаем в заранее настроенную для импорта папку с системе Drupal. У меня это /sites/default/files/1c/webdata/ у Вас она может отличаться в зависимости от модуля importer.
В настройках обновления товаров ставим галочки на нужных позициях.

При первом запуске импорта товаров из файла XML вкладка OFFERS FORMAT CML остается неактивной так как товаров еще в системе нет. По этому поводу переживать не стоит, после первого импорта у нас открывается дополнительное меню где мы можем выбрать обновление цен атрибутов товаров и акций.
Далее заходим во вкладку IMPORTER SETTINGS, все настройки остаются по умолчанию, кроме графы PRICES -> RETAIL PRICE. Там в строчку нужно ввести ТИП ЦЕНЫ из файла offers.xml, согласно которому у нас будут обновляться цены на сайте. Открываем файл OFFERS.XML, находим:
КоммерческаяИнформация -> ПакетПредложений -> ТипыЦен -> ТипЦены -> Ид
ИД должен быть такого формата: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Вот этот циферно — буквенно — символьный ИД вводим и сохраняем в поле RETAIL PRICE
Далее возвращаемся во вкладку ПАРТИЯ (BATCH) отмечаем нужные позиции в разделе OFFERS FORMAT CML и нажимаем ОТПРАВИТЬ.

Проблема с форматом выгрузки из 1С ( )

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

Пришлось немного модифицировать под свои нужды (да простит меня разработчик mirocow)
В каталоге модуля открыл файл cml_offers.module в текстовом редакторе и дописал скрипт, который производит поиск по файлу вышеуказанную комбинацию и удаляет ее, потом срабатывает скрипт по чтению и обновлению цен на сайте.

До очистки скриптом ненужных данных:

После очистки:

А вот и листинг моего шаманства:

Это все вставляется после скобки php (<?php) до начала текста модуля.

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

Синхронизация Drupal с 1С

Предисловие
Здравствуйте. Я решил затронуть давно избитую но не добитую тему синхронизации 1С и Друпала. Я во многих форумах читал насчет реализаций, на сайте drupal.ru помню даже тема была, с докладом о данной синхронизации. Но честно сказать везде рассказывали о том, что им удалось реализовать, но подробности никто не рассказывал. Потом я нашел еще несколько тем где была описана реализации, но если честно метод меня огорчил, реализация была выполнена на уровне БД. Данный метод меня не обрадовал, т.к. требовалась тонкая настройка самой программы 1С, а в моем случае нужно было написать синхронизацию, которую можно было настроить с помощью бесплатного модуля 1С: Предприятие 8.х — синхронизация с веб сайтом, который был разработан для CMS 1C Bitrix.

Читать еще:  Moon reader синхронизация с google drive

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

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

Комментарии

Спасибо за статью.

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

Не за что. Пишу для себя, как заметки=) Скоро будет продолжение, и после того как допишу модуль — подведу итоги.

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

Спасибо
Для загрузки файлов лучше использовать нативные друпалинные функции вместо file_put_contents, которую предлагаете вы
«
Для обработки(парсинга) больших XML файлов я испробовал много вариантом, но остановился на Simple XML. »

Разве Simple XML подходит для парсинга больших файлов? Насколько я понимаю, он грузит в память весь файл.

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

Да. SimpleXML загружает весь файл. Т.к. у меня нет опыта работы с XML файлами, и в моем случае файлы не превышают 10-12М, с php_memory_limit 96M все работает идеально. И к тому же у меня поджимают сроки до сдачи проекта, времени не было более подробно вникнуть в парсинг. Думаю в дальнейшем я напишу построчный парсер и применю его к данному модулю. Если у вас есть варианты, буду благодарен, рассмотреть их.

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

Спасибо!
При прочтении указанной статьи на 1с (v8.1c.ru/edi/edi_stnd/131/) возник вопрос: а как сайт «авторизует» 1ску? Выходит, дал запрос на checkauth, получил куку, дальше все запросы выполняешь с этой кукой и получить инфу по заказам и загрузить каталог может любой. Или я туплю малость?
Сам делал синхронизацию через FTP (за основу был взят importer от mirrocow). Так же, пожалуй, проще (и правильнее?) использовать Drupal Queue, чем выполнять задачи по hook_menu-механизм для разбиения на минизадачи и последующего выполнения уже реализован.

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

1с-ный марафон объявляю открытым!
К концу недели думаю всё ж засветить свой вариант

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

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

А куку 1С отправляет с каждым запросом, можно ставить проверку значения куки.

Будем ждать. Может если все склеить получится что нибудь универсальное

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

Вы бы открыли в 1С код выгрузки от Битрикса, для начала, а потом уже про костыли 🙂

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

а можно скриншот как выглядит это в итоге в Drupal?

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

Советую использовать для работы с большими файлами http://www.php.net/manual/en/splfileobject.fgets.php[/quote]
Спасибо. Буду иметь ввиду при написании парсера.

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

Наверное «красившее» было бы сделать его плагином к Feeds.
Тоже руки чешуться.. но пока таких задач не поступало-)

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

Интеграция с 1С не стоит выеденного яйца.

1) Составляется запрос в 1С;
2) Запрос.Выполнить().Выгрузить() => имеем таблицу значений;
3) Таблица пишется в DBF;
4) DBF загружается php-скриптом в Друпал.
5) Ставим все дела на крон. Профит!

Читать еще:  Синхронизация яндекс диска для чего она нужна

Этот же вариант можно реализовать на стороне php через COM-соединение. Что тут сложного?

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

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

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

PS: не кажется ли вам, что было логичнее оформить код не как модуль, а как отдельный скрипт, например, drupal_1c.php? В коде определить основные функции, чтобы потом каждый смог просто подкорректировать логику загрузки и выгрузки под свои нужды?

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  1. у меня нет доступа к 1С(настраивает систему админ клиента)
  2. Даже если бы был доступ-у меня нет времени изучать его
  3. Нужен простой и быстрый способ
  4. Модуль для работы обычных инет магазинов, для проектов тех масштаба, которые вы описываете я пишу отдельный код, и при таких масштабах работаем совместно с хорошими программистами 1С.
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

у меня сложилась такая ситуация,
при синхронизации каталога (catalog.xml) и предложений товаров (offers.xml) в базах 1с и drupal
для товара выгружался на сайт список (специальная, диллерская. ) возможных цен (в файле offers.xml), это было хорошо.

как только я в режиме обмена данными 1с к выгрузке товаров добавил обмен заявками
(в 1с надо создавать соглашение с клиентом и там четко указывается одна цена..),
1с стала выгружать мне только одну цену на каждый товар..

стало интересно, нормально ли ето и как с этим бороться, а может надо что-то еще понастраивать..я про 1с

у вас на сайте каждому товару предлагается одна цена или со стороны 1с приходит много предложений?

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

проверено на больших файлах, и никаких сторонних скриптов

Интеграция с 1С не стоит выеденного яйца.

1) Составляется запрос в 1С;
2) Запрос.Выполнить().Выгрузить() => имеем таблицу значений;
3) Таблица пишется в DBF;
4) DBF загружается php-скриптом в Друпал.
5) Ставим все дела на крон
. Профит!

Ваша (любая) CMS

1С-Ваша CMS (UNIMODULE v3.0)

Интеграция любой СMS (Drupal, Bitrix, WordPress и других) с 1С

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

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

Наши сотрудники гарантируют полноценную синхронизацию 1C с любой CMS Интернет-маркета, гибкость дальнейших настроек с учётом индивидуальных предпочтений заказчика. Мы интегрируем 1C в Интернет-магазины, построенные на таких движках, как OpenCart, WebAsyst, Joomla, PrestaShop и многие другие. Существует даже интеграция с Yandex Market, которая позволит владельцу собственного виртуального маркета отслеживать абсолютно все изменения цен на предлагаемые им товары, корректировать их по расписанию, учитывая закупочные цены и прибыль. Кроме того, интеграция позволяет оперативно добавлять новые товары на страницы «Яндекс.Маркет», что повышает количество возможных покупателей и посещаемость вашего магазина в целом.

1C для CMS на сегодняшний день является лучшим модульным решением для автоматизации и повышения эффективности ведения торгового бизнеса в Сети. Модуль позволяет обмениваться данными в двух направлениях – как выгружать товары и каталоги из 1C в Интернет-магазин нажатием одной-двух кнопок, так и загружать их оттуда для дальнейших корректировок. Модуль удобен тем, что в отличие от панелей управления всех CMS, загрузка новых товаров происходит в течение 3-4 секунд – вам нужно лишь изменить текст в некоторых полях, после чего нажать на соответствующую кнопку.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector