Наш ассоциированный член www.Bikinika.com.ua

1С-Бітрікс і обмін контрагентами: що не здохнути по шляху

  1. Вивантаження контрагентів: «дорогі» питання і набиті гулі
  2. Необхідний і достатній склад даних
  3. Частота і напрямок обміну
  4. Де джерело правди
  5. IT-ресурси на стороні облікової системи
  6. Структура даних на сайті і в 1С
  7. Зв'язок контрагентів із замовленнями
  8. Як тестувати обмін контрагентами
  9. Імпорт контрагентів: рецепти
  10. Вивантаження контрагентів в 1С-Бітрікс "з коробки» 1С
  11. «Миші, станьте їжачками» ... і використовуйте довідники
  12. Веб-сервіси та режим реального часу
  13. Екзотика: транзитна база даних
  14. У сухому залишку

Ми зробили висновки, пішли іншим шляхом і не здохли. У статті - наш досвід і висновки по одній з нетипових інтеграцій, які ми часто робимо: обміну контрагентами. Сподіваємося, що ця інформація допоможе Вам оцінити ризики такої інтеграції і вибрати правильний шлях.

Більшість наших клієнтів - виробничі або торгові компанії, в яких працює кілька сотень або тисяч осіб, які досягли певних успіхів і будують плани на майбутнє.
Одна з найбільш частих завдань - «додати онлайну», тобто вивести бізнес в Інтернет, збільшити продажі, знизити витрати, автоматизувати процеси, підвищити автономність.

Якщо компанія давно на ринку і твердо стоїть на ногах, у неї впроваджена та чи інша облікова система сімейства 1С. Ведеться каталог товарів, є база контрагентів і історія замовлень.

Поговоримо про те, як зв'язати цю «оффлайн-інформацію» з інтернет-магазином або особистим кабінетом клієнтів.

Зазвичай вихід в онлайн починається з завдання-мінімум:

  • вивантажити з облікової системи на сайт каталог товарів,
  • завантажити назад замовлення.

Завдання щодо проста. Вона вимагає 20% зусиль і дає 80% результату. Її може вирішити майже будь-який розробник. Не будемо на ній зупинятися.

Серйозним замовникам цього мало. Вони дорослі". Вони працюють вже багато років і встигли обрости обліковими системами, тисячами контрагентів і складними бізнес-процесами. Для них вихід в онлайн можливий тільки з відображенням усіх процесів в інтернеті: на сайті, в інтернет-магазині, в CRM.

Зазвичай ці процеси зводяться до:

  • розрахунку персональних цін «як в обліковій системі»;
  • синхронізації адрес доставки і платіжних реквізитів;
  • оперативному інформуванню контрагентів про платіжний баланс, складі і статус замовлень / заявок / договорів і т. д.

Фундаментом для всіх цих процесів є вивантаження довідника контрагентів на сайт.

Дізналися себе? - Тоді в статті Ви знайдете мінну карту і рішення, які заощадять Вам багато місяців і грошей.

Вивантаження контрагентів: «дорогі» питання і набиті гулі

Будь-яка інтеграція схожа на зведення мосту одночасно з двох берегів: складно, дорого, ризиковано. А ще команди «будівельників» розмовляють на різних мовах: розробники сайтів і облікових систем часто один-одного погано розуміють.

У питаннях інтеграції максималізм буде коштувати Вам дуже дорого. І в грошовому і в тимчасовому вираженні. Щоб мінімізувати втрати потрібно включити почуття міри на максимум. Розглянуті нижче питання з'явилися з досвіду багатьох проектів, в тому числі невдалих.

Необхідний і достатній склад даних

Зазвичай крім контрагентів з 1С потрібно вивантажити знижки, адреси, платіжні реквізити, документи і їх статуси. Кожна нова сутність в геометричній прогресії збільшує трудомісткість розробки і тестування інтеграції.


