Нетривиальная интеграция сайта с 1С — это все что не укладывается в стандартный обмен данными.
Сперва давайте разберемся, что такое стандартный обмен.
В Битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов
Штатный механизм обмена
Признаки нетривиальной интеграции
С этой компанией работают более 3500 компаний в 80 регионах России: оптовые покупатели, корпоративные клиенты, специализированные магазины и крупные торговые сети. Масштаб впечатляет.
Для оптимизации работы с организациями (юридические лица и индивидуальные предприниматели) было принято решение о создании корпоративного интернет-магазина .
Оптовый интернет магазин имеет свои особенности, что отличает его от розничного:
Обмен партнерами и контрагентами
Задача:
Что есть на стороне 1С:
Партнеры -> У каждого партнера есть несколько контрагентов -> У каждого контрагента есть несколько договоров, расчетных счетов и адресов доставок, а также информация по остатку и персональному менеджеру.
Что требуется на стороне сайта:
Партнеры из 1С должны формировать пользователей на стороне сайта. При этом регистрация на самом сайте должна отсутствовать. У каждого пользователя должна быть возможность переключения между своими контрагентами. При этом у каждого контрагента должна быть своя корзина, свой личный кабинет и свои персональные цены (о ценах в кейсе 2). Договора, р/с и адреса должны использоваться при оформлении заказа, остаток и персональный менеджер должен отображаться в личном кабинете.
Решение:
На стороне 1С:
Потребовалось сформировать соответствующие справочники, которые можно выгрузить штатным механизмом.
На стороне сайта:
На стороне 1С были изменены данные контрагентов и выгружены на сайт. На стороне сайта часть контрагентов подверглись изменениям, а часть контрагентов эта участь миновала. Стали разбираться и выяснили, что для контрагента приходит уникальный код версии. Если он изменился, то данные изменяются на сайте, если нет, то остаются неизменными. Отказ от сравнения версий на стороне сайта помог решить проблему с обновлением информации.
Вывод:
Нетиповой обмен требуется дорабатывать на стороне двух систем. Могут встретиться различные сложности. Главное, чтобы хватило компетенции определить источник проблемы и исправить. Имея большой опыт в разработке и интеграции различных систем, мы делаем это успешно.
Индивидуальные цены
Задача:
Что есть на стороне 1С:
У контрагентов есть типовые и индивидуальные соглашения, в которых определены индивидуальные типы цен и скидки.
Что требуется на стороне сайта:
Цены должны соответствовать ценам из соглашений в 1С.
Решение:
На стороне 1С:
Потребовалось сформировать соответствующие справочники, которые можно выгрузить штатным механизмом.
На стороне сайта:
Было придумано решение, которое позволило использовать штатные возможности отображения скидок Битрикса, но их расчет осуществлять с использованием справочников из 1С.
Когда вы заходите на страницу с товаром, то его цена с учетом скидки неизвестна. Расчет происходит “на лету” из справочника скидок контрагентов и подставляется в нужном месте по технологии Ajax. Это сделано для ускорения отображения страницы за счет возможности создания ее кэша (готовых страниц).
С какой проблемой столкнулись и как решили:
Индивидуальные цены на сайте - достаточно сложная задача. Учитывая ограниченность возможностей технических ресурсов и используемых трудозатрат, ее решение не будет идеальным. Мы решили данную задачу вышеописанным способом. Если у вас есть интересное решение, то можете поделиться им в комментарии.
habr.com
Сперва давайте разберемся, что такое стандартный обмен.
В Битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов
Что умеет штатный механизм обмена

- Импорт каталога товаров из 1С на сайт.
- Экспорт каталога товаров с сайта в 1С.
- Экспорт заказов/контрагентов с сайта в 1С.
- Импорт заказов/контрагентов из 1С на сайт.
- Импорт справочников из 1С на сайт.
Признаки нетривиальной интеграции с 1С

- Доработанная под логику бизнеса 1С.
- Нужные данные не выгружаются на сайт.
- Нужные данные выгружаются на сайт, но не туда.
- При выгрузке есть ошибки.
Кейсы по обмену данными с 1С на примере интернет-магазина канцтоваров
Интернет-магазин канцтоваров — это крупный поставщик канцелярских товаров на российском рынке, ведущий оптовый оператор и трижды обладатель престижной канцелярской премии «Золотая Скрепка» в номинации «Лучшая национальная торговая компания».С этой компанией работают более 3500 компаний в 80 регионах России: оптовые покупатели, корпоративные клиенты, специализированные магазины и крупные торговые сети. Масштаб впечатляет.
Для оптимизации работы с организациями (юридические лица и индивидуальные предприниматели) было принято решение о создании корпоративного интернет-магазина .
Оптовый интернет магазин имеет свои особенности, что отличает его от розничного:
- Персональные цены.
- Упрощенная навигация и быстрый поиск.
- Товары без картинок и подробных описаний.
- Табличная форма заказа.
- Оптовые единицы измерения.
- Заказ по списку.
- Личный кабинет с платежным балансом счета.
- “Поговорить с вашим менеджером”.
- Счета-фактуры, товарно-транспортные накладные, договоры, акты.
- Интеграция с учетной системой и логистикой.
Кейс 1: Обмен партнерами и контрагентами

