ИИ для 1С:Фреш: почему напрямую не подключить и как это решается
Напрямую - не получится. Дать ChatGPT или Клауду адрес своей базы в 1С:Фреш и спросить «покажи остатки по складу» не выйдет, и дело не в запрете: мешают несколько вполне технических вещей. А если их обойти, всплывает еще одна, неприятная: ИИ подключится, но будет плохо понимать вашу базу и начнет выдавать неверные цифры уверенным тоном. Ниже - что именно мешает и как подключить Фреш к ИИ за пять минут.
Почему напрямую не получается
Задача звучит просто: есть база в облаке 1С:Фреш, есть чат с ИИ, хочется спросить у него про свои данные. На практике между ними стоят четыре препятствия.
- Чату некуда положить пароль. Обычное окно чата не умеет ходить в сторонние системы с авторизацией. Нужен механизм инструментов: у ChatGPT это «Действия» (Actions) с описанием API, у Клауда - коннектор. Вставить в переписку адрес базы и пароль бесполезно: сообщение уйдет в чат, а запроса в базу не будет. Да и пароль после этого навсегда останется в истории переписки;
- во Фреше OData сначала нужно включить. Стандартный REST-сервис в облаке по умолчанию выключен. Пока не заведен служебный пользователь и не отмечен состав объектов, база снаружи просто не отвечает - подключаться не к чему;
- описание базы не помещается в чат. Чтобы ИИ понял, что у вас есть, ему нужна схема OData - тот самый $metadata. В типовой конфигурации это XML на тысячи сущностей и десятки тысяч строк. В окно модели он не влезает, а обрезанный хуже, чем никакой: модель достраивает недостающее сама;
- каждый ответ надо разбирать. OData отдает данные машинным форматом со ссылками вместо названий. Без прослойки, которая превращает это в читаемую таблицу, ИИ показывает пользователю сырые идентификаторы.
Допустим, подключились. ИИ все равно плохо понимает базу
Это вторая половина проблемы, и о ней узнают уже после того, как техническая часть заработала. Ответы приходят - но неверные.
Имена в OData не те, что на экране. Номенклатура называется Catalog_Номенклатура, реализация - Document_РеализацияТоваровУслуг, остатки - AccumulationRegister_ТоварыНаСкладах. Не видя точного списка, модель угадывает имена и получает ошибку за ошибкой. Со стороны выглядит как «ИИ тупит», а на деле он просто не знает вашей конфигурации.
Регистры отдаются сырыми записями. Через OData доступны движения, а не итоги: ни остатков, ни оборотов, ни виртуальных таблиц, к которым привык каждый, кто писал отчеты в 1С. ИИ приходится складывать приход и расход самому, по строкам. Отсюда две беды сразу: неверные цифры и попытка выкачать пол-регистра, чтобы их получить.
Языка запросов нет. Соединений, группировок и срезов на дату в OData не существует. Каждый осмысленный вопрос превращается в десяток отдельных выборок, которые модель должна свести в уме.
Разговор обрывается на объеме. Выборка в несколько тысяч строк не помещается в окно чата. Без порционной выдачи диалог рвется на середине, и начинать приходится заново.
Персональные данные уходят как есть. Сырой OData отдает ФИО, телефоны и ИНН прямо в переписку с моделью, без всякого разбора.
Что здесь делает Жёлтый мост
Сервис встает между ИИ и вашей базой и снимает все перечисленное. Вы настраиваете доступ один раз, дальше ассистент спрашивает базу обычными словами.
- ИИ не получает сырой OData. Мост сам разбирает состав базы и дает ассистенту понятный набор операций: список сущностей, поля одной сущности, чтение порции данных, объект по ссылке, срез последних значений регистра. Модель не сочиняет адреса и не уходит в произвольные конструкции;
- ИИ получает инструкцию, а не догадки. В кабинете лежит готовый текст-промт: в нем уже адрес, ключ и правила - какие операции есть, как брать данные частями, что делать при ошибке. Отдаете его ассистенту первым сообщением;
- учетная запись остается у нас, а не в чате. Логин и пароль служебного пользователя хранятся зашифрованными, ИИ их не видит вообще;
- персональные данные маскируются. На новых ключах это включено по умолчанию;
- данные отдаются порциями, поэтому большие выборки не рвут разговор;
- все видно и все выключается. Каждый запрос попадает в журнал, а ключ гасится одной кнопкой в кабинете - обмен прекращается сразу.
Как это работает
Вопрос пользователя ИИ превращает в вызовы операций моста, мост обращается к базе по стандартному OData под служебной учетной записью и возвращает готовые строки. Большие выборки отдаются частями, поэтому объем данных не обрывает разговор.
Настройка за пять минут
Со стороны базы нужен служебный пользователь OData, со стороны сервиса - ключ. По шагам:
Служебный пользователь на стороне базы
В 1С:Фреш откройте обработку «Настройка автоматического REST-сервиса». На вкладке «Авторизация» заведите отдельного служебного пользователя - не свой личный логин. На вкладке «Состав» отметьте только те объекты, которые нужны ИИ: справочники, документы, регистры по делу, не всю базу подряд.
Официальная инструкция 1С: 1cfresh.com/articles/data_odata. Для базы, опубликованной на своем веб-сервере, стандартный OData включается при публикации.
Источник в кабинете
В кабинете нажмите «Создать ключ» и выберите вид «1С Фреш». Укажите адрес приложения так, как он в адресной строке браузера, когда вы работаете в базе, - хвост вроде /odata/standard.odata добавлять не нужно, сервер подставит его сам. Введите логин и пароль служебного пользователя. Нажмите «Проверить соединение»: мост зайдет в базу и покажет, сколько сущностей доступно.
Ключ и промт для ИИ
После успешной проверки выпустите ключ. В кабинете есть готовый текст-промт для ассистента: в нем уже адрес, ключ и весь набор операций. Отдайте его первым сообщением ассистенту, который умеет ходить в интернет по инструментам, - Claude, ChatGPT с доступом в сеть, агент в среде разработки. Дальше спрашивайте базу словами.
Что с безопасностью
Отдельная служебная учетная запись. ИИ ходит в базу не под вашим логином, а под служебным пользователем, которого вы завели специально и с ограниченным составом объектов. Логин и пароль хранятся у нас в зашифрованном виде.
Только чтение. Через этот способ данные нельзя изменить в принципе - доступны только операции выборки. Показать, свести, посчитать можно; проводить документы и править справочники - нет.
Состав вы задаете сами. ИИ увидит ровно те объекты, которые вы включили в состав OData на стороне базы. Не включили - значит и через ключ их не видно.
Выключается мгновенно. Выключили ключ в кабинете - обмен прекращается сразу. Показ структуры базы ассистенту - отдельное согласие в карточке ключа, по умолчанию имена объектов ИИ подсказываете вы сами.
Границы способа
Пока только чтение. Показать, свести и посчитать можно; изменить данные из чата этим способом нельзя. Запись через OData - в планах.
Нужен включенный стандартный OData и служебный пользователь: без них база снаружи не отвечает. Это делается один раз, порядок описан выше.
ИИ видит только то, что вы включили в состав OData, и работает через наш набор операций, а не сырыми запросами. Это сделано специально: так модель не уходит в произвольные конструкции и не тянет из базы лишнее.
Коротко
Напрямую соединить чат с базой 1С:Фреш нельзя, а если обойти это самостоятельно, ИИ все равно будет путаться в именах объектов и считать остатки по сырым движениям. Через сервис это занимает несколько минут: завели служебного пользователя, вписали адрес и учетную запись в кабинете, выпустили ключ и отдали ассистенту готовый промт. Дальше вы просто спрашиваете базу словами, а мост отвечает за то, чтобы ИИ обращался к ней правильно.
А как это будет у вас
Трудности подключения у всех разные. Выберите свой случай.
Базой управляете не вы: в нее нельзя поставить обработку и нельзя опубликовать ее наружу. Доступ к данным есть только тот, что дал оператор сервиса, и это OData.
Подключение идет по OData: вы заводите источник в кабинете, дальше сервис сам обращается к вашей области. Обработку ставить не нужно, потому что ставить ее некуда. Персональные данные при этом закрывает сервер, до отправки в ИИ.
База на чужой машине, доступ к ней через удаленный рабочий стол. Публиковать ее наружу провайдер обычно не дает, а если и даст, платить придется за отдельный адрес и сертификат.
Обработка ставится в базу как обычный внешний файл, прямо в вашем сеансе. Она сама обращается наружу по HTTPS, поэтому от провайдера не нужно ни белого IP, ни публикации, ни открытых портов.
База в вашей сети, наружу ничего не открыто, и открывать никто не хочет. Публикация на веб-сервере означает разговор с сисадмином, белый IP и проброс портов.
Направление разворачивается: наружу ходит сама база. Обработка запускается на сервере регламентным заданием и держит связь постоянно, входящих соединений в сеть нет ни одного.
У файловой базы нет ни адреса, ни веб-сервера, ни службы. Все, что есть, - это 1С на конкретном компьютере, которую вечером выключают вместе с ним.
Обработка открывается в этой же 1С и работает, пока открыта. Для постоянной связи базу переводят в сеанс, который не закрывают, либо ставят обмен на машине, которая работает всегда.
Конфигурация на обычных формах, платформа старая, половина современных решений в ней просто не запускается: нет управляемого интерфейса, а иногда и встроенной работы с JSON.
Для таких баз есть отдельные сборки обработки: под обычные формы и под платформы 8.3.5 и ниже. Конфигурация не меняется, поддержка не слетает: это внешняя обработка, а не расширение.
Что будет на другом конце
Со стороны 1С все одинаково: обработка и ключ. Меняется то, кто спрашивает базу - и что вы получаете на выходе.
Спрашиваете словами, без отчетов на заказ: главный бухгалтер - про незакрытые документы и НДС к вычету, экономист - про себестоимость и отклонения, финансовый директор - про дебиторку и платежный календарь, директор - про выручку и маржу за период. Ответ приходит по живым данным, а не по вчерашней выгрузке: можно свести отчет, сравнить периоды или спросить, из чего сложилась цифра. Запись включается отдельно, и первый прогон всегда пробный, с откатом.
Закрыты принудительно: ФИО, ИНН, СНИЛС, телефоны и почта уходят замаскированными, и отключить это пользователь не может. Есть режим, в котором вместо людей наружу идут условные метки, а настоящие имена подставляются обратно уже внутри вашей 1С.
Программист 1С получает агента, который видит настоящую структуру базы и справку по конфигурации, поэтому пишет запросы и код по вашим именам объектов, а не по выдуманным. Аналитику 1С это дает разбор чужой базы без выгрузок: проверить гипотезу, найти расхождение, собрать отчет к встрече. Гипотезу можно тут же прогнать запросом и увидеть результат.
Тот же ключ и та же маскировка, что и везде. Для разработки разумно завести отдельный ключ только на чтение и отдельного пользователя 1С с узкими правами: наружу не уйдет ничего сверх того, что этому пользователю видно.
Приложение внутри Битрикс24 получает данные из 1С обычным запросом: долг клиента в карточке сделки, остатки при подборе товара, отгрузки за неделю. Писать его можно в чате с ИИ - на стороне приложения это обычный HTTP и JSON, без тонкостей 1С.
Приложению выдается свой ключ, а ключ базы ему не передается. Ключ приложения имеет те же или более узкие права, гасится отдельно и маскировку наследует: ослабить ее приложение не может.
Скрипт на питоне, сайт, телеграм-бот, дашборд, обмен с ТСД или складским софтом. Запрос пишется на языке запросов 1С, ответ приходит в JSON. Есть и запись: скриптом, с обязательным пробным прогоном и ключом операции, чтобы повтор не создал документ дважды.
Маскировка работает и здесь: это настройка ключа, а не чата. Для сайта это к лучшему - наружу уходят остатки и цены, а не картотека клиентов.
CRM, личный кабинет клиента, система качества, BI и любые сервисы, умеющие обычный HTTP-запрос. Для регулярных задач есть выгрузка файлами: сервис соберет данные и отдаст готовый файл, а не будет держать базу занятой.
Правило одно для всех: персональные значения закрываются до того, как данные уйдут во внешнюю систему. При частичной маскировке скачивание файлов запрещено, чтобы выгрузка не стала обходом.
Три дня работы одной базы при регистрации, карта не нужна.
Ключи OData тарифицируются так же, как обычные. Подробно о тарифах
Комментарии
Вопросы по делу, свой опыт и спокойная критика - публикуем. Реклама и ссылки на сторонние сайты не проходят. Комментарии открываются после проверки.