Без адрес контрагентів і ще пари сутностей цілком можна запустити і почати експлуатувати сайт. Правильне рішення - робити ітераціями. Спроба зробити все одним етапом найчастіше приречена на провал проекту.

Частота і напрямок обміну

бувають:

  • разові вивантаження,
  • періодичні (наприклад, кожну годину),
  • режим реального часу.
Разові

правильно робити «на коліні» із застосуванням Excel і стандартних інструментів імпорту / експорту (зазвичай вони існують). Наприклад, так можна досить швидко вивантажити контрагентів (пошта + ПІБ контактної особи) з 1С і зареєструвати їх як користувачів сайту.

Періодичні вивантаження вже складніше. Вони мають на увазі необхідність при кожному обміні об'єднувати старі і нові дані. Для цього доведеться писати код. Багато коду. І в обліковій системі, і на сайті. Справжнім подарунком долі буде вже готовий формат / протокол обміну. Приклад буде нижче.

Ідеальним для бізнесу є режим реального часу. Він же буде найбільш трудомістким, ненадійним і незручним для розробників сайту. Такий режим має на увазі відправку купи запитів в облікову систему в момент при кожному відкритті кожної сторінки. А це десятки тисяч запитів на добу для сайту з «середньої» відвідуваністю. Зазвичай облікові системи не розраховані на такі навантаження.
Використовувати такий підхід доцільно тільки для обміну маленькими обсягами найкритичніших даних.

Важливе питання: які дані повинні тільки розвантажуватися на сайт, а які потрібно передавати «в обидві сторони». Двосторонній обмін складніше і вимагає визначити «хто головніший»?

Де джерело правди

Для антіхрупкості обміну контрагентами важливо, щоб повний і несуперечливий набір даних зберігався в 1С.
Розглянемо 2 приклади, коли ці вимоги порушується.

Приклад 1. Доп. інформація, якої немає в 1С
Зазвичай в 1С для контрагентів не вказані email-адреси. А для реєстрації на сайті вони потрібні (наприклад, для відправки пароля).
Звичайно, можна вносити руками на сайті, але ... Одного разу станеться збій в вивантаженні. Всі контрагенти будуть видалені з сайту.

Всі контрагенти будуть видалені з сайту

Подібні ситуації ми спостерігаємо на кожному проекті без винятку.

Вивантажити контрагентів заново - просте завдання. А ось повторно внести всі email-и на сайт - вже непросто. А головне прикро за втрачену роботу.
Мораль: не повинно бути ситуацій, коли дані вивантажуються з облікової системи і доповнюються на сайті.

Приклад 2. Платіжні реквізити контрагентів

Облікова система вміє вивантажувати і самих контрагентів, і їх платіжні реквізити. Представник контрагента «ГК Ромашка» авторизується на сайті, набирає кошик і при оформленні замовлення бачить все 5 юр. осіб від яких працює його холдинг.
Представник оформляє замовлення на одне з цих юр. осіб і в поле «телефон для зв'язку» бачить застарілий номер. Як його змінити? Є варіанти:

  • Дозволити змінювати, передавати в облікову систему разом із замовленням і оновлювати дані по контрагенту в обліковій системі. Немає захисту від дурня.
  • Дозволити змінювати, передавати в облікову систему разом із замовленням, в обліковій системі створювати нове юр. особа. Почнуть плодитися дублі.
  • Заборонити змінювати, нехай дзвонять в офіс і наші співробітники змінять в 1С самі. Падає конверсія, зростає навантаження на офіс.

Правильного рішення тут немає. Все залежить від Ваших внутрішніх правил. Найчастіше вибирають варіант з коригуванням по телефону.

IT-ресурси на стороні облікової системи

Для синхронізації контрагентів з сайтом у Вас повинні бути в наявності 1-2 програміста, які зможуть розробити потрібний механізм в обліковій системі. Це не типова настройка форм і правил обліку. Це програмування. Потрібно поставити собі питання: «а наші фахівці з обліковій системі XX точно зможуть»?


