1С

Об инструменте

Инструмент «1С» подключает агента к базе 1С:Предприятие через штатный OData-интерфейс 1С. Агент находит справочники, документы и регистры, читает их записи с фильтром, сортировкой и выбором полей, а если на подключении разрешена запись — создаёт и изменяет записи. Дорабатывать конфигурацию 1С не нужно.

Запись меняет вашу рабочую учётную базу, и отменить её из Evo нельзя. Поэтому по умолчанию подключение работает только на чтение, а запись включается отдельно на конкретной авторизации — вместе со списком объектов 1С, в которые агенту разрешено писать.

Для инструмента можно настроить несколько авторизаций, а одна из них может быть назначена авторизацией по умолчанию — её используют все агенты, где не выбран конкретный аккаунт. К одному агенту при этом подключается только одна авторизация. Одна авторизация — это одна база 1С и один пользователь OData со своими настройками записи.

Действия инструмента

Действие

Что делает

Получение списка объектов 1С

Показывает, какие справочники, документы и регистры опубликованы в OData. Можно искать по части названия

Получение описания полей объекта 1С

Показывает поля выбранного объекта: названия, типы, обязательность, колонки табличных частей

Получение записей из 1С

Читает записи одного объекта с фильтром, выбором полей и сортировкой — до 100 записей за раз, по умолчанию 20

Создание записи в 1С

Создаёт одну запись: элемент справочника или документ, в том числе с табличными частями. Работает, только если на авторизации разрешена запись

Изменение записи в 1С

Меняет переданные поля одной существующей записи; этим же действием запись помечается на удаление. Работает, только если на авторизации разрешена запись

Действия добавляются и включаются в настройках агента. Если агент был создан до появления записи, действия «Получение описания полей объекта 1С», «Создание записи в 1С» и «Изменение записи в 1С» нужно добавить ему вручную.

Настройка

1. Авторизация в Evo

На платформе откройте: Инструменты > 1С > Конфигурация авторизации ключа API и заполните поля.

Пример заполнения формы

Поле в Evo

Что вписать

Откуда брать

Имя авторизации

Произвольный текст, например «1С Фреш»

—

URL интерфейса OData

Адрес вашей базы в браузере (без языкового кода) + /odata/standard.odata

Пример: https://1cfresh.com/a/sbm/12345/odata/standard.odata

Возьмите URL, по которому вы обычно заходите в свою базу 1С:Фреш в браузере, и добавьте в конец /odata/standard.odata.

Пример: если адрес базы https://1cfresh.com/a/sbm/12345, то итоговый URL для Evo — https://1cfresh.com/a/sbm/12345/odata/standard.odata.

Подробнее: инструкция от 1С:Фреш.

Логин

Отдельный пользователь для OData

Создаётся в 1С:Фреш на той же странице настройки (см. ниже). Использовать личный логин сотрудника не рекомендуется.

Пароль

Пароль этого пользователя

Задаётся автоматически при создании пользователя для OData.

Разрешить запись

Нет — только чтение (по умолчанию) или Да — разрешить запись

Оставьте «Нет», если агенту нужно только читать данные. Подробнее — в разделе Запись в 1С ниже.

Объекты 1С, разрешённые для записи

Названия объектов через запятую, например: Catalog_Контрагенты, Document_СчетНаОплату

Заполняется, только если запись разрешена, — тогда поле обязательное. Названия объектов можно посмотреть, спросив агента «покажи список объектов 1С».

При сохранении Evo проверяет подключение пробным обращением к базе. Если проверка не прошла, авторизация не сохраняется — см. Если что-то пошло не так.

Авторизации, созданные до появления записи, продолжают работать только на чтение — ничего менять в них не нужно.

Как включить OData и создать пользователя (1С:Фреш):

В 1С перейдите в Администрирование → Синхронизация данных → Настройки стандартного интерфейса OData → вкладка «Авторизация» (логин/пароль) и вкладка «Состав» (какие справочники и документы будут доступны через OData).

Эта настройка доступна только пользователю с ролью «Полные права» — в сервисе 1С:Фреш такие права по умолчанию есть у владельца. Если у вас нет доступа к этому разделу, попросите включить OData и создать пользователя владельца аккаунта 1С или вашего администратора 1С.

Рекомендация по безопасности: заводить отдельного пользователя с минимально необходимыми правами и публиковать только те справочники/документы, которые нужны агенту.

Если агент будет записывать данные, администратору 1С стоит дополнительно:

  • использовать для Evo отдельного пользователя OData, а не личный логин сотрудника или администратора — так все изменения агента будут видны в 1С под одним пользователем;

  • выдать этому пользователю права на изменение только тех объектов, которые указаны в поле «Объекты 1С, разрешённые для записи». Evo и так не пишет в объекты вне списка, но последний рубеж защиты — права пользователя в самой 1С.

Агент видит и меняет только то, на что у пользователя из авторизации есть права в 1С, и только объекты, опубликованные в OData.

Агент увидит только те справочники и документы, которые администратор 1С явно выбрал на вкладке «Состав» при настройке OData. Если нужный справочник там не отмечен, агент не получит к нему доступ, даже если он есть в базе. Подробнее: инструкция от 1С:Фреш.

2. Использование инструмента

