Документация › Интеграции › 1С

1С и бот: как связать

Обновлено 17 октября 2026 г.

Бот отвечает клиенту по ценам и остаткам из вашей 1С, а заявки из переписки сами попадают в 1С. Отдельной кнопки «Подключить 1С» в DOS AI пока нет: связка собирается из того, что в платформе уже работает. Ниже путь без программиста, путь с программистом 1С и готовое задание, которое ему можно переслать.

⏱ 10 мин · 👤 для владельца и программиста 1С · 🟢 live

За 30 секунд:
  • Кнопки «Подключить 1С» пока нет. Работают Google Таблицы, вебхуки и функция бота «Своя интеграция по API», та же, что у МоегоСклада.
  • Без программиста: сохраняете из 1С отчёт с ценами и остатками в Excel, загружаете в Google Таблицу, бот отвечает по ней. Обновляете сами, когда меняются цены.
  • С программистом 1С: заявки сами уходят в 1С, а бот спрашивает у 1С остаток посреди разговора. Для этого 1С должна быть доступна из интернета по HTTPS.
  • Готовое задание для программиста ниже: перешлите его как есть.

Сначала два вопроса про вашу 1С

Какая у вас программа. У малого бизнеса в Казахстане чаще всего стоят «1С:Бухгалтерия для Казахстана», «1С:Управление торговлей для Казахстана», «1С:Розница для Казахстана» или «1С:Управление нашей фирмой для Казахстана». Все они работают на платформе «1С:Предприятие 8.3». Способы связи в этой статье даёт сама платформа, поэтому они подходят к любой из этих программ. Различаются названия справочников и отчётов, их ваш программист 1С знает.

Где она стоит. От этого зависит, какой путь вам доступен.

Где 1СЧто это значит для связки
В облаке (1С:Фреш или аренда у партнёра 1С)база уже доступна из интернета, программисту остаётся настроить обмен
На сервере компании с внешним адресомбаза публикуется на веб-сервере, к ней можно обратиться снаружи
На компьютере в офисе, без внешнего адресабот до неё не достучится. Либо администратор открывает базу в интернет (веб-сервер, внешний адрес, HTTPS), либо обмен идёт от самой 1С, см. ниже
⚠️ Адрес из офисной сети не подойдёт. Бот ходит только на публичные адреса: запросы в локальную сеть (192.168.x, 10.x и подобные) платформа блокирует намеренно, это защита (подробно).

Путь 1. Без программиста: прайс и остатки через Google Таблицу

Подходит, если цены и наличие меняются раз в день или реже.

  1. Сформируйте в 1С отчёт с ценами и остатками. Обычно это прайс-лист или ведомость остатков, название зависит от программы. Оставьте колонки, которые нужны боту: товар, артикул, цена, остаток.
  2. Сохраните отчёт в Excel. Команда «Сохранить» или «Сохранить как» у отчёта (в некоторых программах она в меню «Ещё»), формат .xlsx. Сохранять отчёты в Excel платформа 1С умеет без доработок.
  3. Загрузите файл в Google Таблицу. «Файл → Импортировать → Загрузить», выберите файл, вариант «Заменить текущий лист». Первой строкой должны идти названия колонок: строки шапки отчёта (название фирмы, период) удалите, иначе бот примет их за заголовки.
  4. Дайте боту доступ к таблице функцией «Найти в таблице» из готовых шаблонов Google Таблиц, подключение по шагам. Бот ищет товар по части названия, без учёта больших и маленьких букв, и получает до 20 подходящих строк. Просматривает первые 5 000 строк листа.
  5. Проверьте в тест-чате на товаре, цену и остаток которого знаете.

Цены изменились, повторяете шаги 2 и 3: это пара минут.

⚠️ Чего этот путь не даёт. Остаток в таблице такой, каким был в момент выгрузки: продали последнюю единицу утром, а бот до следующей выгрузки отвечает «есть». Выгрузки из 1С в Google Таблицу по расписанию в типовых программах 1С нет, её делают отдельной доработкой. Если остатки меняются в течение дня, нужен путь 2.
💡 Для прайса таблица точнее базы знаний. Прайс ляжет и в базу знаний: 1С сохраняет отчёты в Word, база знаний принимает DOCX и PDF. Но в базе знаний бот ищет по смыслу, а в таблице по названию и артикулу. Поэтому прайс с артикулами и остатками держите в таблице, а базу знаний оставьте для описаний товаров и условий.

Путь 2. С программистом 1С: бот и 1С говорят напрямую

Два направления, их можно делать по отдельности.

Заявки из переписки уходят в 1С

Когда бот оформил заявку, платформа сама отправляет её POST-запросом на адрес, который вы укажете. Это вебхук с событием lead_created («Новый лид» в кабинете). Программист 1С делает адрес, который принимает такой запрос и создаёт в 1С то, что вам удобно: заказ покупателя черновиком, контрагента или задачу менеджеру.

Что приходит в теле запроса:

