---
title: "Изменить черновик версии спецификации"
method: PUT
path: "/api/v1/stock/assembly-specs/{id}"
tags: ["Stock assembly specs"]
---

# Изменить черновик версии спецификации

`PUT /api/v1/stock/assembly-specs/{id}`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/assembly-specs/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Целиком заменяет реквизиты и состав черновика: название, вид, выходной
товар, количество выхода, комментарий и строки. Номер версии и
спецификация не меняются. Опубликованная (действующая или архивная)
версия не правится — ответ 400, заводится новая версия. Выходной товар
меняется только у единственной версии спецификации.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant` string, required

## Request body

- StockAssemblySpecUpdate: Полная замена реквизитов и состава черновика. Номер версии и спецификация, к которой она относится, не меняются. Проверки те же, что при заведении версии.
  - `name` string, required
  - `kind` 'assembly' | 'production' | 'kit': Вид состава: assembly — «Сборка» (по умолчанию), production — «Производство», kit — «Комплект»: набор, который собирается при отгрузке или перемещении (ERP-2111)
  - `product_id` string, uuid, required
  - `output_qty` string, required: Сколько выходного товара даёт этот состав
  - `comment` string
  - `lines` object[], required
    - `product_id` string, uuid, required
    - `product_uom_id` string, uuid
    - `qty` string, required
    - `share` string

## Response `200`

Изменённый черновик

- StockAssemblySpec: Одна версия спецификации изделия. Состав опубликованной версии неизменяем — новая редакция заводится новой версией.
  - `id` string, uuid
  - `spec_id` string, uuid
  - `version` integer
  - `name` string
  - `status` 'draft' | 'active' | 'archived'
  - `kind` 'assembly' | 'production' | 'kit': Вид состава: assembly — «Сборка», production — «Производство», kit — «Комплект»: набор, который отдельно не хранят — проведение отгрузки или перемещения со своего склада само заводит и проводит его сборку на недостающее количество (ERP-2111). Хранится у версии: следующая редакция может сменить вид. Набор со своей маркой ЧЗ «Комплектом» быть не может — 400, только «Сборка» заранее (ERP-2183). Вложенный «Комплект» собирается раньше внешнего
  - `product_id` string, uuid
  - `product_sku` string
  - `product_name` string
  - `product_has_gtin` boolean: У набора есть свой GTIN (ERP-2183): карточка подсказывает вид «Сборка»
  - `product_marked` boolean: У набора есть действующая группа маркировки ЧЗ (ERP-2183): вид «Комплект» запрещён
  - `unit` string
  - `output_qty` string
  - `comment` string
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `activated_at` string, date-time
  - `archived_at` string, date-time
  - `lines` StockAssemblySpecLine[]
    - `id` string, uuid
    - `product_id` string, uuid, required
    - `product_sku` string
    - `product_name` string
    - `product_kind` string: Вид номенклатуры компонента (ERP-2183): material и semi_product карточка состава показывает блоком «Упаковка и материалы». Их стоимость входит в себестоимость набора, как у любого компонента
    - `unit` string
    - `product_uom_id` string, uuid
    - `uom_name` string: Название единицы товара
    - `qty` string, required: Положительная decimal string в единице товара или в базовой единице карточки
    - `base_qty` string: То же количество в базовой единице на момент заведения версии; считает сервер. Смысл состава — это число: коэффициент упаковки может измениться позже
    - `share` string: Доля стоимости при разукомплектации; задаётся сразу для всего состава или не задаётся вовсе
    - `position` integer
  - `archived_versions` StockAssemblySpecArchivedVersion[]: Версии, которые это действие убрало в архив: активация архивирует прежнюю действующую версию того же товара — своей или другой спецификации. Поле есть только в ответе смены состояния; отсутствует, если в архив ничего не ушло
    - `id` string, uuid, required
    - `spec_id` string, uuid, required
    - `name` string, required
    - `version` integer, required

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
