Как подключить чат ИИ к своей 1С
Главное препятствие не там, где его ищут. Чат ИИ не хранит ваши пароли, не знает, где стоит ваша база, и не умеет открывать чужие сети. Даже если вы напишете ему имя базы и пароль прямо в переписку, дойти до нее он не сможет: у обычной базы 1С нет адреса, по которому к ней обращаются снаружи.
Отсюда ровно два пути. Либо вы носите данные руками: выгрузили отчет, вставили в чат, получили ответ, повторили завтра. Либо между базой и чатом стоит шлюз - сервис, который умеет спросить у базы и отдать ответ. Дальше разберем, чем хороший шлюз отличается от опасного и как это выглядит для вашего случая.
Почему нельзя просто дать чату доступ
Чат ИИ живет в интернете, ваша база - в офисе, в арендованном облаке или на одном компьютере в бухгалтерии. Между ними нет дороги, и это не ошибка, а нормальное устройство сети.
Пароль здесь ничего не решает. Даже правильные имя и пароль бесполезны, если к базе некуда обратиться. А если такую дорогу сделать - опубликовать базу на веб-сервере, получить белый IP, пробросить порт, - вы решите маленькую задачу и получите большую: база с договорами, ценами и персональными данными станет доступна из интернета.
Второе препятствие мягче, но злее. Даже подключившись, ИИ не знает вашей конфигурации: имена объектов и реквизитов у всех свои, а после доработок расходятся даже с типовыми. Спрошенный про остатки, он уверенно придумает правдоподобное имя таблицы и выдаст цифру, которой нет.
Два пути: руками или через шлюз
Руками. Выгрузили отчет в Excel, скопировали в чат, получили ответ. Работает, ничего настраивать не нужно. Но данные всегда вчерашние, каждый новый вопрос - новая выгрузка, а в чат вместе с отчетом уезжают ФИО, телефоны и суммы по клиентам.
Через шлюз. Между базой и чатом ставится посредник: чат спрашивает его, он спрашивает базу. Вопрос задается словами, ответ приходит по живым данным. Но тут важно, какой именно это посредник - и вот здесь разница принципиальная.
Опасный шлюз и понятный шлюз
Опасный вариант выглядит так: вам дают программу, ставят ее рядом с базой и просят указать путь к базе и пароль. Что она читает и куда отправляет, вы не знаете: исходного кода нет, посмотреть нечего.
Понятный вариант устроен иначе. В базу ставится внешняя обработка с открытым кодом: ее можно прочитать до установки и увидеть, что она делает ровно то, о чем написано. Она сама обращается наружу по HTTPS, спрашивает, есть ли задание, выполняет запрос внутри базы и возвращает результат. Входящих соединений в вашу сеть нет вообще.
А как это будет у вас
Дальше все зависит от того, где стоит база. Выберите свой случай - покажем, что именно мешает и что меняет шлюз.
Базой управляете не вы: в нее нельзя поставить обработку и нельзя опубликовать ее наружу. Доступ к данным есть только тот, что дал оператор сервиса, и это OData.
Подключение идет по OData: вы заводите источник в кабинете, дальше сервис сам обращается к вашей области. Обработку ставить не нужно, потому что ставить ее некуда. Персональные данные при этом закрывает сервер, до отправки в ИИ.
База на чужой машине, доступ к ней через удаленный рабочий стол. Публиковать ее наружу провайдер обычно не дает, а если и даст, платить придется за отдельный адрес и сертификат.
Обработка ставится в базу как обычный внешний файл, прямо в вашем сеансе. Она сама обращается наружу по HTTPS, поэтому от провайдера не нужно ни белого IP, ни публикации, ни открытых портов.
База в вашей сети, наружу ничего не открыто, и открывать никто не хочет. Публикация на веб-сервере означает разговор с сисадмином, белый IP и проброс портов.
Направление разворачивается: наружу ходит сама база. Обработка запускается на сервере регламентным заданием и держит связь постоянно, входящих соединений в сеть нет ни одного.
У файловой базы нет ни адреса, ни веб-сервера, ни службы. Все, что есть, - это 1С на конкретном компьютере, которую вечером выключают вместе с ним.
Обработка открывается в этой же 1С и работает, пока открыта. Для постоянной связи базу переводят в сеанс, который не закрывают, либо ставят обмен на машине, которая работает всегда.
Конфигурация на обычных формах, платформа старая, половина современных решений в ней просто не запускается: нет управляемого интерфейса, а иногда и встроенной работы с JSON.
Для таких баз есть отдельные сборки обработки: под обычные формы и под платформы 8.3.5 и ниже. Конфигурация не меняется, поддержка не слетает: это внешняя обработка, а не расширение.
Что будет на другом конце
Со стороны 1С все одинаково: обработка и ключ. А вот кто спрашивает базу - чат, агент в редакторе кода, приложение в Битрикс24 или ваш скрипт, - меняет то, что вы получаете на выходе.
Спрашиваете словами, без отчетов на заказ: главный бухгалтер - про незакрытые документы и НДС к вычету, экономист - про себестоимость и отклонения, финансовый директор - про дебиторку и платежный календарь, директор - про выручку и маржу за период. Ответ приходит по живым данным, а не по вчерашней выгрузке: можно свести отчет, сравнить периоды или спросить, из чего сложилась цифра. Запись включается отдельно, и первый прогон всегда пробный, с откатом.
Закрыты принудительно: ФИО, ИНН, СНИЛС, телефоны и почта уходят замаскированными, и отключить это пользователь не может. Есть режим, в котором вместо людей наружу идут условные метки, а настоящие имена подставляются обратно уже внутри вашей 1С.
Программист 1С получает агента, который видит настоящую структуру базы и справку по конфигурации, поэтому пишет запросы и код по вашим именам объектов, а не по выдуманным. Аналитику 1С это дает разбор чужой базы без выгрузок: проверить гипотезу, найти расхождение, собрать отчет к встрече. Гипотезу можно тут же прогнать запросом и увидеть результат.
Тот же ключ и та же маскировка, что и везде. Для разработки разумно завести отдельный ключ только на чтение и отдельного пользователя 1С с узкими правами: наружу не уйдет ничего сверх того, что этому пользователю видно.
Приложение внутри Битрикс24 получает данные из 1С обычным запросом: долг клиента в карточке сделки, остатки при подборе товара, отгрузки за неделю. Писать его можно в чате с ИИ - на стороне приложения это обычный HTTP и JSON, без тонкостей 1С.
Приложению выдается свой ключ, а ключ базы ему не передается. Ключ приложения имеет те же или более узкие права, гасится отдельно и маскировку наследует: ослабить ее приложение не может.
Скрипт на питоне, сайт, телеграм-бот, дашборд, обмен с ТСД или складским софтом. Запрос пишется на языке запросов 1С, ответ приходит в JSON. Есть и запись: скриптом, с обязательным пробным прогоном и ключом операции, чтобы повтор не создал документ дважды.
Маскировка работает и здесь: это настройка ключа, а не чата. Для сайта это к лучшему - наружу уходят остатки и цены, а не картотека клиентов.
CRM, личный кабинет клиента, система качества, BI и любые сервисы, умеющие обычный HTTP-запрос. Для регулярных задач есть выгрузка файлами: сервис соберет данные и отдаст готовый файл, а не будет держать базу занятой.
Правило одно для всех: персональные значения закрываются до того, как данные уйдут во внешнюю систему. При частичной маскировке скачивание файлов запрещено, чтобы выгрузка не стала обходом.
Как чат будет ходить за данными
Ваш чат умеет подключать внешние действия по описанию: вы один раз даете ему адрес сервиса и ключ, и дальше он сам ходит за данными, когда они нужны для ответа. Это самый короткий путь: настройка занимает минуты и делается один раз.
В любом из вариантов ключ доступа выдается в кабинете и вставляется в настройки, а не в переписку. Ключ можно выключить в один клик, а если он утек - перевыпустить.
Что с безопасностью
По умолчанию ключ работает только на чтение: изменить данные в базе через него нельзя физически, запросы на изменение отклоняются и шлюзом, и обработкой. Запись включается отдельно, и первый прогон всегда пробный, с откатом.
Права у обработки ровно те, что у пользователя 1С, под которым она запущена: заведите отдельного пользователя - и наружу не уйдет ничего сверх его прав.
Персональные данные закрываются маскировкой принудительно: ФИО, ИНН, СНИЛС, телефоны и почта уходят закрытыми, и отключить это пользователь не может.
Что стоит знать заранее
Пока 1С не запущена, данных нет: шлюз честно ответит, что база не на связи, а не выдумает цифры. Для постоянной работы обмен ставят регламентным заданием.
Запросы к одной базе выполняются по очереди, по одному. Тяжелая выборка без отбора займет базу надолго - это обычное правило работы с 1С.
И про имена объектов: первый запрос стоит проверить на живой базе. Сверьте пару значений глазами, прежде чем доверять ответам по доработанной конфигурации.
Три дня работы одной базы при регистрации, карта не нужна.