Сделал приложение для Битрикс24 сам: четыре способа взять данные из 1С и цена каждого
Приложение готово, осталось наполнить его данными из 1С. Разбираем четыре пути честно: что каждый требует, сколько занимает и где ломается.
Задача
Приложение внутри Битрикс24 написано: интерфейс есть, логика есть, права настроены. Дальше нужны живые данные из 1С - остатки при подборе товара, долг клиента в карточке сделки, статус отгрузки.
И тут выясняется, что взять их неоткуда. Битрикс24 живет в интернете и имеет нормальный REST, а 1С стоит в офисе за роутером, без белого IP, и открывать ее наружу никто не хочет.
Как это решают обычно
Разберем четыре пути по порядку, честно про каждый.
Первый: типовой обмен 1С и Битрикс24. Работает, если вам нужны именно те сущности, ради которых он сделан: каталог, заказы, контрагенты. Настраивается без программиста, живет годами. Но обмен гоняет предусмотренные данные по своим правилам и не отвечает на произвольный вопрос. Долг клиента с разбивкой по срокам через обмен каталога вы не получите. Цена: настройка обычно день, дальше почти бесплатно, но потолок возможностей жесткий.
Второй: публикация базы и свой HTTP-сервис. Технически самый прямой путь: пишете сервис в конфигураторе, публикуете базу на веб-сервере, получаете белый IP, пробрасываете порт, закрываете сертификатом. Данные любые, какие напишете. Цена: это изменение конфигурации плюс работа сисадмина, на практике две-три недели вместе с согласованиями. А главная плата не в днях: база с договорами, ценами и персональными данными становится доступна из интернета, и дальше ее надо защищать.
Третий: промежуточный сервер с выгрузками. База складывает файлы, сервер их разбирает, приложение читает из него. Дешево на старте и понятно любому. Цена: данные всегда вчерашние, звеньев три, ломается любое, а при сбое никто не узнает, пока не пожалуется пользователь.
Четвертый: прямое чтение SQL базы 1С. Кажется самым быстрым: подключился и читай. На деле структура хранения не документирована, итоги считаются не так, как кажется, а обновление платформы ломает запросы молча. Цена: неделя экономии сейчас и неизвестная сумма потом, когда цифры в приложении разойдутся с 1С.
Как быстрее
Пятый путь отличается от четырех предыдущих направлением связи: наружу ходит сама база. В нее ставится внешняя обработка, она по исходящему HTTPS спрашивает у шлюза, есть ли задание, выполняет запрос внутри базы и возвращает результат. Белый IP, публикация и открытые порты не нужны, конфигурация не меняется.
Для приложения это выглядит как обычный HTTP-запрос с ключом в заголовке и ответ в JSON. Запрос пишется на языке запросов 1С, то есть доступны остатки, обороты, отборы и соединения - все то же, что вы пишете в отчетах.
| Номенклатура | Склад | Свободно | Резерв | Цена |
|---|---|---|---|---|
| Кабель ВВГ 3х2.5 | Основной | 1240 | 300 | 78 |
| Автомат 16А | Основной | 56 | 0 | 410 |
| Щит навесной 12 | Транзитный | 0 | 0 | 2 250 |
Цена этого пути: около пятнадцати минут на подключение базы и ваш обычный код на стороне приложения. Платите за дни работы ключа, а не за интеграцию.
Как это сделать
1. Зарегистрируйтесь в кабинете, получите ключ, скачайте обработку и запустите ее в базе.
2. В приложении Битрикс24 обращайтесь к API сервиса с этим ключом. Текст запроса и отбор задаете вы.
3. Выдайте приложению отдельный ключ, а ключ базы оставьте у себя: его можно выключить или перевыпустить, не трогая остальное.
По умолчанию ключ работает только на чтение, изменить данные в базе через него нельзя физически. Персональные данные закрываются маскировкой принудительно.
Что стоит знать заранее
Скорость ответа зависит от базы. Запросы к одной базе выполняются по очереди, по одному, поэтому для интерфейса, который открывают десятки раз в день, держите запросы узкими: период, отбор, ограничение строк.
Пока 1С не запущена, данных нет: сервис честно ответит, что база не на связи. Это стоит проговорить с заказчиком до внедрения.
И про имена объектов: в доработанной конфигурации они свои. Первый запрос проверьте на живой базе, особенно если текст запроса вам подсказал ИИ.
Не уверены, как подключается именно ваша база - в 1С:Фреш, в аренде, своя серверная или файловая? Выберите свой случай на главной: покажем, что мешает и что меняет мост.