| |
| hc:api:inflow [26.09.2026 14:03] – создано - внешнее изменение | hc:api:inflow [25.10.2026 18:32] (текущий) – внешнее изменение |
|---|
| ===== Статусы документа ===== | ===== Статусы документа ===== |
| |
| Статус хранится в поле ''status''. Документ проходит четыре этапа: | Статус хранится в поле ''status''. Документ проходит три этапа: |
| |
| ^ Значение ^ Название ^ Что означает ^ | ^ Значение ^ Название ^ Что означает ^ |
| | ''draft'' | Черновик | Документ наполняется. Остатки на складе не менялись. Только в этом статусе документ можно удалить | | | ''draft'' | Черновик | Документ наполняется. Остатки на складе не менялись. Только в этом статусе документ можно удалить | |
| | ''confirm'' | Товар поступил, идёт сверка | Промежуточный статус. Остатки ещё не изменены | | | ''confirm'' | Сверка | Промежуточный статус: товар пересчитывают и сравнивают с документом. Остатки ещё не изменены | |
| | ''accept'' | Принят | Товар оприходован, остатки на складе увеличены. Изменение количества — только корректировкой. Можно откатить методом ''rollback'' | | | ''complete'' | Принят | Товар оприходован, остатки на складе увеличены. Строки не меняются: исправления вносятся корректировкой поступления в Панели управления. Можно откатить методом ''rollback'' | |
| | ''complete'' | Принят окончательно | Корректировки недоступны. Откатить через API нельзя | | |
| |
| Статус можно сменить параметром ''status'' в методах ''update'' и ''batchUpdate'' либо отдельным методом ''accepting''. Переход в ''accept'' или ''complete'' принимает документ на склад. Назад по цепочке статус этими методами вернуть нельзя: для отката принятого документа используйте ''rollback'' (только из статуса ''accept''). | Статус можно сменить параметром ''status'' в методах ''update'' и ''batchUpdate'' либо отдельным методом ''accepting''. Переход в ''complete'' принимает документ на склад. Значение ''accept'' (прежний этап «Принят с корректировками») по-прежнему принимается и тоже переводит документ в ''complete''. Назад по цепочке статус этими методами вернуть нельзя: для отката принятого документа используйте ''rollback''. |
| |
| ===== Получение поступлений ===== | ===== Получение поступлений ===== |
| | **days** | Число. Глубина поиска в днях от текущей даты. По умолчанию 30. Действует только если не заданы ''date'', ''datefrom'', ''cdatefrom'' и ''last_update_date'' | | | **days** | Число. Глубина поиска в днях от текущей даты. По умолчанию 30. Действует только если не заданы ''date'', ''datefrom'', ''cdatefrom'' и ''last_update_date'' | |
| | **withitems** | ''1'' — добавить строки документов. По умолчанию возвращаются только шапки | | | **withitems** | ''1'' — добавить строки документов. По умолчанию возвращаются только шапки | |
| | **withadjustment** | ''1'' — добавить данные корректировки поступления | | | **withadjustment** | ''1'' — добавить объект корректировки (оставлен для совместимости, всегда пустой) | |
| | **format** | ''json'' (по умолчанию) или ''xml'' | | | **format** | ''json'' (по умолчанию) или ''xml'' | |
| </WRAP> | </WRAP> |
| | **UPD_num**, **UPD_date** | Строка. Номер и дата УПД | | | **UPD_num**, **UPD_date** | Строка. Номер и дата УПД | |
| | **correction_num** | Строка. Номер исправления | | | **correction_num** | Строка. Номер исправления | |
| | **parent_id**, **overcome_id**, **undercome_id** | Число. Ид связанных документов: родительского поступления и корректировок излишков и недостач | | | **parent_id**, **overcome_id**, **undercome_id** | Всегда null. Оставлены для совместимости: корректировочных поступлений больше нет | |
| | **request_id** | Число. Ид заявки на пополнение запасов, по которой создано поступление | | | **request_id** | Число. Ид заявки на пополнение запасов, по которой создано поступление | |
| | **znak_document_id**, **znak_status**, **znak_acceptance_type** | Данные подтверждения в системе маркировки | | | **znak_document_id**, **znak_status**, **znak_acceptance_type** | Данные подтверждения в системе маркировки | |
| | **amount** | Строка. Сумма по строке | | | **amount** | Строка. Сумма по строке | |
| | **vat_rate**, **vat_sum**, **sum_minus_vat** | Строка. Ставка НДС, сумма НДС и сумма без НДС | | | **vat_rate**, **vat_sum**, **sum_minus_vat** | Строка. Ставка НДС, сумма НДС и сумма без НДС | |
| | **manuf_date**, **expir_date** | Дата изготовления и срок годности | | | **manuf_date**, **expir_date** | Дата изготовления и срок годности. Сроки есть только у строки с серией (''lot_number''): у серии, которая уже есть на складе поступления, — сроки остатка, у новой — переданные. Без серии — ''null'' | |
| | **lot_number** | Строка. Серия (партия) | | | **lot_number** | Строка. Серия (партия) | |
| | **external_id** | Строка. Код строки во внешней системе | | | **external_id** | Строка. Код строки во внешней системе | |
| </WRAP> | </WRAP> |
| |
| **Корректировка** (при ''withadjustment=1'', объект ''adjustment''; пустой список, если корректировки нет) | **Корректировка** (при ''withadjustment=1'', объект ''adjustment'') — оставлен для совместимости и всегда возвращается пустым списком. Корректировки поступления теперь оформляются отдельными документами в Панели управления, а строки поступления после проведения корректировки уже содержат исправленные значения. |
| | |
| <WRAP props> | |
| | **id** | Ид корректировки поступления | | |
| | **title** | Название корректировки | | |
| | **created_date** | Дата создания | | |
| | **items** | Строки корректировки: ''line_id'', ''item_id'', ''item_ext_id'', ''item_name'', ''quantity'' (фактическое количество), ''quantity_expected'' (ожидаемое) | | |
| </WRAP> | |
| |
| ==== Пример ответа ==== | ==== Пример ответа ==== |
| "waybill": "118", | "waybill": "118", |
| "docdate": "2026-09-01 00:00:00", | "docdate": "2026-09-01 00:00:00", |
| "status": "accept", | "status": "complete", |
| "comment": "Поставка сентября", | "comment": "Поставка сентября", |
| "created_date": "2026-09-01 10:14:02", | "created_date": "2026-09-01 10:14:02", |
| <warehouse_id>6</warehouse_id> | <warehouse_id>6</warehouse_id> |
| <docdate>2026-09-01 00:00:00</docdate> | <docdate>2026-09-01 00:00:00</docdate> |
| <status>accept</status> | <status>complete</status> |
| <!-- остальные поля шапки --> | <!-- остальные поля шапки --> |
| <items> | <items> |
| |
| <WRAP important> | <WRAP important> |
| **Смена статуса выполняется вместе с сохранением.** При переводе в ''accept'' или ''complete'' документ принимается на склад: должна быть хотя бы одна строка, а все строки должны ссылаться на существующие товары, иначе придёт ошибка и статус не изменится. Если сохранить не удалось, вся операция отменяется. | **Смена статуса выполняется вместе с сохранением.** При переводе в ''complete'' (или ''accept'') документ принимается на склад: должна быть хотя бы одна строка, а все строки должны ссылаться на существующие товары, иначе придёт ошибка и статус не изменится. Если сохранить не удалось, вся операция отменяется. |
| </WRAP> | </WRAP> |
| |
| <docdate>2026-09-01</docdate> | <docdate>2026-09-01</docdate> |
| <comment>Поставка</comment> | <comment>Поставка</comment> |
| <status>accept</status> | <status>complete</status> |
| <items> | <items> |
| <item> | <item> |
| Ответ обоих методов: ''{"success":1,"id":21230}''. | Ответ обоих методов: ''{"success":1,"id":21230}''. |
| |
| * **accepting** принимает документ из статуса ''draft'' сразу в статус ''accept'': добавляет количество из строк в остатки склада, пересчитывает закупочную цену остатка и записывает движение товара. Условия: в документе есть хотя бы одна строка, нет пустых строк без товара, все товары существуют в ассортименте. | * **accepting** принимает документ из статуса ''draft'' или ''confirm'' в статус ''complete'': добавляет количество из строк в остатки склада, пересчитывает закупочную цену остатка и записывает движение товара. Условия: в документе есть хотя бы одна строка, нет пустых строк без товара, все товары существуют в ассортименте. |
| * **rollback** отменяет принятие документа из статуса ''accept'': возвращает остатки к прежним значениям и переводит документ в ''draft''. Документ в статусе ''complete'' откатить нельзя. | * **rollback** отменяет принятие документа из статуса ''complete'': возвращает остатки к прежним значениям и переводит документ в ''draft''. Откатить нельзя, если по поступлению есть корректировки или оно уже зарегистрировано в МДЛП. |
| |
| ===== Строки документа ===== | ===== Строки документа ===== |
| | Inflow was already accepted | accepting | Документ уже принят | Ничего делать не нужно | | | Inflow was already accepted | accepting | Документ уже принят | Ничего делать не нужно | |
| | Accepting failed. … | accepting | Нет строк, есть пустые строки или товары, которых нет в ассортименте | Исправьте документ, текст после точки поясняет причину | | | Accepting failed. … | accepting | Нет строк, есть пустые строки или товары, которых нет в ассортименте | Исправьте документ, текст после точки поясняет причину | |
| | Inflow was not accepted or has been already rollbacked | rollback | Документ не в статусе ''accept'' | Откат возможен только для принятого документа | | | Inflow was not accepted or has been already rollbacked | rollback | Документ не в статусе ''complete'' | Откат возможен только для принятого документа | |
| | Не указан документ поступления | upload | Не передан ''waybill'' | Передайте номер накладной | | | Не указан документ поступления | upload | Не передан ''waybill'' | Передайте номер накладной | |
| | Не передан идентификатор поставщика / точки продаж | upload | Не указаны ни ид, ни внешний код | Передайте ''supplier_id'' или ''warehouse_id'' | | | Не передан идентификатор поставщика / точки продаж | upload | Не указаны ни ид, ни внешний код | Передайте ''supplier_id'' или ''warehouse_id'' | |