Досвід показує що кожен другий розробник 1С - не зможе. На середині шляху доведеться шукати інших розробників для доопрацювання. А це зупинка проекту на 1-2-4-12 місяців (цифри взяті з реальних проектів).

Структура даних на сайті і в 1С

Структура даних в обліковій системі (на прикладі 1С: УТ) сильно відрізняється від структури даних сайту. Навіть на логічному рівні.

На сайті є всього 2-3 суті відносяться до контрагентів:

  • Користувач = логін + пароль + email
  • Платіжний профіль = назва компанії + реквізити + контакти

Ще є групи користувачів, які взагалі-то повинні нести з собою права доступу. Але іноді їх можна використовувати для об'єднання кількох користувачів в «компанію».
Ще є групи користувачів, які взагалі-то повинні нести з собою права доступу

В 1С таких сутностей більше і пов'язані вони інакше.

В 1С таких сутностей більше і пов'язані вони інакше

Як поєднати 2 різних структури даних, потрібно вирішити на етапі проектування. Це не складно, але потрібно зануритися і заздалегідь продумати сценарії використання.

Окремо стоїть синхронізація адрес (юридичних, поштових, доставки замовлення).
І в 1С і на сайті для формування адреси використовуються деревовидні класифікатори: КЛАДР, ФИАС і їх модифікації. Проблема в їх розбіжності в обліковій системі і на сайті. В одному є рівень «ЮФО», в іншому - пропущений. В одному міста називаються «р Волгоград », в іншому -« Волгоград ».
Відмовитися від адрес на сайті не завжди можливо: вони використовуються для настройки служб доставки. Як з ними вчинити залежить від конкретного завдання.
Найбільш доцільним виглядає варіант, коли класифікатори адресуЗаповніть синхронізуються, а самі адреси між системами передаються у вигляді звичайних рядків (не структурована).

Зв'язок контрагентів із замовленнями

Коли ми вирішимо як зіставити контрагентів на сайті і в 1С (див. Попередній розділ) потрібно подбати, щоб контрагенти залишилися коректно пов'язані з іншими сутностями. Наприклад, із замовленнями на сайті.
Сама по собі ця зв'язок не запрацює коректно.

Як тестувати обмін контрагентами

Один з найбільш неочевидних питань: хто, як і скільки часу буде тестувати обмін контрагентами між Бітрікс і 1С. А тестувати її потрібно на декількох рівнях:

  • Формат і коректність даних при обміні файлами / повідомленнями / і т.д.
    На 1 перевірку файлу обміну йде до декількох годин роботи програміста. Зазвичай ми закладаємо в ціну інтеграції до 5 перевірок. Але якщо розробник з боку облікової системи не проводить тестування сам, то і 20 перевірок не вистачить.
  • Протокол обміну: послідовність кроків, сценарій дій в разі збоїв.
    Автоматизоване тестування на стику двох сильно різних систем робиться дуже рідко. Майже ніколи. А значить потрібно пара десятків годин на ручне тестування.
  • Сценарії використання
    Тут також є тільки ручне тестування. Виконувати його доведеться часто і по багато разів. А значить потрібно ще XX годин виконавців.
Мораль:

хто, як, що і скільки разів тестує потрібно домовлятися на березі. А ще непогано б заздалегідь продумати тестовані сценарії використання :) Якщо цього не зробити - тестування і запуск затягуються на кілька місяців, накопичуються взаємні образи.

Імпорт контрагентів: рецепти

За результатами пари десятків наших проектів з вивантаженням контрагентів ми виділили кілька сценаріїв передачі контрагентів. Який з них вибрати залежить від завдання, але є і рекомендований варіант «за замовчуванням».

Вивантаження контрагентів в 1С-Бітрікс "з коробки» 1С