Добавьте инструмент 1С агенту и включите нужные действия. Агент сам решает, когда обратиться к 1С: сначала уточняет доступные названия данных (например, «покажи справочники про контрагентов»), затем читает нужные записи с фильтром. Агент обращается к 1С только в ответ на ваш запрос в диалоге — сам, в фоне или по расписанию, он в базу не ходит.

Примеры задач агенту:

  • «Найди счета за март» — агент прочитает документы и покажет результат сразу.

  • «Заведи контрагента ООО Ромашка, ИНН 7701234567» — агент проверит, нет ли уже такого контрагента, и создаст запись.

  • «Поменяй телефон у контрагента ООО Ромашка» — агент найдёт запись и изменит только телефон.

Первый пример — чтение, его агент выполнит без подтверждения. Два других изменяют данные в 1С и сработают, только если на авторизации разрешена запись в эти объекты.

Запись в 1С

Как включить запись

  1. Откройте Инструменты > 1С и авторизацию, через которую агент будет писать.

  2. В поле «Разрешить запись» выберите «Да — разрешить запись».

  3. В поле «Объекты 1С, разрешённые для записи» перечислите через запятую объекты, в которые агенту можно писать, например: Catalog_Контрагенты, Document_СчетНаОплату. Регистр букв значения не имеет.

  4. Сохраните авторизацию.

  5. В настройках агента добавьте действия «Получение описания полей объекта 1С», «Создание записи в 1С» и «Изменение записи в 1С».

Почему настроек две. «Разрешить запись» включает запись для всей авторизации, а список объектов ограничивает её одним-двумя нужными объектами. Если агент ошибётся и попробует записать что-то в другой объект, Evo откажет ещё до обращения к 1С — база не будет затронута. Все объекты вне списка остаются доступными только на чтение.

Почему не сохраняется авторизация с пустым списком. Если запись разрешена, а список объектов пуст, ограничить запись нечем — поэтому такую авторизацию сохранить нельзя. Укажите хотя бы один объект или выберите «Нет — только чтение».

Названия объектов указываются так, как они называются в OData: Catalog_ — справочники, Document_ — документы, например Catalog_Контрагенты. Точные названия можно узнать у агента («покажи список объектов 1С про контрагентов») или у администратора 1С.

Как агент записывает данные

  • Создаёт и изменяет записи только по вашей прямой команде («заведи контрагента…») или после вашего явного «да». Неоднозначный ответ вроде «ну можно» или «наверное» агент подтверждением не считает и переспрашивает.

  • Перед записью смотрит, какие поля есть у объекта, и использует только существующие поля. Если не хватает обязательных значений, спрашивает их у вас, а не придумывает.

  • Перед созданием ищет запись с теми же ключевыми данными — например, ИНН или номером. Если находит, сообщает о ней вместо того, чтобы создавать новую.

  • Изменяет только запись, найденную в 1С. Если подходящих записей несколько, показывает список и просит выбрать.

  • Сообщает о созданной или изменённой записи, только если 1С подтвердила результат. Если 1С отклонила запись, агент передаёт её причину.

Ограничения

  • Документы создаются непроведёнными. Провести документ нужно самостоятельно в 1С.

  • Защиты от дублей на уровне Evo нет. Агент проверяет, нет ли уже такой записи, но гарантии это не даёт: повторная команда на создание может завести вторую запись. Если запрос прервался, перед повтором попросите агента проверить, не создана ли запись.

  • Удаления нет. Агент может только поставить на запись пометку на удаление; удалить её окончательно можно в 1С.

  • Отменить запись из Evo нельзя. Ошибочную запись исправляют в 1С.

  • За один раз агент создаёт или изменяет одну запись — массовой загрузки и изменения нескольких записей сразу нет.

  • Агент не реагирует на события в 1С (новые документы, изменения) — только на запросы в диалоге.

Если что-то пошло не так

При сохранении авторизации

Что увидите

Что делать

Поле отмечено как обязательное

Заполните URL, логин и пароль

«Не удалось выполнить авторизацию. Проверьте правильность заполнения полей и повторите попытку.»

Проверьте логин и пароль пользователя OData и URL: адрес базы без языкового кода + /odata/standard.odata. Если всё указано верно, попросите администратора 1С проверить, что OData включён, а база доступна — причину сообщение не называет

«Запись разрешена, но не перечислены объекты 1С, разрешённые для записи. Укажите их через запятую, например: Catalog_Контрагенты»

Укажите объекты через запятую или выберите «Нет — только чтение»

В диалоге с агентом

Что сообщает агент

Что делать

Нет доступа к инструменту

У агента не выбрана авторизация — выберите её в настройках инструмента

Объект не найден

Объект не опубликован в OData или назван неточно — уточните название или добавьте объект на вкладке «Состав» в 1С

У пользователя подключения нет прав на объект

Выдайте права пользователю OData в 1С

Запись выключена

Включите «Разрешить запись» в настройках авторизации

Запись в этот объект не разрешена

Добавьте объект в поле «Объекты 1С, разрешённые для записи»

1С отклонила запись (не заполнено обязательное поле, неверное значение, закрыт период)

Исправьте данные по причине, которую назвал агент, и повторите

Объект доступен только для чтения

Этот объект 1С (например, виртуальная таблица или часть регистров) изменить нельзя

Адрес подключения нужно исправить

URL перенаправляет на другой адрес (например, http вместо https) — укажите точный адрес в авторизации

1С недоступна

Повторите позже. Если прервалась запись, сначала попросите агента проверить, не создана ли она