В практике автоматизации бизнеса часто возникает ситуация, когда руководство компании, очарованное красивым веб-интерфейсом и возможностями современных CRM-систем, загорается идеей перенести весь оперативный учет из 1С в Битрикс24. В этой статье мы подробно разберем, почему попытка сделать Битрикс24 первичной учетной системой для сложных экономических схем (особенно в сфере автосервиса, оптово-розничной торговли и многоскладского учета) гарантированно ведет к потере бюджетов. Мы также рассмотрим правильную архитектурную схему взаимодействия этих платформ и решим сопутствующие задачи интеграции.
---
Для начала проанализируем саму суть платформ. Стоит помнить, что фирма «1С» владеет 50% акций компании «1С-Битрикс». Продукты не конкурируют на уничтожение, а дополняют друг друга. Источником иллюзий руководства и агрессивных интеграторов часто становится путаница в понятиях фронт-офиса (Front-end) и бэк-офиса (Back-end):
Попытка заставить Битрикс24 выполнять функции бэк-офиса аналогична попытке построить учетную систему на базе Excel. Теоретически это возможно (ведь PHP — язык общего назначения, и на нем можно написать все что угодно), но практически стоимость разработки, кастомизации и последующего сопровождения окажется астрономической.
---
Давайте выясним технические причины, по которым Битрикс24 не сможет полноценно заменить конфигурации 1С (например, 1С:Управление торговлей или специализированную Рарус: Альфа-Авто):
ЗаказНаряд. Это сложный объект, который должен одновременно списывать автозапчасти со склада, учитывать выработку конкретных автомехаников (для расчета их сдельной зарплаты), фиксировать данные конкретного автомобиля (VIN, пробег, марка) и подтягивать нормо-часы из справочников автопроизводителей. В Битрикс24 нет готовых объектов для работы с такой структурой данных.---
Рассмотрим финансовую сторону вопроса. Руководство часто считает, что лицензии 1С и услуги франчайзи стоят дорого, а Битрикс24 можно «допилить» силами штатных веб-программистов. Это опасное заблуждение.
Разработчики Битрикс24, способные проектировать сложные интеграционные решения и писать кастомные модули на PHP (D7), стоят на рынке труда значительно дороже среднестатистических 1С-программистов. Попытка поручить эту задачу штатному веб-дизайнеру или контент-менеджеру сайта неминуемо приведет к срыву сроков и увольнению сотрудника, не справившегося со сложной архитектурной задачей бэк-офиса.
---
Проанализируем жизнеспособную схему интеграции, которая действительно повышает эффективность бизнеса, не разрушая учетные контуры. В этой схеме Битрикс24 первичен только для коммуникаций, а 1С первична для учета.
Рассмотрим шаг за шагом, как должен выглядеть этот процесс:
ЗаказНаряд или ЗаказПокупателя.---
В обсуждении упоминается главная «боль» финансового директора: базы 1С у разных компаний холдинга разделены (РИБ), из-за чего клиент-должник может набрать товар в одной компании, имея долги в другой. Финансовый директор ошибочно видит решение этой проблемы в переходе на Битрикс24.
Выясним, как решить эту задачу изящно и дешево на стороне 1С с помощью создания централизованного веб-сервиса проверки лимитов дебиторской задолженности. Нам не нужно объединять все базы в одну или переносить учет в Битрикс. Достаточно развернуть небольшую центральную базу (базу консолидации НСИ и взаиморасчетов) и опубликовать в ней HTTP-сервис.
Рассмотрим пример реализации HTTP-сервиса на стороне 1С, который принимает УНП/ИНН контрагента и возвращает его суммарный долг по всем компаниям холдинга.
Пример кода для HTTP-сервиса в центральной базе 1С:
Функция ПолучитьДебиторкуКонтрагента(Запрос)
ИНН = Запрос.ПараметрыЗапроса.Получить("ИНН");
Если ПустаяСтрока(ИНН) Тогда
Ответ = Новый HTTPСервисОтвет(400);
Ответ.УстановитьТелоИзСтроки("Не указан ИНН контрагента");
Возврат Ответ;
КонецЕсли;
// Запрос к регистру взаиморасчетов центральной базы холдинга
ЗапросБД = Новый Запрос;
ЗапросБД.Текст =
"ВЫБРАТЬ
| СУММА(ВзаиморасчетыОстатки.СуммаВзаиморасчетовОстаток) КАК ДолгХолдингу
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(, Контрагент.ИНН = &ИНН) КАК ВзаиморасчетыОстатки";
ЗапросБД.УстановитьПараметр("ИНН", ИНН);
Выборка = ЗапросБД.Выполнить().Выбрать();
ОбщийДолг = 0;
Если Выборка.Следующий() Тогда
ОбщийДолг = ?(Выборка.ДолгХолдингу = Неопределено, 0, Выборка.ДолгХолдингу);
КонецЕсли;
// Формируем JSON-ответ
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
СтруктураОтвета = Новый Структура;
СтруктураОтвета.Вставить("ИНН", ИНН);
СтруктураОтвета.Вставить("ОбщийДолг", ОбщийДолг);
СтруктураОтвета.Вставить("РазрешитьОтгрузку", ?(ОбщийДолг < 50000, Истина, Ложь)); // Лимит 50 000 руб.
ЗаписатьJSON(ЗаписьJSON, СтруктураОтвета);
СтрокаJSON = ЗаписьJSON.Закрыть();
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Ответ.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8);
Возврат Ответ;
КонецФункции
Теперь при выписке расходной накладной в любой локальной базе 1С достаточно сделать быстрый HTTP-запрос к центральной базе. Если получен ответ "РазрешитьОтгрузку": false, программа заблокирует проведение документа. Схема работает мгновенно, не требует покупки лицензий Битрикс24 и решает проблему дебиторской задолженности со стопроцентной точностью.
---
Если вы столкнулись с давлением со стороны начальника отдела ИТ или бизнес-руководства, продвигающих утопическую идею «учета в Битрикс24», используйте следующий план действий:
Помните, что грамотное проектирование архитектуры ИТ-систем — это залог выживания бизнеса. Четкое разделение зон ответственности между Битрикс24 (коммуникации) и 1С (учет) позволит вашей компании получить максимум преимуществ от обеих платформ без колоссальных финансовых потерь.