1С
Агент работает с любой конфигурацией на платформе 1С:Предприятие 8, где можно опубликовать стандартный интерфейс OData: типовой, доработанной или самописной. Код в базе для этого не нужен: агент читает схему опубликованных объектов, отбирает документы, берёт остатки и обороты регистров и, если есть права, создаёт и проводит документы.
Сценарии по типовым конфигурациям собраны на странице интеграции.
Что умеет агент
| Что нужно | Как подключается | Что даёт |
|---|---|---|
| Данные базы | Публикация OData, карточка «1С:Предприятие» в разделе «Интеграции» | справочники, документы, регистры, файлы, приложенные к документам, запись и проведение |
| Печатные формы, отчёты, события | Расширение конфигурации «Сам Решу» поверх той же публикации | УПД, ТОРГ-12, счёт и акт файлом, отчёты на СКД, сообщения базы о проведении и записи |
| База без адреса в интернете | Внутренний адрес публикации и приложение на компьютере в той же сети | то же, что выше, без открытия базы наружу |
Файлы, приложенные к документам
Агент находит файлы, присоединённые к документу или элементу справочника (скан счёта, чек авансового отчёта, договор), и читает их содержимое. Где они лежат, он определяет по схеме вашей базы сам: у документа бывает свой справочник присоединённых файлов, а бывает общий справочник «Файлы» с версиями.
Чтобы чтение прошло, в составе OData и в правах пользователя должны быть все звенья: справочник карточек файлов, справочник версий (если он есть) и регистр, где хранятся сами данные файла. Если не хватает хотя бы одного, агент назовёт весь набор объектов, которые нужно открыть, а не только первый отказавший.
Найди в @onec авансовые отчёты за октябрь и пришли список приложенных к ним чеков. Если какие-то файлы не читаются, назови, каких прав не хватает.
Что нужно заранее
Что должно быть готово до подключения:
- база на платформе 1С:Предприятие 8, опубликованная на веб-сервере IIS или Apache со стандартным интерфейсом OData; Конфигуратор нужен только для первой публикации;
- права администратора базы, чтобы включить объекты в состав OData и завести пользователя;
- адрес, по которому база открывается: из интернета по HTTPS или, для базы в офисе, внутренний адрес и приложение «Сам Решу» на компьютере в той же сети (ниже);
- для печатных форм, отчётов и событий: конфигурация на БСП, чтобы поставить расширение конфигурации.
Шаги
Опубликуйте базу с OData
В Конфигураторе: Администрирование → Публикация на веб-сервере, отметьте публикацию стандартного интерфейса OData и опубликуйте на IIS или Apache. Если база уже опубликована для веб-клиента, публикацию можно расширить, а не делать новую.
Включите объекты в состав OData
В самой базе откройте «Настройки стандартного интерфейса OData», вкладку «Состав», отметьте нужные справочники, документы и регистры и запишите. Объект, которого нет в составе, агент не увидит, даже если права на него есть. Если вы вошли в базу администратором в браузере, это может сделать сам агент.
Заведите отдельного пользователя 1С
Дайте ему право удалённого доступа к OData и только те права чтения или записи, которые нужны для работы. Агент видит ровно то, что разрешено этому пользователю.
Подключите в «Интеграциях»
Откройте раздел «Интеграции», карточку «1С:Предприятие» и заполните «URL базы 1С», «Имя пользователя» и «Пароль». В поле адреса подойдёт корень публикации, адрес OData или адрес из браузера. Несколько баз одного сервера подключаются отдельными карточками и различаются путём публикации.
Прочитай состав OData моей базы @onec и перечисли, какие документы и регистры реально доступны. Ничего не меняй.
База в локальной сети
Если сервер 1С доступен только в офисе, публиковать базу в интернет не нужно.
Установите приложение на компьютер в этой сети
Скачайте приложение на странице загрузки и войдите в него. Компьютер должен открывать базу по внутреннему адресу.
Укажите внутренний адрес публикации
В карточке «1С:Предприятие» в поле «URL базы 1С» подойдёт и внутренний HTTP-адрес. Под полем появится «Запросы идут через ваш компьютер».
Держите приложение открытым
Запросы к базе пойдут через приложение на этом компьютере из любого вашего чата. Пока приложение закрыто или компьютер выключен, агент до базы не достучится и скажет об этом.
События базы от компьютера не зависят: их отправляет сам сервер 1С, ему нужен только исходящий HTTPS. Подробнее о работе через компьютер: «Приложения».
База в 1С:Фреш
В 1С:Фреш база уже опубликована, публиковать её самому не нужно. В поле «URL базы 1С» вставьте адрес базы из браузера: в нём есть номер области, и по нему различаются несколько баз одного аккаунта. Состав OData и пользователь подключения настраиваются в самой базе так же, как в шагах выше. Расширение конфигурации в модели сервиса даёт печать и отчёты, а события базы там недоступны.
Какие права выдать
Видимость ограничена дважды: составом OData и правами роли пользователя. Агент различает эти два случая: объект не в составе означает, что его нужно включить на вкладке «Состав», отказ по правам означает, что нужно расширить роль.
- Только чтение: права на чтение нужных справочников, документов и регистров. С таким пользователем агент в базе ничего не изменит, даже если вы попросите.
- Запись: права на добавление и изменение нужных документов, а для проведения ещё и право проводить их. Созданный или изменённый документ остаётся непроведённым, пока агент не проведёт его отдельным действием.
- Расширение конфигурации: роль «Сам Решу: доступ агента» (
срш_ДоступАгента) и право «Использование» на нужные отчёты.
В конфигурациях на БСП роль напрямую не выдаётся: добавьте её в профиль группы доступа (Администрирование → Настройки пользователей и прав → Профили групп доступа) и включите пользователя подключения в группу с этим профилем.
Что делать после правки прав
Попросите агента повторить запрос. Переподключать интеграцию не нужно: право живёт у пользователя 1С, а не у пароля, поэтому пересохранённые логин и пароль ничего не открывают. Если вы ставили или обновляли расширение конфигурации, перезапустите программу, как предложит форма «Расширения». Если меняли публикацию на веб-сервере, перезапустите веб-сервер.
Почему агент работает с базой по одному запросу
Лицензия 1С даёт пользователю одно подключение: второй одновременный запрос рвёт первый. Поэтому агент обращается к базе последовательно, и большая выборка идёт дольше, чем в других сервисах. Если агент открывает веб-клиент в браузере, он тоже занимает лицензию, поэтому лишний раз страницу не перезагружает.
Расширение конфигурации «Сам Решу»
Расширение добавляет то, чего нет в стандартном интерфейсе OData:
- печатные формы документов файлом PDF, XLSX или MXL, те же команды печати, что программа предлагает приложить к письму;
- отчёты на СКД файлом или таблицей для расчётов;
- события базы: проведение, отмена проведения, запись и удаление выбранных документов и справочников. По ним срабатывают задачи: «когда провели реализацию, пришли покупателю счёт».
Расширение ничего не меняет в объектах вашей конфигурации и работает в безопасном режиме. Нужна конфигурация на БСП.
Скачайте файл .cfe
В карточке подключения 1С нажмите «Скачать расширение конфигурации», либо откройте Настройки → «Приложения» → «1С» и нажмите «Скачать .cfe». Рядом указан режим совместимости, с которого расширение подходит: проверьте, что у вашей конфигурации он не ниже.
Добавьте в «Расширения»
Под пользователем с полными правами: Администрирование → Печатные формы, отчеты и обработки → Расширения → Добавить из файла. Оставьте флажок «Безопасный режим» и перезапустите программу.
Опубликуйте HTTP-сервисы расширения
В той же публикации на веб-сервере включите публикацию HTTP-сервисов и сервисов расширений по умолчанию, затем перезапустите веб-сервер. Адрес у сервиса расширения общий с OData, отдельная учётная запись не нужна.
Проверьте карточку подключения
В строке «Печатные формы и отчёты» должно стоять «Установлено» с номером версии. «HTTP-сервис расширения конфигурации не найден» означает, что расширение не опубликовано или после установки не перезапущен веб-сервер.
События базы
Адрес приёма событий и секрет подписи «Сам Решу» записывает в базу сам при подключении, регламентное задание отправки включается само. О каких документах сообщать, агент задаёт под конкретную задачу с вашего согласия, пока список пуст, база ничего не отправляет.
Чтобы события доходили, серверу 1С нужен исходящий доступ в интернет по HTTPS к адресу приложения. В клиент-серверном варианте расширению нужен профиль безопасности с разрешённым привилегированным режимом и этим интернет-ресурсом. В модели сервиса (1С:Фреш и другие базы с разделением данных) печать и отчёты работают, а события недоступны.
| Что видно в карточке | Что это значит |
|---|---|
| «1С не смогла отправить события. Повтор отправки запланирован.» | временный сбой сети или приёма, база повторит сама |
| «1С заблокировала отправку событий…» | выключено регламентное задание или работа с внешними ресурсами |
| «1С остановила отправку событий после отказа приёмника…» | приём отказал, новые события пока не поступают |
Ограничения
Создание документа, правка и проведение меняют вашу учётную базу, поэтому их проверяет автопроверка действий. Обычная работа по вашей просьбе идёт сама, а рискованное и то, что подпадает под ваши правила «Сначала спрашивать», приходит в чат карточкой. В рабочей организации администратор может закрепить проведение документов за ролью.
Перед массовой правкой попросите сначала список без изменений и пилот на нескольких документах: «Как агент меняет данные».
Что значит «исход неизвестен»
Иногда 1С не отвечает на запись или отвечает ошибкой сервера, а транзакция в базе при этом всё равно фиксируется: документ, прочитанный сразу после ошибки непроведённым, позже оказывается проведённым. Такой исход агент называет неизвестным: запись могла лечь.
Чтобы не создать второй документ и не провести дважды, агент:
- не повторяет такую запись вслепую;
- сначала читает документ заново: если он проведён, запись считается выполненной;
- повторяет только то, что точно не применилось;
- если проверить не удалось, прямо пишет «исход неизвестен» и продолжает остальные шаги.
Отдельного выключателя у этой защиты нет: повтор вслепую может задвоить документ или движения, и исправлять это пришлось бы руками. Правка задачи, ручной перезапуск или снятие паузы её не снимают, снимает только проверка самого документа.
Что делать вам: откройте документ в 1С и посмотрите, создан ли он и проведён ли, нет ли рядом дубля. Напишите агенту, что видите: «документ создан и проведён, иди дальше» или «документа нет, создай заново».
Как отозвать доступ
- У нас: в карточке «1С:Предприятие» нажмите «Отключить». Агенты перестают обращаться к базе.
- В 1С: отключите пользователя подключения или снимите у него право удалённого доступа к OData. Это закрывает доступ, даже если подключение у нас осталось.
- Расширение конфигурации удаляется в Администрирование → Печатные формы, отчеты и обработки → Расширения.
Неполадки
- Пустой ответ или объекта нет в схеме: объект не включён в состав OData. Включите его на вкладке «Состав».
- «Доступ запрещён правами 1С»: у роли пользователя нет права на объект. Расширьте роль или профиль группы доступа, переподключать интеграцию не нужно.
- Печатная форма в PDF не формируется на сервере под Linux: на сервере 1С не хватает шрифтов, XLSX при этом формируется.
- Отчёта нет в списке: агент строит только отчёты на СКД, на которые у пользователя есть право «Использование».
- Прочее: «Подключение сервисов» и «Частые вопросы».
Частые вопросы
Что нужно, чтобы подключить 1С?
Опубликованная на веб-сервере (IIS или Apache) база со стандартным интерфейсом OData, объекты, включённые в состав OData, и отдельный пользователь 1С с нужными правами. В разделе «Интеграции» откройте карточку «1С:Предприятие» и укажите адрес публикации, логин и пароль этого пользователя.
Агент пишет, что доступ запрещён правами 1С. Что делать?
Логин и пароль верные, отказала сама 1С: у роли пользователя нет права на этот объект. Выдайте право в профиле групп доступа или роли пользователя 1С и попросите агента повторить запрос. Переподключать интеграцию не нужно: пересохранённый пароль того же пользователя прав не добавляет.
Зачем расширение конфигурации, если есть OData?
OData отдаёт данные базы. Печатные формы (УПД, ТОРГ-12, счёт, акт) файлом, отчёты на СКД и события базы (провели документ, записали элемент справочника) даёт только расширение конфигурации «Сам Решу». Без него агент читает и пишет данные, но не печатает и не узнаёт об изменениях сам.
База стоит в офисе и не видна из интернета. Можно подключить?
Да. Укажите внутренний адрес публикации и держите приложение «Сам Решу» открытым на компьютере в той же сети: запросы к базе пойдут через него, открывать базу наружу не нужно.
Что значит «исход неизвестен» после записи в 1С?
1С не ответила или ответила ошибкой сервера, а запись при этом могла лечь. Агент не повторяет такую запись вслепую: сначала читает документ заново и повторяет только то, что точно не применилось. Если проверить не удалось, откройте документ в 1С и скажите агенту, что вы там видите.
Смотрите также
Не нашли ответ? Как связаться