Задача:
Что есть на стороне 1С:
Партнеры -> У каждого партнера есть несколько контрагентов -> У каждого контрагента есть несколько договоров, расчетных счетов и адресов доставок, а также информация по остатку и персональному менеджеру.
Что требуется на стороне сайта:
Партнеры из 1С должны формировать пользователей на стороне сайта. При этом регистрация на самом сайте должна отсутствовать. У каждого пользователя должна быть возможность переключения между своими контрагентами. При этом у каждого контрагента должна быть своя корзина, свой личный кабинет и свои персональные цены (о ценах в кейсе 2). Договора, р/с и адреса должны использоваться при оформлении заказа, остаток и персональный менеджер должен отображаться в личном кабинете.
Решение:
На стороне 1С:
Потребовалось сформировать соответствующие справочники, которые можно выгрузить штатным механизмом.
На стороне сайта:
- Программирование формирование пользователей.
- Программирование переключения между контрагентами и отображения соответствующих им данных.
- Доработка оформления заказа на основании данных контрагента.
- Доработка отображения данных контрагента в личном кабинете.
На стороне 1С были изменены данные контрагентов и выгружены на сайт. На стороне сайта часть контрагентов подверглись изменениям, а часть контрагентов эта участь миновала. Стали разбираться и выяснили, что для контрагента приходит уникальный код версии. Если он изменился, то данные изменяются на сайте, если нет, то остаются неизменными. Отказ от сравнения версий на стороне сайта помог решить проблему с обновлением информации.
Вывод:
Нетиповой обмен требуется дорабатывать на стороне двух систем. Могут встретиться различные сложности. Главное, чтобы хватило компетенции определить источник проблемы и исправить. Имея большой опыт в разработке и интеграции различных систем, мы делаем это успешно.
Кейс 2: Индивидуальные цены

Задача:
Что есть на стороне 1С:
У контрагентов есть типовые и индивидуальные соглашения, в которых определены индивидуальные типы цен и скидки.
Что требуется на стороне сайта:
Цены должны соответствовать ценам из соглашений в 1С.
Решение:
На стороне 1С:
Потребовалось сформировать соответствующие справочники, которые можно выгрузить штатным механизмом.
На стороне сайта:
Было придумано решение, которое позволило использовать штатные возможности отображения скидок Битрикса, но их расчет осуществлять с использованием справочников из 1С.
Когда вы заходите на страницу с товаром, то его цена с учетом скидки неизвестна. Расчет происходит “на лету” из справочника скидок контрагентов и подставляется в нужном месте по технологии Ajax. Это сделано для ускорения отображения страницы за счет возможности создания ее кэша (готовых страниц).
С какой проблемой столкнулись и как решили:
- Сортировка товаров по цене. Так как цены со скидкой “прилетают” после загрузки страницы, то корректная сортировка возможна только после их получения. В данному случае применимо решение с небольшой погрешностью. Товары можно отсортировать по цене без применения скидок, а в рамках страницы уже с учетом скидок после их получения. Погрешность будет наблюдаться именно на стыке страниц при постраничной навигации.
- “Умный” фильтр. Использование “умного” фильтра в Битрикс основано и возможно по присвоенному контрагенту типу цены без скидок. Для учета скидок потребуется данный инструмент прилично доработать, что может быть неоправданно затратно.
- Рассчитывать цены на стороне 1С с учетом скидок. Выгружать их в виде типов цен для контрагента на сайте. На сайте предполагается 2000 - 3000 контрагентов, что равносильно 2000 - 3000 типам цен. Редактирование товара с таким количеством типов цен на стороне сайта становится невозможным, так как страница редактирования просто зависает или выдают ошибку о нехватке памяти. При этом открытие страницы с “лица” сайта со списком товаров осуществляется за 20 - 30 секунд, что также неприемлемо.
- Рассчитывать цены на стороне сайта с учетом скидок в специальную таблицу. Потом выводить цены уже исходя из нее. Расчет цен для одного контрагента для всех товаров на стороне сайта с использованием сервера заказчика составляет 20 секунд. Для 2000 - 3000 - это уже 11 ~ 17 часов. С учетом изменения и выгрузок скидок каждые 20 - 30 мин, получаем нерабочий вариант.
Индивидуальные цены на сайте - достаточно сложная задача. Учитывая ограниченность возможностей технических ресурсов и используемых трудозатрат, ее решение не будет идеальным. Мы решили данную задачу вышеописанным способом. Если у вас есть интересное решение, то можете поделиться им в комментарии.
Заключение
В этом проекте были достигнуты следующие бизнес-результаты:- Компания начала работать с клиентами быстрее, лучше, эффективнее и напрямую.
- Автоматизированы рутинные операции (все заказы попадают напрямую в 1С).
- Проектирование крупных информационных систем.
- Разработка на Битрикс.
- Разработка высоконагруженных проектов.
- Интеграция 1С-Битрикс с 1C и другими системами.
- Создание интернет-магазинов с адаптивным дизайном.
Нетривиальная интеграция сайта с 1С на примере интернет-магазина канцтоваров
Нетривиальная интеграция сайта с 1С — это все что не укладывается в стандартный обмен данными. Сперва давайте разберемся, что такое стандартный обмен. В Битриксе есть встроенный функционал для обмена...