{
  "event": "lead_created",
  "project_id": "…",
  "timestamp": "2026-10-17T10:15:00.000Z",
  "data": {
    "client_name": "Айгерим",
    "phone": "+77011234567",
    "lead_status": "qualified",
    "summary": "Обои виниловые «Лилия», 6 рулонов, доставка в субботу",
    "source_event_name": null
  }
}
  • summary это суть заявки словами бота. Отдельного списка товаров с количеством в заявке нет, поэтому в 1С её удобно класть в комментарий заказа или текст задачи.
  • client_name может не прийти, если клиент не назвался. phone в WhatsApp это номер, с которого клиент пишет; в Telegram и Instagram номер будет, только если клиент его назвал. Номера сравнивайте по цифрам: плюс в начале бывает и не бывает.
  • lead_status это статус заявки из вашей воронки.

Как подключить. Интеграции → Вебхуки → «Добавить вебхук»: адрес 1С (только https://), событие «Новый лид», в поле «Заголовки» секрет, по которому 1С узнает запрос от платформы, например {"X-Secret": "длинная-случайная-строка"}. Кнопка «Тест» шлёт пробный запрос с "event": "test": 1С должна ответить на него кодом 200 и ничего не создавать.

Сроки и повторы. 1С должна ответить за 10 секунд. Не ответила или ответила ошибкой 5xx, и платформа повторит запрос позже, до пяти попыток. Поэтому одна заявка может прийти дважды: перед созданием 1С проверяет, нет ли уже такой (по телефону и тексту). Подробно в статье Вебхуки.

Бот смотрит цену и остаток в 1С

Клиент спрашивает «есть ли такие обои и почём», бот в этот момент спрашивает вашу 1С и отвечает текущими цифрами. Делается функцией «Своя интеграция по API» в продвинутом режиме, по тому же образцу, что МойСклад. Программист 1С публикует адрес, который по строке поиска отвечает коротким списком товаров (задание ниже), а вы заполняете функцию:

ПолеЗначение
Названиеcheck_stock_1c
Описание для бота«Проверить наличие и цену товара в 1С. Вызывай, когда клиент спрашивает про конкретный товар, его цену или наличие»
МетодGET
URLадрес от программиста, например https://1c.example.kz/base/hs/dosai/stock
Параметр функциитовар, строка, «название или артикул товара из вопроса клиента»
Вкладка «Параметры URL»ключ q, значение {{товар}}
Вкладка «Авторизация»Basic Auth: логин и пароль пользователя 1С, которого программист завёл для бота
Вкладка «Что бот увидит в ответе»маппинг items[*].name → название, items[*].price → цена, items[*].stock → остаток

Логин и пароль хранятся зашифрованными и вырезаются из логов. Если 1С отвечает медленно, поднимите таймаут функции: в продвинутом режиме до 60 секунд.

Создать заказ из переписки можно так же, только методом POST на второй адрес программиста и с телом запроса, например:

{
  "phone": "{{phone}}",
  "name": "{{имя}}",
  "items": "{{товары}}",
  "comment": "{{комментарий}}"
}

Здесь имя, товары и комментарий это параметры функции, их бот выясняет у клиента, а {{phone}} платформа подставит сама (язык выражений). Пусть 1С отвечает номером заказа, тогда бот назовёт его клиенту.

А если без HTTP-сервиса, через OData

У платформы 1С есть стандартный интерфейс OData: программировать ничего не надо, он включается флажком «Публиковать стандартный интерфейс OData» при публикации базы на веб-сервере, а состав доступных объектов и пользователь для обмена задаются обработкой «Настройка автоматического REST-сервиса». В облаке 1С:Фреш он включается прямо в программе, в разделе синхронизации данных («Настройки стандартного интерфейса OData»). Адрес выглядит так: …/odata/standard.odata/Catalog_Номенклатура?$format=json.

Для справочника товаров этого хватит: лишние поля обрежет вкладка «Что бот увидит в ответе». Для остатков и заказов удобнее HTTP-сервис: OData отдаёт объекты 1С целиком со служебными полями, а цена и остаток лежат в разных регистрах, и одного запроса «товар, цена, остаток» не получится.

Безопасность

  • Отдельный пользователь 1С для бота с правами только на нужное: чтение товаров, цен и остатков, создание заказов, если бот их создаёт. Пользователь с полными правами боту не нужен.
  • Только HTTPS. Basic Auth передаёт логин и пароль в заголовке, по HTTP их видно по дороге. Вебхуки платформа и так отправляет только на https://.
  • Секрет на вебхуке. Подписи у запросов платформы нет: 1С проверяет секрет из заголовка и отвечает 401 на запрос без него.
  • В OData открывайте только нужное. Сама 1С рекомендует включать доступ только к тем объектам, которые нужны для задачи.

Готовое задание для программиста 1С

Перешлите этот блок целиком.

Задача: связать нашу 1С с ИИ-ботом DOS AI (dosai.pro), который отвечает клиентам
в WhatsApp. На стороне бота код не нужен, работа только на стороне 1С.

1. Расширение конфигурации (чтобы типовая осталась на поддержке) с HTTP-сервисом,
   корневой URL dosai. Два метода:

   GET  /hs/dosai/stock?q=<строка>
        Товары, в названии или артикуле которых есть строка, без учёта регистра.
        Ответ JSON, не больше 10 позиций:
        {"items":[{"name":"...","article":"...","price":4900,"stock":12,"unit":"шт"}]}
        price в тенге числом (не в тиынах), stock = доступный остаток с учётом резерва.
        Ничего не нашлось: {"items":[]} с кодом 200.

   POST /hs/dosai/lead
        Заявка от платформы. Тело:
        {"event":"lead_created","project_id":"...","timestamp":"...",
         "data":{"client_name":"...","phone":"...","lead_status":"...","summary":"..."}}
        Создать [заказ покупателя черновиком / задачу менеджеру], summary в комментарий.
        Пробный запрос приходит с "event":"test": ответить 200, ничего не создавать.
        client_name может не прийти, phone может быть пустым или без плюса.
        Возможен повтор той же заявки: перед созданием проверить, нет ли уже такой.
        Проверять заголовок X-Secret, без верного значения отвечать 401.
        Ответить за 10 секунд; долгую обработку запускать фоновым заданием.

   (по желанию) POST /hs/dosai/order
        Тело {"phone":"...","name":"...","items":"...","comment":"..."},
        создаёт заказ покупателя, отвечает {"number":"..."}.

2. Опубликовать HTTP-сервис на веб-сервере по HTTPS с внешним адресом:
   запросы приходят из интернета, адреса локальной сети не подходят.

3. Пользователь 1С для бота с минимальными правами (чтение номенклатуры, цен
   и остатков, создание заказов или задач), вход по логину и паролю (Basic).

Прислать нам: адрес публикации, логин и пароль этого пользователя, значение X-Secret.
Как это подключается со стороны бота: https://dosai.pro/docs/guide/05-integrations/55-1c

Когда программист пришлёт адреса: адрес /lead вставляете в Интеграции → Вебхуки, адрес /stock в функцию «Своя интеграция по API», как в таблице выше.


Если 1С стоит в офисе и открывать её в интернет не хотите

Тогда обмен идёт в обратную сторону: 1С сама обращается к DOS AI, и входящий адрес ей не нужен.

  • Заявки. Программист 1С делает регламентное задание, которое раз в несколько минут забирает новые заявки через публичный API: GET https://dosai.pro/api/projects/<id проекта>/leads?limit=50 с заголовком Authorization: Bearer dos_sk_live_…. Ключ выпускайте только на чтение и только на этот проект. Новые заявки 1С узнаёт по полю id.
  • Цены и остатки. Путь 1: выгрузка в Google Таблицу руками. Или программист пишет выгрузку из 1С в Google Таблицу по расписанию через API Google, это отдельная доработка.

Бот в этом варианте видит остаток на момент последней выгрузки, а не текущий.


Если не работает

СимптомПричинаЧто делать
«Тест» вебхука: адрес недоступен1С в локальной сети, без внешнего адреса или без HTTPSНужен публичный адрес с https://, см. таблицу «Где 1С»
«Тест» отвечает 4011С не приняла секретСверьте значение в поле «Заголовки» вебхука с тем, что ждёт 1С
Ответ 404Сервис не опубликован или путь другойПрограммист проверяет, что HTTP-сервис отмечен при публикации базы на веб-сервере
Бот говорит, что не смог проверить наличие1С не ответила вовремя или отказала во входеПосмотрите вызов в логах функции, поднимите таймаут, проверьте логин и пароль
Цена в сто раз больше1С отдаёт сумму в тиынахПопросите программиста отдавать тенге или допишите в промпт «цены из функции check_stock_1c дели на 100»
Бот не находит товарКлиент называет его не так, как в 1СДобавьте в описание параметра товар примеры, как называют товар клиенты

Остальные причины: Функция не вызывается или падает.


Родного коннектора пока нет

Кнопки «Подключить 1С», которая сама подтянет товары, цены и заказы, в DOS AI сейчас нет. Всё выше собрано из общих инструментов платформы: таблицы, вебхуков и функции бота. Нужна помощь с настройкой, напишите нам в Telegram @dosaitech.


Простыми словами

У вас товары, цены и остатки живут в 1С. Боту нужно оттуда знать, что есть в наличии и почём, а вам нужно, чтобы заявки из WhatsApp попадали в ту же 1С.

Самый простой способ без программиста: раз в день или неделю сохраняете из 1С прайс в Excel и загружаете его в Google Таблицу. Бот отвечает клиентам по этой таблице. Минус один: если товар закончился между выгрузками, бот этого не знает.

Способ точнее: программист 1С делает в вашей 1С два «окошка». Через одно бот спрашивает «есть ли такой товар и почём» прямо во время разговора с клиентом, через второе платформа складывает в 1С готовые заявки. Задание для программиста лежит выше, его можно переслать целиком. Главное условие: 1С должна быть доступна из интернета, на компьютере в офисе без внешнего адреса бот до неё не дотянется.


Дальше: → МойСклад: наличие и цены в ответах бота
Связано: Google Таблицы · Вебхуки · Своя интеграция по API · Публичный API
Не получилось? → Функция не вызывается или падает