Запрос «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
- Скачайте bit_http_api-openapi.yaml (OpenAPI 3.0).
- Импортируйте в Postman (Import → File) или откройте в Swagger Editor.
- В переменной
baseUrlукажите URL публикации вашей базы (без/hs/bit_http_api). - Задайте Basic Auth — те же логин и пароль, что в curl.
- Выполните
POST /invoicesс телом из примера выше.
На лендинге REST API для 1С — таблицы всех методов, схемы JSON и история версий 0.1.x–0.4.0.
Проверка в 1С
- Откройте «Продажи» → «Счета покупателям» — найдите документ по номеру из ответа.
- Сверьте контрагента, сумму (копейки в JSON = рубли в форме) и комментарий.
- При ошибке 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).