... на жаль працює на тверду двійку. І краще працювати в найближчі роки не буде. На пряме запитання Product Manager-у БУС Юрію Волошину був отриманий такий же прямий відповідь: в 1С-Бітрікс вважають що вивантажувати контрагентів на сайт більшості власників сайтів не потрібно і даний механізм розвиватися не буде.


Можна звичайно взяти формат обміну з коробки і гарненько його допив. Ми пробували так робити на двох проектах. Трудомісткість розробки і тестування висока, якість низька. Чи не рекомендуємо.

«Миші, станьте їжачками» ... і використовуйте довідники

Готового (хорошого) механізму для вивантаження контрагентів в 1С-Бітрікс немає. Але є протокол і формат вивантаження довільних довідників з 1С. Їх може використовувати будь-яка облікова система, не тільки 1С.

Ідея полягає в тому, щоб сформувати на стороні облікової системи 1-2-10 довідників з потрібними даними (юр. Особи, платіжний баланс, доступи до різних типів цін) і вивантажити їх на сайт за допомогою готового «транспорту» . В результаті на сайті з'являться Highload-блоки. Працювати з ними одне задоволення (на відміну від Інфоблоки).
Так наприклад, реалізована вивантаження контрагентів на Mybox , Світлосила , GRASS і ще парі секретних проектів.

Рішення економить 100+ годин розробки та зарекомендувало себе як надійне. Саме цей спосіб ми рекомендуємо «за замовчуванням».
Уважний читач запитає: «але ж це тільки вивантаження контрагентів на сайт, а як же завантаження з сайту в 1С?». Все вірно, це тільки половина роботи. Але вона вже дозволяє реалізувати 90% бізнес-сценаріїв. А зворотне завантаження можна зробити, наприклад, разом з інформацією про замовлення.

Веб-сервіси та режим реального часу

Цей сценарій підходить, якщо Ваша облікова система доступна з інтернету (саме звідти до неї буде підключатися сайт) або сервер сайту знаходиться в тій же фізичної підмережі що і сервер 1С. І якщо ваші 1С-ники готові писати і підтримувати веб-сервіси. 1С вміє це все просто чудово, 1С-ники часто не вміють.

Вкрай бажано не звертатися до облікової системи при відкритті кожної сторінки, інакше вона захлинеться від хвилі запитів. Правильніше робити періодичні звірки даних або синхронізацію при певних подіях.

Даний спосіб можна використовувати для синхронізації контрагентів не тільки 1С, а й з іншими системами. Наприклад, у проекті «Клуб клієнтів Альфабанк» при авторизації користувача через веб-сервіси з зовнішньої системи завантажується інформація про нього.

Екзотика: транзитна база даних

Бази даних і сайту і облікової системи влаштовані нетривіально. Не можна ось так взяти і написати старий добрий SQL-запит. Плюс з міркувань безпеки ніхто не хоче пускати «чужинців» в свою базу.

В цьому випадку можна зустрітися на нейтральній території. - Завести окрему базу даних, з якої без побоювань зможуть працювати обидві системи. Для програмістів такий спосіб зручніше ніж передача даних через файли.
Зрозуміло, крім транзитної БД потрібно ще організувати канал оповіщення. Через нього системи будуть повідомляти одна одну про зміни даних. Це можуть бути, наприклад, веб-сервіси описані в попередньому пункті.
За таким сценарієм працює «Особистий кабінет клієнтів Євраз» .

У сухому залишку

Обмін контрагентами між сайтом і обліковою системою - фундамент для розвитку сайту. Щоб зробити його правильно і з першого разу потрібно мати відповідний досвід. Ми - маємо і готові допомогти Вам в інтеграційних завданнях. Звертайтеся!

Оцініть статтю:

Дізналися себе?
Двосторонній обмін складніше і вимагає визначити «хто головніший»?
Як його змінити?
Потрібно поставити собі питання: «а наші фахівці з обліковій системі XX точно зможуть»?
Уважний читач запитає: «але ж це тільки вивантаження контрагентів на сайт, а як же завантаження з сайту в 1С?

Новости