Комплекс предназначен для управления содержимым интернет-магазина opencart из 1С 8.x
Без использования PHP.
Текст обработки 1С специально написан и прокомментирован таким образом, чтобы даже новичок в программировании 1С легко в нём разобрался.
Таким образом можно подгонять задачи под себя, делать задачи по расписанию, остатки в режиме реального времени и т.д.
Например, автоматическую выгрузку товара при его сохранении или коррекцию остатков по товару в случае его продажи/перемещения/поступления,
изменение цены при переоценке и т.п.
Важной особенностью технологии является прямые чтение/запись в базу данных MySQL сайта, без использования PHP.
Никаких файлов на сайт закачивать, и, тем более, заменять не нужно.
Обмен данными 1С с сайтом можно производить в любое время, вне зависимости от количества посетителей и их активности,
без потери производительности сайта.
Кроме того, реализована работа по расписанию, так что комплекс может работать "постепенно", закачивая только изменения.
ВНИМАНИЕ! Обработка 1С пока что работает исключительно в режиме обычного приложения.
Рекомендуем завести отдельного пользователя 1С для работы с сайтом.
В режиме Конфигуратора в меню "Администрирование" - пункт "Пользователи", выбираете нужного, вкладка "Прочие" и в нижней части выбор режима запуска
заменить "Авто" на "Обычное приложение".
Можно работать с оптовыми ценами.
Если создать группу покупателей с id = 3, то покупатели этой группы увидят оптовую и перечёркнутую розничную цену.
Выполнено в виде бессрочной акции для группы покупателей с id = 3.
id группы оптовых покупателей можно посмотреть в БД сайта (например, с помощью PHPMyAdmin) в таблице customer_group_description
в поле customer_group_id. Там же можно скорректировать id.
Комплекс вносит в БД сайта данные (наименование, описание и т.п.) на двух языках (id = 1 и id = 2, обычно это русский и английский).
Для двуязычных сайтов нужно понимать, где 1С должна брать тексты на втором языке.
##########################################################################################################################################################
Работа с картинками
##########################################################################################################################################################
Для корректного отображения картинок товара на сайте необходимо и достаточно выполнение двух условий:
1. Картинка должна лежать в определённой папке (например: 'image/catalog/kartinki') и называться КодТовара.jpg для основной картинки и КодТовара_1.jpg, КодТовара_2.jpg и т.п. для дополнительных.
2. В базе данных MySQL сайта должны содержаться корректные пути относительно папки image из корня сайта. Например: 'catalog/kartinki/КодТовара.jpg'.
Информация об основных картинках хранится в таблице product, о дополнительных - в таблице product_image.
Нужно в настройках обработки указывать путь без имён файлов и крайних слэшей. Например: 'catalog/kartinki'.
Необходимо создать специального пользователя FTP (это делается в панели управления хостингом) для работы с 1С и назначить ему папку с картинками в качестве домашней директории, а также проследить, чтобы он обладал всеми необходимыми правами для работы в этой папке.
Если Вы получили сообщение об ошибке типа:
"Не удалось установить соединение FTP с заданными параметрами: {ВнешняяОбработка.oc1c.Форма.Форма.Форма(***)}: Ошибка при вызове метода контекста (УстановитьТекущийКаталог): Ошибка аутентификации при доступе к ресурсу: **************** Access denied to remote resource"
то либо скачайте обновлённую версию обработки для Вашей конфигурации, либо проследите, что в коде обработки переменной "ПутьФТП" присваивается пустое значение, а строки, содержащие текст "УстановитьТекущийКаталог" закомментированы или отсутствуют.
##########################################################################################################################################################
Дополнительная информация
##########################################################################################################################################################
При вызове метода "oc1c.Category" посмотрите на код:
ЧислоСтолбцов = 1;
meta_title = "";
meta_descr = "";
meta_description = "";
meta_keyword = "";
seo_title = "";
seo_h1 = "";
Число столбцов - это количество столбцов в выводе категорий в главном меню.
Остальное - мета-теги.
Все любят по-разному их заполнять, и здесь Вы можете проставить значения, как Вам нравится.
В том числе можно подставлять вышеприведённые переменные (наименование и проч.).
Если Вы используете префиксы в кодах справочника "Номенклатура", обратите внимание на
функцию "ЗаменитьПрефиксы". Там типизированные префиксы заменяются на соответствующие цифры
для обеспечения гарантированной уникальности товара при экспорте.
##########################################################################################################################################################
Совместимость
##########################################################################################################################################################
Обработка 1С написана на платформе 8.3.
Внешняя компонента совместима с любыми версиями opencart, начиная с 1.5.4.1
##########################################################################################################################################################
Порядок установки
##########################################################################################################################################################
1. Разархивируйте файл в локальную директорию на сервере 1С, например: C:\oc1c\
2. Запустите командную строку (cmd.exe) от имени Администратора.
Наберите: "regsvr32 БукваДиска:\ПутьКудаСкачали\oc1с.dll" и нажмите enter.
После сообщения об успешной регистрации внешней компоненты cmd можно закрыть.
3. Запустите 1С.
4. Откройте обработку управления интернет-магазином (файл oc1с_***.epf).
5. Следуйте инструкциям системы для активации лицензии.
6. Перейдите на вкладку "Параметры подключения к БД".
Заполните поля хост, пользователь, пароль, имя Вашей базы данных и её префикс.
Всё это смотрите в файле config.php в корне сайта (только поле "хост" может отличаться,
в зависимости от Вашего случая подключения к базе данных сайта).
Там же введите реквизиты FTP-доступа для экспорта картинок.
Указанный пользователь должен обладать правами на запись в директорию с картинками на сервере магазина.
Сохраните настройку формы, чтобы не вводить каждый раз эти поля.
7. Если у Вас веб-сервер на одной машине с 1С, то Вы уже можете управлять своим магазином.
##########################################################################################################################################################
Настройка доступа к базе данных сайта
##########################################################################################################################################################
Вариант 1: сайт находится на хостинге.
Некоторые хостинг-провайдеры разрешают прямое чтение и запись в БД MySQL сразу (например, 1gb.ru, reg.ru и большинство заграничных),
некоторые по запросу (например, masterhost.ru), некоторые не разрешают вовсе (например, nic.ru).
Если Ваш провайдер разрешает, настройте в панели управления хостингом доступ к Вашей БД.
Если Ваш сервер 1С имеет статический IP, то в целях безопасности желательно разрешить внешний доступ к БД только с этого адреса.
Если хостинг-провайдер не открывает прямой доступ на порт MySQL, то можно воспользоваться технологий SSH-туннелинга.
Вам следует уточнить реквизиты SSH-доступа к Вашему сайту и установить туннель с помощью SSH-клиента, например PuTTY (putty.org.ru).
Недостатком этого способа является то, что при проблемах с интернет-соединением сеанс обрывается и его часто приходится восстанавливать вручную.
Вариант 2: сайт находится на VDS/VPS. Этот вариант может быть быстрым, если на том же или "соседнем" VDS будет работать Ваша 1С.
Здесь у Вас свой собственный сервер Веб и СУБД, поэтому Вы можете множеством способов организовать доступ к базе данных,
в зависимости от Вашей операционной системы, требований к надёжности и скорости передачи данных.
Лучше всего открывать порт только для IP-адреса сервера 1С.
Можно настроить VPN.
Вариант 3: у Вас есть свой сервер. Самый быстрый вариант (до 100 товаров в секунду).
Если на одной машине иметь и 1С, и сервер СУБД, то скорость экспорта товаров на сайт ощутимо возрастает.
Наступает ситуация, когда скорость импорта/экспорта ограничивается уже не сетевыми каналами, а производительностью самой 1С.
Однако нужно понимать, что при ненадлежащей защите, сайт могут взломать злоумышленники и получить доступ к 1С.
А данные, содержащиеся в 1С, нередко очень ценны и конфиденциальны.
Идеальный с точки зрения скорости и надёжности передачи данных между 1С и сайтом вариант - размещение сервера 1С и веб-сервера
на двух разных машинах, но в одной локальной сети.
Также можно использовать виртуальные машины.
##########################################################################################################################################################
Ошибки
##########################################################################################################################################################
Иногда обработка выдаёт ошибку, содержащую текст: "MySQL server has gone away".
Тот же случай при использовании SSH-клиента (например, Putty), текст: "server unexpectedly closed network connection".
Обычно это происходит, когда сайт находится на хостинге или на неверно настроенном VDS.
Причины могут быть разные: тайм-аут, политика хостинг-провайдера, настройки MySQL-сервера и т.п.
Для того, чтобы решить эту проблему "локально", здесь и сейчас, достаточно перезапустить обработку 1С или нажать на кнопку "(Пере)подключиться к БД"
на вкладке "Параметры подключения к БД сайта". Однако проблема будет повторяться.
Для того, чтобы решить её "раз и навсегда", нужно разбираться в причинах и консультироваться с хостинг-провайдером.
В некоторых случаях пробему "MySQL server has gone away" можно решить увеличив таймаут ожидания активности в сеансе подключения к MySQL.
Для этого в коде обработки после вызова метода DBLogin (ПодключитьсяКБД) достаточно добавить следущие строки:
Сообщить(oc1c.ВремяОжидания);
oc1c.ВремяОжидания = 3600;
Первая строка даст Вам понять, какое таймаут ожидания активности установлен глобально для сервера MySQL хостинг-провайдером,
вторая - поможет установить желаемый таймаут для Вашего сеанса подключения к СУБД.
В любом случае причины возникновения этой проблемы лежат за пределами обработки 1С и библиотек dll.
Доказано, т.к. есть живой верно настроенный VDS с сервером 1С в 2000 км и всё работает, как часы, в режиме 24х7х365.
Если текст ошибки содержит "You have an error in your SQL syntax", скопируйте ВЕСЬ текст ошибки и пришлите на mail@oc1c.ru и support@oc1c.ru
##########################################################################################################################################################
Помощь в установке и настройке библиотеки, настройке доступа к БД, предложения по доработкам.
##########################################################################################################################################################
E-mail: mail@oc1c.ru, support@oc1c.ru
##########################################################################################################################################################
Демо-комплекс для ознакомления будет работать, но размещать в нескольких местах Вашего сайта ссылку на ресурс http://oc1c.ru
Для коммерческого использования комплекса приобретите лицензию.
Программа распространяется "как есть".
Автор не несёт ответственности за порчу или удаление критически важных данных пользователя, за убытки или недополученную прибыль.