Простая интеграция сайта и 1С. Wordpress 1c
WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange
In Russian
Предоставляет обмен данными между плагином для электронной коммерции WooCommerce и приложением для бизнеса «1C:Предприятие 8. Управление торговлей» (и совместимыми).
Для достижения корректной работы плагина могут потребоваться базовые навыки администрирования веб-серверов (просмотр логов, изменение настроек php и веб-серверов и др.) А настройка плагина осуществляется добавлением констант в wp-config.php (посмотреть доступные можно командой: grep -r "define('WC1C_") и функций фильтров и действий в functions.php в папке активной темы (посмотреть доступные можно командой: grep -r "do_action\|apply_filters").
Особенности:
- Выгрузка товаров: группы (категории), свойства и значения, список товаров и вариантов, изображения, свойства, реквизиты, цены, остатки товаров.
- Обмен заказами: двусторонний обмен информацией о заказах на сайте и в приложении.
- Полная и частичная синхронизация.
- Экономичное использование оперативной памяти сервера.
- Поддержка передачи данных в сжатом виде.
- Транзакционность и строгая проверка на ошибки: данные обновляются в БД только в случае успешного обмена.
Пожалуйста, перед использованием плагина прочитайте следующее:
Поддержать разработку и автора можно взносом через банковскую карту или Яндекс.Деньги.
In English
Provides data exchange between eCommerce plugin WooCommerce and business application «1C:Enterprise 8. Trade Management».
Возможности:
- Product exchange: group (categories), attributes and values, product list and product variations, images, properties, requisites, prices, remains for products.
- Order exchange: two way exchange of order information between website and application.
- Partial and full syncronization.
- Effective usage of RAM on server.
- Support for compressed data exchange.
- Transactions and strict error checking: DB updates on successfull data exchange only.
Please, read the following before using this plugin:
Лицензия
«WooCommerce and 1C:Enterprise Data Exchange» is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 2 of the License, orany later version.
«WooCommerce and 1C:Enterprise Data Exchange» is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with «WooCommerce and 1C:Enterprise Data Exchange». If not, see http://www.gnu.org/licenses/gpl-3.0.html.
- Список выгруженных из 1С в WooCommerce товаров с колонкой идентификатора позиции номенклатуры в 1С.
- Карточка тов
ru.wordpress.org
WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange
In Russian
Предоставляет обмен данными между плагином для электронной коммерции WooCommerce и приложением для бизнеса “1C:Предприятие 8. Управление торговлей” (и совместимыми).
Для достижения корректной работы плагина могут потребоваться базовые навыки администрирования веб-серверов (просмотр логов, изменение настроек php и веб-серверов и др.) А настройка плагина осуществляется добавлением констант в wp-config.php (посмотреть доступные можно командой: grep -r "define('WC1C_") и функций фильтров и действий в functions.php в папке активной темы (посмотреть доступные можно командой: grep -r "do_action\|apply_filters").
Особенности:
- Выгрузка товаров: группы (категории), свойства и значения, список товаров и вариантов, изображения, свойства, реквизиты, цены, остатки товаров.
- Обмен заказами: двусторонний обмен информацией о заказах на сайте и в приложении.
- Полная и частичная синхронизация.
- Экономичное использование оперативной памяти сервера.
- Поддержка передачи данных в сжатом виде.
- Транзакционность и строгая проверка на ошибки: данные обновляются в БД только в случае успешного обмена.
Пожалуйста, перед использованием плагина прочитайте следующее:
Поддержать разработку и автора можно взносом через банковскую карту или Яндекс.Деньги.
In English
Provides data exchange between eCommerce plugin WooCommerce and business application “1C:Enterprise 8. Trade Management”.
Features:
- Product exchange: group (categories), attributes and values, product list and product variations, images, properties, requisites, prices, remains for products.
- Order exchange: two way exchange of order information between website and application.
- Partial and full syncronization.
- Effective usage of RAM on server.
- Support for compressed data exchange.
- Transactions and strict error checking: DB updates on successfull data exchange only.
Please, read the following before using this plugin:
License
“WooCommerce and 1C:Enterprise Data Exchange” is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 2 of the License, orany later version.
“WooCommerce and 1C:Enterprise Data Exchange” is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with “WooCommerce and 1C:Enterprise Data Exchange”. If not, see http://www.gnu.org/licenses/gpl-3.0.html.
- Список выгруженных из 1С в WooCommerce товаров с колонкой идентификатора позиции номенклатуры в 1С.
- Карточка товара WooCommerce с выгруженными из 1С наименованием, описанием для сайта, присоединенными изображениями, артикулом и ценой.
wordpress.org
WooCommerce and 1C:Enterprise | Opttour
Разбираем на элементы плагин WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange. Плагин дает функционал обмена данными между сайтом и программой 1С: Предприятие. Некоторые моменты синхронизации сайта с 1С описаны в статье Интеграция Woocommerce с 1С. В данной статье будем изучать механизмы работы плагина и его компонентов (что делает каждый из файлов плагина).
Принцип работы плагина
Недавно обнаружил в самом плагине в файле readme.txt довольно подробное описание работы плагина. Вот этот текст (не полный):
Предоставляет обмен данными между плагином для электронной коммерции WooCommerce и приложением для бизнеса «1C:Предприятие 8. Управление торговлей» (и совместимыми).
Для достижения корректной работы плагина могут потребоваться базовые навыки администрирования веб-серверов (просмотр логов, изменение настроек php и веб-серверов и др.) А настройка плагина осуществляется добавлением констант в `wp-config.php` (посмотреть доступные можно командой: `grep -r «define(‘WC1C_»`) и функций [фильтров и действий](https://codex.wordpress.org/Plugin_API) в `functions.php` в папке активной темы (посмотреть доступные можно командой: `grep -r «do_action\|apply_filters»`).
Особенности:
- Обмен заказами: двусторонний обмен информацией о заказах на сайте и в приложении.
- Полная и частичная синхронизация.
- Экономичное использование оперативной памяти сервера.
- Поддержка передачи данных в сжатом виде.
- Транзакционность и строгая проверка на ошибки: данные обновляются в БД только в случае успешного обмена.
Установка
Необходимо учесть, что для обмена большими объемами данных может понадобиться произвести дополнительную настройку веб-сервера. На недорогих shared-хостингах часто такой возможности нет, а настроены они под крайне консервативный режим работы. Поэтому рекомендуется использовать VPS/VDS-хостинги.
Главное требование для работы плагина с большими выгрузками, отсекающее возможность использования большой части shared-хостингов, – это возможность неограниченного времени исполнения PHP-скриптов, т.к. для первой полной выгрузки может понадобиться больше времени, чем разрешено на сервере.
Настройка
Вначале вам необходимо установить и активировать плагин WooCommerce, т.к. этот плагин зависит от него. Для этого зайдите в панель управления WordPress, выберите «Плагины» → «Добавить новый». В поисковом поле введите название плагина (или часть) и кликните «Искать плагины». Установите найденный плагин, кликнув «Установить сейчас».
В 1С в качестве адреса в настройках обмена с сайтом необходимо один из адресов вида:
* http://example.com/?wc1c=exchange* или http://example.com/wc1c/exchange/, если на сайте включены постоянные ссылки («Настройки» → «Постоянные ссылки»)
В качестве имени пользователя и пароля в 1С следует указать действующие на сайте имя и пароль активного пользователя с ролью «Shop Manager» или Администратор.
Весь процесс настройки 1С:Предприятия для обмена данными с сайтом хорошо описан в инструкции к одному из коммерческих движков интернет-магазина: http://www.cs-cart.ru/docs/4.1.x/rus_build_pack/1c/instruction/index.html#id3, которой можно следовать до раздела «Настройки в интернет-магазине».Данная информация приведена ниже.
Технические рекомендации
Рекомендуется изменить тип хранилища всех таблиц базы данных сайта на InnoDB. Это добавит транзакционность в процесс обмена данными: изменения в базе данных сайта будут применяться только в случае успешного завершения процесса обмена.
Выполнение PHP на сервере необходимо настроить так, чтобы не было лимитов на время исполнения скриптов плагина. В случае использования связки Apache + mod_php (рекомендуется как наиболее простая связка) при дефолтных настройках лимита не будет. В случае использования FastCGI и/или nginx может потребоваться дополнительная их настройка для снятия лимитов на время исполнения (например, изменение FcgidConnectTimeout для mod_fcgid; request_terminate_timeout, fastcgi_read_timeout для nginx).
1С закачивает на сервер выгрузку с помощью POST-запроса. Возможно, понадобится увеличить лимит объема данных, отправляемых по POST. В php.ini за это отвечает значение post_max_size. В случае использования FastCGI и/или nginx может понадобится увеличить этот лимит также в их настройках (например, FcgidMaxRequestLen для mod_fcgid; client_max_body_size, send_timeout для nginx).
Если PHP выполняется в режиме FastCGI, а 1С при проверке соединения с сервером просит проверить имя пользователя и пароль, хотя они указаны верно, то необходимо в файл .htaccess после строки `RewriteEngine On` вставить строку `RewriteRule . — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]`, а также попробовать оба варианта адреса обмена (полный и короткий). Необходимо учесть, что изменения в .htaccess перезатираются при сохранении настроек постоянных ссылок и некоторых плагинов из админки WordPress.
FAQ
Как удалить с сайта все данные, созданные в процессе обмена?
Если вы используете [WP-CLI](http://wp-cli.org/), то можно из директории плагина выполнить команду `wp eval-file ./clean.php`. Также можно, будучи авторизованным в WordPress, перейти по адресу http://example.com/?wc1c=clean или http://example.com/wc1c/clean (где exchange.com – домен сайта) и нажать на появившуюся кнопку.
Как вручную воспроизвести импорт товаров?
После обмена с 1С плагин сохраняет полученные файлы импорта (до следующего обмена) в директории `wp-content/uploads/woocommerce-1c/catalog` в файлах вида `import.xml` (информация о группах, свойствах и товарах) и `offers.xml` (информация о ценах и вариантах предложений). Для отладки в процессе интеграции плагина полезно иметь возможность вручную повторить импорт из этих файлов. Для этого в браузере можно последовательно перейти по следующим адресам, будучи авторизованным как администратор или менеджер магазина:
* `?type=catalog&mode=import&filename=import.xml`* `?type=catalog&mode=import&filename=offers.xml`
Имена XML-файлов, возможно, придется заменить на актуальные из директории `wp-content/uploads/woocommerce-1c/catalog`.
Как осуществляется обмен заказами?
1. 1С запрашивает с сайта заказы, которые еще не запрашивались им ранее, и создает по ним несогласованные и непроведенные заказы у себя.2. Если в 1С есть заказы, ранее полученные с сайта, но неполученные на предыдущем этапе, то 1С передает их на сайт.3. Плагин сайта ищет для каждого заказа соответствующий заказ у себя и либо создает новый заказ, либо обновляет имеющийся.4. Плагин сайта совершает следующие изменения в заказе:
- Если заказ был помечен к удалению в 1С, то – помещает соответствующий на сайте заказ в корзину, иначе – восстанавливает.
- Если у заказа в 1С был выставлен статус отличный от «Не согласован», то у заказа на сайте выставляется статус «В обработке».
- Если заказ в 1С проведен, то у заказа на сайте выставляется статус «Выполнен».
- Иначе – оставляет у заказа на сайте статус по умолчанию «На удержании».
Список изменений
= 0.7 =Добавлена в API возможность переопределения очистки категорий. Добавлена в API возможность определять, является ли обмен полным или частичным. Отключена очистка мета-данных при удалении плагина.
= 0.6 =Добавлена ссылка для сбора пожертований. Добавлено сохранение заданных пользователем из WooCommerce изображений товаров, для которых отсутствуют изображения в 1С. Добавлена возможность очистки всех данных магазина (см. FAQ). Добавлена в API возможность переопределения передаваемых в 1С заказов.
= 0.5 =Добавлена в API возможность предотвращения перезаписи заголовка, краткого описания, полного описания и галереи продукта при каждом последующем обмене. Изменена логика обмена заказами.
= 0.4 =Добавлено приведение наименований реквизитов к человекочитаемому виду. Добавлена поддержка импорта из поля 1С «Файл описания для сайта». Значение поля 1С «Текстовое описание» помещается в «Краткое описание товара» WooCommerce.
= 0.3 =Добавлена поддержка распаковки архивов средствами системы. Добавлена возможность указания прямого адреса скрипта без необходимости включения постоянных ссылок. Значение поля 1С «Наименование для печати» используется для заголовка товара вместо значения поля «Рабочее название».
= 0.2 =Добавлено базовое API с помощью фильтров и действий.
= 0.1 =Первая версия.
Процесс настройки 1С:Предприятия
Для начала работы с 1С откройте базу данных, с которой будет производиться обмен.
Для этого запустите файл “1сv8.exe”, в открывшемся окне выберите базу данных, с которой будет производиться обмен, и нажмите на кнопку “1С:Предприятие”.
После запуска необходимо выбрать пользователя и ввести пароль (если у пользователя задан пароль).
Если пользователь и пароль введены правильно, откроется окно “Демонстрационная база”.
Настройте обмен с интернет-магазином
Сначала нужно настроить обмен с интернет-магазином.
-
В программе 1С:Предприятие зайдите в “Администрирование” и нажмите на ссылку “Настройки синхронизации данных”. В окне “Настройки синхронизации данных” включите “Обмен данными с сайтами”.
-
Нажмите на ссылку “Общие настройки” и включите “Дополнительные реквизиты и сведения”
-
Нажмите на ссылку “CRM и продажи” в левом меню и включите “Заказы клиентов” в появившейся форме.
Создайте типовое соглашение с клиентами
После необходимой настройки обмена создайте типовое соглашение с клиентами, для этого пройдите в раздел “Маркетинг и планирование” и нажмите на ссылку “Типовые соглашения с клиентами”.
-
В окне “Типовые соглашения об условиях продаж” нажмите на кнопку “Создать”.
-
В новом окне “Типовое соглашение об условиях продаж” заполните все необходимые поля, при этом:
- поле “Статус” должно иметь значение “Действует”;
- поле “Сегмент партнеров” должно быть пустым;
- поле “Доступно внешним пользователем” должно быть отмечено галочкой.
-
Создайте новый узел обмена. Для этого пройдите в “Администрирование” и нажмите на ссылку “Настройки синхронизации данных”. В окне “Настройки синхронизации данных” нажмите на ссылку “Узлы обмена с сайтами” и создайте новый узел.
-
В окне создания нового узла необходимо настроить процесс обмена.
Настройка процесса обмена (узел обмена)
Вкладка “Основные настройки”
Во вкладке “Основные настройки” узла обмена заполните следующие поля:
Наименование | Введите наименование обмена |
“Режим обмена данными” |
|
Выберите назначение обмена |
|
Выберите контроль изменений: |
|
“Использовать периодический обмен данными” | Для автоматического обмена данными включите “Использовать периодический обмен данными” и настройте расписание обмена, чтобы обмен запускался автоматически когда это необходимо. |
Вкладка “Выгрузка товаров”
Во вкладке “Выгрузка товаров” заполните поля (вкладка доступна и видна, если включен флажок “Выгрузка товаров” на вкладке “Основные настройки”):
Организацию-владельца XML-каталога | Это организация, от имени которой будет производиться обмен. |
Коэффициент пересчета веса | Если необходимо будет производить пересчет веса товаров из 1С в единицы, в которых он учитывается на сайте. |
Выгружать файлы изображений | Если необходимо выгружать изображения. |
Выгружать прочие файлы | Если номенклатура содержит присоединенные файлы. |
Классифицировать по видам номенклатуры | Если необходимо чтобы категории товаров выгружались из справочника “Виды номенклатуры”, иначе категории будут выгружаться из справочника “Номенклатура”. |
Таблица каталогов | При необходимости настройте таблицу каталогов, которая содержит строки, для соответствия групп товаров категориям в интернет магазине. |
Настройки “Таблицы каталогов”
- В колонке “Каталог” задается имя каталога,
- В колонке “Группы номенклатуры” настраивается фильтр выгрузки групп (состав выбираемых групп зависит от установки флажка “Классифицировать по видам номенклатуры”):
- Если флажок “Классифицировать по видам номенклатуры” включен, то группы выбираются из справочника “Виды номенклатуры”, иначе – из справочника “Номенклатура”.
- Если группы не выбраны, то выгружаться будут все группы. В колонке “Идентификатор каталога” задается идентификатор, по которому устанавливается связь выгружаемых данных с конкретными категориями в интернет магазине.
- Для настройки отбора нажмите кнопку “Настроить отбор”. В форме настройки отбора установите ограничения по выгрузке товаров.
Вкладка “Обмен заказами”
Вкладка “Обмен заказами” (вкладка доступна и видна, если включен флажок “Обмен заказами” на вкладке “Основные настройки”) содержит два раздела “Основные настройки обмена заказами” и “Дополнительно”.
В разделе “Основные настройки обмена заказами” заполните следующие поля:
- Заполните поля “Доп. реквизит документа Заказ клиента — Дата заказа на сайте” и “Доп. реквизит документа Заказ клиента — Номер заказа на сайте”, по которым будет осуществляться поиск заказов с сайта.
- Выберите “Способ идентификации контрагентов” для поиска контрагентов при загрузке заказов с сайта. Есть 2 варианта поиска: по наименованию и по комбинации ИНН+КПП. В обмене данными для CS-Cart необходимо использовать вариант “По наименованию”.
- Укажите “Вид номенклатуры (товар)” — вид номенклатуры, с которым будут записываться новые товары, загруженные с сайта.
- Укажите “Вид номенклатуры (услуга)” — вид номенклатуры, с которым будут записываться новые услуги, загруженные с сайта.
- Выберите “Единицу измерения новой номенклатуры” — единица измерения, с которой будут записываться новые товары с сайта.
- В поле “Соглашение” выберите ранее созданное типовое соглашение с клиентами.
- В поле “Организация” выберите организацию, от имени которой будет создаваться документ “Заказ клиента”.
- Заполните поле “Менеджер” для указания менеджера, от имени которого будут создаваться документы “Заказ клиента”.
- В поле “Комментарий” добавьте комментарий к документу “Заказ клиента”, если это необходимо.
В разделе “Дополнительно” можно настроить дополнительные параметры обмена заказами:
- “Параметры записи и проведения” — устанавливает режим записи и проведения документов.
- “Параметры отмены заказов” — устанавливает статус заказа в случае, если он “Отменен” и причину, присваемую заказу в случае отмены.
- “Соответствие статусов заказов” — настраивает соответствие статусов заказа на сайте статусам документа “Заказ клиента” в 1С. Если такие соответствия настроены, то при загрузке заказов будет происходить попытка установки соответствующего статуса документам “Заказ клиента”.
После настройки всех необходимых параметров выгрузки сохраните узел, нажав на кнопку “Записать и закрыть”.
Входящие в плагин файлы
Тэги: woocommerce
Поделится информацией с друзьями
opttour.ru
Простая интеграция сайта и 1С / Хабр
Последнее время натыкался на несколько различных статей об интеграции сайта и 1С. В комментариях часто начинались споры о различных подходах, и я решил поделится способом который однажды довелось реализовать мне. Разумеется, описанный ниже способ не претендует на универсальность и единственность, но, думаю, будет полезен тем, кто только собирается писать свой вариант.Тяпки, грабли и лопаты
Не очень большой магазин (номенклатура порядка 5000 товаров). Обыкновенная, файловая 1С 8 УТ. Конфигурация стоит на полной поддержке, и снимать с поддержки нельзя. База лежит на одной из десктопных машин, которая в свою очередь используется для работы одним из сотрудников. Достаточно выгружать минимум информации: название, описание, фото, несколько видов цен. Ломать уже устоявшуюся экосистему было так же крайне не желательно. Под сайт выделен обыкновенный виртуальный хостинг, а значит нужно учесть ограниченность ресурсов такового. Выгрузка может происходить не часто, достаточно 1 раза в 3 часа. Впоследствии, стало необходимо добавить выгрузку прайс-листа в xls. Скромный бюджет для реализации проекта.Машина, выполняющая роль «сервера» была и без того не быстрой, а наличие постоянных подключений к базе 1С, только усугубляло ситуацию. Но, заказчика это устраивало, а значит, кучи денег на покупку отдельного сервера и перевооружение остального парка не было. В связи с ограничениями бюджета, вариант с Битриксом и его типовой интеграцией отпал сразу. Да и интерес был скорее спортивный, реализовать всё самостоятельно. Было решено использовать уже использовавшийся ранее каркас для каталога товаров. Каркас был сделан на CodeIgniter, поэтому добавить небольшой модуль труда не составляло. Решено.
Лет'с старт
Первым делом стал вопрос о периодичности выгрузки информации, а руки так и потянулись к регламентным заданиям… но, стоп. Во-первых, конфигурацию с поддержки снимать нельзя, а значит, и вносить правки в саму конфигурацию мы не можем, а во-вторых, все копии 1С запускаются только при необходимости, а значит, будет ли в нужный момент запущена 1С или нет — неизвестно. Да, можно было бы обязать заказчика, при запуске «сервера» всегда запускать 1С и всегда держать её запущенной, но ведь это создаст лишние неудобства заказчику, а значит решение не самое удобное. Увы, регламентные задания сегодня нам не смогут помочь. Очевидно, что нам понадобится помощь стороннего приложения, для запуска процедуры выгрузки в определённый момент. Тут мы вспоминаем про то, что 1С позволяет запускать себя из командной строки, более того, мы можем сразу же выполнить нужную нам внешнюю обработку и при необходимости, есть даже возможность передать ей какой-нибудь параметр.Вот основные ключи, которые будут использоваться:
"Путь к 1С" enterprise /F"Путь к базе" /N"Логин" /P"Пароль" /Execute"Внешняя обработка" /C"Параметр" /DisableStartupMessagesТеперь осталось настроить запуск этой конструкции по расписанию. Планировщик Windows? Настраиваем, проверяем… работает! Но есть один серьёзный недочёт. Когда планировщик запускает по расписанию 1С, то, разумеется, она открывается сверху над всеми приложениями и если в это время работает кто-то за компьютером, то это, во-первых, будет его отвлекать, а во-вторых, он может и закрыть это новое окно. Не порядок… Что же делать? Начинаем копать в сторону запуска под другой учётной записью. Спасибо гуглу, достаточно быстро находим возможность пакетного запуска под другим пользователем. Создаём нового пользователя Windows, разрешаем в политиках безопасности пакетный запуск, перенастраиваем планировщик, проверяем… вуаля! Всё сработало, при этом мы не увидели никаких раздражающих окон! Отлично, значит, такой вариант нам подходит… теперь переходим к собственно выгрузке самих данных.
Выгрузка
Первым делом, конечно, я стал смотреть в сторону CommerceML, но ознакомившись с документацией, стало ясно, что для нашей, достаточно элементарной выгрузки городить весь этот огород — слишком долго, а бюджет не резиновый. Значит, будем искать альтернативный способ. Почему бы просто не выгружать текстовую информацию в xml, а картинки выгружать в отдельную директорию? Решено, так и делаем. Получаем достаточно простую структуру xml-файла: внутри сначала идут записи для групп, а потом сами номенклатурные единицы.Так выглядят группы:
<group> <Code>код</Code> /*Код-элемента из 1С*/ <Name>наименование</Name> /* Собственно, наименование группы*/ <ParentCode>код родителя</ParentCode> /* Если не пусто, значит группа является вложенной*/ </group>А так товары:
<item> <Code>код</Code> /* Код-элемента из 1С */ <ParentCode>код родителя</ParentCode> /* Код группы, к которой принадлежит товар */ <Name>наименование</Name> <Descr>Описание</Descr> <Article>Артикул</Article> <TypePrice>Тип цены</TypePrice> <Price>Цена</Price> <Сurrency>валюта</Сurrency> <Remains>Остатки</Remains> <Unit>шт/кг/литры</Unit> <Img>img_dae5eacd-7d88-11de-8856-0024213f1c89.jpg</Img> /* Все изображения содержат в названии уникальный идентификатор элемента в базе 1С */ </item>Не хитрым запросом получаем информацию по всем товарным группам и товарам, далее формируем xml-ку. Также делаем отдельную выборку и вытаскиваем информацию для прайс-листа, а затем сохраняем полученную информацию в xls. После этого переходим к выгрузке изображений. В связи с ограничениями хостинг-площадки, обрабатывать изображения на стороне хостинга показалось не самым рациональным, поэтому было решено делать обработку изображений + создание превью на этапе формирования выгрузки. 1С — это конечно комбайн, но вот возможности обработать пачку фотографий я не нашёл. Но ведь у нас есть ImageMagick? Отличный, кроссплатформенный набор всего необходимого нам для обработки изображений… качаем, распаковываем… осталось лишь написать bat'ник, который произведёт необходимые манипуляции:
cd c:\ set thePATH= Здесь указываем путь к изображениям FOR /R "%thePATH%" %%a IN (*.jpg) DO ImageMagick-6.7.0-10\convert.exe %%a -resize ШИРИНАxВЫСОТА^> -quality 70 %%a FOR /R "%thePATH%" %%a IN (*.jpg) DO ImageMagick-6.7.0-10\convert.exe %%a -resize ШИРИНАxВЫСОТА^> -gravity center -extent ШИРИНАxВЫСОТА -quality 70 %thePATH%mini\%%~nxaЗапускаем из нашей обработки этот bat'ник и получаем результат.
Вся информация выгружена, осталось всё аккуратно упаковать в zip и загрузить по фтп на сервер, с чем отлично справляется 1С штатными средствами.
На первый взгляд всё, но… Неужели мы каждый раз будем вытаскивать всю номенклатуру, со всеми картинками и всю эту махину грузить на сервер? Нет уж, это картина не для слабонервных… И что же делать? Делать флаги и отмечать, какая номенклатурная единица изменилась? Нет, мы же не можем править конфигурацию… Но ведь есть же планы обмена? Кто нам запрещал использовать их? Никто! Создаём план обмена, настраиваем. Дальше модифицируем нашу выгрузку, теперь во время выгрузки создаём новое сообщение в плане обмена, выгружаем только изменённые с момента последнего сообщения единицы… Отлично!
Серверная часть
Тут всё ещё прозрачнее. Вешаем запуск скрипта по крону. В скрипте смотрим в нужную директорию, ищем по маске нужный архив. Если таковой имеется, то распаковываем, парсим xml, пишем информацию в БД. Картинки у нас внутри ещё одним архивом, его тоже распаковываем, прямо поверх директории с уже имеющимися картинками. Если такая картинка уже есть, переписываем её новой. xls-файл копируем с заменой в нужную директорию. Пишем в базу информацию, о том, что произвели такое-то обновление, тогда-то, с таким-то номером, а затем чистим за собой временные файлы. Всё.Соломка от сбоев
Если в процессе выгрузки информации, обработке изображений, архивировании, загрузке на удалённый фтп произойдут ошибки, то мы можем потерять часть обновлений, и в итоге информация на сайте и в базе 1С будет рассинхронизирована. Ниже я описал основные острые углы, для которых понадобилось подстелить соломки:1. Итак, что же будет, если например, в момент загрузки по фтп, оборвётся связь? Если мы уже записали сообщение в план обмена, то получается, что 1С, считает, что успешно выгрузила эти изменения и теперь уже собирает новые, но на сайт-то они не попали! Правильно, поэтому заканчиваем запись в план обмена только после успешного завершения всех этапов выгрузки, включая загрузку файлов по фтп! А если же в процессе выгрузки происходит исключительная ситуация, то мы прерываем запись сообщения в плане обмена и пишем ошибку в error-log.
2. А что, если наш скрипт на сервере начнёт обрабатывать ещё не догруженный архив? Мы сначала даём ему одно имя (например, export.zip_), а лишь по завершении переименовываем его и даём имя, которое будет искать скрипт на сервере.
3. А что если на сервере будет сбой и скрипт не успеет обработать наш архив, 1С затрёт его новым? Нет, для этого каждый архив содержит в названии номер сообщения из плана обмена (например, export_1.zip). Скрипт на сервере в свою очередь при обнаружении нескольких архивов обрабатывает их в порядке возрастания номеров.
4. А логи не переполнятся? Т.к. при выгрузке в лог пишется подробно информация о результатах каждого действия, то логи достаточно быстро растут, поэтому не забываем при каждой выгрузке контролировать их размер и при необходимости удалять старые.
5. А что если 1С не успеет произвести выгрузку, а в это время стартует процесс для новой выгрузки? В настройках планировщика настраиваем так, чтобы новое задание не выполнялось, если предыдущее не завершено.
P.S.
Итак, таким вот нехитрым способом за достаточно короткий срок была реализована выгрузка номенклатуры/цен/остатков на сайт. Разумеется, данный вариант имеет ряд недостатков и не претендует на лавры единственно-верного, но при этом нам удалось полностью вписаться в ограничения установленные экосистемой заказчика. Вся эта конструкция работает на слабых машинах, не требует постоянно запущенной копии 1С, работает на самом обыкновенном виртуальном-хостинге, абсолютно не отвлекает сотрудников на себя и главное, позволяет беспрепятственно обслуживать 1С. Подстеленной соломки оказалось достаточно, и за уже почти год, к счастью, ни одного нашего вмешательства в работу системы не потребовалось.habr.com
Wordpress интеграция с 1с, Настроим сайту интеграцию с 1С
Интеграция сайта на популярной CMS wordpress с 1С может обмениваться различными наборами информации. Мы в любом случае решаем для Вас задачу централизованного управления взаимодействием с клиентом и контентом Вашего Worpress ресурса.
Общие справочники
Справочники Вашей 1С и сайта содержат одинаовую информацию. Это экономит время при работе и сокращает риск ошибок ввода.
Онлайн остатки
Посетителям сайта доступны остатки товаров, взаиморасчетов, счетов и другие, учет которых ведется Вами в 1С.
Управление заказами
Посититель сайта оставляет заявку на сайте и видит ее исполнение в режиме онлайн. А Ваш оператор работает с ней в программе 1С.
Ведение каталогов
При обновлении каталогов продукции, товаров и т.п., Вам больше не понадобиться вносить информацию на сайт, она автоматически будет загружена из 1С.
Получите сейчас выгодное предложение wordpress 1c интеграции!
Цена интеграции 1с и вордпресс
от 10 000 рублей.
Мы приводим лишь стартовую стоимость работ по интеграции wordpress и 1с. Точную стоимость, мы сможем сказать после получения сведений об информации, которой необходимо обмениваться.
Мы надежно интегрируем 1c и wordpress
Более 500 интеграций
Интегрировали более 500 различных продуктов с системой 1С. Имеем тиражные решения связанные с интеграцией данных.
Работаем быстро
Большой опыт, знания и наработки - позволяют быстро и надежно интегрировать Вашу 1С с большинством программ и систем.
Знаем конфигурации
Наши глубокие знания типовых конфигураций, избавят Вас от лишних трудозатрат на постановку задачи.
Большой опыт в 1С
Более 10 лет работы с системами 1С. Наличие собственных тиражных конфигураций и модулей.
Гарантия до 36 месяцев
Мы настолько уверены в своей работе, что даем гарантию до 36 месяцев на результаты проекта интеграции.
Фиксированная стоимость
Стоимость интеграции фиксируется в момент заключения договора и пересмотру без согласия сторон не подлежит.
Бесплатная консультация по интеграции 1с с вордпресс!
Отправить заявку
Нас уже оценили
1ccenter.com
WordPress — 1C — help
Картинка, отображающая очередность вызова файлов шаблонов вашей конкретной Темы при работе WordPress
Continue reading
Как создать базу данных в денвере Неплохая инструкция по созданию базы данных в Денвере
Continue reading
Вопрос Как разбить большую страницу вордпресс на страницы. Почему страница не разбивается на страницы тегом nextpage. Как эти страницы перенести с четвертого уровня вложенности на третий. Ответ Если у вас очень большая страница и вы хотите ее разбить на части, то используйте для этого тег:
Continue reading
Задача: В боковой колонке сайта требуется вывести перечень статей, у которых назначена своя собственная рейтинговая шкала (по значению произвольного поля WordPress «meta_key»). При этом нужно, чтобы сообщения были отсортированы по числовому значению этого поля (нужно, чтобы meta_value — было числом) Ответ В WordPress есть возможность добавлять любые произвольные поля (meta_key) и использовать затем их значения […]
Continue reading
Подписчик и его права На текущий момент все новые зарегистрировавшиеся пользователи этого сайта получают тут статус «подписчик». Права такого пользователя сильно ограничены. Вот его возможности: читать записи; комментировать записи; редактировать свой профиль; в административной панели видеть, сколько всего записей и комментариев; в административной панели видеть последние комментарии. Редактировать комментарии и записи подписчик не может. Если […]
Continue reading
Вопрос Как в WordPress изменить размер поля для ввода текста статьи? Уж очень оно маленькое, 10 строк всего. ОтветМеню «Параметры» — «Написание» — «Размер текстового поля»:
Continue reading
Вопрос Как установить WordPress на новом хостинге? Ответ Порядок установки WordPress
Continue reading
Вопрос Как из 1С удаленно подключиться к базе данных MySQL, например, к базе данных WordPress? Ответ Для подключения к базе данных используется примерно такой код (данные для подключения см. в файле wp-config.php вашего сайта):
Continue reading
Таблица wp_posts базы MySQL у сайта на WordPress Таблица содержит собственно статьи, размещаемые на сайте.
Continue reading
Виды значения post_type (виды постов) таблицы wp_posts базы данных MySQL WordPress • revision — черновик • page • post • nav_menu_item • attachment – картинки, файлы и т.п
Continue reading
1c-h.ru
Выбираем CMS для будущего сайта: 1C Битрикс VS WordPress
Добрый день! Открываем цикл материалов «Битва инструментов». Сегодня робот «Machineheads» подготовил для вас сравнительные характеристики и анализ двух систем управления контента (СMS): 1C Битрикс, лидера коммерческого сектора рынка и WordPress, лидера среди бесплатных СMS.
1C Битрикс
- От 5400 до 72 900 рублей за «1 с Битрикс: Управление сайтом»
- От 1 499 900 рублей за «1 с – Битрикс: Enterprise»
- После оплаты, лицензия отправляется заказчику на электронную почту.
Wordpress
- СMS предоставляется бесплатно и качается за пять минут.
MH: В годовую лицензию «Битрикс» включена техническая поддержка и обновления системы. Продление на следующий год стоит 22 % стоимости редакции или 60% стоимости лицензии в другой момент. В обновления входят: новый функционал, обновление системы безопасности, поддержка облачных сервисов (Marketplace, CDN, монитор и автоматическое резервирование).Однако, продление – дело добровольное и личное дело каждого. Сайт от отказа продления работать не перестанет.
Что касается «WordPress», эта система действительно остается бесплатной с момента его создания в 2003 году. Это стало принципиальной позицией его владельца Мэтта Мюлленвега, который в 2007 году отказался от предложения в 200 миллионов долларов за свою разработку, оставив Wordpress бесплатным. На сегодняшний день суммарная прибыль компании Мэтта Мюлленвега - 40 млн долларов в год.
1C Битрикс
- СMS «1 С Битрикс. Управление проектом» защищает специальный модуль «Проактивная защита», который встроен непосредственно в сам продукт, за исключением версии «1С Битрикс: управление сайтом - Старт».
- В 2009 году на фестивале хакеров CMS успешно выдержала 25 000 атак.
- Система постоянно обновляется и пополняется новыми функциями.
Wordpress
- Базовые настройки данной CMS не обеспечивают достаточного уровня защиты, оставляя многие дефолтные дырки незакрытыми.
- Без установки дополнительной защиты сайт, сделанный на этой СMS остается под угрозой взлома.
MH: Несмотря на разработанный модуль, программисты MH, создавая сайт на Битрикс, уделяют дополнительное время на защиту.
Безопасность WordPress - главный недостаток этой системы и причина отказов программистов работать с ней. Этим объясняется редкость использования данной CMS для создания интернет-магазинов и других типов бизнес-сайтов. MH редко встречается с подобными заказами, но знакомы с данной CMS. Например, перевести сайт с WordPress на Битрикс наши программисты смогут без труда.
Программирование
1C Битрикс
- Большая база готовых шаблонов на платной и бесплатной основе для различных проектов. Настроить стандартные настройки и применить при разработке стандартные модули и компоненты, входящие в состав Битрикса по умолчанию не представляет труда.
Wordpress
- Большая база готовых шаблонов на платной и бесплатной основе для различных проектов. Легка в использовании, как для профессиональных программистов, так и для новичков.
MH: В маркетплейсе «Битрикса» находится 2000 решений для разного типа задач. Программируя интернет-магазин на «Битриксе», наши программисты воспользовались модулями доставки «DPD» и «СДЭК». Это значительно сократило время работы. Для разработки с нуля того же функционала потребовалось бы не один день.
У WordPress свой каталог плагинов с внушительной цифрой в 47 283. Скачивать их, для своей же безопасности, следует только с официального сайта wordpress.org. Здесь размещаются плагины проверенные на вирусы с проверкой совместимости версии WordPress, на которой создан сайт.
Управление контентом пользователями
1C Битрикс
- В CMS встроен адаптивный интерфейс «Эрмитаж», который облегчит пользователям обновление информации на сайте. Однако контент-менеджеру следует пройти дополнительное обучение, чтобы понять тонкости этой системы.
Wordpress
- Управлять этой системой немного проще, чем системой Битрикса, но без дополнительных знаний не обойтись.
MH: Лучший момент не рассказать, а показать.
Так выглядит то, с чем работают контент-менеджеры, в «Битриксе». Собственно так выглядят административный раздел нашего официального сайта. Кстати, контент-менеджеры MH осилили 1С Битрикс в течение дня.
Так выглядят «внутренности» WordPress:
Для каких проектов больше подходит
1C Битрикс
- Интернет-магазины
- Корпоративные сайты
- порталы
- лендинги
Wordpress
- Блоги
- Новостные ресурсы
MH: 1- С Битрикс стал осознанным выбором МН. В портфолио компании – интернет-магазины, лендинги и корпоративные сайты, реализованные на этой CMS. Наши программисты отмечают, что при работе с WordPress для достижения таких же целей, возникает больше трудностей. Сайты в результате получаются не такими гибкими, а на устранение проблем с безопасностью тратится много времени.
Поиск подрядчиков
1C Битрикс
- «1С-Битрикс» является технологическим партнером для дилерской сети, включающей 13 000 компаний, и предоставляет возможность дизайн-студиям и независимым разработчикам использовать продукты компании для реализации своих решений.
- Понимая это, огромное число программистов затачиваются под эту систему, чтобы быть востребованными на рынке.
- Найти подрядчика, который создаст вам сайт на «Битриксе» не составит труда.
Wordpress
- Благодаря своей бесплатной основе, каждый программист мало-мальски опытен в работе с этой СMS.
- Другой вопрос, насколько профессионально он может это делать.
MH: В качестве основной СMS для работы мы выбрали «Битрикс». Didgital агенство Machineheads реализовало более двадцати проектов, используя данную систему управления контентом. Выбор пал именно на нее по нескольким причинам.
На сегодняшний день 1 С Битрикс – лидер по популярности в РФ. Более 150 000 клиентов используют продукты компании для управления своими веб-проектами.
Растущая компания заинтересована в привлечении новых клиентов, поставляя на рынок множество готовых решений для сайтов, которые значительно упрощают процесс программирования и позволяют легко внедрять на сайт дополнительный функционал в соответствии с запросом клиента.
С технической точки зрения, к данному продукту нас привлекает удобный интерфейс административной части, который впоследствии очень удобен для заполнения сайта новой информацией. Ни один из наших клиентов не обратился за дополнительной помощью по ведению сайта после сдачи.
Также, нас удовлетворяет скорость ведения разработки на этом «движке». Так, например, на разработку самого простого лендинга на Битрикс уходит неделя. Полдня - на программирование и интеграцию верстки с CMS.
Выбор за вами.
machineheads.ru