No description
- Python 100%
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| get_token.py | ||
| README.md | ||
| requirements.txt | ||
| sort_demand.py | ||
| VERSION | ||
sort_demand
Утилита для сортировки позиций отгрузки в МойСклад по ячейкам склада.
Зачем
МойСклад не умеет сортировать позиции внутри документа по произвольному полю.
Скрипт читает отгрузки со статусом «на сборке», даёт выбрать нужную,
показывает позиции отсортированными по ячейке и (по желанию) сохраняет порядок в API.
Требования
- Python 3.12+
- Токен МойСклад (Bearer). Получить:
python get_token.py
Установка
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python get_token.py # сохранить токен в keyring
Использование
# Просмотр отгрузок за 30 дней со статусом «на сборке»
python sort_demand.py
# Другой период и статус
python sort_demand.py --days 14 --state-name "в работе"
# Сохранить порядок без подтверждения (для скриптов/автоматизации)
python sort_demand.py --apply
# Отладочный вывод
python sort_demand.py --debug
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
--days |
30 |
Период выборки отгрузок (дней назад) |
--state-name |
"на сборке" |
Название статуса для фильтра |
--cell-attr |
"Ячейка" |
Название пользовательского атрибута ячейки (fallback) |
--apply |
False |
Авто-подтверждение сохранения |
--debug |
False |
Вывод сырых ответов API |
Как работает сохранение
POST /entity/demand/{id}/positions/delete— batch-удаление всех позиций (1 запрос)POST /entity/demand/{id}/positions— создание в отсортированном порядке (1 запрос)- Повторное чтение из API + сверка: кол-во строк, единицы, сумма, порядок
Важно:
PUTна документ игнорирует полеpositions— это подтверждено.
Единственный рабочий способ изменить порядок — удалить и пересоздать.
Лимиты API
40 запросов / 3 секунды (Bearer-токен). Встроенный token bucket + retry при 429/5xx.