В одной оптовой компании менеджеры каждое утро проверяли оплаты так: открывали 1С:УТ 11, искали счёт по номеру, возвращались в amoCRM и переносили сделку в «Оплачено». На 40 сделок уходило около часа у каждого из шести менеджеров. Обмен между системами при этом был настроен, но передавал только контрагентов.
Интеграция CRM с 1С чаще ломается на договорённостях, чем на технике: что передаём, в какую сторону, как часто и кто прав, если данные разошлись. Ниже схема, по которой мы проектируем обмен.
Что синхронизировать
Список объектов почти всегда один и тот же, разница в деталях.
| Объект | Направление | Частота | Кто ведёт |
|---|---|---|---|
| Контрагенты и договоры | CRM → 1С, реквизиты обратно | при создании и изменении | Карточку заводит менеджер, реквизиты проверяет бухгалтерия |
| Номенклатура | 1С → CRM | раз в час или по изменению | 1С |
| Цены и виды цен | 1С → CRM | раз в час, при смене прайса сразу | 1С |
| Остатки и резервы | 1С → CRM | каждые 5–15 минут | 1С |
| Заказ покупателя | CRM → 1С | сразу после подтверждения | CRM до передачи, дальше 1С |
| Счёт на оплату | 1С → CRM, номер и PDF | сразу | 1С |
| Оплаты | 1С → CRM | после разноски выписки | 1С |
| Отгрузки и УПД | 1С → CRM | при проведении документа | 1С |
Главное правило: у каждого поля один владелец. Цену меняют только в 1С, телефон контакта только в CRM. Если поле можно править с двух сторон, через месяц у вас будут две разные цены на один товар и спор, какая из них правильная.
Когда заказ уходит в 1С
Самый спорный вопрос в проекте. Варианта три:
- При создании сделки. В 1С копятся черновики, которые потом никто не удаляет. Мы так не делаем.
- При выставлении счёта. Удобно, если счёт печатают из 1С. Менеджер нажимает кнопку в CRM, через 10–20 секунд в сделке появляются номер счёта и PDF.
- После оплаты. Подходит, если склад работает по предоплате и заказ без денег ему не нужен.
После передачи состав заказа в CRM блокируется. Если клиент меняет количество, менеджер создаёт корректировку, и она тоже уходит в 1С. Иначе в CRM будет 100 штук, в 1С 80, а отгрузят 90.
Частота: что нужно в реальном времени
Мгновенно нужны две вещи: подтверждение, что заказ создан в 1С, и номер счёта. Менеджер ждёт их, пока клиент на телефоне. Остатки достаточно обновлять раз в 5–15 минут, если в момент резерва CRM ещё раз запрашивает 1С. Номенклатуру и цены раз в час. Оплаты появляются, когда бухгалтер загрузил выписку и разнёс её, обычно 2–3 раза в день, и ускорять это обменом бессмысленно.
Технически мы делаем обмен через HTTP-сервис на стороне 1С и очередь сообщений между системами. Если 1С недоступна, например на время обновления конфигурации, сообщения ждут в очереди и уходят позже. Ничего не теряется и не задваивается.
Подводные камни
Дубли контрагентов
Сопоставляем по ИНН и КПП, для ИП по ИНН. Филиал с другим КПП заводим отдельным контрагентом под той же головной компанией. Физлиц сопоставляем по телефону, но перед объединением карточек спрашиваем человека.
Номенклатура с характеристиками
В 1С:УТ 11 у товара бывают характеристики и упаковки: «краска белая, 10 л, ведро». Если CRM знает только наименование, заказ уйдёт без характеристики и встанет при проведении. Передавать нужно идентификатор характеристики и единицу измерения.
Частичная отгрузка
Заказ на 10 позиций отгружают в два захода. В CRM нужен статус «Отгружен частично» и список того, что осталось. Иначе менеджер закроет сделку после первой УПД.
Обновления типовой конфигурации
Если обмен встроен в код типовой конфигурации, каждое обновление 1С его ломает. Мы выносим обмен в расширение, тогда обновления ставятся без переписывания.
Ошибки без адресата
Заказ не создался в 1С, потому что у контрагента не заполнен договор. Если об этом знает только лог на сервере, менеджер узнает через три дня от клиента. Каждая ошибка обмена должна приходить конкретному человеку с понятным текстом: «не заполнен договор, заказ № 1452 не передан».
Две базы 1С
Часто управленческий учёт ведётся в 1С:УТ 11, а бухгалтерия в 1С:Бухгалтерии 3.0 с типовой синхронизацией между ними. Тогда CRM обменивается только с УТ, дальше работает штатный обмен. Если писать в обе базы напрямую из CRM, документы задвоятся.
Пометка на удаление
В 1С документы обычно не удаляют, а помечают. Если обмен этого не учитывает, отменённый счёт продолжает висеть в CRM как действующий. Пометку на удаление передаём отдельным событием, и сделка в CRM возвращается на этап «Счёт не выставлен».
Готовый коннектор или своя интеграция
Для amoCRM и Битрикс24 есть готовые модули обмена с 1С. С типовым набором они справляются: контрагенты, номенклатура, заказ, оплата. Если у вас один склад, нет характеристик и частичных отгрузок, начните с готового модуля.
Своя интеграция нужна, когда есть нестандартные документы, несколько организаций в одной базе, сильно доработанная 1С или когда сама CRM написана под ваш процесс. По срокам это обычно 3–6 недель вместе с тестированием на копии рабочей базы.
Перед стартом
- Возьмите 20 последних заказов и проследите путь каждого: где создан, где выставлен счёт, где отмечены оплата и отгрузка.
- Составьте таблицу полей и назначьте владельца каждому.
- Уточните у главбуха, какие документы он хочет формировать только в 1С.
- Сделайте копию рабочей базы 1С для тестов. Проверять обмен на рабочей нельзя.
Если обмен у вас уже есть, но работает наполовину, можно написать нам в Telegram @automationdev24: опишите процесс, и мы скажем, хватит ли доработки текущей системы или нужна своя.
Узнали свою ситуацию?
Опишите в Telegram, как у вас сейчас идут заявки и учёт. Скажем, хватит ли доработки вашей CRM или лучше собрать свою систему. Первая консультация бесплатная.
Написать в Telegram