← Все статьи

Создать счёт через REST API 1С: POST, curl и Swagger

Минимальный POST /invoices для 1С:Бухгалтерия: JSON, Basic Auth, копейки в price, проверка в 1С и импорт OpenAPI в Postman.

Запрос «1c api создать счет» обычно означает: backend сайта или CRM должен выставить счёт в 1С:Бухгалтерия без ручного ввода и без OData. Расширение bit_http_api принимает обычный POST с JSON — ниже минимальный рабочий пример, разбор ответа и как проверить результат в Swagger или Postman.

Коротко: POST /hs/bit_http_api/invoices · Basic Auth · суммы в копейках · конфигурация БП 3.0.190.22+. Полный справочник — документация на bit22.ru, спецификация — OpenAPI YAML.

Что должно быть готово

  • Установлено расширение bit_http_api в 1С:Бухгалтерия 3.0.
  • HTTP-сервис опубликован — базовый путь /{публикация}/hs/bit_http_api/.
  • Пользователь с ролью bitHttpApi_ОсновнаяРоль (не администратор).
  • Контрагенты с нужными ИНН уже есть или будут созданы через /counterparties.

Если стенда ещё нет — сначала тестовый стенд за один день. Зачем REST вместо OData — в обзоре REST API без OData.

POST: создать счёт

Минимальное тело запроса — продавец, покупатель и хотя бы одна строка:

curl -X POST "https://your-1c.example/base/hs/bit_http_api/invoices" \
  -u api_user:password \
  -H "Content-Type: application/json" \
  -d '{
    "seller_inn": "7799434926",
    "payer_inn": "770987654321",
    "comment": "order-8842",
    "items": [
      {
        "name": "Услуга интеграции",
        "price": 1000000,
        "quantity": 1
      }
    ]
  }'
  • seller_inn / payer_inn — ИНН организаций в базе 1С.
  • price — в копейках (1 000 000 = 10 000,00 ₽).
  • comment — необязательно; по нему потом можно искать счёт (v0.2.0): GET .../invoices/order-8842?comment=1.

Ответ API

При успехе сервер вернёт JSON со схемой счёта: id, number, date, строки items, total_amount, paid_amount. Поле id понадобится для GET, PUT и печати PDF.

Пример фрагмента ответа:

{
  "id": "0000-000596_20161227",
  "number": "0000-000596",
  "date": "2016-12-27",
  "total_amount": 1000000,
  "paid_amount": 0,
  "comment": "order-8842"
}

PDF: GET /invoices/{id}/print. Без подписей и печатей — query ?facsimile=0.

Swagger и OpenAPI

  1. Скачайте bit_http_api-openapi.yaml (OpenAPI 3.0).
  2. Импортируйте в Postman (Import → File) или откройте в Swagger Editor.
  3. В переменной baseUrl укажите URL публикации вашей базы (без /hs/bit_http_api).
  4. Задайте Basic Auth — те же логин и пароль, что в curl.
  5. Выполните POST /invoices с телом из примера выше.

На лендинге REST API для 1С — таблицы всех методов, схемы JSON и история версий 0.1.x–0.4.0.

Проверка в 1С

  1. Откройте «Продажи» → «Счета покупателям» — найдите документ по номеру из ответа.
  2. Сверьте контрагента, сумму (копейки в JSON = рубли в форме) и комментарий.
  3. При ошибке 500 — журнал регистрации 1С: чаще не заполнено обязательное поле или неверный ИНН.

Следующие шаги

  • Акт по счёту — POST /acts с invoice_id.
  • Счёт-фактура — POST /tax-invoices с act_id (v0.3.0).
  • Список счетов за месяц — GET /invoices?dateBegin=...&dateEnd=... (v0.4.0).

Внедрение на боевой базе, публикация HTTP-сервиса и доработки под ваш процесс — CodeLab. Сравнение REST, OData и CommerceML — статья о выборе подхода.

Частые вопросы

Какой URL для создания счёта через API 1С?

POST на {публикация}/hs/bit_http_api/invoices с Content-Type application/json и Basic Auth. Базовый путь зависит от имени публикации вашей базы на веб-сервере.

В каких единицах передавать price в JSON?

В копейках, целым числом. Например, 10 000 рублей — price: 1000000. quantity — количество, обычно число с дробной частью для услуг = 1.

Как импортировать OpenAPI в Postman?

Файл: bit_http_api-openapi.yaml.

Что делать, если 1С возвращает 500 при POST счёта?

Откройте журнал регистрации 1С на сервере: чаще не найден контрагент по ИНН, не заполнено обязательное поле номенклатуры или неверный формат JSON.

Можно ли передать номер заказа сайта в счёт?

Да, используйте поле comment в теле POST. Потом счёт ищется GET-запросом с параметром comment=1 (v0.2.0).

Была ли статья полезной?

Нужна интеграция с 1С?

CodeLab проектирует REST API, B2B-порталы и обмен с внешними системами.

Обсудить задачу