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С, разрешённые для записи» перечислите через запятую объекты, в которые агенту можно писать, например: Catalog_Контрагенты, Document_СчетНаОплату. Регистр букв значения не имеет.
Сохраните авторизацию.
В настройках агента добавьте действия «Получение описания полей объекта 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С недоступна | Повторите позже. Если прервалась запись, сначала попросите агента проверить, не создана ли она |