Майстер-клас Інтеграція з 1С
Торгівля в інтернеті не має жодних відмінностей від звичайного рітейлу щодо ведення бухгалтерської звітності. У зв'язку з цим виникає питання узгодження продажів через інтернет-магазин та проведення їх за системою обліку «1С». Для "1С-Бітрікс: Управління сайтом" інтеграція з "1С" - не проблема. Це штатна функція, яка вже давно є починаючи з версії продуктів "1С:Підприємство 8.1", редакціяУправління торгівлею(версія 10.3.4) та "1С-Бітрікс: Управління сайтом" версії 6.5, в редакціях>Малий бізнес,БізнестаВеликий бізнес.
Незважаючи на існуючу документацію щодо продукту, у багатьох розробників сайтів виникають труднощі з обміном даними у цих двох програмах. Складнощі інтеграції бувають різні. Розглянемо деякі, типові, які виникають у багатьох користувачів.
Типові проблеми можна згрупувати приблизно таким чином:
Почнемо по порядку.
Помилки на стороні сервера
Помилки на стороні сервера відбуваються через цілу низку причин, але загальне у них те, що винні не так налаштування програм «1С-Бітрікс: Управління сайтом » або "1С:Підприємство ", скільки налаштування сервера чи проблеми в лініях зв'язку. В основному вони «лікуються» відповідним настроюванням серверного обладнання та програмного забезпечення. І лише за неможливості цього – шляхом одноразового зниження обсягів вивантаження. Для вирішення більшості цих проблем вам не уникнути звернення до служби технічної підтримки хостингової компанії, де розміщено ваш сайт.
Найчастіші прояви цих помилок:
- Помилка роботи з Інтернетом, виводиться повідомлення:failed sending data to the peer (no headers, no data);
- Отриманий порожнійвідповідь сервера;
- Помилки 502, 500 або помилка 404 в процесі обміну;
- Помилка нестачі пам'яті, наприклад, виводиться повідомлення:Fatal error : Allowed memory size of 67108864 bytes exhausted (tried to allocate 102401…)
- Неможливо отримати поточний стан процесу обміну. Дані обміну надіслані, але не завантажені.
Загальні методи вирішення – це зміна установок сервера. По-перше, можна збільшити ліміт часу та пам'яті в налаштуваннях PHP.
- Відкрийте для редагування файлphp.ini.oci, розташований у папці/apache.
- Знайдіть у файлі групу параметрівResource Limits.
- Збільште параметриmax_execution_timeтаmemory_limit.
- Перезавантажте сервер.
По-друге, часто допомагає збільшення сервера тайм-аут. З цим краще звернутися до хостера, тому що у вас, швидше за все, не буде на це прав доступу. Але якщо є можливість зробити це самому, потрібно зробити наступну послідовність дій:
- Відкрийте для редагування файлhttpd.conf,розміщений у папці/apache/conf/
- Змініть значенняTimeout.
- Перезавантажте сервер.
Інший варіант вирішення цієї проблеми (якщо хостер не погоджується на збільшення таймууту) - зробити рівним тайм-аут сервера і тайм-аут «1С-Бітрікс: Управління сайтом » (сторінкаМагазин > Налаштування магазину > Інтеграція з 1С ,полеІнтервал одного кроку в секундах). У цьому випадку покрокове виконання йтиме синхронно.
Якщо ці заходи не допомогли або вказані параметри неможливо змінити, то, в крайньому випадку, можна зробити таке:
Зрештою, можна зменшити обсяг вивантаження товарів за 1 раз.Налаштуйте фільтр за номенклатурою на стороні «1С»:
- Запустіть майстер налаштування обміну даними (Сервіси > Обмін даними з WEB-сайтом > Налаштувати обмін даними з WEB-сайтом)
- На першому кроці майстра виберітьЗмінити існуюче налаштування обміну данимиі натиснітьДалі.
- Виберіть налаштування для редагування та двічі клацніть по ньому.
- В закладціВивантаження товарів(абоОбмін замовленнями, залежно від ситуації) змініть значення фільтра.
- Збережіть зміни та повторіть синхронізацію.
Помилки під час роботи з файлами даних
Помилки при роботі з файлами викликані в основному неправильним настроюванням прав доступу до файлів. Типові повідомлення при цьому виглядають наступним чином: "Помилка відкриття файлу" та "Помилка запису файлу". Способи вирішення проблеми, природно, - налаштування прав доступу на рівні операційної системи.
Звернімо увагу на фразу «на рівні операційної системи». Права на рівні «1С-Бітрікс: Управління сайтом», як правило, виставлені завжди правильно. Проте перевірити права на здійснення імпорту/експорту не завадить. Робиться це на сторінціМагазин > Налаштування магазину > Інтеграція з 1С.
Найбільш ймовірні причини:
- Користувач, від якого ведеться обмін даними, немає прав на запис до папки/upload.
- Файл створюється з правами, які не дозволяють читати файл.
- Файл також може бути переданий на сервер у zip-архіві, але з певних причин не вдалося розпакувати архів, наприклад, некоректно працює функціяzip_openна сервері.
Вирішення цих проблем досить прості і зрозумілі з самих проблем і вирішуються зверненням до хостера, якийвстановить необхідні права.
Виставлення коректних прав на створювані файли в рамках «1С-Бітрікс: Управління сайтом » проводиться таким чином:
- Відкрийте для редагування файлdbconn.phpз папки/bitrix/php_interface.
- У рядкуdefine("BX_FILE_PERMISSIONS", 0644);встановіть значення, які порекомендував хостер замість 0644 виставлених за умовчанням.
Так само потрібно перевірити виставити права на створювані папки. Тільки це робиться вже в рядкуdefine("BX_DIR_PERMISSIONS", 0755);.
Ось так виглядає перевірка наявності розширення ZIP у налаштуваннях PHP:
-
Відкрийте у браузері сторінку http:// //bitrix/admin/phpinfo.php. (Або виконайте командуif (exist_function (“zip_open”))echo “OK”;).У браузері з'явиться таблиця:
Таблиця властивостей PHP
В області ZIP перегляньте параметри. Для рядка ZIP має стояти enabled.
Зауважимо, що помилки при роботі з файлами даних можуть виникати і через те, що на комп'ютері, де встановлена облікова система від 1С, є файрволл або антивірус, що перешкоджає коректній передачі файлу або блокує відправлення файлу на сервер.
1С не може пройти процедуру автентифікації на сайт і у зв'язку з цим видається помилка. Викликано це, як правило, неправильним налаштуванням «1С-Бітрікс: Управління сайтом ».
Інша типова помилка полягає у правах доступу на імпорт каталогу. Авторизація може не проводитися, якщо користувач, який проводить імпорт, не має достатнього рівня прав. Перевірити це можна на сторінціМагазин > Налаштування магазину > Інтеграція з 1С.
Перейдіть на вказану сторінку та зробіть такі дії:
- В поліДозволити завантаження групам користувачівперегляньте, яким користувачам дозволено імпорт/експорт даних.
- Залежно від вашої конкретної ситуації або змініть права доступу на імпорт для потрібних груп або увімкніть потрібного користувача до групи, якій дозволено імпорт із «1С».
Для «обходу» проблеми необхідно, щоб на сервері була включена обробка.htaccessта підтримкаmod_rewrite. Виконайте наступні дії:
- У корені сайту до файлу.htaccessдодайте рядки: RewriteEngine on RewriteRule .* - [E=REMOTE_USER:% , L]
- Закоментуйте наступні рядки у файлі.htaccessпапкиbitrix/admin/,які відключаютьmod_rewrite: #
# До файлуdbconn.phpпапкиbitrix/php_interface/додайте рядки: $remote_user = $_SERVER[ "REMOTE_USER" ]
? $_SERVER[ "REMOTE_USER" ] : $_SERVER[ "REDIRECT_REMOTE_USER" ];
$ strTmp = base64_decode ( substr ( $ remote_user , 6 ) ) ;
list ($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);
Помилки баз даних можуть мати багато причин, так само як і рішень. Найочевидніші з них зводяться до таких:
- Виводиться повідомлення:Lost connection to MySQL server during query. Помилка, швидше за все, тут у таймууті.
Можливе вирішення проблеми:$DB->Query("SET wait_timeout=28800");
Якщо це не допомагає, необхідно звернутися до служби підтримки хостингової компанії для збільшення таймууту.
- Конфлікт кодування. Наприклад, виводиться повідомлення:
[Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation '=']
Причиною єте, що таблиці бази даних в одному кодуванні, а сам база в іншій. У разі база вlatin1і нові таблиці створюються вlatin1. При вивантаженні з «1С» створюється тимчасова таблицяb_xml_treeу «некоректному» кодуванніlatin1.
Рішення просте та зрозуміле: зміна кодування бази на коректну. Для вирішення цієї проблеми слід звернутися до хостера.
Логічні помилки відбуваються, якщо користувач неправильно розуміє процес обміну даними і, відповідно, їм неправильно виконуються якісь дії.
Найчастіша помилка при розвантаженні каталогу товарів з'являється разом повідомленням: «Зміни товарів не зареєстровані. Вивантаження товарів не проведено». Як правило, у цьому випадку неправильно налаштований фільтр товарів. Потрібно перевірити ці налаштування. Як правило, там вибрано параметри, які не дозволяють правильно відфільтрувати параметри для вивантаження.
Але бувають ситуації, коли таке повідомлення – нормальна ситуація. Це відбувається у випадку, якщо в налаштуванняхРежиму обміну даними з WEB-сайтомвстановлено:Вивантажувати лише змінені об'єкти з моменту останнього обміну.
Інша помилка при розвантаженні каталогу товарів - повідомлення: "Не вдалося знайти вид номенклатури". Ця помилка виникає, якщо у «1С» немає видів «Послуга» та «Товар». Ці типи є критичними для процесу обміну даними з сайтом. Вирішення проблеми – створити в «1С» зазначені види номенклатури.
Якщо в процесі обміну виникає помилка: «Поле об'єкта не виявлено», це означає, що не встановлені відповідності для полів замовлення в «1С-Бітрікс: Управління сайтом ». Перевірте настройки, задані в закладці Експорт у «1С:Підприємство » сторінкиНалаштування > Налаштування продукту > Налаштування модулів > Інтернет-магазин. Поля «ПовнеНазва» та «Назва» є критичною для 1С., тобто без завдання відповідності цих полів експорт виконуватися не буде. Зверніть увагу, що налаштування відповідності здійснюється окремо для різних типів платників.
Експорт/імпорт товарів та замовлень у зв'язці «1С-Бітрікс: Управління сайтом » та «1С:Підприємство » дозволяє вирішити проблеми синхронізації даних на сайті та в системі обліку. Як і в роботі будь-якої іншої складної системи, у цьому «зв'язуванні» можуть виникати проблеми та неточності. Проте всі вони можна вирішити. Купити Бітрікс можна у партнерів 1Софт.
Бажаєте купити софт? Зателефонуйте партнерам фірми «1С», щоб отримати кваліфіковану консультацію щодо вибору програм для ПК, а також інформацію про наявність та ціну ліцензійного ПЗ.